Wake Forest University Computer Science Department
Software Development Process
CSC 331 – 631
V. P. Pauca
Spring 2003 1
Wake Forest University Computer Science Department
Outline
• Processes and Software Process
• Phases of a Development Project
– Requirements engineering
– Design
– Implementation
– Testing
– Maintenance
• Project Management
Spring 2003 2
Wake Forest University Computer Science Department
Processes
• Process:
A series of steps involving activities, constraints, and resources that
produce an intended output of some kind
• imposes consistency and structure on a set of activities
• guides our actions by allowing us to examine, understand, control, and
improve the activities that comprise the process
• enables us to capture our experiences and pass them along to others
Can you think of some examples?
• Software Development Process
– A process that describes the life of a software product from its
conception to its implementation, delivery, use and maintenance
– It is a cyclic process Why?
– Hence, the term software life cycle
Spring 2003 3
Wake Forest University Computer Science Department
Phases of a Development Project
problem
requirements engineering
requirements
specification
design
design
specification
implementation
program
testing
working
program
maintenance
Spring 2003 4
Wake Forest University Computer Science Department
Phases of a Development Project
1. Requirements engineering
– Goal: develop a complete description of the problem and of the
requirements imposed by and on the target environment
– Description of problem:
• Functions of the software system
• Future extensions
• Amount and kind of documentation
• Performance requirements
– Feasibility study: assess existence of solution to problem both
economically and technically feasible
– Output document: requirements specification
Spring 2003 5
Wake Forest University Computer Science Department
Phases of a Development Project
2. Design
– Goal: develop a detailed model of the system
separate the what from the how
– Employ analysis and synthesis
• decompose problem into modules
• specify the module functions and interfaces
– Design decisions captured in the global description of the system, i.e.
the system architecture
• Architectural description is an important milestone document
– Output document: technical specification
• Starting point for the implementation phase
• Specification can be formal in nature
Spring 2003 6
Wake Forest University Computer Science Department
Phases of a Development Project
3. Implementation
– Goal: develop an executable program from the implementation
of the individual components
• The starting point is the module’s specification
– The programmer’s goal is to develop well-documented, reliable,
flexible and correct software
– Output: an executable program
Spring 2003 7
Wake Forest University Computer Science Department
Phases of a Development Project
4. Testing
– Goal: overall testing of the system’s functionality (verification
and validation)
– Verification: the system is right
– Validation: building the right system
– In reality, testing may occur early in the development of a
project, i.e. requirements and design
– Testing is continued and refined during subsequent phases
5. Maintenance
– After delivery, the system may need to be repaired (errors are
encountered), changed or enhanced
Spring 2003 8
Wake Forest University Computer Science Department
Project Development
• Development process is not really as neatly separated as previously illustrated
– Many process models introduced in the literature
– Many actual ways (not even processes) in which software is developed
• Break-up of development effort
– 40-20-40 rule: plan (40%) build (20%) test (40%) (Rakos 1990)
– 60-15-25 rule: (Boehm 1987)
• Maintenance versus evolution
– Cost of maintenance has increased significantly over the last few decades
• 1970s (40%), early 1980s (55%), late 1980s (75%), 1990s (90%)
• What percentage of this is software evolution?
– What type of maintenance activities take place?
• Corrective maintenance (21%)
• Adaptive maintenance (25%)
• Perfective maintenance (50%)
• Preventive maintenance ( 4%)
Spring 2003 9
Wake Forest University Computer Science Department
Project Management
• Large software projects not typically undertaken by one individual
– Other projects (e.g. courses to take)
– Family
– Other priorities
• Where this project fits in relation to others results in boundary conditions
– process of determining boundary conditions called information planning
• Management: planning and controlling the project and resources
– Planning components: introduction, process model, organization,
standards and procedures, management, risk, staffing, methods and
techniques, quality assurance, resources, budget and schedule,
changes
– Controlling: time, information, organization, quality, money!
Spring 2003 10