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 • •
–
Design decisions captured in the global description of the system, i.e. the system architecture •
–
decompose problem into modules specify the module functions and interfaces
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 Adaptive maintenance Perfective maintenance Preventive maintenance
(21%) (25%) (50%) ( 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