270 likes | 730 Views
Applying UML to TestStand and LabVIEW. Matthew Kennedy Engineering Manager matthew.kennedy@bloomy.com. Agenda. Software project problems Why UML? Useful UML tools for TestStand and LabVIEW Conclusion Resources * This is not a UML course. Just not enough time. Software Project Problems.
E N D
Applying UML to TestStand and LabVIEW Matthew Kennedy Engineering Manager matthew.kennedy@bloomy.com
Agenda • Software project problems • Why UML? • Useful UML tools for TestStand and LabVIEW • Conclusion • Resources * This is not a UML course. Just not enough time.
Software Project Problems • Software functionality • Requirements definition • End users and programmers exist in different worlds and speak different languages • Requirements get lost or misunderstood • Software programmers don’t have clear requirements, skip design, and go straight to code development
Minimize Software Project Cost “Just complete the software THEN fix it.” Three simple rules: • State requirements • Create system design • Code to the design • 1 unit=Effort required to detect and repair a error during coding
Where Does UML Come In? • UML can help software programmers and project engineers to: • Define customer requirements • Create basic designs • Set of notation and meta-model language tools • Defined notation • Applicable to many programming languages • Makes programmers put pencil to paper and diagram/plan systems
Useful UML Tools for LabVIEW and TestStand • Use cases • Interaction diagrams • Sequence diagrams • Activity diagrams
Stage 1: Requirements • Use case • First step toward defining a software system • A set of scenarios tied together by a common user goal • Describes what system must do
Use Case Example Example: Load UUT for test Main success scenario: • Operator picks up UUT from rack • Operator checks UUT socket clear • Operator inserts UUT into test fixture • Operator starts test • Fixture locks down UUT • Test begins Extension 5a. Fixture fails to lock down 5a1. Eject UUT 5a2. Reset test system 5a3. System request maintenance • Communicate requirements • A set of scenarios tied together by a common user goal • Plain language Actor
Use Cases – Final Thought • Of all UML tools, use cases are arguably the most important • Key to ensure a successful requirements stage • Actors are not always easy to identify • Actor could be the test system itself, a sequence, etc. • Meant to be simple but detailed enough to manage project scope
Stage 2: Design • Sequence diagram • Describes how groups of objects or processes behave in a sequential and concurrent manner • Typically defines a single use case • Activity diagram • A state of doing something • Describes sequence of activity • State diagram • Describes all possible states that can occur in a system
Sequence Diagram Example Latch UUT For Test
Activity Diagram Latch UUT For Test
State Diagram Read Latch Switch Activity
Stage 3: Coding • Software design must be implemented • Obvious implementations State diagrams: LabVIEW state machines Sequence diagrams: TestStand sequence LabVIEW dataflow programming Sequence structures Activity diagrams: LabVIEW state machines TestStand sequences • Using a state diagram does not mean you must use a LabVIEW state machine
Fancy Flowcharts? Isn’t UML just another flowchart? • Widely accepted standard • Intuitive to use • Many end users already have familiarity with UML • Instantly start talking the same language • Plenty of resources to help • Flowcharts and more with standardized notation
More UML Uses • Tools for programming graphical object orientated code in LabVIEW – GOOP • Useful for class diagrams, package and collaborations diagrams • Some projects require merging traditional text-based OOP languages and LabVIEW • UML design tools do not necessarily determine implementation • Mix and match the appropriate tools and ADEs
Tools to Help • Rational Rose • Visio – UML toolkit • New LabVIEW state machine wizard • Any word processor: Use case development
Lessons Learned • Keep use cases detailed • Avoid using language-specific information of software design in use cases • Use swimlanes with activity diagrams to assist in modularizing TestStand sequence development • Finish state machine diagram before writing LabVIEW code • Use only what you need • Unnecessary to use every diagram tool to adequately design a software system
Conclusion • UML is an industry-accepted standard for developing software architectures • More and more people are becoming aware of the benefits of using UML • UML is an excellent tool for developing LabVIEW and TestStand architectures BEFORE coding • Use appropriate UML tools • UML can save time and money by preventing costly rework
Recommended Reading • UML Distilled Second Edition,Martin Fowler and Kendall Scott • Managing Software Requirements a Unified Approach, Dean Leffingwell and Don Widring • The Unified Modeling Language Guide,Grady Booch, Ivar Jacobson, James Rumbaugh • Writing Effective Use Cases, Alistair Cockburn
Web Resources • Use-cases.org • foruse.com • UML.org • Rational.com
About Bloomy Controls • Test, measurement, automation, and control specialists since 1991 • Systems integration, software development, and training provider • NI Select Integrator and Certified Training Center • 3 Certified LabVIEW Architects • 8 Certified LabVIEW Developers • 1 Certified TestStand Architect • 2 Certified TestStand Developers • 8 Certified Professional Instructors • Offices in Windsor, CT; Milford, MA; and Mahwah, NJ
Contact Bloomy Controls • Email info@bloomy.com • Write or visit