170 likes | 291 Views
System Development. Getting the Job Done. Agenda. The Engineering Process (NI Example) What is development? Development methodologies Relationship with test Design patterns Example(s) Misc Comments Conclusion. The Engineering Process (NI Example).
E N D
System Development Getting the Job Done
Agenda • The Engineering Process (NI Example) • What is development? • Development methodologies • Relationship with test • Design patterns • Example(s) • Misc Comments • Conclusion
The Engineering Process (NI Example) • http://zone.ni.com/devzone/cda/tut/p/id/7198 • Large Application Development in LabVIEW • Good practice for projects of all sizes • In reality the line between these steps is blurry
What is System Development? • Wikipedia on software development: “the set of activities that results in software products”, • More Wikipedia: “the software development process may involve many departments, including marketing, engineering, research and development and general management” • My version: “Turning a well thought out plan into reality, or roll up your sleeves and get er’ done”
Relationship to Test • While testing is implied in the NI engineering process that is not only test area • During software development continuous testing of small increments of functionality will reduce headaches later in the process • Test primarily happens during development and validation
Development Methodologies • Waterfall – (Wikipedia) “a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design (validation), Construction, Testing and maintenance” • Requirements • Design • Implmentation • Verification • Maintenance • ONLY ONE PASS THROUGH THE PROCESS
Development Methodologies • Agile – (Wikipedia) “based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams” • Basically an iterative process that constantly takes on short objectives and makes adjustments to the design as deemed necessary with further understanding of the constraints. • ITERATIVE PROCESS WITH CONSTANT ADJUSTMENTS
Development Methodologies • Many Others: • Structured Design • Object Oriented • Top-Down/Bottom-Up • Stepwise Refinement • The list goes on …
Our Favorite Methodology • A mix of waterfall & agile • Have a well thought out plan up front which includes architecture, design, and process (Waterfall) • Execute the plan with an iterative approach that adjusts to unexpected constraints (Agile)
Design Patterns • Pre-designed architectures that are tested and proven to fit specific application scenario • If a good fit, design patterns provide a head-start on software development • Key is to us where appropriate. One size does not fit all.
Design Patterns • State Machines • Producer-Consumer • Event Driven • Object Oriented • Parallel Loops (multi-threaded) • See following link for good presentation: http://decibel.ni.com/content/docs/DOC-4817
My Common UI Example (Optional) • Combination of • event driven UI • producer-consumer • state machine • Applies to requirement for user interaction with an underlying process • Remember no one design pattern fits all applications & development is NOT architecture • Optional put something together after next
My Favorite New Technology to LabVIEW – The Web (demo) • Remote panels don’t count for me. They are web 1.0, we now live in web 2.0. • LabVIEW 8.6 introduced a new commercial web server: EmbedThis and web services • If curious: http://www.embedthis.com • Future LabVIEW will have a real web client built on MS Silverlight and LabVIEW web services. It was demonstrated at NI Week this year. • Ready to build a web service?
Our Summer Intern Project • ZuhairParvez – Student at Jesuit • Energy Management – eBot • Key technologies • Single board RIO (sb-RIO) with real-time & FPGA • LabVIEW web server w/web services • Adobe Flex development environment (Flash) • USB webcam • Windows based webcam server • The internet • http://ebot.endeng.net/powerdemo/index.html
Misc Development Comments • Follow NI LabVIEW development guidelines, especially chapter 6 style guide. Search ni.com for “labview development guideline pdf” • Check out the Simple TCP Messaging (STM) library from NI which is great for network communication • In real-time beware of priority, blocking, and cost of code. • When doing FPGA it looks like “normal code” but remember it is actually a hardware design with very finite resource constraints
The End James Tillett P.E. Endeavor Engineering Inc. Ph: 503.336.1717 x101 jtillett@endeavoreng.com www.endeavoreng.com Office Hours Last Wednesday of the month 4-7 pm Food & drinks, food Come with questions, leave with answers