Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Project Planning Defining the Project Writing the Software Specification Selecting a Development Plan.

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

Chapter 8 Improving the User Interface
Decision Analysis Tools in Excel
Using Macros and Visual Basic for Applications (VBA) with Excel
Tutorial 8: Developing an Excel Application
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
A graphical user interface (GUI) is a pictorial interface to a program. A good GUI can make programs easier to use by providing them with a consistent.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
CS320n –Visual Programming LabVIEW Foundations. Visual ProgrammingLabVIEW Foundations2 What We Will Do Today Hand back and review the midterm Look at.
Automating Tasks With Macros
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Automating Tasks With Macros. 2 Design a switchboard and dialog box for a graphical user interface Database developers interact directly with Access.
CIS101 Introduction to Computing Week 11. Agenda Your questions Copy and Paste Assignment Practice Test JavaScript: Functions and Selection Lesson 06,
XP New Perspectives on Microsoft Office Excel 2003, Second Edition- Tutorial 11 1 Microsoft Office Excel 2003 Tutorial 11 – Importing Data Into Excel.
Interaction Styles Interface Widgets. What are Interaction Styles?  A Collection of interface objects and associated techniques from which an interaction.
Macros Tutorial Week 20. Objectives By the end of this tutorial you should understand how to: Create macros Assign macros to events Associate macros with.
Introduction To Form Builder
Microsoft Excel 2003 Illustrated Complete Excel and Advanced Worksheet Management Customizing.
© 2005 by Prentice Hall Chapter 3c Designing Interfaces and Dialogues.
Chapter 13: Designing the User Interface
Software Engineer Report What should contains the report?!
Adding Automated Functionality to Office Applications.
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
Microsoft Office Word 2013 Expert Microsoft Office Word 2013 Expert Courseware # 3251 Lesson 4: Working with Forms.
DEMONSTRATION FOR SIGMA DATA ACQUISITION MODULES Tempatron Ltd Data Measurements Division Darwin Close Reading RG2 0TB UK T : +44 (0) F :
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Chapter 12 Designing Interfaces and Dialogues
Chapter 9 Macros, Navigation Forms, PivotTables, and PivotCharts
Visual Basic Chapter 1 Mr. Wangler.
Hands-on Introduction to Visual Basic.NET Programming Right from the Start with Visual Basic.NET 1/e 6.
XP Chapter 4 Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach 1 Collecting Data for Well-Designed Forms Chapter 4 “Making.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Chapter 8: Writing Graphical User Interfaces
11.10 Human Computer Interface www. ICT-Teacher.com.
Introduction to Matlab & Data Analysis
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
Automating Database Processing Chapter 6. Chapter Introduction Design and implement user-friendly menu – Called navigation form Macros – Automate repetitive.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
S511 Session 7, IU-SLIS 1 DB Implementation: MS Access Forms.
Software Project Planning Defining the Project Writing the Software Specification Planning the Development Stages Testing the Software.
1 Committed to Shaping the Next Generation of IT Experts. Chapter 8 Exchanging Data Between Access and Other Applications Exploring Microsoft Office Access.
Key Applications Module Lesson 21 — Access Essentials
Test and Review chapter State the differences between archive and back-up data. Answer: Archive data is a copy of data which is no longer in regular.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
DB Implementation: MS Access Forms. MS Access Forms  Purpose Data entry, editing, & viewing data in tables Forms are user-friendlier to end-users than.
The Software Development Process
XP New Perspectives on Microsoft Office Access 2003 Tutorial 10 1 Microsoft Office Access 2003 Tutorial 10 – Automating Tasks With Macros.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Java Programming, 2E Introductory Concepts and Techniques Chapter 4 Decision Making and Repetition with Reusable Objects.
Intermediate 2 Computing Unit 2 - Software Development.
1 Using Conditional Formatting & Data Validation Applications of Spreadsheets.
LECTURE 18 16/11/15. MAKING THE INTERFACE CONSISTENT Consistency is one way to develop and reinforce the users conceptual model of applications and give.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Project Planning Defining the project Software specification Development stages Software testing.
MATLAB and SimulinkLecture 61 To days Outline Graphical User Interface (GUI) Exercise on this days topics.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Introducing Scratch Learning resources for the implementation of the scenario
Section 3 Computing with confidence. The purpose of this section The purpose of this section is to develop your skills to achieve two goals: 1-Becoming.
Excel Tutorial 8 Developing an Excel Application
Graphical User Interface in MATLAB
Computer Fundamentals
An Introduction to Computers and Visual Basic
An Introduction to Computers and Visual Basic
Hands-on Introduction to Visual Basic .NET
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
CIS16 Application Development Programming with Visual Basic
An Introduction to Computers and Visual Basic
Presentation transcript:

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Project Planning Defining the Project Writing the Software Specification Selecting a Development Plan Selecting a Testing Plan

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Input-Process-Output model Define the input Define the process Define the output Define the hardware Define the development tools

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Input-Process-Output model Process File

