Upload
mohit-khatri
View
218
Download
0
Embed Size (px)
Citation preview
7/30/2019 Computer Software Design -1.2.pptx
1/24
Designing Computer
Software Applications
7/30/2019 Computer Software Design -1.2.pptx
2/24
Outline
The Nature of Software
The Role of Design
Design Process
Software Development Models
The Waterfall Model Advantages & Disadvantages
The Spiral Model Advantages & Disadvantages
The Rapid Prototyping Model Advantages &
Disadvantages
Software Development Lifecycle
Objectives of a Design Document
Example
7/30/2019 Computer Software Design -1.2.pptx
3/24
The Nature of Software
Software lies at the nerve centre of most engineered artifacts and business
processes, i.e. from consumer electronics to financial modelling, and from
automotives to medical applications
A single defect in millions of lines of code can result in a system failure (safety
critical systems are and exception)
Typically 50% of project costs are allocated to software design, of which 50%
are spent on testing
Software is among the most complex of engineered artifacts
7/30/2019 Computer Software Design -1.2.pptx
4/24
The Role of Design
Requirements Design Models Code
7/30/2019 Computer Software Design -1.2.pptx
5/24
Design Process
Architectural design: deciding on the subsystems and their
relationships
Subsystem design: provide an abstract specification for each
subsystem
Component design: decomposition of subsystems into components
Interface design: define the interface for each subsystem
Data structure design: data structuring decisions
Algorithm design: algorithmic decisions
7/30/2019 Computer Software Design -1.2.pptx
6/24
Software Development Models
The 3 key Software Development Models are:
Waterfall Model Involves Sequential process of analysis,design, implementation, testing, and deployment
Spiral Model Breaks down process steps into multiplephases; early phases involve construction of prototypes
Rapid Prototyping Model Customer OrientedDevelopment; Emphasizes Requirements, Analysis andValidation
7/30/2019 Computer Software Design -1.2.pptx
7/24
The Waterfall Model
7/30/2019 Computer Software Design -1.2.pptx
8/24
Advantages
Easy to understand and implement
Widely used and known (in theory!)
Reinforces good habits: define-before- design,
design-before-code
Identifies deliverables and milestones
Document driven, URD, SRD, etc. Published
documentation standards, e.g. PSS-05.
7/30/2019 Computer Software Design -1.2.pptx
9/24
Disadvantages
Unrealistic to expect accurate requirements so earlyin project
Software is delivered late in project, delays discoveryof serious errors
Difficult and expensive to make changes todocuments
7/30/2019 Computer Software Design -1.2.pptx
10/24
The Spiral Model
7/30/2019 Computer Software Design -1.2.pptx
11/24
Advantages
Accurately reflects the iterative nature of softwaredevelopment on projects with unclear requirements
Comprehensive model decreases risk
Good project visibility.
7/30/2019 Computer Software Design -1.2.pptx
12/24
Disadvantages
Needs technical expertise in risk analysis to reallywork
Model is poorly understood by non-technicalmanagement, hence not so widely used
Complicated model, needs competent professionalmanagement
7/30/2019 Computer Software Design -1.2.pptx
13/24
The Rapid Prototyping Model
Requirements Capture
Quick Design
Build Prototype
Customer Evaluation of
Prototype
Engineer FinalProduct
Iterate
7/30/2019 Computer Software Design -1.2.pptx
14/24
Advantages
Reduces risk of incorrect user requirements
Good where requirements are changing/uncommitted
Regular visible progress aids management
Supports early product marketing
7/30/2019 Computer Software Design -1.2.pptx
15/24
Disadvantages
Badly implemented prototype often becomes the finalproduct
Costs customers money
Difficult to know how long project will last
7/30/2019 Computer Software Design -1.2.pptx
16/24
Software Development Lifecycle
Standard Waterfall Model
7/30/2019 Computer Software Design -1.2.pptx
17/24
Feasibility & Analysis
Decide what the project is suppose to do
Do not think about how the program willaccomplish tasks
Output: requirements document
Describes what program will do oncecompleted
User manual: tells how user will operate
program
Performance criteria
7/30/2019 Computer Software Design -1.2.pptx
18/24
Design
Plan how to implement the system
Discover structures that underlie problemto be solved
Decide what classes and methods you need
Output:
Description of classes and methods
Diagrams showing the relationshipsamong the classes
7/30/2019 Computer Software Design -1.2.pptx
19/24
Implementation
Write and compile the code
Code implements classes and methodsdiscovered in the design phase
Output: completed program
7/30/2019 Computer Software Design -1.2.pptx
20/24
Testing
Run tests to verify the program workscorrectly
Output: a report of the tests and their
results
7/30/2019 Computer Software Design -1.2.pptx
21/24
Deployment & Maintenance
Users install program
Users use program for its intended purpose
Developers support the program for defects
Developer resolve defects
7/30/2019 Computer Software Design -1.2.pptx
22/24
Objectives of a Design Document
A formal design document in any engineering project is used to : -
Provide an overall guidance of the architecture of the software project
Coordinate a large team under a single vision
Outline all parts of the software and how they will work
Give a fairly complete description while maintaining a high-level view ofthe application
Convey the technical and operational requirements of am IT system
coupled with specifications, concepts, analysis, diagrams, and schematics
Reflect the users perspective of the system design
7/30/2019 Computer Software Design -1.2.pptx
23/24
Software Development Cycle Funny
Example
7/30/2019 Computer Software Design -1.2.pptx
24/24
ThankYou