Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Unit 7 – Software Engineering

7.2 The Software Development Process

1
Software Development Process

 Is a set of activities associated with production of a S/W product

 For the effective control of the S/W process, is essential to have a phased
(Stage by Stage) development strategy which consists of number of
stages that produce one or more documents & program codes

* No codes are produced during the earlier stages

2
S/W Development Process Continued..
 The S/W development process model is also called as SDLC (Software
Development Life Cycle)

 As the process is repeated when S/W need to be changed (Time to


Time).

3
Software Process Models

 Traditional Software Process Models


 Waterfall Model

 Evolutionary Process Model

 Agile Process Models


 Scrum

4
Waterfall Model

 A simple model that has a set of stages, those are to be followed one
after the other (Move from one Phase to the other).
 Progress Monitoring is easier because the development process is more
visible.
 Each stage has an output (a product to deliver).

1. Requirements Analysis & Definition


2. System & Software Design
3. Implementation & Unit testing
4. Integration & System Testing
5. Operations & Maintenance

5
1. Requirements Analysis & Definition
The System’s,
 Services(Functions/Tasks) ex: Supermarket System: Total Amount,
Discounts, Free offers

 Limitations(Constraints) ex: 30 seconds max for a transaction

 Goals(Objectives) ex: better customer service, reduced queues,

are established by consultation with system users. They are then defined in a
manner, which is understandable by both users & development team.

Though the Development Team has the technical knowledge, the users might not have it. Therefore better not to
use the computer jargon.

6
2. System & Software Design

 It establishes overall system architecture.

 System Design process separates the requirements to either Hardware or


Software systems(Usually include both H/W + S/W of a system) ex: Esoft
Student Validation System

2.1. Software Design


2.2. Hardware Design

7
2.1 Software Design

 Software Design involves representing the software system functions in a form,


that may be transformed into one or more executable programs.

 In other words it’s the process of describing the Design Logic of programs.

 Each component in the architecture will be converted to a detailed design using


a method like Flow Charts or Pseudo Codes.

8
2.2 Hardware Design

 Design Hardware System; ex: Network, Clients, Servers, Printers, etc.

Design of a
Hardware
Architecture

9
3. Implementation & Unit Testing

 During this stage, the S/W design is realized as a set of programs or


program units. (Separate modules(Components) are coded using a
programming language)

 Unit Testing involves verifying that each unit meets its specification.

10
4. Integration & System Testing

 Individual program units or programs are integrated and tested as a complete


system to ensure that S/W requirements have been met.

 After testing, S/W system is delivered to the consumer.

11
5. Operations & Maintenance
 Longest life cycle phase

 The system is installed & put into practical use.

 This involves activities like staff training, file conversion (Turning manual files
into computer files), site preparation, preparing user manuals and possibly
some parallel running

 Maintenance involves correcting errors which are not discovered in earlier stages
of the life cycle, improving the implementation of system units & adding the
system requirements as new requirements are discovered.

12
13
What is a Prototype?
In software development, a prototype is a working model of a product or
information system, usually built for demonstration purposes or as part
of the development process.

There are 2 types of Prototyping :

• Evolutionary Prototyping
(Used in Exploratory Development)
• Throw-away Prototyping
(Prototype used only to define the requirements clearly)

14
Exploratory Development

 The objective of the process is to


work with the customer to explore
their requirements and deliver a
final system.

 The development starts with the


parts of the system which are
understood.

 The System evolves by adding new


features as they are proposed by the
customer

15
Throw Away Prototyping
 Is used to identify user requirements.
 Once the requirements are clear, the prototype is thrown away and the
development continues with normal SDLC (Waterfall)

16
Agile Methodology

 A Methodology to build a software incrementally using short iterations based on the


changing needs of the client

17
Traditional vs Agile

18
Roles in Agile Development

 Scrum Master (Team Lead)


 Product Owner (Client)
 Cross – Functional Team (Development Team)

19
Lesson Summary

 Software Development Process


 Software Development Life Cycle
 Waterfall Model
 Stages of Waterfall Model
 Prototyping
 Evolutionary vs Throw-away Prototyping
 Agile Methodology

20

You might also like