Feb. 8, 2008 UHCO Graduate Course in MATLAB 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? What information is received real-time? –signals, images, responses

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Input Examples Subject/Patient information Stimulus parameters Spreadsheet data Image data Data acquired from recording hardware User’s choice of processing options User’s choice of output options

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Input Methods Graphic User Interface (GUI) Controls –radio buttons, checkboxes, pushbuttons, edit boxes, sliders, pull-down lists, menus Command line questions and answers Files (spreadsheet, image, database) Acquisition hardware –analog to digital converter boards –digital input/output boards –cameras –frame-grabbers

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Input Worksheet ?

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Define the Process What does the program do? –How does the program respond to the user’s input? –What is the sequence of events? –What computations take place? How must the units be scaled? –How must the data be manipulated?

Feb. 8, 2008 UHCO Graduate Course in MATLAB 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 neurophysiology signals Simulate a model Fit data to a model

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Process Methods Sequence of events –GUI control and menu selections –Control statements (if/while/for blocks) –Data driven Computations –MATLAB functions and toolboxes Stimulus generation (in memory) –Psychophysics Toolbox –Cambridge Research Systems toolbox

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Process Worksheet ?

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Define the Output Data –Results –Record of input information –Record of data processing or collection GUI –Feedback to user –Enabling/disabling controls Experiment control

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Output Examples Data –Experiment record and results –Simulation parameters and results –Statistical or computational results Experiment control –Stimulus and sound feedback –Triggers, shutter control –Starting/stopping devices –Capturing images or signals

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Output Methods Data Output –Text files –Binary files –Image files –Export to Microsoft Excel GUI output –Images –Graphical plots –Changes to what is displayed on the user interface

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Output Methods (continued) Experiment Control –Stimulus Presentation Psychophysics Toolbox Cambridge Research Systems libraries –Serial port control messages –Data acquisition cards and libraries –Devices that support ActiveX control

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Output Worksheet ?

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification StylePurposeBenefitsOrganization

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification Style Uses Present Tense –Write this document as if the project already exists, and you are describing it. This approach allows your specification to serve as: The program’s “User Guide” The foundation of your methods section in papers A visualization tool for making your program a reality Use consistent names –Name of program –Experiment parameters –Captions, column headings, descriptions

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification Purpose Document your design decisions –If programming for self: clarifies design –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

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification Benefits Record of design decisions –Envision “Methods” section of resulting publication –Reminder between design, testing and use Discussion tool for other users –What to include for different user needs –Arrangement and labeling of GUI Prototype for software interface –Easier to rewrite document than code

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification Organization Introduction User Interface (input, output) Parameters (input) Typical Sequence (process) Computations (process) Graphic Results (output) File Formats (input, output) References

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “Introduction” Section Describes purpose of software Gives overview of software Introduces specific terminology Includes relevant background in literature Describes overview of hardware Describes development tools –MATLAB, Psychophysics Toolbox, etc.

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “User Interface” Section Gives an overview of GUI layout Organization of GUI windows Arrangement of GUI controls Lists options or preferences Give brief description of purpose of each menu or control, but describe specific details in the most appropriate section that follows.

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “Parameters” Section Describes parameters in detail –Provides details that relate to parameters (rather than in GUI section) –purpose –units –default values –acceptable ranges Summarize parameters in a table for quick reference

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “Typical Sequence” Section Describes the typical sequence of events Describes what happens when the user makes different selections Describes error handling For repeating operations, (psychophysics trials, batch processes) describes sequence as a numbered list

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “Computations” Section Describe computations as you would in the methods section of a paper Supply all necessary information to perform the computations For extensive, complex computations –Reference descriptive documents –Reference existing software –Give details in an appendix rather than make this section excessively long

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “Graphic Results” Section Plots –Axes and scaling –Axes titles –Markers and lines Images –Data format (uint8, double, indexed) –True color or colormap preferences –Meaning of intensity scale –Overlays (i.e. pupil boundary, centroids)

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “File Formats” Section Includes both input and output file formats Describes the rows and columns of tab- delimited text files or Excel output Identifies graphic file format (TIFF, JPG) Describes any naming conventions Indicates if files are to be overwritten or appended

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Specification “References” Section Contact information for software tools Contact information for special hardware References to related manuals –hardware –software References to related publications –computations –experiment methods

