Software Design Flashcards
Software
development life
cycle (SDLC)
• The SDLC is a framework that describes the activities performed at each stage of a software development project.
• SDLC process is used by the software industry to design, develop and test high quality software. It aims to produce the quality software that meets or exceeds customer expectations, reaches completion within time and budget.
Requirements Gathering and Analysis
Design
Development
Testing
Implementation
Maintenance
Reasons for Using SDLC Models
•Provides the base for project planning, estimating & scheduling.
•Provides framework for standard set of terminologies, activities & deliverables.
•Provides mechanism for project tracking & control.
•Increases visibility of project progress to all stakeholders.
• Increased development speed
• Increased product quality
• Improved tracking & control
• Improved client relations
• Decreased project risk
• Decreased project management overhead
Waterfall Model
Requirements :
– defines needed information, function, behavior, performance and interfaces.
Design:
– data structures, software architecture, interface representations, algorithmic details.
Implementation:
– source code, database, user documentation, testing.
Test:
Installation:
Maintance:
Waterfall Strengths
Easy to understand, easy to use
Provides structure to inexperienced staff
Milestones are well understood
Sets requirements stability
Good for management control
Works well when quality is more important than cost or schedule
Waterfall Deficiencies
1.All requirements must be known upfront
2.Deliverables created for each phase are considered frozen – inhibits flexibility
3.Can give a false impression of progress
4.Does not reflect problem-solving nature of software development – iterations of phases
5.Integration is one big bang at the end
6.Little opportunity for customer to preview the system (until it may be too late)
When to use the Waterfall Model
Requirements are very well known
Product definition is stable
Technology is understood
New version of an existing product
Porting an existing product to a new platform.
Parallel Development
A general design for the entire system is performed and then
the project is divided into a series of distinct subprojects.
Results are obtained early and periodically.
Parallel development can be planned.
Progress can be measured.
Less costly to change the scope/requirements.
Testing and debugging during smaller iteration is easy.
V-Shaped SDLC Model
Project and Requirements Planning
– allocate resources
Product Requirements and Specification Analysis
– complete specification of the software system
Architecture or High-Level Design
– defines how software functions fulfill the design
Detailed Design – develop
Production, operation and
maintenance – provide for
enhancement and corrections
System and acceptance
testing – check the entire software system in its
environment
Integration and Testing
– check that modules
interconnect correctly
Unit testing – check that each module acts as expected
Coding – transform algorithms into software
Strengths
Emphasize planning for verification and
validation of the product in early stages of
product development
Each deliverable must be testable
Project management can track progress by
milestones
Easy to use
weaknesses
Does not easily handle concurrent events
Does not handle iterations or phases
Does not easily handle dynamic changes in
requirements
Does not contain risk analysis activities
When to use the V-Shaped Model
Excellent choice for systems requiring high
reliability – hospital patient control
applications
All requirements are known up-front
When it can be modified to handle changing
requirements beyond analysis phase
Solution and technology are known