1 / 17

System Development

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).

ziarre
Télécharger la présentation

System Development

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. System Development Getting the Job Done

  2. Agenda • The Engineering Process (NI Example) • What is development? • Development methodologies • Relationship with test • Design patterns • Example(s) • Misc Comments • Conclusion

  3. 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

  4. 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”

  5. 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

  6. 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

  7. 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

  8. Development Methodologies • Many Others: • Structured Design • Object Oriented • Top-Down/Bottom-Up • Stepwise Refinement • The list goes on …

  9. 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)

  10. 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.

  11. NI Design Pattern Guide

  12. 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

  13. 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

  14. 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?

  15. 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

  16. 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

  17. 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

More Related