Feb. 8, 2008 UHCO Graduate Course in MATLAB Development Plan The Chronological Approach The Availability Approach The Feasibility Approach The Generic Approach The ‘They Did It This Way’ Approach Select a Plan

Feb. 8, 2008 UHCO Graduate Course in MATLAB Development Plan The Chronological Approach Add each block of code in sequential order –First write code that receives all the inputs –Next write code that does first stage processing –Next add code that depends on first stage –Continue until all results are available –Produce results and record them to files

Feb. 8, 2008 UHCO Graduate Course in MATLAB Development Plan 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.

Feb. 8, 2008 UHCO Graduate Course in MATLAB Development Plan 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.

Feb. 8, 2008 UHCO Graduate Course in MATLAB Development Plan 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 –Unit or file conversions –Subject response or feedback methods –Standard stimuli

Feb. 8, 2008 UHCO Graduate Course in MATLAB Development Plan “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.

Feb. 8, 2008 UHCO Graduate Course in MATLAB Development Plan Choose a Plan Choose a Plan –Considering all the constraints and approaches, decide what parts of your code to implement, in what order. –Estimate how long each part will require for coding –Keep the scope realistic

Feb. 8, 2008 UHCO Graduate Course in MATLAB Testing Plan All software has “bugs” Create a plan for testing, based on –Definition of the program’s inputs, processes and outputs –Software Specification Error checking is a subset of testing –Include error checking as a part of your testing plan, to verify that your software handles potential errors well

Feb. 8, 2008 UHCO Graduate Course in MATLAB Testing Plan Input-Process-Output Model Verify Inputs –Do files open properly? Is it open in another application? –Identify bad file formats Did user open the wrong text file? –Did the user type incorrectly? –Did the user forget to enter some information? –Do the input devices initialize properly? –Create situations that fail

Feb. 8, 2008 UHCO Graduate Course in MATLAB Testing Plan Input-Process-Output Model Verify Processes –Computations: start with data sets that produce known results –Break up complex processes into smaller units that can be tested on their own –Unit conversions: display intermediate results

Feb. 8, 2008 UHCO Graduate Course in MATLAB Testing Plan Input-Process-Output Model Verify Outputs –Measure brightness/size/timing of stimuli –Examine output files with another application Always examine first runs of a new release before starting full-scale collection for a study –Compare results with expected results from known data sets

Feb. 8, 2008 UHCO Graduate Course in MATLAB Testing Plan Compare with Specification User Interface: Ask naïve users to try your program Parameters: Does the program alert users to invalid values? Computations Graphic Results File Formats

Feb. 8, 2008 UHCO Graduate Course in MATLAB Testing Plan MATLAB Methods Remove semicolons and view values –If removing the semicolon generates too much output, use disp() to show specific results that are meaningful Generate intermediate.mat files that verify each step of your process Use tic and toc to verify timing Examine the return value from functions that provide status or error codes

Feb. 8, 2008 UHCO Graduate Course in MATLAB Software Project Planning Conclusions –Define the software as clearly as possible before starting the code. It is generally easier to write the documents than the code Input-Process-Output worksheets Formal Specification –Plan Development and Testing Define managable stages and steps Incorporate testing into design of code

Feb. 8, 2008 UHCO Graduate Course in MATLAB Thanks for your attention. Questions?

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Input Worksheet ?

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Process Worksheet ?

Feb. 8, 2008 UHCO Graduate Course in MATLAB Defining the Project Output Worksheet ?