Home

LabVIEW Development Guidelines

image

Contents

1. In the final phase you evaluate the results with the customer Based on customer input you can reassess the situation decide on the next highest risk and start the cycle over This process continues until the software is finished or you decide the risks are too great and terminate development You might find that none of the options is viable because each is too expensive time consuming or does not meet the requirements 1 10 www ni com Chapter 1 Development Models The advantage of the spiral model over the waterfall model is that you can evaluate which risks to take care of with each cycle Because you can evaluate risks with prototypes much earlier than in the waterfall process you can deal with major obstacles and select alternatives in the earlier stages which is less expensive With a standard waterfall model you might have allowed assumptions about the risky components to spread throughout the design which requires much more expensive rework when the problems are later discovered Summary Lifecycle models are described as distinct choices from which you must select In practice however you can apply more than one model to a single project You might start a project with a spiral model to help refine the requirements and specifications over several iterations using prototyping Once you have reduced the risk of a poorly stated set of requirements you might apply a waterfall lifecycle model to the design coding testing
2. Also be sure to tell users about this behavior Every control and indicator needs a description that includes the following information e Functionality e Data type e Valid range for inputs e Default value for inputs e Behavior for special values 0 empty array empty string and so on e Additional information such as if the user must set this value always often or rarely Alternatively you can list the default value in parentheses as part of the control or indicator name For controls and indicators on the VI connector pane mark the inputs and outputs by right clicking the connector pane and selecting This Connection is Required Recommended or Optional from the shortcut menu National Instruments Corporation 5 5 LabVIEW Development Guidelines LabVIEW Style Guide This chapter describes recommended practices for good programming technique and style Remember that these are only recommendations not laws or strict rules Several experienced LabVIEW programmers have contributed to this guide As mentioned in Chapter 2 Incorporating Quality into the Development Process inconsistent style causes problems when multiple developers are working on the same project The resulting VIs can confuse users and be difficult to maintain To avoid these problems establish a set of style guidelines for VI development You can establish an initial set at the beginning of the project and add additional guidelines as the projec
3. Figure 6 2 Example of Imported Graphics Used in a Pict Ring Use a pict ring when a function or mode is conveniently described by a picture Check how the imported pictures look when the VI is loaded on another platform For example a Macintosh PICT file that has an irregular shape might convert to a rectangular bitmap with a white background on Windows or UNIX One disadvantage of imported graphics is that they slow down screen updates Make sure indicators and controls are not placed on top of a graphic object That way the object does not have to be redrawn each time the indicator is updated 3 Tip Ifyou must use a large background picture with controls on top of it try breaking it into several smaller objects and import them separately Large graphics usually take longer to draw than small ones For instance import several pictures of valves and pipes individually instead of importing one large picture Use a custom Boolean control that is transparent in one state and is visible in another to detect mouse clicks in specified regions of the screen LabVIEW Development Guidelines 6 4 www ni com Chapter 6 LabVIEW Style Guide Layout Consider the arrangement of controls on front panels Keep front panels simple to avoid confusing the user and use menus to help reduce clutter For top level VIs that users see place the most important controls in the most prominent positions Use the Align Objects and the Distribute Objects
4. panel and a description of the major controls and indicators Organize the front panel descriptions in a top down fashion with the first front panels the user sees documented first As described in the previous section you can use the Print dialog box to create this documentation Creating Help Files You can create online help or reference documents if you have the right development tools Online help documents are based on formatted text documents You can create these documents using a word processing program such as Microsoft Word or using other help compiling tools You can also create online help documents in HTML with an HTML help compiler Special help features such as links and hotspots are created as hidden text You can use the Print dialog box to help you create the source material for the help documents Once you have created source documents use a help compiler to create a help document If you need help files on multiple platforms you must use the help compiler for the specific platform on which the help files are used Once you have created and compiled the help files you can add them to the National Instruments Corporation 5 3 LabVIEW Development Guidelines Chapter 5 Creating Documentation Help menu of LabVIEW or your own custom application by placing them in the help directory You also can link to them directly from a VI using one of two ways You can link to the Help menu using the VI Properties Docum
5. 4 2 wideband delphi estimation 4 4 mapping estimates to schedules 4 6 tracking schedules using milestones 4 7 missed milestones 4 7 size based metrics problems 4 3 source lines of codes number of nodes 4 2 sizing and positioning block diagrams 6 11 front panels 6 6 www ni com SLOCs See source lines of code SLOCs metric software quality standards 2 13 Capability Maturity Model CMM 2 14 Institute of Electrical and Electronic Engineers IEEE 2 16 International Organization for Standardization ISO 9000 2 13 U S Food and Drug Administration FDA 2 14 source code control tools change control 2 4 managing project related files 2 3 previous versions of files 2 3 purpose and use 2 3 quality control considerations 2 2 tracking changes 2 4 source lines of code SLOCs metric in estimation 4 2 problems with 4 3 speed and memory optimization 6 9 spiral model 1 9 standards See software quality standards stub VIs 3 9 style guidelines 6 1 block diagram 6 9 left to right layouts 6 11 memory and speed optimization 6 9 sizing and positioning 6 11 wiring techniques 6 9 connector panes 6 14 front panels 6 3 color 6 3 default values and ranges 6 7 descriptions 6 6 enumerations vs rings 6 6 fonts and text 6 3 graphics and custom controls 6 4 keyboard navigation 6 8 labels 6 6 layout 6 5 National Instruments Corporation l 5 Index property nodes 6 7 sizing and positioning 6 5
6. and maintenance stages Other lifecycle models exist Appendix A References lists documents that contain information about other development methodologies National Instruments Corporation 1 11 LabVIEW Development Guidelines Incorporating Quality into the Development Process This chapter describes strategies for producing quality software Many developers who follow the code and fix style of programming described in Chapter 1 Development Models mistakenly believe they do not need to deal with the issue of quality until the testing phase This is simply not true Design quality into a product from the start Developing quality software begins by selecting a development model that helps you avoid problems in the first place Consider quality during all stages of development requirements and specification design coding testing release and maintenance Do not regard quality controls as tedious requirements that impede development Most of them help streamline development so problems are found before they are in the software when it is inexpensive to fix them Quality Requirements Set the quality standards for a product during the requirements stage The desired quality level is treated as a requirement just like other requirements Weigh the merits and costs of various options you have for applying quality measures to the project Some of the trade offs to consider include speed versus robustness and ease of use ver
7. hierarchical organization of files 6 1 directories folders 6 1 naming VIs VI libraries and directories 6 2 icons 6 13 inconsistent developer styles 2 10 style checklist 6 14 block diagram 6 17 front panel 6 16 VIs 6 14 subVI library documenting 5 2 system integration B 1 system testing 2 9 T technical support resources B 1 testing guidelines 2 5 black box and white box testing 2 6 formal methods of verification 2 9 integration testing 2 8 system testing 2 9 unit testing 2 6 text style guidelines 6 3 top down design 3 2 tracking changes 2 4 tracking projects See scheduling and project tracking U unit testing 2 6 U S Food amp Drug Administration FDA standards 2 14 user documentation See documentation of applications LabVIEW Development Guidelines Index V verification methods 2 9 See also testing guidelines VI libraries documenting 5 2 hierarchical organization 6 1 VI Metrics tool 4 2 VI Search Path 6 2 VIs description as documentation 5 4 hierarchical organization 6 1 linking to help files 5 4 memory and speed optimization 6 9 style checklist 6 14 LabVIEW Development Guidelines W Wait function adding to While loops 6 9 waterfall model 1 5 modified 1 7 Web support from National Instruments B 1 white box testing 2 6 wideband delphi estimation 4 4 wiring techniques 6 9 Worldwide technical support B 2 www ni com
8. needed You can use the tools to track changes and access older versions of files As described in Chapter 3 Prototyping and Design Techniques source management of all project related files is extremely important for developing quality software In fact source management is a requirement for certification under existing quality standards such as ISO 9000 Retrieving Old Versions of Files There are times when you need to retrieve an old version of a file or project This might happen if you make a change to a file and check it in only to realize you made a mistake Another reason you might need to retrieve an old version of a file or project is if you send a beta version of the software to a customer and continue development If the customer reports a problem you might need to access a copy of the beta version of the software One way to access an old version of files or project is to back up files periodically However unless you back up the VI after every change you might not have access to every version Source code control tools provide a way to check in new versions of a file and make a backup copy of the old version Depending on how you configure the system the tools can maintain multiple backup copies of a file National Instruments Corporation 2 3 LabVIEW Development Guidelines Chapter 2 Incorporating Quality into the Development Process Tracking Changes Change Control LabVIEW Development Guidelines You can u
9. the Lifecycle Models section later in this chapter can be useful tools to clarify goals A second problem with this statement is that diving into development might mean writing code without a detailed design Just as builders do not construct a building without architectural plans National Instruments Corporation 1 1 LabVIEW Development Guidelines Chapter 1 Development Models LabVIEW Development Guidelines developers should not begin building an application without a detailed design Refer to the Code and Fix Model section later in this chapter for more information about development models to follow We don t have time to write detailed plans We re under a tight schedule so we need to start developing right away This situation is similar to the previous example but is such a common mistake that it is worth emphasizing Software developers frequently skip important planning because it does not seem as productive as developing code As a result you develop VIs without a clear idea of how they all fit together and you might have to rework sections as you discover mistakes Taking the time to develop a plan can prevent costly rework at the development stage Refer to the Lifecycle Models section later in this chapter and Chapter 3 Prototyping and Design Techniques for better approaches to developing software Let s try for the whole ball of wax in the first release If it doesn t do everything it won t be usefu
10. tilde and so on Most operating systems accept long descriptive names for files up to 31 characters on a Macintosh and 255 characters on other platforms Select Tools Options to make sure the VI Search Path contains lt topvi gt and lt foundvi gt The causes all subdirectories to be searched In Figure 6 1 MyApp vi is the top level VI This means that the application searches for subVIs in the directory MyApp Once a subVI is found in a directory the application looks in that directory for subsequent subVIs Avoid creating files with the same name anywhere within the hierarchy Only one VI of a given name can be in memory at a time If you have a VI with a specific name in memory and you attempt to load another VI that references a subVI of the same name the VI links to the VI in memory If you make backup copies of files be sure to save them into a directory outside the normal search hierarchy so that LabVIEW does not mistakenly load them into memory when you open development VIs Refer to the Saving VIs section of Chapter 7 Creating VIs and SubVIs in the LabVIEW User Manual for more information about saving VIs individually and in VI libraries 6 2 www ni com Chapter 6 LabVIEW Style Guide Front Panel Style Remember that a user s first contact with your work is the front panel Front panels should be well organized and easy to use Fonts and Text Styles Do not be tempted to use all the fonts and styles
11. B 1 nodes definition 4 2 source lines of code number of nodes estimation 4 2 P performance benchmarking 3 10 memory and speed optimization 6 9 positioning See sizing and positioning postmortem evaluation 2 12 Print dialog box 5 2 project tracking See scheduling and project tracking property nodes 6 7 prototyping See also design techniques development model 1 7 front panel prototyping 3 9 LabVIEW prototyping methods 1 8 Q quality control 2 1 code walkthroughs 2 11 configuration management 2 2 change control 2 4 managing project related files 2 3 retrieving old versions of files 2 3 source code control 2 2 tracking changes 2 4 design reviews 2 11 postmortem evaluation 2 12 requirements 2 1 software quality standards 2 13 CMM 2 14 FDA standards 2 14 LabVIEW Development Guidelines l 4 IEFE 2 16 ISO 9000 2 13 style guidelines 2 10 testing guidelines 2 5 black box and white box testing 2 6 formal methods of verification 2 9 integration testing 2 8 system testing 2 9 unit testing 2 6 R ranges of values for controls 6 7 references A 1 rings vs enumerations 6 6 risk management See spiral model S safeguarding applications 2 1 See also quality control scheduling and project tracking 4 1 estimation 4 1 COCOMO estimation 4 6 effort estimation 4 4 function point estimation 4 5 problems with size based metrics 4 3 source lines of code number of nodes
12. Chapter 1 Development Models The waterfall model is the classic model of software engineering It has deficiencies but it serves as a baseline for many other lifecycle models The pure waterfall lifecycle consists of several non overlapping stages as shown in Figure 1 1 It begins with the software concept and continues through requirements analysis architectural design detailed design coding testing and maintenance System Requirements Software Requirements Architectural Design N Se Da We vg Maintenance National Instruments Corporation Figure 1 1 Waterfall Lifecycle Model System requirements Establishes the components for building the system This includes the hardware requirements number of channels acquisition speed and so on software tools and other necessary components Software requirements Concentrates on the expectations for software functionality You identify which of the system requirements the software affects Requirements analysis might include determining interaction needed with other applications and databases performance requirements user interface requirements and so on Architectural design Determines the software framework of asystem to meet the specified requirements The design defines the major components and the interaction of those components but it does not define the structure of
13. Development System to determine the differences and merge the changes into a new version You might avoid this with good communication if each developer notifies the others when he or she needs to work on a specific VI Inevitably however mistakes occur and work is lost LabVIEW Development Guidelines 2 2 www ni com Chapter 2 Incorporating Quality into the Development Process Source code control tools deal with the problems of sharing VIs and controlling access to avoid accidental loss of data Source code control tools make it easy to set up shared projects and to retrieve the latest files from the server Once you have created a project you can check out a file for development Checking out a file marks it with your name so that no other developer can modify the file Other developers can however retrieve the current version from the server A developer can check out the file make modifications test the changes and check in the file to the source code system After the file is checked in it is accessible to the whole development team again Another developer can then check out the file to make further modifications Managing Project Related Files Source code control tools can manage more than just VIs You can use them to manage all aspects of the project requirements specifications illustrations reviews and other documents related to the project This ensures that you can control access to these documents and share them as
14. Does the developer adhere to established guidelines There are a number of other features you can look for in a code walkthrough Take notes on the problems you encounter and add them to a list you can use as a guideline for other walkthroughs Focus on technical issues when doing a code walkthrough Remember to review only the code not the developer who produced it Try not to focus only on the negative and be sure to raise positive points Refer to Appendix A References for a list of documents that include more information about walkthrough techniques Postmortem Evaluation LabVIEW Development Guidelines At the end of each stage in the development process consider having a postmortem meeting to discuss what has gone well and what has not Each developer must evaluate the project honestly and discuss obstacles that reduce the quality level of the project Each developer must consider the following questions e What are we doing right What is working well e What are we doing wrong What can we improve e Are there specific areas of the design code that need a lot of work Is a design review or code walkthrough of that section necessary e Are the quality systems working Can we catch more problems if we changed the quality requirements Are there better ways to get the same results Postmortem meetings at major milestones can help to correct problems mid schedule instead of waiting until the release is complete 2 12 ww
15. Techniques Main Config Hardware File Read Process Save Setup Setup Data Data Data File UO Hardware Handler Drivers Figure 3 1 Flowchart of a Data Acquisition System Think about the data structures needed asking questions such as What information needs to accompany the raw data values from the Read Data VI to the Save Data VI This might imply a cluster array which is an array of many channels each element of which is a cluster that contains the value the channel name scale factors and so on A method that performs some action on such a data structure is called an algorithm Algorithms and data structures are intertwined This is reflected in modern structured programming and it works well in LabVIEW If you like to use pseudocode try that technique as well Figures 3 2 and 3 3 show a relationship between pseudocode and LabVIEW structures LabVIEW Development Guidelines 3 4 www ni com Chapter 3 Prototyping and Design Techniques Pseudocode Configuration Data Structure MODULES FOR each module defined gt ACTIVE SLOT IF module is active SE THEN FOR each channel CHANNELS IF channel is active THEN Read_Data module channel Store data in output array ENDIF ENDFOR ENDIF ENDFOR Figure 3 2 Mapping Pseudocode into a LabVIEW Data Structure FOR each module defined IF module is active IN FO
16. available Limit the VI to the three standard fonts application system and dialog unless you have a specific reason to use a different font For example monospace fonts fonts that are proportionally spaced are useful for string controls and indicators where the number of characters is critical To set the default font select it from the Text Settings pull down menu in the toolbar without any text or objects selected You can select all the labels you need to change and set the font in all of them at once using the Text Settings pull down menu The actual font used for the three standard fonts varies depending on the platform For example when working under Windows preferences and video driver settings will affect the size of the fonts Text might appear larger or smaller on different systems depending on these factors To compensate for this allow extra space for larger fonts and enable the Size to Text option on the shortcut menu Use carriage returns to make multiline text instead of resizing the text frame You can prevent labels from overlapping because of font changes on multiple platforms by allowing extra space between controls For example make space to the right of text that has been left justified Fonts are the least portable aspect of the front panel so always test them on all of the target platforms Color Like fonts it is easy to get carried away with color The particular danger of color is that it distracts the o
17. by highlighting controls e Change window colors to bring attention to error conditions National Instruments Corporation 6 7 LabVIEW Development Guidelines Chapter 6 LabVIEW Style Guide Key Navigation Dialog Boxes LabVIEW Development Guidelines Some users prefer to use the keyboard instead of a mouse In some environments such as a manufacturing plant only a keyboard is available Even if a mouse is used keyboard shortcuts such as using the lt Enter gt key to select the default action of a dialog box add convenience For these reasons consider including keyboard shortcuts for the VIs Select Edit Reorder Controls in Panel to see the order of the front panel controls In general set the order to read left to right and top to bottom Pay attention to the key navigation options for buttons on the front panel You can set key navigation options by right clicking any control and selecting Advanced Key Navigation from the shortcut menu Set the lt Enter gt key to be the keyboard shortcut to the front panel default control However if you have a multiline string control on the front panel you might not want to use the lt Enter gt key as a shortcut Refer to the Controlling Button Behavior with Key Navigation section of the LabVIEW User Manual for more information about using key navigation options If the front panel has a Cancel button assign a shortcut to the lt Esc gt key You also can use function keys
18. cut back on certain features stop adding new features until all the problems are fixed or renegotiate the schedule National Instruments Corporation 4 7 LabVIEW Development Guidelines Chapter 4 Scheduling and Project Tracking Deal with problems as they arise and monitor progress to avoid repeating mistakes or making new ones Do not wait until the end of the milestone or the end of the project to correct problems Missing a milestone should not come as a complete surprise Schedule delays do not occur all at once They happen little by little day by day Correct problems as they arise If you do not realize you are behind schedule until the last two months of a year long project you probably can not get back on schedule LabVIEW Development Guidelines 4 8 www ni com Creating Documentation Taking the time to create quality documentation can mean the difference between a usable and maintainable set of VIs and VIs that confuse users and make future modifications needlessly difficult This chapter focuses on documentation that is specific to Lab VIEW based development It does not address general documentation issues that apply to all software products Create several documents for software you develop The two main categories for this documentation are as follows e Design related documentation Requirements specifications detailed design plans test plans and change history documents are examples of the kinds of desig
19. developers find themselves working many overtime hours it becomes clear that it is not e The objectives implementation issues and quality requirements are not understood clearly When challenged with the task of creating a data monitoring system an engineer might estimate two weeks If the product is designed by the engineer and for the engineer this estimate National Instruments Corporation 4 1 LabVIEW Development Guidelines Chapter 4 Scheduling and Project Tracking might be right However if it is for other users he or she probably is not considering requirements that might be assumed by a less knowledgeable user but never are specified clearly For example VIs need to be reliable and easy to use because the engineer is not going to be there to correct them if a problem occurs A considerable amount of testing and documentation is necessary Also the user needs to save results to disk print reports and view and manipulate the data on screen If he or she has not discussed or considered the project in detail the engineer is setting himself or herself up for failure e Day to day tasks are ignored There are meetings and conferences to attend holidays reports to write existing projects to maintain and other tasks that make up a standard work week Accurate estimates are difficult because of the imprecise nature of most software projects In the initial phase of a project complete requirements are not known The way
20. display a long description and add a short label to prevent using valuable space on the block diagram Use property nodes to change captions programatically For Boolean controls the name should give an indication of which state corresponds to which function while still indicating the default state Free labels next to a Boolean can help clarify the meaning of each position on a switch as shown in Figure 6 4 Reset Device F Reset to default configuration before running or Run with current configuration Figure 6 4 Free Labels on a Boolean Control Enums versus Rings Because the names are a part of the data type you cannot change the names in an enumeration programmatically at run time Also you cannot compare two enumumerations of different types If you wire an enumeration control to something that expects a standard numeric you will see a coercion dot because the type is being converted LabVIEW Development Guidelines 6 6 www ni com Chapter 6 LabVIEW Style Guide Enumeration controls are useful for making code easier to read Ring controls are useful for front panels the user interacts with where you want to programmatically change the strings Default Values and Ranges Property Nodes Expect the user to supply invalid values to every control You can check for invalid values in the block diagram or right click the control and select Data Range to set the control item to coerce values into the desired range Min
21. down design strategy You might mix in some components of bottom up design if necessary Thus in the case of an instrument driver you might use a risk minimization strategy to understand the limitations of the instrument command set and develop the lower level components Then you might use a top down approach to develop the high level blocks The following example shows in more detail how you can apply this technique to the process of designing a driver for a GPIB instrument Instrument Driver Example A complex GPIB controlled instrument can have hundreds of commands many of which interact with each other A bottom up approach might be the most effective way to design a driver for such an instrument The key here is that the problem is detail driven You must learn the command set and design a front panel that is simple for the user yet gives full control of the instrument functionality Design a preliminary VI hierarchy preferably one based on similar instrument drivers You must satisfy the user s needs Designing a driver requires more than putting knobs on GPIB commands The example chosen here is the Tektronix 370A Curve Tracer It has about 100 GPIB commands if you include the read and write versions of each one Once you begin programming the hierarchy fills out naturally one subVI at a time Add lower level support VIs as required such as a communications handler a routine to parse a complex header message or an error hand
22. each component You also determine the external interfaces and tools to use in the project Examples include 1 5 LabVIEW Development Guidelines Chapter 1 Development Models decisions on hardware such as plug in boards and external pieces of software such as databases or other libraries e Detailed design Examines the software components defined in the architectural design stage and produces a specification for how each component is implemented e Coding Implements the detailed design specification e Testing Determines whether the software meets the specified requirements and finds any errors present in the code e Maintenance Perform as needed to deal with problems and enhancement requests after the software is released In some organizations each change is reviewed by a change control board to ensure that quality is maintained You also can apply the full waterfall development cycle model when you implement these change requests In each stage you create documents that explain your objectives and describe the requirements for that phase At the end of each stage you hold a review to determine whether the project can proceed to the next stage Also you can incorporate prototyping into any stage from the architectural design and after Refer to the Prototyping section later in this chapter for more information about using prototyping in projects The waterfall lifecycle model is one of the oldest models and is widel
23. experience level of team members varies Despite these problems size metrics are used widely for estimating projects A good technique is to estimate a project using size metrics in conjunction with one of the other methods described later in this chapter The two different methods can complement each other If you find differences between the two estimates analyze the assumptions in each to determine the source of the discrepancy Effort Estimation Effort estimation is similar in many ways to number of nodes estimation You break down the project into components that can be more easily estimated A good guideline is to break the project into tasks that take no more than a week to complete More complicated tasks are difficult to estimate accurately Once you have broken down the project into tasks you can estimate the time to complete each task and add the results to calculate an overall cost Wideband Delphi Estimation You can use wideband delphi estimation in conjunction with any of the other estimation techniques this chapter describes to achieve more reliable estimates For successful wideband delphi estimation multiple developers must contribute to the estimation process First divide the project into separate tasks Then meet with other developers to explain the list of tasks Avoid discussing time estimates during this early discussion Once you have agreed on a set of tasks each developer separately estimates the time i
24. is using high resolution display settings design large National Instruments Corporation 6 5 LabVIEW Development Guidelines Chapter 6 LabVIEW Style Guide front panels If you are doing commercial development keep in mind that some displays might offer a limited resolution especially LCD displays and touchscreens Front panels should open in the upper left corner of the screen for the convenience of users with small screens Place sets of VIs that are often opened together so the user can see at least a small part of each Place front panels that open automatically in the center of the screen by selecting VI Properties Windows Appearance Auto Center Centering the front panels makes the the VI eaiser to read for users on monitors of various sizes Labels The Context Help window displays labels as part of the connector If the default value of a control is valid add it to the name in parentheses Include the units of the value where applicable The Required Recommended Optional setting for connector pane terminals affects the appearance of the inputs and outputs in the Context Help window The name of a control or indicator should describe its function For example for a ring or labeled slide with options for volts ohms or amperes a name like Select units for display is better than V O A and is certainly an improvement over the generic Mode If the control is going to be visible to the user use captions to
25. time also Estimate project development time separately from scheduling it into your work calendar Consider estimating tasks in ideal person days which correspond to 8 hours of development without interruption After estimating project time try to develop a schedule that accounts for overhead estimates and project dependencies Remember that you have weekly meetings to attend existing projects to support reports to write and other responsibilities Record progress meeting time estimates and schedule estimates Track project time and time spent on other tasks each week This information might vary from week to week but be able to determine an average that is a useful reference for future scheduling Recording more information helps you plan future projects accurately LabVIEW Development Guidelines 4 6 www ni com Chapter 4 Scheduling and Project Tracking Tracking Schedules Using Milestones Milestones are a crucial technique for gauging progress on a project If completing the project by a specific date is important consider setting milestones for completion Set up a small number of major milestones for the project making sure each one has clear requirements To minimize risk set milestones to complete the most important components first If after reaching a milestone the project falls behind schedule and there is not enough time for another milestone the most important components are already complete Throughout devel
26. walkthrough is similar to a design review except that it analyzes the code instead of the design To perform a code review give one or more developers printouts of the VIs to review You might want to perform the review online because VIs are easier to read and navigate online It is wise for the designer talk through the design The reviewers compare the description to the actual implementation The reviewers must consider many of the same issues included in a design review During a code walkthrough many of the following questions might be asked and answered e What happens if a specific VI or function returns an error Are errors dealt with and or reported correctly e Are there any race conditions An example of a race condition is a block diagram that reads from and writes to a global variable There is the potential that a parallel block diagram simultaneously attempts to manipulate the same global variable resulting in loss of data National Instruments Corporation 2 11 LabVIEW Development Guidelines Chapter 2 Incorporating Quality into the Development Process e Is the block diagram implemented well Are the algorithms efficient in terms of speed and or memory usage Refer to the LabVIEW Performance application note for more information about creating effective code e Is the block diagram easy to maintain Has the developer made good use of hierarchy or is he or she placing too much functionality in a single VI
27. were designed primarily with database applications in mind but have been applied to other software areas as well Function point estimation is popular as a rough estimation method because it can be used early in the development process based on requirements documents However the accuracy of function points as an estimation method has not been thoroughly analyzed e COCOMO Estimation COCOMO COnstructive COst MOdel is a formula based estimation method for converting software size estimates to estimated development time COCOMO is a set of methods that range from basic to advanced Basic COCOMO makes a rough estimate based on a size estimate and a simple classification of the project type and experience level of a team Advanced COCOMO takes into account reliability requirements hardware features and constraints programming experience in a variety of areas and tools and methods used for developing and managing the project Mapping Estimates to Schedules An estimate of the amount of effort required for a project can differ greatly from the calendar time needed to complete the project You might accurately estimate that a VI takes only two weeks to develop However in implementation you must fit that development into your schedule You might have other projects to complete first or you might need to wait for another developer to complete his or her work before you can start the project You might have meetings and other events during that
28. with relatively little planning For simple applications such as quick lab tests or monitoring applications this approach might be appropriate However for larger development projects good planning becomes vital Common Development Pitfalls If you have developed large applications before you probably have heard some of the following statements Most of these approaches start out with good intentions and seem quite reasonable However these approaches are often unrealistic and can lead to delays quality problems and poor morale among team members e Thaven t really thought it through but I d guess that the project you are requesting can be completed in Off the cuff estimates rarely are correct because they usually are based on an incomplete understanding of the problem When developing for someone else you might each have different ideas about requirements To estimate accurately you both must clearly understand the requirements and work through at least a preliminary high level design so you understand the components you need to develop e JT think I understand the problem the customer wants to solve so I m ready to dive into development There are two problems with this statement First lack of consensus on project goals results in schedule delays Your idea of what a customer wants might be based on inadequate communication Developing a requirements document and prototyping a system both described in
29. you implement those requirements is even less clear As you clarify the objectives and implementation plans you can make more realistic estimates The following sections outline some of the current best practice estimation techniques in software engineering All these techniques require breaking the project down into more manageable components you can estimate individually There are other methods of estimating development time Refer to Appendix A References for a list of documents that describe these and other estimation techniques in more detail Source Lines of Code Number of Nodes Estimation LabVIEW Development Guidelines Software engineering documentation frequently refers to source lines of code SLOC as a measurement or metric of software complexity SLOC as a measurement of complexity is popular in part because the information is easy to gather Numerous programs exist for analyzing text based programming languages to measure complexity In general SLOC measurements include every line of source code developed for a project excluding comments and blank lines The VI Metrics tool included in the LabVIEW Professional Development System provides a method for measuring a corresponding metric for LabVIEW code The VI Metrics tool counts the number of nodes used within a VI or within a hierarchy of VIs A node is almost any object on a block diagram excluding labels and graphics but including functions VIs and structures such a
30. 0 Seconds LI Write descriptions for controls including array cluster and refnum elements Remember that you might need to change the description if you copy the control 0 Arrange controls logically For top level VIs put the most important controls in the most prominent positions For subVIs put inputs on the left and outputs on the right and follow connector pane terminals LI Arrange controls attractively using the Align Objects and the Distribute Objects pull down menus Do not overlap controls Use color logically and sparingly if at all Use error in and error out clusters where appropriate LG EL E E Consider other common thread controls such as taskID refnum and name LI Provide a Stop button if necessary Do not use the Abort button to stop a VI Hide the Abort button Q Use ring controls and enumerated controls where appropriate If you are using a Boolean controls for two options consider using an enumerated control instead to allow for future expansion of options LabVIEW Development Guidelines 6 16 www ni com Q Chapter 6 LabVIEW Style Guide Use custom controls or typedefs for common controls especially for rings and enums In system controls label controls with the same name as the VI for example Alarm Boolean cr 1 has the default name Alarm Boolean Block Diagram Checklist Q Q LL Oo H E EH H 0 D National Instruments Corporation Avoid creating extrem
31. 3 library of VIs 5 2 LabVIEW Development Guidelines l 2 VI and control descriptions 5 4 control and indicator descriptions 5 5 self documenting front panels 5 4 VI description 5 4 E effort estimation 4 4 See also estimation enumerations vs rings 6 6 estimation 4 1 COCOMO estimation 4 6 effort estimation 4 4 feature creep 4 1 function point estimation 4 5 mapping estimates to schedules 4 6 overview 4 1 problems with size based metrics 4 3 source lines of code number of nodes 4 2 wideband delphi estimation 4 4 F FDA U S Food amp Drug Administration standards 2 14 feature creep 4 1 file management change control 2 4 managing project related files 2 3 previous versions of files 2 3 tracking changes 2 4 filenames for directories VI libraries and VIs 6 2 font style guidelines 6 3 Food amp Drug Administration FDA standards 2 14 front panels color 6 3 default values and ranges 6 7 dialog boxes 6 8 enumerations vs rings 6 6 www ni com fonts and text styles 6 3 graphics and custom controls 6 4 keyboard navigation 6 8 labels 6 6 layout 6 5 property nodes 6 7 prototyping 3 9 self documenting 5 4 sizing and positioning 6 5 style checklist 6 16 style considerations 6 3 function point estimation 4 5 G global variables avoiding 6 10 graphics and custom controls 6 4 H help files creating 5 3 help compilers 5 3 linking to VIs 5 4 hierarc
32. Design and Development Documentaton eee eseeseceseeseceeceseeeeceseeeeecaeesaecneenaes 5 2 Developing User Documentation 00 eee ee eeeseeesecseceseeseceseeseceeeseeseceaeseaseneesaeeneenaes 5 2 Documentation for a Library of VIs oe eee ceeese cee ceeeeseeeeeeeeeeeeeseesaecaees 5 2 Documentation for an Application ieee cseesecneceeeeseeeeeeeeseeeeseesaecaees 5 3 Creating Help leg aaen Cen Eeer E ae Re I eh ee Na 5 3 VI and Control Descriptons essiens aurea E SE AE 5 4 Kal 5 4 Self Documenting Front Panels AA 5 4 Control and Indicator Descriptions 00 eee ee eeeeseeeceeceseeeeeeseeeeseeeeseeeaeeaees 5 5 LabVIEW Development Guidelines vi www ni com Contents Chapter 6 LabVIEW Style Guide REENEN 6 1 Front Panel Style sin secs de ebe edel AE 6 3 Fonts and Text Style eee nnr a a a N sons seees 6 3 E TEE 6 3 Graphics and Custom Control 6 4 DAV OU EE 6 5 Sizing and Positioning eee cee ceeceseeeeceeceeeseeceseeesecaeesaecseesaecsecseeseeseeees 6 5 Labele etgtetiegeeg Cgdet eg dere E TE OE EEE ETEN 6 6 Enums Versus Rings niens E E aE I ETNIE 6 6 Default Values and Ranges surin miie a 6 7 Property Nodes 323 carne eke ae EE Eer 6 7 Key Navi gations EE 6 8 Dialog Boxes iann ee atte ee he 6 8 Bl ck Dia Bram Style irene teen 6 9 Good Wiring Techniques 00 ee eceseeecseessececesseceeceseeseceseeeseeeeseseaeeneseaeeaees 6 9 Memory and Speed Oppm zapen 6 9 Sizing and Positioning cece cesses ceeceeeeeeceseeeeseseesaecaecaca
33. Instruments Corporation 6 11 LabVIEW Development Guidelines Chapter 6 LabVIEW Style Guide e Use comments on the block diagrams to explain what the code is doing LabVIEW code is not self documenting even though it is graphical Free labels with a colored background work well for block diagram comments e Omit labels on function and subVI calls because they tend to be large and unwieldy Someone looking at the blcok diagram can easily find out the name of a function or subVI call by using the Context Help window e Use free labels on wires to identify their use This is particularly useful for wires coming from shift registers e Use labels on structures to specify the main functionality of that structure e Use labels on constants to specify the nature of the constant e Use labels on Call Library Nodes to specify what function the node is calling e Use the description of Code Interface Nodes CINs to record the following information Source code title and filename Plattform and O S Compiler version Where to find the source code What the code does List of other files required by the CIN Other critical information required to maintain the CIN e Use comments to document algorithms that you use on the block diagrams If you use an algorithm from a book or other reference provide the reference information Icon and Connector Style Using good style techniques when creating the icons
34. JURY AND DEATH SHOULD NOT BE RELIANT SOLELY UPON ONE FORM OF ELECTRONIC SYSTEM DUE TO THE RISK OF SYSTEM FAILURE TO AVOID DAMAGE INJURY OR DEATH THE USER OR APPLICATION DESIGNER MUST TAKE REASONABLY PRUDENT STEPS TO PROTECT AGAINST SYSTEM FAILURES INCLUDING BUT NOT LIMITED TO BACK UP OR SHUT DOWN MECHANISMS BECAUSE EACH END USER SYSTEM IS CUSTOMIZED AND DIFFERS FROM NATIONAL INSTRUMENTS TESTING PLATFORMS AND BECAUSE A USER OR APPLICATION DESIGNER MAY USE NATIONAL INSTRUMENTS PRODUCTS IN COMBINATION WITH OTHER PRODUCTS IN A MANNER NOT EVALUATED OR CONTEMPLATED BY NATIONAL INSTRUMENTS THE USER OR APPLICATION DESIGNER IS ULTIMATELY RESPONSIBLE FOR VERIFYING AND VALIDATING THE SUITABILITY OF NATIONAL INSTRUMENTS PRODUCTS WHENEVER NATIONAL INSTRUMENTS PRODUCTS ARE INCORPORATED IN A SYSTEM OR APPLICATION INCLUDING WITHOUT LIMITATION THE APPROPRIATE DESIGN PROCESS AND SAFETY LEVEL OF SUCH SYSTEM OR APPLICATION Contents About This Manual CONVENE OMS clic satsee ose te ee eee Sb eS bow EES set EEE nE 1X Related Documentaton x Chapter 1 Development Models Common Development Pitfalls AAA 1 1 Difecycle Models get etc iwcngsvsceagasdahcwesnee ts sce Ea a a T Ta 1 4 Code and Fix Model ee Sed stein ii einen ells el ieee 1 4 Waterfall Model 1 cercsks cesses nenei aE E eee etl 1 5 Modified Waterfall Model 1 7 Prototy pi i EPEE assess eseveus E od ossens Suna siete dobtdasseuscnea itis 1 7 LabVIEW Prototyping Methods AA 1 8 Spiral
35. Model nisreen reeet e saei rror Er ETET E E EEE EESE 1 9 ell LEE 1 11 Chapter 2 Incorporating Quality into the Development Process Quality Requirements E 2 1 Configuration Management setir eseese Erde Seed A deg a keia hesape 2 2 Source Code Control ue 2 2 Managing Project Related Files AAA 2 3 Retrieving Old Versions of Files cece eeesseeseceeceseeeeeeseeeeeeseeseeeaeenaeeaees 2 3 Tracking E 2 4 Change Confolens nea ieee ER EAR 2 4 Testings G ldelnE Sree e ei ense E Eet 2 5 Black Box and White Box Testing sseeeseesesseressseesesresrrrrsrerreseerssreresrsserrssree 2 6 Unit Integration and System Teetpng eee ceseeseceseeeeceeceeeeeeeeneeeeeenees 2 6 Unit Testing seinen acini el ee ys 2 6 Integration Testing snerist eiai ta eer EE eben 2 8 KG OR EE 2 9 Formal Methods of Verification cece ceesseeseceeceseeeeeeeeeeeeeseeseecnesnaeeaees 2 9 Style Cd gege ge cok ele a need ae indigent 2 10 Desioen EE 2 11 Code Walkthroughs EEN 2 11 Postmortem EvalwatiOn E 2 12 National Instruments Corporation v LabVIEW Development Guidelines Contents Software Quality Standarde 2 13 International Organization for Standardization ISO 9000 0 eee 2 13 U S Food and Drug Administration Standards 0000 0 ee eee eeeeeeeseeeeeneeees 2 14 Capability Maturity Model CMM uu eee ceseeseeeeceeeeeeeeeeeseeeaeceeaeenees 2 14 Institute of Electrical and Electronic Engineers IEEE Standards 2 16 Chapter 3 Proto
36. Most companies are at Level or 2 The U S Department of Defense prefers a Level 3 or higher CMM assessment in bids on new government software development Some commercial companies mainly in the United States also use the CMM The CMM differs from ISO 9001 in that it is software specific Also the ISO specifications are fairly high level documents ISO 9001 is only a few pages CMM is very detailed with more than 500 pages National Instruments Corporation 2 15 LabVIEW Development Guidelines Chapter 2 Incorporating Quali Institute of Electric LabVIEW Development Guidelines ty into the Development Process al and Electronic Engineers IEEE Standards IEEE defined a number of standards for software engineering IEEE Standard 730 first published in 1980 is a standard for software quality assurance plans This standard serves as a foundation for several other IEEE standards and gives a brief description of the minimum requirements for a quality plan in the following areas e Purpose e Reference documents e Management e Documentation e Standards practices conventions and metrics e Reviews and audits e Test e Problem reporting and corrective action e Tools techniques and methodologies e Code control e Media control e Supplier control e Records collection maintenance and retention e Training e Risk management As with the ISO standards IEEE 730 is fairly short It does not dictate how to meet the r
37. NATIONAL INSTRUMENTS LabVIEW Development Guidelines Wy NATIONAL July 2000 Edition gt INSTRUMENTS Part Number 321393C 01 Worldwide Technical Support and Product Information www ni com National Instruments Corporate Headquarters 11500 North Mopac Expressway Austin Texas 78759 3504 USA Tel 512 794 0100 Worldwide Offices Australia 03 9879 5166 Austria 0662 45 79 90 0 Belgium 02 757 00 20 Brazil 011 284 5011 Canada Calgary 403 274 9391 Canada Ontario 905 785 0085 Canada Qu bec 514 694 8521 China 0755 3904939 Denmark 45 76 26 00 Finland 09 725 725 11 France 01 48 14 24 24 Germany 089 741 31 30 Greece 30 1 42 96 427 Hong Kong 2645 3186 India 91805275406 Israel 03 6120092 Italy 02 413091 Japan 03 5472 2970 Korea 02 596 7456 Mexico D F 5 280 7625 Mexico Monterrey 8 357 7695 Netherlands 0348 433466 New Zealand 09 914 0488 Norway 32 27 73 00 Poland 0 22 528 94 06 Portugal 351 1 726 9011 Singapore 2265886 Spain 91 640 0085 Sweden 08 587 895 00 Switzerland 056 200 51 51 Taiwan 02 2528 7227 United Kingdom 01635 523545 For further support information see the Technical Support Resources appendix To comment on the documentation send e mail to techpubs ni com Copyright 1997 2000 National Instruments Corporation All rights reserved Important Information Warranty The media on which you receive National Instruments software are warranted not to fail to execute programming instru
38. Queue VIs The Queue VIs use a picture a graphical representation of a queue as a common element in their icons to unify the icon designs Notice that all of the icons use pictures only and none that are plays on words making these icons suitable for speakers of any language Refer to the Creating an Icon section of the LabVIEW User Manual for more information about using icons National Instruments Corporation 6 13 LabVIEW Development Guidelines Chapter 6 LabVIEW Style Guide Connector The connector has terminals that connect to the controls and indicators of the subVIs of the top level VI Use the following suggestions when creating connectors Style Checklist Always select a connector pane pattern with extra terminals Unforeseen additions to the VI may require more terminals Changing patterns requires relinking to the subVI in all calling VIs and may result in wiring incompatibilities Choose the same connector pane pattern for related VIs Wire related inputs and outputs on opposite terminals Wire inputs on the left and outputs on the right to follow the standard left to right data flow Use the Required Recommended Optional setting for every terminal Choose only connector pane patterns with 16 or fewer terminals While patterns with more terminals might seem useful they are very difficult to wire If you need to pass more data use clusters Strive for similar arrangements between panel and connecto
39. R FITNESS FOR A PARTICULAR PURPOSE CUSTOMER S RIGHT TO RECOVER DAMAGES CAUSED BY FAULT OR NEGLIGENCE ON THE PART OF NATIONAL INSTRUMENTS SHALL BE LIMITED TO THE AMOUNT THERETOFORE PAID BY THE CUSTOMER NATIONAL INSTRUMENTS WILL NOT BE LIABLE FOR DAMAGES RESULTING FROM LOSS OF DATA PROFITS USE OF PRODUCTS OR INCIDENTAL OR CONSEQUENTIAL DAMAGES EVEN IF ADVISED OF THE POSSIBILITY THEREOF This limitation of the liability of National Instruments will apply regardless of the form of action whether in contract or tort including negligence Any action against National Instruments must be brought within one year after the cause of action accrues National Instruments shall not be liable for any delay in performance due to causes beyond its reasonable control The warranty provided herein does not cover damages defects malfunctions or service failures caused by owner s failure to follow the National Instruments installation operation or maintenance instructions owner s modification of the product owner s abuse misuse or negligent acts and power failure or surges fire flood accident actions of third parties or other events outside reasonable control Copyright Under the copyright laws this publication may not be reproduced or transmitted in any form electronic or mechanical including photocopying recording storing in an information retrieval system or translating in whole or in part without the prior written consent of National In
40. R each module THEN Fi FOR each channel MODULES ACTIVE d O a kb SLOT S IF ch 1 channel is active CHANNELS THEN Read_Data module channel Store data in output array ENDIF ENDFOR ENDIF ENDFOR ey przez Figure 3 3 Mapping Pseudocode into Actual LabVIEW Code Notice that the program and the data structure correspond in Figure 3 2 Many experienced LabVIEW users prefer to use sketches of LabVIEW code You can draw caricatures of the familiar structures and wire them together on paper This is a good way to think things through sometimes with the help of other LabVIEW programmers If you are not sure how a certain function will work prototype it in a simple test VI as shown in Figure 3 4 Artificial data dependency between the VIs and the main While Loop in Figure 3 4 eliminates the need for a Sequence Structure National Instruments Corporation 3 5 LabVIEW Development Guidelines Chapter 3 Prototyping and Design Techniques Display Data Figure 3 4 Data Flow for a Generic Data Acquisition Program Finally you are ready to write the program in LabVIEW Remember to make the code modular building subVIs when there is a logical division of labor or the potential for code reuse Solve the more general problems along with the specific ones Test the subVIs as you write them This might involve constructing higher level test routines It is much easier to cat
41. VI use the History window to document the changes Create a meaningful black and white icon in addition to a color icon Choose a connector pane pattern to leave extra terminals for later development Use consistent layout across related VIs Avoid using connector panes with more than 16 terminals Consider VI and window options carefully Hiding menu bars and using dialog box style makes Context Help and VI descriptions inaccessible Hiding Abort and debugging buttons increases performance slightly Set print options to print attractive output in the most useful format Make test VIs that check error conditions invalid values and Cancel buttons Save test VIs in a separate directory so you can reuse them Load and test VIs on multiple platforms making sure labels fit and window size and position are correct 6 15 LabVIEW Development Guidelines Chapter 6 LabVIEW Style Guide Front Panel Checklist LI Give controls meaningful names Use consistent capitalization LI Make name label backgrounds transparent LI Check for consistent placement of control names LI Use standard consistent fonts throughout all front panels Q Use Size to Text for all text for portability and add carriage returns if necessary Q Use Required Recommended and Optional settings on the connector pane LI Put default values in parentheses after input names LI Include unit information in names if applicable for example Time Limit 1
42. W Technical Resource Edited by Lynda P Gruggett LTR Publishing phone 214 706 0587 fax 214 706 0506 http www LTRPub com A quarterly newsletter and disk of VIs that features technical articles about all aspects of LabVIEW Rapid Development Taming Wild Software Schedules Steve C McConnell Microsoft Press Explanation of software engineering practices with many examples and practical suggestions Microsoft Secrets Michael A Cusumano and Richard W Selby Free Press In depth examination of the programming practices Microsoft uses Contains interesting discussions of what Microsoft has done right and what it has done wrong Includes a good discussion of team organization scheduling and milestones Dynamics of Software Development Jim McCarthy Microsoft Press Another look at what has worked and what has not for developers at Microsoft This book is written by a developer from Microsoft and contains numerous real world stories that help bring problems and solutions into focus Software Engineering A Practitioner s Approach Roger S Pressman McGraw Hill Inc A detailed survey of software engineering techniques with descriptions of estimation techniques testing approaches and quality control techniques Handbook of Walkthroughs Inspections and Technical Reviews Evaluating Programs Projects and Products Daniel P Freedman and Gerald M Weinberg Dorset House Publishing Co Inc A discussion of how to conduct des
43. a list of documents that include more information about the verification process This type of testing becomes more complex as more and more possible paths of execution are added to a program through the use of loops and conditions Many people believe that formal testing presents interesting ideas for looking at software that can help in small cases but that it is impractical for most programs Style Guidelines Inconsistent approaches to development and to user interfaces can be a problem when multiple developers work on a project Each developer has his or her own style of development color preferences display techniques documentation practices and block diagram methodologies One developer might make extensive use of global variables and Sequence Structures while another might prefer to make more use of data flow Inconsistent style techniques can create software that at a minimum looks bad Users might become confused and find the user interface VIs difficult to use if the VIs have different behaviors such as some expecting a user to click a button when he or she is finished and others expecting the user to use a keyboard function key Inconsistent style also makes software difficult to maintain For example if one developer does not like to use subVIs and decides to develop all features within a single large VI that VI is difficult to modify Establish a set of guidelines for your VI development team Establish an initial se
44. an action For example consider Figure 3 6 where three similar operations run independently Figure 3 6 Operations Run Independently An alternative to this design is a loop that performs the operation three times as shown in Figure 3 7 You can build an array of the different arguments and use auto indexing to set the correct value for each iteration of the loop Figure 3 7 Loop Performs Operation Three Times If the array elements are constant you can use an array constant instead of building the array on the block diagram Some users mistakenly avoid using subVIs because they are afraid of the overhead it might add to the execution time It is true that you probably do not want to create a subVI from a simple mathematical operation such as the Add function especially if it must be repeated thousands of times National Instruments Corporation 3 11 LabVIEW Development Guidelines Chapter 3 Prototyping and Design Techniques However the overhead for a subVI is fairly small and usually is dwarfed by any I O you perform or by any memory management that might occur from complex manipulation of arrays LabVIEW Development Guidelines 3 12 www ni com Scheduling and Project Tracking Estimation This chapter describes techniques for estimating development time and using those estimates to create schedules This chapter also distinguishes between an estimate which reflects the time required to impl
45. and connectors for VIs can greatly benefit users of those VIs For examples of good icons and connector designs the LabVIEW Queue VIs available on Functions Advanced Synchronization Queue palette LabVIEW Development Guidelines 6 12 www ni com Chapter 6 LabVIEW Style Guide Icon The icon represents the VI on a palette and the block diagram Use the follwoing suggestions when creating icons e Create a meaningful icon for every VI The LabVIEW libraries are full of well designed icons that try to show the functionality of the underlying program use them as prototypes where applicable When you don t have a picture text is acceptable Q Tip 8pt Small Fonts is a good size and font choice for text icons e Create a unified icon style for related VIs This helps users visually understand what subVI calls are associated with the top level VI e Do not use plays on words when making the icon Plays on words usually do not work for users who speak a different language For example don t represent the data logging VI by a picture of a piece of a tree branch or a lumberjack This sort of picture does not translate well e Always create a black and white icon for printing purposes Probably not every user has access to a nice color printer e Always create standard size 32x32 icons VIs with smaller icons can be awkward to select and wire They also tend to look strange when wired KR MF m Hi E Figure 6 6 Example
46. any problems are found When alpha testing is complete the product is beta tested by customers in the field Alpha and beta testing are the only testing mechanisms for some companies This is unfortunate because alpha and beta testing actually can be inexact Alpha and beta testing are not a substitute for other forms of testing that rigorously test each component to verify that it meets stated objectives Because this type of testing is done late in the development process it is difficult and costly to incorporate changes suggested as a result Formal Methods of Verification Some software engineers are proponents of formal verification of software Other testing methodologies attempt to find problems by exploration but formal methods attempt to prove the correctness of software mathematically The principal idea is to analyze each function of a program to determine if it does what you expect You mathematically state the list of preconditions before the function and the postconditions that are present as a result of the function You can perform this process either by starting at the beginning of the program and adding conditions as you work through each function or National Instruments Corporation 2 9 LabVIEW Development Guidelines Chapter 2 Incorporating Quality into the Development Process by starting at the end and working backward developing a set of weakest preconditions for each function Refer to Appendix A References for
47. as navigation buttons to move from screen to screen If you do this be sure to use the shortcuts consistently For controls that are offscreen use the Key Navigation dialog box to skip over the controls when tabbing Also you might consider using the Key Focus property to set the focus programmatically to a specific control when the front panel opens Dialog boxes can be used effectively in LabVIEW applications as a way to group controls that are too numerous to place on one front panel Consider using the tab control to group controls effectively and reduce clutter Many modern programs use dialog boxes to announce messages to the user but quite often this is overused Consider using a status text window to display less serious warnings Refer to the Designing Dialog Boxes section of Chapter 4 Building the Front Panel of the LabVIEW User Manual for more information about creating dialog boxes 6 8 www ni com Chapter 6 LabVIEW Style Guide Block Diagram Style Style is just as important on the block diagram of the VI as the front panel Users may not see it but other developers will A well planned consistent block diagram is easier to understand and modify Good Wiring Techniques The block diagram is the primary way for others to understand how a VI works therefore it is often worth the effort to follow a few simple steps to make the block diagrams more organized and easier to read The Align and Distribute feature in La
48. ata Operations Make Current Value Default from the shortcut menu to save the text when you finish entering the text If a text block requires too much space on the front panel you can include a highly visible Help button on the front panel instead Include the instruction string on the front panel that appears when the user clicks the 5 4 www ni com Chapter 5 Creating Documentation Help button Use the Window Appearance page in the VI Properties dialog box to configure this help panel as either a dialog box that requires the user to click an OK button to close it and continue or as a window the user can move anywhere and close anytime Alternatively you can use a Help button to open an entry in an online help file You can use the Help functions on the Functions A pplication Control Help palette to open the Context Help window or to open a help file and link to a specific topic Control and Indicator Descriptions Include a description for every control and indicator You can enter this with the Description and Tip shortcut menu item The Context Help window displays an object description when the user moves the mouse cursor over the object When confronted with a new VI a user has no alternative but to guess the function of each control and indicator unless you include a description Always remember to enter a description as soon as you create the object Then if you copy the object to another VI the description is copied also
49. ave to be careful how you present the prototype to customers Prototypes can give National Instruments Corporation 3 9 LabVIEW Development Guidelines Chapter 3 Prototyping and Design Techniques an overly inflated sense that you are rapidly making progress on the project You have to be clear to the customer whether it is an external customer or other members of your company that this prototype is strictly for design purposes and that much of it is reworked in the development phase Another danger in prototyping is that you might overdo it Consider setting strict time goals for the amount of time you prototype a system to prevent yourself from falling into the code and fix trap Of course front panel prototyping deals only with user interface components As described here it does not deal with I O constraints data types or algorithm issues in the design The front panel issues might help you better define some of these areas because it gives you an idea of some of the major data structures you need to maintain but it does not deal with all these issues For those issues you need to use one of the other methods described in this chapter such as performance benchmarking and top down design Performance Benchmarking LabVIEW Development Guidelines For I O systems with a number of data points or high transfer rate requirements test the performance related components early because the test might prove that the design assumpt
50. bVIEW can make it easy to quickly arrange objects on the block diagram to make it easier to see and understand groupings of objects Placing objects using symmetry and straight lines can make the block diagram easier to read Some other good wiring tips are e Avoid placing any wires under any block diagram objects such as subVIs or structures e Add as few bends in the wires as possible while trying to keep the wires short Avoid creating wires with long complicated paths that can be confusing e Delete any extraneous wires to keep block diagram clean e Avoid the use of local variables when it is possible to pass the data by wire Every local variable that reads the data makes a copy of it e Try not to pass wires though structures if the data in the wire itself is not used within the structure e Evenly space parallel wires in straight lines and around corners Memory and Speed Optimization There are many things you can do to optimize usage and execution time of a LabVIEW VI Generally an advanced topic optimization quickly becomes a concern when a program has large arrays and or critical timing problems Refer to the LabVIEW Performance application note for more information about optimizing LabVIEW VIs Even though optimization can be a very involved topic you can take the following basic actions to optimize an application e H speed is not necessary to a While Loop add a Wait function to avoid the problem of slowing d
51. ch the problems in one small module than in a large hierarchy of VIs Bottom Up Design LabVIEW Development Guidelines Usually avoid bottom up system design It is sometimes useful when used in conjunction with top down design with bottom up design you start by building the lower level components and then progressing up the hierarchy gradually putting pieces together until you have the complete system The problem with bottom up design is that because you do not start with a clear idea of the big picture you might build pieces that do not fit together the way you expect There are specific cases in which using bottom up design is appropriate If the design is constrained by low level functionality you might need to build that low level functionality first to get an idea of how it can be used This might be true of an instrument driver where the command set for the instrument constrains you in terms of when you can do certain operations For example with a top down design you might break up the design so configuration of the instrument and reading a measurement from the instrument are done in distinct VIs The instrument command set might turn out to be more constraining than you thought requiring you to combine these operations In this case with a bottom up strategy you might start by building VIs that deal with the instrument command set 3 6 www ni com Chapter 3 Prototyping and Design Techniques In most cases use a top
52. combine all the components and try to test the top level program Doing this can be expensive because it is difficult to determine the specific source of problems within a large set of VIs Instead consider testing incrementally with a top down or bottom up testing approach With a top down approach you gradually integrate major components testing the system with the lower level components of the system disabled or stubbed out as described in the Unit Testing section earlier in this chapter Once you have verified that the existing components work together within the existing framework you can enable additional components With a bottom up approach you test low level modules first and gradually work up toward the high level modules Begin by testing a small number of components combined into a simple system such as the driver test described in the Unit Testing section earlier in this chapter After you have combined a set of modules and verified that they work together add components and test them with the already debugged subsystem The bottom up approach consists of tests that gradually increase in scope while the top down approach consists of tests that are gradually refined as new components are added Regardless of the approach you take you must perform regression testing at each step to verify that the features that already have been tested still work Regression testing consists of repeating some or all previous tests Because yo
53. control you apply can vary throughout the development process In the early stages of the project before formal evaluation of the requirements you do not necessarily need to restrict change access to files nor do you need to follow formal change request processes Once the requirements are approved however you can institute stronger controls You can apply the same concept of varying the level of control before and after a project phase is complete to specifications test plans and code Testing Guidelines Decide up front what level of testing is expected Engineers under deadline pressure frequently give short attention to testing devoting more time to other development Most software engineers suggest a certain level of testing that is guaranteed to save you time Developers must clearly understand the degree to which you expect testing Also testing methodologies must be standardized and results of tests must be tracked As you develop the requirements and design specifications also develop a test plan to help you verify that the system and all its components work Testing reflects the quality goals you want to achieve For example if performance is more critical than robustness develop more tests for performance and fewer that attempt incorrect input low memory situations and so on Testing is not an afterthought Consider testing as part of the initial design phases and test throughout development to find and fix problems as
54. ctions due to defects in materials and workmanship for a period of 90 days from date of shipment as evidenced by receipts or other documentation National Instruments will at its option repair or replace software media that do not execute programming instructions if National Instruments receives notice of such defects during the warranty period National Instruments does not warrant that the operation of the software shall be uninterrupted or error free A Return Material Authorization RMA number must be obtained from the factory and clearly marked on the outside of the package before any equipment will be accepted for warranty work National Instruments will pay the shipping costs of returning to the owner parts which are covered by warranty National Instruments believes that the information in this document is accurate The document has been carefully reviewed for technical accuracy In the event that technical or typographical errors exist National Instruments reserves the right to make changes to subsequent editions of this document without prior notice to holders of this edition The reader should consult National Instruments if errors are suspected In no event shall National Instruments be liable for any damages arising out of or related to this document or the information contained in it EXCEPT AS SPECIFIED HEREIN NATIONAL INSTRUMENTS MAKES NO WARRANTIES EXPRESS OR IMPLIED AND SPECIFICALLY DISCLAIMS ANY WARRANTY OF MERCHANTABILITY O
55. e documentation might consist of an overview of the contents of the package examples of how to use the subVIs and a detailed description of each subVI LabVIEW Development Guidelines 5 2 www ni com Chapter 5 Creating Documentation For each subVI you might want to include the VI name and description a picture of the connector pane and the description and a picture of the data type for each of the controls and indicators on the connector pane You can generate much of this documentation easily if you use the Documentation page of the VI Properties dialog box for VIs and controls as described in the VI and Control Descriptions section later in this chapter You can use File Print to create a printout of a VI in a format almost identical to the format used in the VI and function reference information in LabVIEW Help With File Print you also can save the documentation to a file and create documentation for multiple VIs at once Documentation for an Application If you are developing an application for users who are not familiar with LabVIEW the documentation requires more introductory material The documentation covers basic features such as installation and system requirements It provides an overview of how the package works If the package uses I O describe the necessary hardware and any configuration that must be done before the user starts the application For each front panel the user interacts with provide a picture of the front
56. e information about techniques for producing high quality software 1 2 www ni com Chapter 1 Development Models e We re behind in our project Let s throw more developers onto the problem In many cases doing this actually can delay the project Adding developers to a project requires time for training which can take away time originally scheduled for development Add resources earlier in the project rather than later Also there is a limit to the number of people who can work on a project effectively With a few people there is less overlap You can partition the project so each person works on a particular section The more people you add the more difficult it becomes to avoid overlap Chapter 3 Prototyping and Design Techniques describes methods for partitioning software for multiple developers Chapter 2 Incorporating Quality into the Development Process describes configuration management techniques that can help minimize overlap e Were behind in our project but we still think we can get all the features in by the specified date When you are behind in a project it is important to recognize that fact and deal with it Assuming you can make up lost time can postpone choices until it becomes costly to deal with them For example if you realize in the first month of a six month project that you are behind you might sacrifice planned features or add time to the overall schedule If you do not realize you are beh
57. e process need to be implemented It is common for customers introduce new requirements in the design stage Performance problems discovered during development prompt reevaluation of the design You might need to rewrite a section of code to correct a problem found in testing Changes can affect any component of the project from the requirements and specification to the design code and tests If these changes are not made carefully you might introduce problems that can delay development or degrade quality Source Code Control After setting the project quality requirements develop a process to deal with changes This is important for projects with multiple developers As the developers work on VIs they need a method for collecting and sharing work A simple method to deal with this is to establish a central source repository If each of the developer computers is networked you can create a shared location that serves as a central source for development When developers need to modify files they can retrieve them from this location When they are finished with the changes and the system is working they can return the files to this location Common files and areas of overlap introduce the potential for accidental loss of work If two developers decide to work on the same VI at the same time only one developer can easily merge changes into the project The other developer has to use the Compare VIs tool available in the Lab VIEW Professional
58. eb site and still cannot find the answers you need contact your local office or National Instruments corporate Phone numbers for our worldwide offices are listed at the front of this manual LabVIEW Development Guidelines B 2 www ni com Glossary black box testing C Capability Maturity Model CMM COCOMO Estimation code and fix model configuration management F Function Point Estimation National Instruments Corporation G 1 A form of testing where a module is tested without knowing how the module is implemented The module is treated as if it were a black box that you cannot look inside Instead you generate tests to verify the module behaves the way it is supposed to according to the requirements specification A model for judging the maturity of the processes of an organization and for identifying the key practices that are required to increase the maturity of these processes The Software CMM SW CMM has become a de facto standard for assessing and improving software processes Through the SW CMM the Software Engineering Institute and software development community have put in place an effective means for modeling defining and measuring the maturity of the processes software professionals use COnstructive COst MOdel A formula based estimation method for converting software size estimates to estimated development time A lifecycle model that involves developing code with little or no planning and fi
59. ecaeeeeeeeeeeseeees 6 11 Left to Right Layouts eet EE EE ats 6 11 Block Diagram Comments 00 0 0 cece cseceseeseceseeseceeceseeeeeeeeeeeseaeeseeeaesnaesaees 6 11 icon and Connector Styles nseni ininde neeo poige ieaS e NKE SKE SRE ERE 6 12 La AEA E EET ASEE ESEE AS EE E ea ae ES 6 13 KODESCH 6 14 Styl e E EE 6 14 VART d N E ETER geed Eeee dree dier erSd eege ESA 6 14 Front Panel Checklist lt 3 sateen den eae 6 16 Block Diagram Checklisten scessevge Seet Seege 6 17 Appendix A References Appendix B Technical Support Resources Glossary Index National Instruments Corporation vii LabVIEW Development Guidelines Contents Figures Figure 1 1 Waterfall Latecycl Modeli nriiirr n 1 5 Figure 1 2 Spiral Lifecycle Model AA 1 9 Figure 2 1 Capability Maturity Model AAA 2 15 Figure 3 1 Flowchart of a Data Acquisition System 0 eee eeeeeeeeeseeeeeneeees 3 4 Figure 3 2 Mapping Pseudocode into a LabVIEW Data Structure oe 3 5 Figure 3 3 Mapping Pseudocode into Actual LabVIEW Code eee 3 5 Figure 3 4 Data Flow for a Generic Data Acquisition Program 3 6 Figure 23 VI Hierarchy for the Tektronix 2708 3 8 Figure 3 6 Operations Run Independently 0 0 eee eee ceceeeeeeeeeeeeeceeeeeeaeenees 3 11 Figure 3 7 Loop Performs Operation Three Times 0 0 0 0 ec eeeceeeeeeeeeseeeseenees 3 11 Figure 6 1 Directory Hierarchie 6 2 Figure 6 2 Example of Imported Graphics Used in a Pict Ring eee 6 4 Figure 6 3 Example of U
60. eering Many hybrids of these models exist so use the parts you believe will work for your project Although this section is theoretical in its discussion in practice consider all the steps these models encompass Consider when and how you decide that the requirements and specifications are complete and how you deal with changes to them The lifecycle model serves as a foundation for the entire development process Good choices in this area can improve the quality of the software you develop and decrease the time it takes to develop it Code and Fix Model LabVIEW Development Guidelines The code and fix model probably is the most frequently used development methodology in software engineering It starts with little or no initial planning You immediately start developing fixing problems as you find them until the project is complete Code and fix is a tempting choice when you are faced with a tight development schedule because you begin developing code right away and see immediate results Unfortunately if you find major architectural problems late in the process you might have to rewrite large parts of the application Alternative development models can help you catch these problems in the early concept stages when it is easier and much less expensive to make changes The code and fix model is appropriate only for small projects that are not intended to serve as the basis for future development 1 4 www ni com Waterfall Model
61. ely large block diagrams Limit the scrolling necessary to see in the entire block diagram to one direction Label controls important functions constants property nodes local variables global variables and structures Add comments Use object labels instead of free labels where applicable and scrollable string constants for long comments Place labels below objects when possible and right justify text if label is placed to the left of an object Use standard consistent font conventions throughout Use Size to Text for all text and add carriage returns if necessary Reduce white space in smaller block diagrams but allow at least 3 or 4 pixels between objects Flow data from left to right Wires enter from the left and exit to the right not the top or the bottom Align and distribute functions terminals and constants Label long wires with small labels with white backgrounds Do not wire behind objects Make good use of reusable testable subVIs Make sure the program can deal with error conditions and invalid values Show name of source code or include source code for any CINs Save with the most important or the first frame of structures showing Review for efficiency especially data copying and accuracy especially parts without data dependency 6 17 LabVIEW Development Guidelines References This appendix provides a list of references for further information about software engineering concepts LabVIE
62. ement a feature and a schedule which reflects how you fulfill that feature Estimates are commonly expressed in ideal person days or 8 hours of work In creating a schedule from estimates you must consider dependencies one project might have to be completed before another can begin and other tasks such as meetings support for existing projects and so on One of the principle tasks of planning is to estimate the size of the project and fit it into the schedule because most projects are at least partially driven by a schedule Schedule resources and critical requirements interact to determine what you can implement in a release Unfortunately when it comes to estimating software schedules accurately few people are successful Major companies have had software projects exceed original estimates by a year or more Poor planning or an incomplete idea of project goals often causes deadlines to be missed Another major cause of missed schedules is feature creep The design gradually grows to include features that were not part of the original requirements In many cases the delays in schedule are a result of using a code and fix development process rather than a more measurable development model Off the cuff estimates are almost never accurate for the following reasons e People are usually overly optimistic An estimate of two months at first might seem like an infinite amount of time During the last two weeks of the project when
63. entation dialog box Refer to the VI Properites LabVIEW Help for more information about linking to the Help menu from VIs You also can use the Help functions on the Functions A pplication Control Help palette to link to topics in specific help files programmatically VI and Control Descriptions VI Description You can integrate information for the user in each VI you create by using the VI description feature by placing instructions on the front panel and by including descriptions for each control and indicator The VI description in the File VI Properties dialog box is often the only source of information about a VI accessible to a user The Context Help window displays the VI description when the user moves the mouse cursor over the VI icon either the connector pane or the icon used as a subVI on a block diagram Include the following important items in a VI description e An overview of the VI e Instructions for use e Descriptions of inputs and outputs Self Documenting Front Panels LabVIEW Development Guidelines One way of providing important instructions is to place a block of text prominently on the front panel A concise list of important steps is valuable You might even include a suggestion such as Select File VI Properties for instructions or Select Help Show Help For long instructions you can use a scrolling string control instead of a free label Be sure to right click the control and select D
64. equirements but requires documentation for these practices to a specified minimum level of detail In addition to IEEE 730 several other IEEE standards related to software engineering exist including the following e IEEE 610 Defines standard software engineering terminology es IEEE 829 Kstablishes standards for software test documentation e IEEE 830 Explains the content of good software requirements specifications e IEEE 1074 Describes the activities performed as part of a software lifecycle without requiring a specific lifecycle model e IEEE 1298 Details the components of a software quality management system similar to ISO 9001 2 16 www ni com Chapter 2 Incorporating Quality into the Development Process Your projects might be required to meet some or all these standards Even if you are not required to develop to any of these specifications they can be helpful in developing your own requirements specifications and quality plans National Instruments Corporation 2 17 LabVIEW Development Guidelines Prototyping and Design Techniques This chapter gives you pointers for project design including programming approaches prototyping and benchmarking When you first begin a programming project deciding how to start can be intimidating Many LabVIEW developers start immediately with a code and fix development process building some of the VIs they think are needed Then they realize they actually need som
65. eral times until you have a clear picture of your overall objectives In addition to clarifying the requirements the prototype also defines many areas of the design simultaneously The pure waterfall model allows for prototyping in the later architectural design stage and subsequent stages but not in the early requirements stages National Instruments Corporation 1 7 LabVIEW Development Guidelines Chapter 1 LabVIEW Development Guidelines Development Models Prototyping has drawbacks however Because it appears that you have a working system quickly customers might expect a complete system sooner than is possible In most cases the prototype is built on compromises that allow it to come together quickly but that might prevent the prototype from being an effective basis for future development You need to decide early if you will use the prototype as a basis for future development All parties need to agree to this decision before development begins Be careful that prototyping does not become a disguise for a code and fix development cycle Before you begin prototyping gather clear requirements and create a design plan Limit the amount of time you spend prototyping before you begin This helps to avoid overdoing the prototyping phase As you incorporate changes update the requirements and the current design After you finish prototyping you might consider returning to one of the other development models For example you might co
66. ething different from what they have built already Consequently a lot of code is developed reworked or thrown away unnecessarily Clearly Define the Requirements of the Application Before you develop a detailed design of a system define goals as clearly as possible Begin by making a list of requirements Some requirements are specific such as the types of I O sampling rates or the need for real time analysis You need to do some research at this early stage to be sure you can meet the specifications Other requirements depend on user preferences such as file formats or graph styles Try to distinguish between absolute requirements and desires You might be able to satisfy all requests but it is best to have an idea about what you can sacrifice if you run out of time Also be careful that the requirements are not so detailed that they constrain the design For example when you design an I O system the customer probably has certain sampling rate and precision requirements He or she also is constrained by cost Include those issues in the requirements However if you can avoid specifying the operating system and hardware you can adjust the design after you begin prototyping and benchmarking various components As long as the costs are within budget and the timing and precision issues are met the customer might not care whether the system uses a particular type of plug in card or other hardware National Instruments Corporat
67. hical organization of files 6 1 directories folders 6 1 naming VIs VI libraries and directories 6 2 History window 5 2 icon style considerations 6 13 IEEE Institute of Electrical and Electronic Engineers standards 2 16 indicators See controls and indicators Institute of Electrical and Electronic Engineers IEEE standards 2 16 instrument driver design example 3 7 integration testing 2 8 National Instruments Corporation l 3 Index International Organization for Standards ISO 9000 2 13 K keyboard navigation 6 8 L labels block diagram documentation 6 11 controls and indicators 6 6 font usage 6 3 layout of front panels 6 5 left to right layouts 6 11 libraries See VI libraries lifecycle models 1 4 code and fix model 1 4 definition 1 4 LabVIEW prototyping methods 1 8 modified waterfall model 1 7 prototyping 1 7 spiral model 1 9 waterfall model 1 5 lines of code See Source Lines of Codes SLOCs metric local variables avoiding 6 10 manual See documentation for LabVIEW Development Guidelines memory and speed optimization 6 9 metrics See size based metrics milestones responding to missed milestones 4 7 tracking schedules using milestones 4 7 modified waterfall model 1 7 multiple developers design considerations 3 8 LabVIEW Development Guidelines Index naming VIs VI libraries and directories 6 2 National Instruments Web support B 1 NI Developer Zone
68. ign and code reviews with many examples of things to look for and the best practices to follow during a review ISO 9000 3 A Tool for Software Product and Process Improvement Raymond Kehoe and Alka Jarvis Springer Verlag New York Inc National Instruments Corporation A 1 LabVIEW Development Guidelines Appendix A References Describes what is expected by ISO 9001 in conjunction with ISO 9000 3 and provides templates for documentation Software Engineering Economics Barry W Boehm Prentice Hall Description of the wideband delphi and COCOMO estimation techniques Software Engineering Edited by Merlin Dorfman and Richard Thayer IEEE Computer Science Press Collection of articles on a variety of software engineering topics including a discussion of the spiral life cycle model by Barry W Boehm LabVIEW Development Guidelines A 2 www ni com Technical Support Resources Web Support National Instruments Web support is your first stop for help in solving installation configuration and application problems and questions Online problem solving and diagnostic resources include frequently asked questions knowledge bases product specific troubleshooting wizards manuals drivers software updates and more Web support is available through the Technical Support section of www ni com NI Developer Zone The NI Developer Zone at zone ni com is the essential resource for building measurement and automation systems At
69. imum Maximum and Increment Set controls with reasonable default values A VI should not fail when run with default values Remember to show the default in parentheses in the control label Do not set default values of indicators like graphs arrays and strings without a good reason because that wastes disk space when saving the VI Use default values intelligently In the case of high level file VIs such as the Write Characters to File VI the default is an empty path that forces the VI to display a File Selection dialog box This can save the use of a Boolean switch in many cases Other difficult situations must be dealt with programmatically Many GPIB instruments limit the permissible settings of one control based on the settings of another For example a voltmeter might permit a range setting of 2 000 V for DC but only 1 000 V for AC If the affected controls like Range and Mode reside in the same VI place the interlock logic there If one or more of the controls are not readily available you can request the present settings from the instrument to ensure you do not try to set an invalid combination Use property nodes to give the user more feedback on the front panel and to make the VI easier to use The following are examples of using property nodes to enhance ease of use e Set the text focus to the main most commonly used control e Disable or hide controls that are not currently relevant or valid e Guide the user through steps
70. in the development cycle In the waterfall model you have to complete the design before you begin coding With the spiral model you break up the project into a set of risks that need to be dealt with You then begin a series of iterations in which you analyze the most important risk evaluate options for resolving the risk deal with the risk assess the results and plan for the next iteration Figure 1 2 illustrates the spiral lifecycle model Determine Objectives Evaluate Alternatives Alternatives and Constraints and Risks Cumulative Cost Commit to Prototype Next Cycle Plan Next Phase Develop and Test Figure 1 2 Spiral Lifecycle Model Risks are any issues that are not clearly defined or have the potential to affect the project adversely For each risk you need to consider two things How likely it is to occur probability and the severity of its effect on the project loss You might use a scale of 1 to 10 for each of these items with 1 representing the lowest and 10 representing the highest Risk exposure is the product of these two rankings National Instruments Corporation 1 9 LabVIEW Development Guidelines Chapter 1 Development Models You can use a table to keep track of the top risk items of the project Table 1 1 gives an example of how to do this Table 1 1 Risk Exposure Analysis Example Risk Risk Management ID Risk Probability Loss Exposure Approach 1 Acquisition ra
71. ind schedule until the fifth month other groups might have made decisions that are costly to change When you realize you are behind adjust the schedule or consider features you can drop or postpone to subsequent releases Do not ignore the delay or sacrifice testing scheduled for later in the process Numerous other problems can arise when developing software The following list includes some of the fundamental elements of developing quality software on time e Spend sufficient time planning e Make sure the whole team thoroughly understands the problems that must be solved e Have a flexible development strategy that minimizes risk and accommodates changes National Instruments Corporation 1 3 LabVIEW Development Guidelines Chapter 1 Development Mode Is Lifecycle Models Software development projects are complex To deal with these complexities developers have collected a core set of development principles These principles define the field of software engineering A major component of this field is the lifecycle model The lifecycle model describes the steps you follow to develop software from the initial concept stage to the release maintenance and subsequent upgrading of the software Currently there are many different lifecycle models Each has advantages and disadvantages in terms of time to release quality and risk management This section describes some of the most common models used in software engin
72. ing to the block diagram of what was once a stub VI and filling out its block diagram placing lower level stub VIs on the block diagram that represent each of the major actions the VI must perform Be careful not to jump too quickly into implementing the system at this point One of the objectives here is to gradually refine the design so you can determine if you have left out any necessary components at higher levels For example when refining the acquisition phase you might realize there is more information you need from the configuration phase If you completely implement one block before you analyze a subsequent block you might need to redesign the first block significantly It is better to try to refine the system gradually on several fronts with particular attention to sections that have more risk because of the complexity Data Acquisition System Example This example describes how you might apply top down design techniques to a data acquisition system This system must let the user provide some configuration of the acquisition such as rates channels and so on acquire data process the data and save the data to disk Start to design the VI hierarchy by breaking the problem into logical pieces The flowchart in Figure 3 1 shows several major blocks you can expect to see in one form or another in every data acquisition system National Instruments Corporation 3 3 LabVIEW Development Guidelines Chapter 3 Prototyping and Design
73. ion 3 1 LabVIEW Development Guidelines Chapter 3 Prototyping and Design Techniques Another example of overly constraining a design is to be too specific about the format for display used in various screens with which the customer interacts A picture of a display might be useful to explain requirements but be clear about whether the picture is a requirement or a guideline Some designers go through significant difficulties trying to produce a system that behaves in a specific way because a certain behavior was a requirement In this case there might be a simpler solution that produces the same results at a much lower cost in a shorter time Top Down Design The block diagram programming metaphor LabVIEW uses was designed to be easy to understand Most engineers already use block diagrams to describe systems The goal of the block diagram is to make it easier for you to move from the system block diagrams you create to executable code The basic concept is to divide the task into manageable pieces at logical places Begin with a high level block diagram that describes the main components of the VI For example you might have a block diagram that consists of a block for configuration a block for acquisition a block for analysis of the acquired data a block for displaying the results a block for saving the data to disk and a block to clean up at the end of the VI After you determine the high level blocks create a block diagram that u
74. ions are incorrect For example if you plan to use an instrument as the data acquisition system you might want to build some simple tests that perform the type of T O you plan to use While the specifications might seem to indicate that the instrument can handle the application you are creating you might find that triggering for example takes longer than you expected that switching between channels with different gains cannot be done at the necessary rate without reducing the accuracy of the sampling or that even though the instrument can handle the rates you do not have enough time on the software side to perform the desired analysis A simple prototype of the time critical sections of the application can help reveal this kind of problem The timing template example in the examples general structs 11b directory illustrates how to time a process Because timings can fluctuate from one run to another for a variety of reasons put the operation in a loop and display the average execution time You also can use a graph to display timing fluctuations Causes of timing fluctuations can include system interrupts screen updates user interaction and initial buffer allocation 3 10 www ni com Chapter 3 Prototyping and Design Techniques Identify Common Operations As you design programs you might find that certain operations are performed frequently Depending on the situation this might be a good place to use subVIs or loops to repeat
75. l In some cases this might be correct However in most applications developing in stages is a better approach When you analyze the requirements for a project prioritize features You might be able to develop an initial VI that provides useful functionality in a shorter time at a lower cost Then you can add features incrementally The more you try to accomplish in a single stage the greater the risk of falling behind schedule Releasing software incrementally reduces schedule pressures and ensures timely software release Refer to the Lifecycle Models section later in this chapter for more information about using development models If I can just get all the features in within the next month I should be able to fix any problems before the software is released To release high quality products on time maintain quality standards throughout development Do not build new features on an unstable foundation and rely on correcting problems later This exacerbates problems and increases cost Although you might complete all the features on time the time required to correct the problems in the existing and the new code can delay the release of the product Prioritize features and implement the most important ones first Once the most important features are tested thoroughly you can choose to work on lower priority features or defer them to a future release Refer to Chapter 2 Incorporating Quality into the Development Process for mor
76. ler For instance the 370A requires a complicated parser for the waveform preamble that contains information such as scale factors offsets sources and units It is much cleaner to bury this operation in a subVI than to let it obscure the function of a higher level VI Also a communications handler makes it simple to exchange messages with the instrument Such a handler formats and sends the message reads the response if required and checks for errors Once the basic functions are ready assemble them into a demonstration driver VI that makes the instrument do something useful It quickly finds any fundamental flaws in earlier choices of data structures terminal assignments and default values Refer to the instrument drivers LabVIEW Help for more information about developing National Instruments Corporation 3 7 LabVIEW Development Guidelines Chapter 3 Prototyping and Design Techniques The top level VI in Figure 3 5 is an automated test example It calls nine of the major functions included in the driver package Each function in turn calls subVIs to perform GPIB I O file I O or data conversion feat 18 feat E Figure 3 5 VI Hierarchy for the Tektronix 370A Designing for Multiple Developers One of the main challenges in the planning stage is to establish discrete project areas for each developer As you design the specification and architectural design begin to see areas that have a minimal amount
77. ling with the same group of people and they are following the same style guidelines Trying to use size metrics from other companies groups can be difficult because of differing levels of experience different expectations for testing and development methodologies and so on e Size based metrics are also dependent on the programming language Comparing a line of code in assembly language to one written in C can be like comparing apples to oranges Statements in higher level languages can provide more functionality than those in lower level languages Comparing numbers of nodes in Lab VIEW to lines of code in a text based programming language can be inexact for this reason e Not all code is created with the same level of quality A VI that retrieves information from a user and writes it to a file can be written so efficiently that it involves a small number of nodes or it can be written poorly with a large number of nodes National Instruments Corporation 4 3 LabVIEW Development Guidelines Chapter 4 Scheduling and Project Tracking e Not all code is equal in complexity An add function is much easier to use than an array index node A block diagram that consists of 50 nested loops is much more difficult to understand than 50 subVIs connected together in a line e Size based metrics rely on a solid base of information that associates productivity with various projects To be accurate have statistics for each member of a team because the
78. lity Control ASQC Q90 Series In Europe it has been adopted by the European Committee for Standardization CEN and the European Committee for Electrotechnical Standardization CENELEC as the European Norm EN 29000 Series In Canada it has been adopted by the Canadian Standards Association CSA as the Q 9000 series However it is most commonly referred to as ISO 9000 in all countries ISO 9000 is an introduction to the ISO 9000 family of standards ISO 9001 is a model for quality assurance in design development production installation and servicing Its focus on design and development makes it the most appropriate standard for software products Because the ISO 9000 family is designed to apply to any industry it is somewhat difficult to apply to software development ISO 9000 3 is a set of guidelines designed to explain how to apply ISO 9001 specifically to software development National Instruments Corporation 2 13 LabVIEW Development Guidelines Chapter 2 Incorporating Quali ty into the Development Process ISO 9001 does not dictate software development procedures Instead it requires documentation of development procedures and adherence to the standards you set Conformance with ISO 9001 does not guarantee quality Instead the idea behind ISO 9001 is that companies that emphasize quality and follow their documented practices produce higher quality products than companies that do not U S Food and Drug Administration S
79. local variables to write VIs very efficiently However if you are misuse or abuse global and local variables the memory usage of the VI increases and the performance is affected e Choosing the proper data type for the data to be handled can be very important in controlling the memory usage of the application For example imagine you have an extended precision floating point array of 100 000 values but the actual values that are stored in the array are only between the values 0 to 10 You could have used an array of single precision floating point values for the following difference in memory usage in Windows Array Data Type Memory Used Array of 100 000 EXT values 1 MB LabVIEW Development Guidelines 6 10 www ni com Chapter 6 LabVIEW Style Guide Array Data Type Memory Used Array of 100 000 SGL values 400 KB Memory saved 600 KB e Avoiding coercion dots also can help you reduce unnecessary memory usage and speed Coercion dots indicate that a conversion is taking place from one data type to another which means that a copy of the data must be made The effects of this become much more dramatic when there is coercion on large arrays of data e Consider indicator overhead when designing the VI if performance is a concern for the application Frequently updating front panel indicators with new data can effect the performance of the VI especially if you are displaying large amounts of data i
80. n graphs or charts To optimize the performance of the VI only display the necessary information on the front panel and only send data to indicators if the data is different from what is already displayed Sizing and Positioning The size of the block diagram window can affect how readable your LabVIEW code is to others In general try to make the block diagram window no larger than the screen size To ensure that the block diagram is readable keep it smaller than 800 x 600 pixels While it is good to be aware of the size of the block diagram window it is also very important to ensure that the LabVIEW code that is displayed in it is not too large Code that is much larger than the window displaying it can force others to scroll the window sometimes making the code harder to read Code that requires the user to scroll only horizontally or vertically is acceptable as long as the user does not have to scroll an unreasonable amount to view the entire code Left to Right Layouts LabVIEW was designed to use a left to right and sometimes top to bottom layout Block diagrams should follow this convention While the positions of program elements do not determine execution order avoid wiring from right to left Only wires and structures determine execution order Block Diagram Comments Developers who maintain and modify VIs need good documentation Without it modifying the code is more time consuming and error prone than necessary National
81. n related documents you might need to produce e User documentation User documentation explains how to use the software The style of each of these documents is different Design related documentation generally is written for an audience with extensive knowledge of the tools that you are documenting and that they are using User documentation is written for an audience with a lesser degree of understanding and experience with the software The size and style of each document can vary according to the type of project For simple tools that are used only in house you might not need to do much of either If you plan to sell a product you must allow a significant amount of time to develop detailed user oriented documentation that describes the product For products that must go through a quality certification process such as a review by the U S Food and Drug Administration you must ensure that the design related documentation is as detailed as required National Instruments Corporation 5 1 LabVIEW Development Guidelines Chapter 5 Creating Documentation Design and Development Documentation The format and detail level of the documentation you develop for requirements specifications and other design related documentation is determined by the quality goals of the project If you are developing to meet a quality standard such as ISO 9000 the format and detail level of these documents are different from the format and detail level
82. ng VIs for paying customers and it is also useful for yourself When you revise the VIs run the existing tests to make sure you have not broken anything Also update the tests for any new functionality you have added Refer to the LabVIEW Unit Validation Test Procedure application note for more information about unit testing National Instruments Corporation 2 7 LabVIEW Development Guidelines Chapter 2 LabVIEW Development Guidelines Incorporating Quality into the Development Process Integration Testing You perform integration testing on a combination of units Unit testing usually finds most bugs but integration testing might reveal unanticipated problems Modules might not work together as expected They might interact in unexpected ways because of the way they manipulate shared data Refer to the LabVIEW Performance application note for more information about possible problems that are discovered during testing You also can perform integration testing in earlier stages before you put the whole system together For example if a developer creates a set of VIs that communicates with an instrument he or she can develop unit tests to verify that each subVI correctly sends the appropriate commands He or she also can develop integration tests that use several of the subVIs in conjunction with each other to verify that there is not any unexpected interaction Do not perform integration testing as a comprehensive test in which you
83. nsider prototyping as part of the requirements or design phases of the waterfall model LabVIEW Prototyping Methods There are a number of ways to prototype a system In systems with I O requirements that might be difficult to satisfy you can develop a prototype to test the control and acquisition loops and rates In T O prototypes random data can simulate data acquired in the real system Systems with many user interface requirements are perfect for prototyping Determining the method you use to display data or prompt the user for settings can be difficult on paper Instead consider designing VI front panels with the controls and indicators you need You might leave the block diagram empty and just talk through the way the controls work and how various actions lead to other front panels For more extensive prototypes tie the front panels together However be careful not to get too carried away with this process If you are bidding on a project for a client using front panel prototypes can be an extremely effective way to discuss with the client how you might be able to satisfy his or her requirements Because you can add and remove controls quickly especially if you avoid developing block diagrams you can help customers clarify requirements 1 8 www ni com Chapter 1 Development Models Spiral Model The spiral model is a popular alternative to the waterfall model It emphasizes risk management so you find major problems earlier
84. of overlap For example a complicated data monitoring system might have one set of VIs to display and manipulate data and another set to acquire the information and transfer it to disk These two modules are substantial do not overlap and can be assigned to different developers Inevitably there is some interaction among the modules One of the principal objectives of the early design work is to design how those modules interact with each other The data display system must access the data it needs to display The acquisition component needs to provide this information for the other module At an early stage in development you LabVIEW Development Guidelines 3 8 www ni com Chapter 3 Prototyping and Design Techniques might design the connector panes of VIs needed to transfer information between the two modules Likewise if there are global data structures that must be shared analyze and define them early in the architectural design stage before the individual developers begin work on the components In the early stages each developer can create stub VIs with the connector pane interface that was defined for the shared module This stub VI can do nothing or if itis a VI that returns information you might have it generate random data This allows each member of the development team to continue development without having to wait for the other modules to be finished It also makes it easy for the individuals to perform unit testing of mod
85. of an in house project Refer to Appendix A References for a list of documents that include more information about the types of documents to prepare as part of the development process LabVIEW includes features that simplify the process of creating documentation for the VIs you design e History window Use the History window to record changes to a VI as you make them e Print dialog box Use the Print dialog box to create printouts of the front panel block diagram connector pane and description of a VI You can also use it to print the names and descriptions of controls and indicators for the VI and the names and paths of any subVIs You can print this information generate Web pages create online help source files or create word processor documents Developing User Documentation End users of VIs fall into two classes end users of top level VIs and end users of subVIs Each of these users have different documentation needs This section addresses techniques for creating documentation that helps both of these classes of users The format of user documentation depends on the type of product you create Documentation for a Library of Vis If the software you are creating is a library of VIs for use by other developers such as an instrument driver or add on package create documents with a format similar to the LabVIEW Help Because the audience is other developers you can assume they have a working knowledge of LabVIEW Th
86. onal Instruments Corporation G 3 LabVIEW Development Guidelines Index A alpha testing 2 9 beta testing 2 9 bibliography A 1 black box testing 2 6 block diagram checklist 6 17 comments 6 11 left to right layouts 6 11 memory and speed optimization 6 9 sizing and positioning 6 11 style considerations 6 9 top down design 3 2 wiring techniques 6 9 bottom up design 3 6 Build Array function avoiding 6 10 C Capability Maturity Model CMM standards 2 14 change control See configuration management CINs documenting 6 12 CMM Capability Maturity Model standards 2 14 COCOMO Constructive Cost Model estimation 4 6 code and fix model 1 4 Code Interface Nodes documenting 6 12 code walkthroughs 2 11 coercion dots avoiding 6 11 color style guidelines 6 3 comments in block diagrams 6 11 common operations identifying 3 11 National Instruments Corporation configuration management 2 2 change control 2 4 definition 2 2 managing project related files 2 3 retrieving old versions of files 2 3 source code control 2 2 tracking changes 2 4 connector pane style considerations 6 14 Constructive Cost Model COCOMO estimation 4 6 controls and indicators color 6 3 default values and ranges 6 7 descriptions as documentation 5 4 dialog boxes 6 8 enumerations vs rings 6 6 font and text styles 6 3 graphics and custom controls 6 4 keyboard navigation 6 8 labels 6 6 la
87. opment strive to keep the quality level high If you defer problems until a milestone is reached you are in effect deferring risks that might delay the schedule Delaying problems can make it seem like you are making more progress than you actually are Also it can create a situation where you attempt to build new development on top of an unstable foundation When working toward a major milestone set smaller goals to gauge progress Derive minor milestones from the task list you created as part of your estimation Refer to Appendix A References for a list of documents that include more information about major and minor milestones Responding to Missed Milestones One of the biggest mistakes people make is to miss a milestone and not reexamine the project as a consequence After missing a milestone many developers continue on the same schedule assuming they can work harder and make up the time Instead if you miss a milestone evaluate the reasons you missed it Is there a systematic problem that might affect subsequent milestones Is the specification still changing Are quality problems slowing down new development Is the development team at risk of burning out from too much overtime Consider problems carefully Discuss each problem or setback and have the entire team make suggestions on how to get back on track Avoid accusations You might have to stop development and return to design for a period of time You might decide to
88. own other tasks Generally slowing down other tasks is only an issue with loops that are not as active between iterations such as the user interface loops because LabVIEW runs the National Instruments Corporation 6 9 LabVIEW Development Guidelines Chapter 6 LabVIEW Style Guide loop as quickly as possible and does not give many processor resources to any other tasks The slowing of tasks outside of the loop results in the computer seeming sluggish even though it is running a simple loop Adding a slight delay between iterations with the Wait ms function can dramatically help the computer run outside tasks normally without affecting the operation of the loop Typically a delay of 50 to 100 MS is sufficient but other factors in the application might affect the delay The delay does not have to have any data dependencies as shown in Figure 6 5 Number of Samples osL 50ms dela D Figure 6 5 While Loop with 50 Second Delay e If possible do not build arrays using the Build Array function within a loop because the function makes repetitive calls to the memory manager A more efficient method of building an array is to use auto indexing or pre size the array and use the Replace Array Element function to place values in it Similar issues exist when dealing with strings because in memory LabVIEW handles strings as arrays of characters e Use global and local variables as sparingly as possible You can use both global and
89. perator from important information For instance a yellow green and bright orange background make it difficult to see a red danger light Another problem is that other platforms might not have as many colors available Also some users have black and white monitors that cannot display certain color combinations well For example black and white monitors display black letters on a red background as all black Use a minimal number of colors emphasizing black white and gray The following are some simple guidelines for using color e Never use color as the sole indicator of device state People with some degree of color blindness might not detect the change Also multiplot graphs and charts can lose meaning when displayed in black and white National Instruments Corporation 6 3 LabVIEW Development Guidelines Chapter 6 LabVIEW Style Guide e Use line styles in addition to color e Use light gray white or pastel colors for backgrounds e Select bright highlighting colors only when the item is important such as an error notification e Always check the VI on other platforms and on a black and white monitor e Be consistent in use of color Graphics and Custom Controls You can enhance the functionality of the front panel with imported graphics You can import bitmaps Macintosh PICTs Windows Enhanced Metafiles and text objects for use as backgrounds or in pict rings and custom controls as shown in Figure 6 2
90. pull down menus to create a uniform layout Use Edit Reorder Controls in Panel to arrange controls in a logical sequence Do not overlap controls with other controls or with their own label digital display or other parts unless you are trying to achieve a special effect Overlapped controls are much slower to draw and might flash Use decorations such as raised rectangles or recessed frames to visually group objects with related functions as shown in the illustration below Use clusters to group related data However do not use clusters for aesthetic purposes only It makes connections to the VI more difficult to understand Avoid importing graphic objects that are inanimate copies of real controls For instance do not use a copy of a cluster border to group controls that are not actually in a cluster Timebase 4 500 pSec gt Trigger 4 None gt Pattern x FFFFOOQO Mask x 88880000 Run en Single Ar Figure 6 3 Example of Using Decorations to Visually Group Objects Together For subVI front panels the user does not see you can place the objects so they correspond to the connector pattern Generally place inputs on the left and outputs on the right Sizing and Positioning Front panels should fit on a monitor that is the standard resolution for most intended users Make the window as small as possible without crowding controls or sacrificing a good layout If the VIs are intended for in house use and everyone
91. r pane layouts VI Checklist LabVIEW Development Guidelines Use the following checklist to help you maintain consistent style and quality You might want to copy this checklist to use on all LabVIEW projects Organize VIs in a hierarchical directory with easily accessible top level VIs and subVIs in subdirectories Avoid putting too many VIs in one library because large LLBs take longer to save With LLBs use Tools Edit VI Library to mark top level VIs If the VIs will be used as subVIs create a mnu file or edit the menu that is part of the LLB Be sure to arrange the palettes name the menus and hide dependent subVIs 6 14 www ni com D National Instruments Corporation Chapter 6 LabVIEW Style Guide Give VI meaningful names without special characters such as backslash slash colon CH and tilde Use standard extensions so Windows and UNIX can distinguish files vi ct1 Capitalize first letters of VI names Distinguish example VIs top level VIs subVIs controls and global variables by saving them in subdirectories separate libraries in the same directory or by giving them descriptive names such as MainX vi Example of X vi Global X vi and TypeDef X ctl Write a VI description Proofread it Check the Context Help window Include your name and or company and the date in the VI Description on the Documentation page of the VI Properties dialog box When you modify a
92. resources or scaling back the project Even if the estimate is incorrect the discussion from the meetings gives a clear idea of the scope of a project The discussion serves as an exploration tool during the specification and design part of the project so you can avoid problems later Refer to Appendix A References for a list of documents that include more information about the wideband delphi estimation method Other Estimation Techniques Several other techniques exist for estimating development cost These are described in detail in some of the documents listed in Appendix A References The following list briefly describes some popular techniques e Function Point Estimation Function point estimation differs considerably from the size estimation techniques described so far Rather than divide the project into tasks that are estimated separately function points are based on a formula applied to a category breakdown of the project requirements The requirements are analyzed for features such as inputs outputs user inquiries files and external interfaces These features are tallied and each is weighted The results are added to produce a number that represents the complexity of the project You can compare this number to function point estimates of previous projects to determine an estimate National Instruments Corporation 4 5 LabVIEW Development Guidelines Chapter 4 Scheduling and Project Tracking Function point estimates
93. rojects Also they track software costs features and schedules Project standards are defined and followed Although the groups can deal with similar projects based on this experience their processes might not be mature enough to deal with significantly different types of projects 2 14 www ni com Chapter 2 Incorporating Quality into the Development Process Level 3 Defined The organization establishes a baseline set of policies for all projects Groups are well trained and know how to customize this set of policies for specific projects Each project has well defined characteristics that make it possible to accurately measure progress Level A Managed The organization sets quality goals for projects and processes and measures progress toward those goals Level 5 Optimizing The organization emphasizes continuous process improvement across all projects The organization evaluates the software engineering techniques it uses in different groups and applies them throughout the organization Figure 2 1 illustrates the five levels of the CMM and the processes necessary for advancement to the next level Level 5 Optimizing Tune Processes Based on Measurements Level 4 Managed Measure Success of Processes Level 3 Defined Process for Organization Level 2 Repeatable Stable Process for Projects Level 1 Initial Figure 2 1 Capability Maturity Model
94. s loops and sequences Refer to the LabVIEW Help 4 2 www ni com Chapter 4 Scheduling and Project Tracking for more information about how to use this tool and the accounting mechanism it uses You can use number of nodes as a method for estimating future project development efforts For this to work you must build a base of knowledge about current and previous projects You must have an idea of the amount of time it took to develop components of existing software products and associate that information with the number of nodes used in that component Armed with this historical information you next need to estimate the number of nodes required for a new project It is not possible to do this for an entire project at once Instead you must break the project down into subprojects you can compare to other tasks completed in the past Once you have broken it down you can estimate each component and produce a total estimate of the number of nodes and the time required for development Problems with Source Lines of Code and Number of Nodes Size based metrics are not uniformly accepted in software engineering Many people favor them because it is a relatively easy metric to gather and because a lot of literature has been written about it Detractors of size metrics point out the following flaws e Size based metrics are dependent on the organization Lines of code numbers of nodes can be useful within an organization as long as you are dea
95. s of project development Even if you do not apply this model consider each of these stages and its relationship to your own project Modified Waterfall Model Many engineers recommend modified versions of the waterfall lifecycle These modifications tend to focus on allowing some of the stages to overlap reducing the documentation requirements and reducing the cost of returning to earlier stages to revise them Another common modification is to incorporate prototyping into the requirements phases as described in the following section Overlapping stages such as requirements and design make it possible to feed information from the design phase back into the requirements However this can make it more difficult to know when you are finished with a given stage Consequently it is more difficult to track progress Without distinct stages problems might cause you to defer important decisions until late in the process when they are more expensive to correct Prototyping One of the main problems with the waterfall model is that the requirements often are not completely understood in the early development stages When you reach the design or coding stages you begin to see how everything works together and you might discover you need to adjust requirements Prototyping can be an effective tool for demonstrating how a design might deal with a set of requirements You can build a prototype adjust the requirements and revise the prototype sev
96. se it is difficult to test all possible paths Although white box testing is difficult to fully implement for large programs you can choose to test the most important or complex paths You can combine white box testing with black box testing for more thorough testing of software Unit Integration and System Testing Use black box and white box testing to test any component of software regardless of whether it is an individual VI or the complete application Unit testing integration testing and system testing are phases of the project at which you can apply black box and white box tests Unit Testing You can use unit testing to concentrate on testing individual software components For example you might test an individual VI to see that it works correctly deals with out of range data has acceptable performance and that all major execution paths in its block diagram are executed and performed correctly Individual developers can perform unit tests as they work on the modules LabVIEW Development Guidelines 2 6 www ni com Chapter 2 Incorporating Quality into the Development Process Some examples of common problems unit tests might account for include the following e Boundary conditions for each input such as empty arrays and empty strings or 0 for a size input Be sure floating point parameters deal with Infinity and Not A Number e Invalid values for each input such as 3 for a size input e Strange combinations of inp
97. se source code control tools to label versions of files with descriptive names like beta v1 0 and so on You can label any number of files and later retrieve all versions of a file with a specific label When you release a version of the software label the files specifically for that version If you are managing a software project it is important to monitor changes and track progress toward specific milestone objectives You also can use this information to determine problem areas of a project by identifying which components required a lot of changes Source code control tools maintain a log of all changes made to files and projects When checking in a file the developer is prompted to enter a summary of the changes made This summary information is added to the log for that file You can view the history information for a file or for the system and generate reports that contain that information In addition if you back up the project at specific checkpoints you can use the Compare VIs tool to compare the latest version of a project with another version to verify the changes in the project Large projects might require a formal process for evaluation and approval of each change request A formal evaluation system like this might be too restrictive so be selective when choosing the control mechanisms you introduce into the system Changes to specific components such as documents related to user requirements must be dealt with cautio
98. ses those blocks For each block create a new stub VI which is a non functional prototype that represents a future subVI Create an icon for this stub VI and create a front panel with the necessary inputs and outputs You do not have to create a block diagram for this VI yet Instead define the interface and see if this stub VI is a useful part of the top level block diagram After you assemble a group of these stub VIs determine the function of each block and how it works Ask yourself whether any given block generates information that a subsequent VI needs If so make sure the top level block diagram sketch contains wires to pass the data between the VIs You can document the functionality of the VI and the inputs and outputs using the Documentation page of the VI Properties dialog box in LabVIEW In analyzing the transfer of data from one block to another try to avoid global variables because they hide the data dependency among VIs and might introduce race conditions Refer to the LabVIEW Performance application notes for more information about issues that might arise when LabVIEW Development Guidelines 3 2 www ni com Chapter 3 Prototyping and Design Techniques creating VIs As the VI becomes larger it becomes difficult to debug if you use global variables as the method of transferring information among VIs Continue to refine the design by breaking down each of the component blocks into more detailed outlines You can do this by go
99. sing Decorations to Visually Group Objects Together 6 5 Figure 6 4 Free Labels on a Boolean Control oo eee ce ceeeeeeceeeeeeeeneeeeeneenaes 6 6 Figure 6 5 While Loop with 50 Second Delay 00 0 eee eeeeeereenee tee cneeeaeenees 6 10 Figure 6 6 Example Queue Vis 6 13 Table Table 1 1 Risk Exposure Analysis Example cccceeseesceesceesseeeeeceneecneceneeeeees 1 10 LabVIEW Development Guidelines viii www ni com About This Manual Conventions The LabVIEW Development Guidelines describe many of the issues that arise when developing large applications The guidelines are based on the advice of LabVIEW developers and provide a basic survey of software engineering techniques you might find useful when developing your own projects There is also a discussion of style for creating VIs Developers who have used LabVIEW and are comfortable in the LabVIEW environment can use the LabVIEW Development Guidelines to maintain a consistent and effective style in their projects ag bold italic monospace Platform The following conventions appear in this manual The symbol leads you through nested menu items and dialog box options to a final action The sequence File Page Setup Options directs you to pull down the File menu select the Page Setup item and select Options from the last dialog box This icon denotes a tip which alerts you to advisory information Bold text denotes items that you mus
100. soon as possible There are a variety of testing methodologies you can use to help increase the quality of VI projects The following sections describe some testing methodologies National Instruments Corporation 2 5 LabVIEW Development Guidelines Chapter 2 Incorporating Quality into the Development Process Black Box and White Box Testing The method of black box testing is based on the expected functionality of software without knowledge of how it works It is called black box testing because you cannot see the internal workings You can perform black box testing based largely on a knowledge of the requirements and the interface of a module For a subVI you can perform black box tests on the interface of a subVI to evaluate results for various input values If robustness is a quality goal include erroneous input data to see if the subVI deals with it well For example for numeric inputs see how the subVI deals with Infinity Not A Number and other out of range values Refer to the Unit Testing section later in this chapter for more examples The method of white box testing is designed with knowledge of the internal workings of the software Use white box testing to check that all the major paths of execution are exercised By examining a block diagram and looking at the conditions of Case Structures and the values controlling loops you can design tests that check those paths White box testing on a large scale is impractical becau
101. struments Corporation Trademarks LabVIEW National Instruments and ni com are trademarks of National Instruments Corporation Product and company names mentioned herein are trademarks or trade names of their respective companies WARNING REGARDING USE OF NATIONAL INSTRUMENTS PRODUCTS 1 NATIONAL INSTRUMENTS PRODUCTS ARE NOT DESIGNED WITH COMPONENTS AND TESTING FOR A LEVEL OF RELIABILITY SUITABLE FOR USE IN OR IN CONNECTION WITH SURGICAL IMPLANTS OR AS CRITICAL COMPONENTS IN ANY LIFE SUPPORT SYSTEMS WHOSE FAILURE TO PERFORM CAN REASONABLY BE EXPECTED TO CAUSE SIGNIFICANT INJURY TO A HUMAN 2 IN ANY APPLICATION INCLUDING THE ABOVE RELIABILITY OF OPERATION OF THE SOFTWARE PRODUCTS CAN BE IMPAIRED BY ADVERSE FACTORS INCLUDING BUT NOT LIMITED TO FLUCTUATIONS IN ELECTRICAL POWER SUPPLY COMPUTER HARDWARE MALFUNCTIONS COMPUTER OPERATING SYSTEM SOFTWARE FITNESS FITNESS OF COMPILERS AND DEVELOPMENT SOFTWARE USED TO DEVELOP AN APPLICATION INSTALLATION ERRORS SOFTWARE AND HARDWARE COMPATIBILITY PROBLEMS MALFUNCTIONS OR FAILURES OF ELECTRONIC MONITORING OR CONTROL DEVICES TRANSIENT FAILURES OF ELECTRONIC SYSTEMS HARDWARE AND OR SOFTWARE UNANTICIPATED USES OR MISUSES OR ERRORS ON THE PART OF THE USER OR APPLICATIONS DESIGNER ADVERSE FACTORS SUCH AS THESE ARE HEREAFTER COLLECTIVELY TERMED SYSTEM FAILURES ANY APPLICATION WHERE A SYSTEM FAILURE WOULD CREATE A RISK OF HARM TO PROPERTY OR PERSONS INCLUDING THE RISK OF BODILY IN
102. sus power and complexity For short projects used only in house as tools or quick prototypes you do not need to emphasize robustness For example if you decide to develop a VI to benchmark I O and graphing speeds error checking is not as crucial However with more complicated projects that must be reliable such as applications for monitoring and controlling a factory process the software must deal with invalid input gracefully For example if an operator mistakenly selects invalid voltage or current settings the application must deal with it appropriately Institute as many safeguards as possible to prevent problems Select a lifecycle development model that helps you find National Instruments Corporation 2 1 LabVIEW Development Guidelines Chapter 2 Incorporating Quality into the Development Process problems as early as possible and allows time for formal reviews and thorough testing Configuration Management Configuration management is the process of controlling changes and ensuring they are reviewed before they are made Chapter 1 Development Models outlines development models such as the waterfall model A central focus of these models is to convert software development from a chaotic unplanned activity to a controlled process These models improve software development by establishing specific measurable goals at each stage of development Regardless of how well development proceeds changes that occur later in th
103. t progresses The most important thing is often not the specific style you use but the consistency of that style A style checklist is included at the end of this chapter to help you maintain quality as you develop VIs To save time review the list before and during development To create a successful VI you must consider who will be using it and for what reasons Consider your audience e Users need a clear front panel e Developers need an easy to read block diagram e Everybody needs good documentation Organization Organize the VIs in the file system to reflect the hierarchical nature of the software Make the top level VIs directly accessible Place subVIs in subdirectories and group them to reflect any modular components you have designed such as instrument drivers configuration utilities and file I O drivers Create a directory for all the VIs for one application and give it a meaningful name as shown in Figure 6 1 Save the main VIs in this directory and the subVIs in a subdirectory If the subVIs have subVIs continue the directory hierarchy downward National Instruments Corporation 6 1 LabVIEW Development Guidelines Chapter 6 LabVIEW Development Guidelines LabVIEW Style Guide lx SS My App vi My App Sub Figure 6 1 Directory Hierarchy When naming VIs VI libraries and directories avoid using characters that are not accepted by all file systems such as slash backslash colon
104. t of guidelines and add additional rules as the project progresses You can use these style guidelines in future projects Chapter 6 LabVIEW Style Guide provides some style recommendations Use these guidelines as a basis for developing your own style guide A single standard for programming style in any language really cannot exist because what one group prefers another group might disagree with Select a set of guidelines that works for you and your development team LabVIEW Development Guidelines 2 10 www ni com Chapter 2 Incorporating Quality into the Development Process Design Reviews Design reviews are a great way to identify and fix problems during development When the design of a feature is complete set up a design review with at least one other developer Discuss quality goals asking questions such as the following e Does the design incorporate testing e Is error handling built in e Are there any assumptions in the system that might be invalid Also look at the design with an eye for features that are essential as opposed to features that are extras There is nothing wrong with building in extra features If quality and schedule are important however ensure that these extra features are scheduled for late in the development process so they can be dropped or moved to the list of features for subsequent releases Document the results of the design review and any recommended changes Code Walkthroughs A code
105. t select or click on in the software such as menu items and dialog box options Bold text also denotes parameter names Italic text denotes variables emphasis a cross reference or an introduction to a key concept This font also denotes text that is a placeholder for a word or value that you must supply Text in this font denotes text or characters that you should enter from the keyboard sections of code programming examples and syntax examples This font is also used for the proper names of disk drives paths directories programs subprograms subroutines device names functions operations variables filenames and extensions and code excerpts Text in this font denotes a specific platform and indicates that the text following it applies only to that platform National Instruments Corporation ix LabVIEW Development Guidelines About This Manual Related Documentation The following documents contain information that you might find helpful as you read this manual e LabVIEW Help available by selecting Help Contents and Index LabVIEW Development Guidelines D www ni com Development Models This chapter provides examples of some common development pitfalls and describes a number of software engineering lifecycle models LabVIEW makes it easy to assemble components of data acquisition test and control systems Because it is so easy to program in LabVIEW you might be tempted to begin developing VIs immediately
106. t takes to complete each task using uninterrupted person days as the unit of estimation The developers need to list any assumptions made in forming estimates The group then reconvenes to graph the overall estimates as a range of values It is a good idea to keep the estimates LabVIEW Development Guidelines 4 4 www ni com Chapter 4 Scheduling and Project Tracking anonymous and to have a person outside the development team lead this meeting After graphing the original set of values each developer reports any assumptions made in determining the estimate For example one developer might have assumed a certain VI project takes advantage of existing libraries Another developer might point out that a specific VI is more complicated than expected because it involves communicating with another application or a shared library Another team member might be aware of a task that involves an extensive amount of documentation and testing After stating assumptions each developer reexamines and adjusts the estimates The group then graphs and discusses the new estimates This process might go on for three or four cycles In most cases you converge to a small range of values Absolute convergence is not required After the meeting the developer in charge of the project can use the average of the results or he or she might ignore certain outlying values If some tasks turn out to be too expensive for the time allowed he or she might consider adding
107. tandards The U S Food and Drug Administration FDA requires all software used in medical applications to meet its Current Good Manufacturing Practices CGMP One of the goals of the standard is to make it as consistent as possible with ISO 9001 and a supplement to ISO 9001 ISO CD 13485 These FDA standards are largely consistent with ISO 9001 but there are some differences Specifically the FDA did not think ISO 9001 was specific enough about certain requirements so the FDA clearly outlined them in its rules Refer to the FDA web site at http www fda gov for more information about the CGMP rules and how they compare to ISO 9001 Capability Maturity Model CMM LabVIEW Development Guidelines In 1984 the United States Department of Defense created the Software Engineering Institute SED to establish standards for software quality The SEI developed a model for software quality called the Capability Maturity Model CMM The CMM focuses on improving the maturity of an organization s processes Whereas ISO establishes only two levels of conformance pass or fail the CMM ranks an organization into one of five categories Level 1 Initial The organization has few defined processes quality and schedules are unpredictable Level 2 _Repeatable The organization establishes policies based on software engineering techniques and previous projects that allow repeated success Groups use configuration management tools to manage p
108. tes 5 9 45 Develop prototype too high to demonstrate feasibility 2 File format might 5 3 15 Develop benchmarks not be efficient to show speed of data manipulation 3 Uncertain user 2 5 10 Involve customer interface develop prototype LabVIEW Development Guidelines In general deal with the risks with the highest risk exposure first In this example the first spiral deals with the potential of the data acquisition rates being too high After the first spiral you might have demonstrated that the rates are not too high or you might have to change to a different configuration of hardware to meet the acquisition requirements Each iteration might identify new risks In this example using more powerful hardware might make higher cost a new more likely risk For example assume you are designing a data acquisition system with a plug in data acquisition card In this case the risk is whether the system can acquire analyze and display data quickly enough Some of the constraints in this case are system cost and requirements for a specific sampling rate and precision After determining the options and constraints you evaluate the risks In this example create a prototype or benchmark to test acquisition rates After you see the results you can evaluate whether to continue with the approach or choose a different option You do this by reassessing the risks based on the new knowledge you gained from building the prototype
109. the NI Developer Zone you can easily access the latest example programs system configurators tutorials technical news as well as a community of developers ready to share their own techniques Customer Education National Instruments provides a number of alternatives to satisfy your training needs from self paced tutorials videos and interactive CDs to instructor led hands on courses at locations around the world Visit the Customer Education section of www ni com for online course schedules syllabi training centers and class registration System Integration If you have time constraints limited in house technical resources or other dilemmas you may prefer to employ consulting or system integration services You can rely on the expertise available through our worldwide network of Alliance Program members To find out more about our Alliance system integration solutions visit the System Integration section of www ni com National Instruments Corporation B 1 LabVIEW Development Guidelines Appendix B Technical Support Resources Worldwide Support National Instruments has offices located around the world to help address your support needs You can access our branch office Web sites from the Worldwide Offices section of www ni com Branch office web sites provide up to date contact information support phone numbers e mail addresses and current events If you have searched the technical support resources on our W
110. typing and Design Techniques Clearly Define the Requirements of the Application 0 cece ceeeeeeeeeeeeeeeereeseeeneenees 3 1 Top Down Desig Aeugtegiedgeltdezdetegegdiegtergotdebte deeg conde evscbsend E ENAERE ESEE ENER S 3 2 Data Acquisition System Example esseseeeeseseersereressssesrrsrsresrerrsresesersereeesreet 3 3 Bottom Up Desi n iin aren iere 3 6 Instrument Driver Example essseesesesreseseesrsresrrerererrsrestsresrerenresesserrseeersrent 3 7 Designing for Multiple Developer 3 8 Front Panel Prototyping ennenen a e EE A R A aes 3 9 Performance Benchmarking ensien e E E NE E 3 10 Identify Common Operations sseseseseesesseeesseeesrtsrerrereetssesrestssertsseeeesrentstenerrnsrereseee 3 11 Chapter 4 Scheduling and Project Tracking Estimation as penen n a a des chosdty iaa a i e E i 4 1 Source Lines of Code Number of Nodes Eepmatpon 4 2 Problems with Source Lines of Code and Number of Nodes 4 3 Effort Estimation EE 4 4 Wideband Delphi Estimation ee ceececeeceeseceeeeceseeeeeeeeeeseeeeaeceeeecneeeeneeeeee 4 4 Other Estimation Techniques cece eeessessecscessececeeceseeseeseeseeseseseaeeneeeaes 4 5 Mapping Estimates to Schedules srenti eei a a EES EESE 4 6 Tracking Schedules Using Milestones essesesseseseeseeeessseerrsreserrssreresterrsrenrerrsreerereeres 4 7 Responding to Missed Milestones cecessceseceeseeesseeeecesseeeeeeceeecneeeeneeeees 4 7 Chapter 5 Creating Documentation
111. u might need to perform the same tests numerous times you might want to develop representative subsets of tests to use for frequent regression tests You can run these components at each stage while the 2 8 www ni com Chapter 2 Incorporating Quality into the Development Process more detailed tests can be run to test an individual set of modules if problems are encountered or as part of a more detailed regression test that is applied periodically during development System Testing System testing happens after integration to determine if the product meets customer expectations and to make sure the software works as expected within the hardware system You can do this as a set of black box tests to verify that the requirements have been met Most LabVIEW applications perform some kind of I O The application also might communicate with other applications With system testing you test the software to make sure it fits into the overall system as expected When testing the system ask and answer questions such as the following e Are performance requirements met e If my application communicates with another application does it deal with an unexpected failure of that application well You can complete this testing with alpha and beta testing Alpha and beta testing serve to catch test cases that might not have been considered or completed by the developers With alpha testing a functionally complete product is tested in house to see if
112. ules as described in Chapter 2 Incorporating Quality into the Development Process As components near completion you can integrate the modules by replacing the stub components with the real counterparts At this point you can perform integration testing to verify the system works as a whole Refer to the Integration Testing section in Chapter 2 Incorporating Quality into the Development Process for more information about integration testing Front Panel Prototyping As mentioned in Chapter 1 Development Models front panel prototypes can provide insight into the organization of the program Assuming the program is user interface intensive you can attempt to create a mock interface that represents what the user sees Avoid implementing block diagrams in the early stages of creating prototypes so you do not fall into the code and fix trap Instead create just the front panels As you create buttons listboxes and rings think about what needs to happen as the user makes selections Ask yourself questions such as the following e Should the button lead to another front panel e Should some controls on the front panel be hidden and replaced by others If new options are presented follow those ideas by creating new front panels to illustrate the results This kind of prototyping can help solidify the requirements for a project and give you a better idea of its scope Prototyping cannot solve all development problems however You h
113. usly because they generally are worked out through several iterations with the customer In this case the word customer is used in a general sense You might be your own customer other departments in your company might be your target audience or you might develop the software under contract for a third party When you are your own customer it is much easier to adjust requirements as you move through the specification and even the design stage If you are developing for someone else changing requirements can be extremely difficult Source code control tools give you a degree of control when making changes You can track all changes and you can configure the system to maintain previous versions so you can back out of changes if necessary 2 4 www ni com Chapter 2 Incorporating Quality into the Development Process Some source code control systems give you more options for controlling software change For example with Microsoft Visual SourceSafe Rational Software ClearCase or Perforce Software Perforce you can control access to files so some users have access to specific files but others do not You also can specify that anyone can retrieve files but only certain users can make modifications With this kind of access control you might limit change privileges for requirement documents to specific team members Or you might control access so a user has privileges to modify a file only when the change request is approved The amount of
114. uts e Missing files and bad pathnames e What happens when the user clicks the Cancel button in a file dialog box e What happens if the user aborts the VI Define various sets of inputs that thoroughly test the VI and write a test VI that calls the VI with each combination of inputs and checks the results You can use interactive data logging to create input sets or test vectors and replay them interactively to re test the VI or automatically from a test VI that uses programmatic data retrieval Refer to the Unit Testing Validation Procedure application notes for more information about testing VIs To perform unit testing you might need to stub out some components that have not been implemented yet or that are being developed For example if you are developing a VI that communicates with an instrument and writes information to a file another developer can work on a file I O driver that writes the information in a specific format To test the components early you might choose to stub out the file I O driver by creating a VI with the same interface This VI can write the data in a format that is easy for you to check You can test the driver with the real file I O driver later during the integration phase as described in the following Integration Testing section Regardless of how you test VIs record exactly how when and what you tested and keep any test VIs you created This test documentation is especially important if you are creati
115. w ni com Chapter 2 Incorporating Quality into the Development Process Software Quality Standards As software has become a more critical component in systems concerns about software quality have increased Consequently a number of organizations have developed quality standards that are specific to software or that can be applied to software When developing software for some large organizations especially government organizations you might be required to follow one of these standards The following sections include a brief overview of the most popular standards Refer to Appendix A References for a list of documents that include more information about these standards International Organization for Standardization ISO 9000 The International Organization for Standardization ISO developed the ISO 9000 family of standards for quality management and assurance Many countries have adopted these standards In some cases governmental bodies require compliance with this ISO standard Compliance generally is measured by certification performed by a third party auditor The ISO 9000 family is widely used within Europe and Asia It has not been widely adopted within the United States although many companies and some government agencies are begining to use it In each country the ISO family of standards are referred to by slightly different names For example in the United States it has been adopted as the ANSI American Society for Qua
116. xing problems as they arise A mechanism for controlling changes to source code documents and other materials that make up a product During software development Source Code Control is a form of configuration management Changes occur only through the Source Code Control mechanism It is also common to implement release configuration management to ensure a particular release of software can be rebuilt if necessary This implies archival development of tools source code and so on A formula based estimation method applied to a category breakdown of project requirements LabVIEW Development Guidelines Glossary integration testing L lifecycle model S Software Engineering Institute SEI source lines of code spiral model system testing U unit testing LabVIEW Development Guidelines Integration testing assures that individual components work together correctly Such testing may uncover for example a misunderstanding of the interface between modules A model for software development including steps to follow from the initial concept through the release maintenance and upgrading of the software A federally funded research and development center chartered to study software engineering technology The SEI is located at Carnegie Mellon University and is sponsored by the Defense Advanced Research Projects Agency The measure of the number of lines of code that make up a project It is used in some organi
117. y used in government projects and in many major companies Because it emphasizes planning in the early stages it helps catch design flaws before they are developed Also because it is document and planning intensive it works well for projects in which quality control is a major concern Many people believe you should not apply this model to all situations For example with the pure waterfall model you must state the requirements before you begin the design and you must state the complete design before you begin coding There is no overlap between stages In real world development however you might discover issues during the design or coding stages that point out errors or gaps in the requirements The waterfall method does not prohibit returning to an earlier phase for example from the design phase to the requirements phase However this involves costly rework Each completed phase requires formal review and extensive documentation development Thus oversights made in the requirements phase are expensive to correct later LabVIEW Development Guidelines 1 6 www ni com Chapter 1 Development Models Because the actual development comes late in the process you do not see results for a long time This can be disconcerting to management and to customers Many people also think the amount of documentation is excessive and inflexible Although the waterfall model has its weaknesses it is instructive because it emphasizes important stage
118. yout 6 5 performance considerations 6 9 property nodes 6 7 sizing and positioning 6 5 style considerations 6 3 conventions used in manual ix custom controls and graphics 6 4 Customer Education B 1 D data acquisition system design example 3 3 data types choosing 6 10 decorations for visual grouping of objects 6 5 default values for controls 6 7 design reviews 2 11 LabVIEW Development Guidelines Index design techniques 3 1 See also development models bottom up design 3 6 data acquisition system example 3 3 defining requirements for application 3 1 front panel prototyping 3 9 identifying common operations 3 11 instrument driver example 3 7 multiple developer considerations 3 8 performance benchmarking 3 10 top down design 3 2 design related documentation 5 1 development models 1 1 See also design techniques prototyping code and fix model 1 4 common pitfalls 1 1 lifecycle models 1 4 modified waterfall model 1 7 prototyping for clarification 1 7 spiral model 1 9 waterfall model 1 5 dialog boxes for front panels 6 8 directories naming 6 1 style considerations 6 2 VI search path 6 2 documentation for LabVIEW Development Guidelines conventions used in manual ix references A 1 related documentation x documentation of applications 5 1 design related documentation 5 1 help files 5 3 LabVIEW features 5 2 overview 5 1 user documentation 5 2 application documentation 5
119. zations to measure the complexity and cost of a project How the lines are counted depends on the organization For example some organizations do not count blank lines and comment lines Some count C lines and some count only the final assembly language lines A lifecycle model that emphasizes risk management through a series of iterations in which risks are identified evaluated handled System testing begins after integration testing is complete System testing assures that all the individual components function correctly together and constitute a product that meets the intended requirements This stage often uncovers performance resource usage and other problems Testing only a single component of a system in isolation from the rest of the system Unit testing occurs before the module is incorporated into the rest of the system G 2 www ni com W waterfall model white box testing wideband delphi estimation Glossary A lifecycle model that consists of several non overlapping stages beginning with the software concept and continuing through testing and maintenance Unlike black box testing white box testing creates tests that take into account the particular implementation of the module For example white box testing is used to verify all the paths of execution of the module have been exercised Wideband delphi is a technique used by a group to estimate the amount of effort a particular project will take Nati

Download Pdf Manuals

image

Related Search

Related Contents

Fujitsu Siemens Computers LifeBook N6460 User's Manual  User Manual  MARKETSLINK FX AND MM TRADING  カタログPDF  LED MAT-192 DMX  Prizma Australia - Blue I Water Technologies  EZ Pro Instructions - Super Products Co.,Ltd.  取扱説明書ダウンロード  Referenčná príručka  Centrex-Manual. pdf  

Copyright © All rights reserved.
Failed to retrieve file