Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Project Planning Defining the Project Writing the Software Specification Planning the Development Stages Testing the Software.

Similar presentations


Presentation on theme: "Software Project Planning Defining the Project Writing the Software Specification Planning the Development Stages Testing the Software."— Presentation transcript:

1 Software Project Planning Defining the Project Writing the Software Specification Planning the Development Stages Testing the Software

2 Defining the Project Input-Process-Output model Define the input Define the process Define the output Define the hardware Define the development tools

3 Defining the Project Input-Process-Output model Process File

4 Defining the Project Define the Input What information is needed to perform the software task? What information is fixed or assumed? What information does the user provide? What information is read from files?

5 Defining the Project Input Examples Subject information Stimulus parameters Spreadsheet data Image data Data acquired from recording hardware User’s choice of processing options User’s choice of output options

6 Defining the Project Input Methods Dialog boxes radio buttons, checkboxes, pushbuttons, edit boxes, sliders, pull-down lists, menus radio buttons, checkboxes, pushbuttons, edit boxes, sliders, pull-down lists, menus Command line questions and answers Files Data acquisition cards Frame grabber cards

7 Defining the Project Input Worksheet ?

8 Defining the Project Define the Process What is the sequence of events? What are the computations? How must the data be rearranged? How must the units be scaled?

9 Defining the Project Process Examples Produce a stimulus and/or gather results Compute statistics on subject performance Filter or enhance an image Evaluate eye movement signals Evaluate neurological signals Simulate a model Fit data to a model

10 Defining the Project Process Methods Sequence of events Menu driven Menu driven Dialog box selections Dialog box selections Data dependent Data dependent Scripts or functions Matlab toolboxes MATVIS Psychophysics Toolbox

11 Defining the Project Process Worksheet ?

12 Defining the Project Define the Output Record of input information Record of data processing or collection Temporary feedback during data processing or collection

13 Defining the Project Output Examples Stimulus control Experiment results Simulation results Computational results

14 Defining the Project Output Methods Text files Binary files Image files Graphical plots Stimulus control signals Changes to the user interface

15 Defining the Project Output Worksheet ?

16 Software Specification PurposeBenefitsOrganization

17 Software Specification Purpose Document your design decisions If programming for self: clarifies design If programming for self: clarifies design If hiring it done: explains to others If hiring it done: explains to others Organize user interface design Describe equipment and tools Describe format of input and output Describe sequence of events

18 Software Specification Benefits Record of design decisions Envision “Methods” section of resulting publication Envision “Methods” section of resulting publication Reminder between design, testing and use Reminder between design, testing and use Discussion tool for other users What to include for different user needs What to include for different user needs Arrangement and labeling of interface Arrangement and labeling of interface Prototype for software interface Easier to rewrite than code Easier to rewrite than code

19 Software Specification Organization Introduction User interface Parameters Sequence of events Computations Graphic results File formats Reference information

20 Software Specification Organization: Introduction Describes purpose of software Gives overview of software Describes overview of hardware Describes development tools MATLAB MATLAB Psychophysics Toolbox Psychophysics Toolbox VSG2/5 VSG2/5 ActiveX ActiveX

21 Software Specification Organization: User interface Organization of menus Organization of dialog boxes Arrangement of items on dialog boxes Options or preferences May be appropriate to incorporate these details in the other sections

22 Software Specification Organization: Parameters Describe parameters purpose purpose units units default values default values acceptable ranges acceptable ranges Summarize parameters in a table for quick reference

23 Software Specification Organization: Sequence Describe the sequence of events as a numbered list Describe what happens when the user makes different selections Describe error handling

24 Software Specification Organization: Computations Describe computations as you would in the methods section of a paper Supply all necessary information to perform the computations For complex computations reference descriptive documents reference descriptive documents reference existing software reference existing software

25 Software Specification Organization: Graphic Results Plots Axes and scaling Axes and scaling Axes titles Axes titles Markers and lines Markers and linesImages Data format (uint8, double, indexed) Data format (uint8, double, indexed) Colormap Colormap Meaning of intensity scale Meaning of intensity scale

26 Software Specification Organization: File Formats Describe the rows and columns of tab- delimited text files Select graphic file format for output Include both input and output file formats Describe any naming conventions Indicate if files are to be overwritten or appended

27 Software Specification Organization: Reference Info. Contact information for software tools Contact information for special hardware References to related manuals hardware hardware software software References to related publications computations computations experiment methods experiment methods

28 Development Stages The Chronological Approach The Availability Approach The Feasibility Approach The Generic Approach The ‘They Did It This Way’ Approach

29 Development Stages The Chronological Approach Add each block of code in sequential order First write code that receives all the inputs First write code that receives all the inputs Next write code that does first stage processing Next write code that does first stage processing Next add code that depends on first stage Next add code that depends on first stage Continue until all results are available Continue until all results are available Produce results and record them to files Produce results and record them to files

30 Development Stages The Availability Approach Some code depends on hardware. Write that code when new hardware arrives or when existing hardware is not otherwise scheduled for subjects. Some code depends on software. Order software tools early. Write user interface code or file formatting code at any time.

31 Development Stages The Feasibility Approach Sometimes it is not clear that a new experiment system or simulation will work. If it does not, then there is no purpose to adding a fancy user interface or producing output files. Start with the part that you are least confident will work. Once you prove that part works, the rest of the program development is worth the effort.

32 Development Stages The Generic Approach If you must wait on some aspect of software design, it can be beneficial to write routines that you expect to use over and over: Writing or reading standard file types Writing or reading standard file types Unit or file conversions Unit or file conversions Subject response or feedback methods Subject response or feedback methods Standard stimuli Standard stimuli

33 Development Stages “They Did It This Way” Research software can often be changed in minor ways to perform similar yet distinct experiments. Re-using code can save time. Be sure to UNDERSTAND the content and format of the parameters and results for existing code that you re-use.

34 Testing the Software Verify units of measure Verify format of files Ask naïve users to try your user interface Measure brightness/size/timing of stimuli Perform calculations on known data sets


Download ppt "Software Project Planning Defining the Project Writing the Software Specification Planning the Development Stages Testing the Software."

Similar presentations


Ads by Google