Vous êtes sur la page 1sur 10

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

Vous aimerez peut-être aussi