You are on page 1of 26

Session 1: An Overview of

Software Processes
Materi Week 2
Information System Analysis & Design

APSI | WSA | 2017 1


Outlines
• Software Life Cycle

APSI | WSA | 2017 2


Objectives
• To introduce the general phases of the
software (development) life cycle
• To describe various generic software process
models and their pros and cons

APSI | WSA | 2017 3


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.
APSI | WSA | 2017 4
Requirements
• The process of establishing
– what services are required of the system
– the constraints on the system’s operation
and development
• The “what” of the software life cycle

APSI | WSA | 2017 5


A Generic Requirements Process

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

Requirements
document

APSI | WSA | 2017 6


Design
• The process of converting the system
specification (requirements) into a software
structure that realizes that specification
• The “how” of the software life cycle

APSI | WSA | 2017 7


A Generic Software Design Process

Requirements
specification

Design activities

Architectural Interface Component Data Algorithm


Abstract
design design design structure design
specification
design

Software Data
System Interface Component Algorithm
specification structure
architecture specification specification specification
specification

Design products

APSI | WSA | 2017 8


Implementation
• 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.

APSI | WSA | 2017 9


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.

APSI | WSA | 2017 10


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.
APSI | WSA | 2017 11
Software Process Models
• Waterfall model (Royce, 1970)
• Prototyping
– Throwaway
– Evolutionary
• Incremental development
• Spiral model (Boehm, 1988)

APSI | WSA | 2017 12


Waterfall Model
Requirements

Design

Implementation

Testing

Maintenance

APSI | WSA | 2017 13


Observations
• The following phase should not start until the
previous phase has finished.
• In practice,
– Phases overlap
– May return to a previous phase
• Still widely used, especially on very large
projects

APSI | WSA | 2017 14


Waterfall Model Pros and Cons
Pros

Cons

APSI | WSA | 2017 15


Prototyping
Requirements

Design
Design

Implementation

Implementation

Testing

Testing

Maintenance

APSI | WSA | 2017 16


Observations
• Used for requirements elicitation and
validation
• A “working” model (prototype) of the final
system is developed during requirements
• Is an iterative process

APSI | WSA | 2017 17


Prototyping Pros and Cons
Pros

Cons

APSI | WSA | 2017 18


Incremental Development

Define outline Assign requirements Design system


requirements to increments architecture

Develop system Valida te Integrate Valida te


increment increment increment system
Final
system
System incomplete

APSI | WSA | 2017 19


Observations
• Development and delivery is broken down into
increments with each increment delivering
part of the required functionality.
• User requirements are prioritised and the
highest priority requirements are included in
early increments.
• Is an iterative process

APSI | WSA | 2017 20


Incremental Pros and Cons
Pros

Cons

APSI | WSA | 2017 21


Spiral Model
Determine objectives
Evaluate alternatives
alternatives and identify, resolve risks
constraints Risk
analysis
Risk
analysis
Risk
analysis Opera-
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW analysis Proto-
type 1
Requirements plan Simulations, models, benchmarks
Life-cycle plan Concept of
Operation S/W
requirements Product
design Detailed
Requirement design
Development
plan validation Code
Design Unit test
Integration
and test plan V&V Integr ation
Plan next phase test
Acceptance
Service test Develop, verify
APSI | WSA | 2017 next-level product 22
Observations
• Process is represented as a spiral rather than as a sequence of
activities with backtracking
• Each loop in the spiral represents a phase in the process.
• No fixed phases such as specification or design -- loops in the
spiral are chosen depending on what is required
• Risks are explicitly assessed and resolved throughout the
process.
• Uses prototyping

APSI | WSA | 2017 23


Things to Think About
• What about modifying existing software?
• What about using existing software?
– In-house modules
– COTS (Commercial Off-The-Shelf)

APSI | WSA | 2017 24


Sumber
• Ian Sommerville, Software Engineering,
6th edition, Chapter 3, Addison Wesley; 6
edition,2000

APSI | WSA | 2017 25


Terimakasih
• Ada pertanyaan?

APSI | WSA | 2017 26

You might also like