• No results found

Project Development & Software Design

N/A
N/A
Protected

Academic year: 2021

Share "Project Development & Software Design"

Copied!
18
0
0

Loading.... (view fulltext now)

Full text

(1)

Project Development

&

Software Design

Lecturer: Sri Parameswaran Notes by Annie Guo.

(2)

Lecture Overview

• Basic project development steps • Some software design techniques

(3)

Project Steps

• A project development process basically consists of a number steps:

– Project definition – Design

– Hardware implementation and Software development

(4)

Project Definition

• Includes:

– Project requirement analysis

– Development of a complete operating specification and coarse or macro-level block diagram

– Possible Project Proposal

(5)

Design

• Determine

– Hardware design

• Hardware components required and their connection

– Overall system structure

• Hardware+software

– Software design

• Software data structures and flowchart

– Hardware and software interaction – Basic tasks and their interaction

(6)

Software Design

• Consists of a number of steps:

– List tasks to be performed

– Prioritize the tasks and scheduling tasks if there are real time processing requirements

• often it is the case in embedded system design

– Design interrupts for task scheduling

– Create a software flowchart for each interrupt function or normal task

(7)

Test

• Put the system developed in the project into use. It is tested in accordance with the

operating specifications developed in the project definition.

(8)

Example

• Project 2: lift controller emulator

– Project specification

• It basically has been done for you

– Hardware resources: AVR lab board. – Operating specification

(9)

Example

• Project 2: lift controller emulator

– Hardware design and implementation

• The lab board is given, the basic hardware design and implementation has been done for you.

• What you need to do is to design how to use the available hardware resources

– As specified

» Using motor to emulate the lift motion

» Using LCD to display the status of the lift operation » Inputs: Encoding input keys of the keyboard and push

buttons to represent all possible operations

(10)

Example

• Project 2: lift controller emulator

– Software design

• How many tasks are there?

– Depending on your design and how you like your code organized.

» One basic function  one task

» A group of related functions  one task

– Example: two basic tasks (could be more than two)

» Task1: Get the service requests

» Task2: Control the lift operations: moving up, moving down, stop

(11)

task1 Data task2 keypad push buttons LCD Motor Timer(s)

store requests get requests

delete requests

(12)

Example

• Project 2: lift controller emulator

– Software design

• data structures:

– Important

» Can simplify your algorithms

» Can affect the efficiency of the your code

– Should be carefully designed

• Algorithms and flow diagrams

(13)

Example

• Project 2: lift controller emulator

– Software design

• Algorithms and flow diagrams

– The high level template of your code

– Draw a control flow diagram for each task – Verifying the control flow

» Try to run some requests to see if the control flow design can lead to the expected operations.

(14)

Example

• Project 2: lift controller emulator

– Software design

(15)

Example

• Project 2: lift controller emulator

– Software design

• Write up the code – complete each section

– Start from the definitions

– Develop and test each function individually

– Display function may be the first function to be completed since it may be used for testing other functions

(16)

Example

• Project 2: lift controller emulator

– Testing

• Doest it really work?

– Compile and run your code on the development board

» Check for different operations

– If it is not working …

» Check the wiring » Debug the code » Analysis of bugs

– Until it is working

(17)

Some Techniques in Software

Code Development

• Develop and individually test each of the functions in the flowchart

• Use a simple main() function to exercise each of the the individual input/output device functions

• When the individual functions are working correctly, write the overall software in a stepwise fashion –

adding one additional function to the code and debugging it before adding more – until the entire project is functionally correctly using the real or simulated inputs.

(18)

About docs

• User’s manual

– Document for users

• The procedure to set up the emulator system. • How to use the system

– Some typical operation examples

• Design manual

– Document for other technique persons including yourself

References

Related documents

 Rather than increasing tuition by more money per child to offset the former Third Source Funding, the SCRIP Credit Minimum is still on a per family basis, which helps families

The individual payment instructions so authorised to be issued, must be issued and delivered monthly on the date when the obligation in terms of the Agreement is due and the amount

SYSTEMS Supporting Staff Behavior Supporting Student Behavior OUTCOMES.. Supporting Social Competence, Academic Achievement

• For instructive help videos, tune to FiOS TV Info on Channel 131 anytime.. • Online — visit us at myverizon.com to review all your

decide on money instead of contracts see, for instance, Shapley and Shubik, 1972, Roth and Sotomayor, 1990, and Pérez-Castrillo and Sotomayor, 2002). Any stable outcome is also

The use of galaxy clusters as probes of cosmology means minimising the systematic uncertainties and has a few key requirements (e.g. 2011): (i) the cluster masses must be

Leveraging the Fluent ad network’s proprietary real-time survey technology, 1,829 American adults were asked a range of questions pertaining to everything from their use

Knowledge-based IDPS detected attacks provide network security personnel detailed contextual analysis associated with the attack traffic, enabling security personnel to easily