0% found this document useful (0 votes)
160 views

Software Process

This document outlines the key phases of the software development process as taught in a computer science course at Wake Forest University. It discusses the typical phases of requirements engineering, design, implementation, testing, and maintenance. It also covers some models of the software development process and challenges in project management for large software projects.

Uploaded by

api-3714165
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
160 views

Software Process

This document outlines the key phases of the software development process as taught in a computer science course at Wake Forest University. It discusses the typical phases of requirements engineering, design, implementation, testing, and maintenance. It also covers some models of the software development process and challenges in project management for large software projects.

Uploaded by

api-3714165
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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

You might also like