Anda di halaman 1dari 16

Reference: Software Engineering, by Ian Sommerville, 9th edition, Chapter 2

Objectives
To introduce the idea of software process a coherent set of activities for software production. Understand the concepts of software processes To describe various generic software process models and their pros and cons Know about the fundamental process activities Understand why processes should cope with changes in requirements and design

Software Process
Definition:
the set of related activities that leads to

the production of a software product.

These activities may involve developing software from scratch. Evolution of an existing software

Activities in Software Process


Software Specification what the system should do and its development constraints, Software Design and Implementation production of the software system Software Verification checking that the software meets the requirements, Software Validation checking that the software does what the customer wants, Software Evolution changing the software in response to changing customer demands.

Software Life Cycle


The phases necessary to develop and maintain a

software system. These phases include:


Requirements (Specification) Design Implementation (Coding) Testing (Validation)

Maintenance (Evolution)

A software process model is an abstract

representation of how these phases can be addressed.

Requirements
The process of establishing
what services are required of the system the constraints on the systems

operation and development The what of the software life cycle

A Generic Requirements Process


Feasibility study Requirements elicitation and analysis Requir ements specification Requirements validation System models User and system requirements Requirements document

Feasibility report

Design
The process of converting the system specification

(requirements) into a software structure that realizes that specification The how of the software life cycle

A Generic Software Design Process

Implementation
Implementation is the process of converting a

system specification into an executable system. Translating a design into a program and removing errors from that program Programming is a personal activity - there is no generic programming process. Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process. The activities of design and implementation are closely related and may be interleaved.

Testing
Verification and validation is intended to show that

a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.

A Generic Testing Process


Unit testing Module testing Sub-system testing System testing Acceptance testing

Component testing

Integration testing

User testing

V-Model of Test Planning


Requir ements specification System specification System design Detailed design System integration test plan Sub-system integration test plan Module and unit code and tess

Acceptance test plan

Service

Acceptance test

System integration test

Sub-system integration test

System Maintenance
Software is inherently flexible and can change (as

opposed to hardware). In the past, there has been a demarcation between development and evolution (maintenance). This is increasingly irrelevant as fewer and fewer systems are completely new. Software engineering should be thought of as an evolutionary process where software is continually changed over its lifetime in response to customer needs.

Summary
In every software project, large or small, there are five

phases that will be involved:


Requirements gathering/analysis Design Implementation /coding Testing Maintenance

However, there is no rule of thumb that these phases

must be followed systematically. In most projects, developers do as they find appropriate depending on the type of project.

END

Next: We will look at Software Process Models

Anda mungkin juga menyukai