waterfall_Lect(1)
waterfall_Lect(1)
A software development process is a structured series of activities that comprise the way in which
an organization develops software projects.
• The requirements document is the official statement of what is required of the system developers
• It is not a design document. As far as possible, it should state WHAT the system should do rather
than HOW it should do it
• Should include both a definition and a specification of requirements
Requirements definition
• Requirements definition: A statement in natural language plus diagrams of the services the system
provides and its operational constraints.
o Written for customers
Example:
1. The software must provide a means of representing and accessing external files created by other tools.
Requirements specification
• Requirements specification: A structured document setting out detailed descriptions of the system
services.
o Written as a contract between client and contractor
1.1 The user should be provided with facilities to define the type of external files
1.2 Each external file type may have an associated tool which may be applied to the file.
1.3 Each external file type may be represented as a specification (icon) on the user’s display.
1.4 Facilities should be provided for the icon representing an external file type to be defined by the user.
1.5 When the user selects an icon representing an external file, the effect of that selection is to apply the tool
associated with the type of the external file to the file represented by the selected icon.
Architectural design
global decisions that affect the entire system
High-Level Design
Low-Level Design
Examples:
High-Level Design
• Guided by
o coupling & cohesion
o abstract data types (later this semester)
o objects (studied in CS330)
Low-Level Design
• Guided by
o stepwise refinement (later this semester)
o analysis of algorithms (studied in CS361 & CS390)
Implementation
• programming
Verification & Validation: assuring that a software system meets the users’ needs
• principal objectives:
o The discovery of defects in a system
o The assessment of whether or not the system is usable
Verification
• Verification:
o "Are we building the product right?"
o The software should conform to its prior specification
the code should be faithful to the low-level design
the low-level design should be faithful to the high-level design
the high-level design should be faithful to the requirements specification
Validation
• Validation:
o "Are we building the right product?"
o The software should do what the user really requires
1.1.2 Testing
• Testing is the act of executing a program with selected data to uncover bugs.
o As opposed to debugging, which is the process of finding the faulty code responsible for failed
tests.
• Testing is the most common, but not the only form of V&V
V&V
• prioritize changes
• make changes
• validate changes
o new test cases
• validate that change does not break previously working code
o regression testing
2 The Focus of CS250
The Focus of CS250