[go: up one dir, main page]

0% found this document useful (0 votes)
14 views27 pages

Chapter 3 TP3

Uploaded by

Mer Aba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views27 pages

Chapter 3 TP3

Uploaded by

Mer Aba
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 27

Chapter 3

Software Development
Life Cycle
Review
 A development process consists of various phases, each phase ending with a
defined output.
 The phases are performed in an order specified by the process model being
followed.
 The software development process goes through several phases:
 Requirement Specifications
 Analysis
 Design
 Implementation
 Testing
 Conversion
 A process is a particular method of doing something, generally involving a number
of steps or operations.
 The Software development process consists of the following processes:
 Development Processes
 Project Management Processes
 Software Configuration Management (SCM) Processes
 Process Management Processes

Software Engineering Principles / Chapter 3 / 2 of 27


Objectives
 Compare how software development companies organize their
development process

 Explain the essentials of any process models

 Discuss the advantages and disadvantages of various process


models

 Describe the criteria for choosing the appropriate process models

 Describe the process model for the Web and the process technology

Software Engineering Principles / Chapter 3 / 3 of 27


Essentials of any Process
Model
 Requirements Definition

 Requirements Analysis

 Preliminary Design

 Detailed Design

 Implementation

 System Testing

 Maintenance and Operation

Software Engineering Principles / Chapter 3 / 4 of 27


Software Development
A Process View

Software Engineering Principles / Chapter 3 / 5 of 27


Process Models
 Linear Process Models
 Waterfall Model

 Prototyping Model

 Evolutionary Software Process Models


 Incremental Model

 Spiral Model


Component Assembly Model

Software Engineering Principles / Chapter 3 / 6 of 27


Waterfall Model
 Suggests a systematic, sequential approach to software
development

 Phases
 System/ Information engineering and modeling

 Software requirements analysis

 Software Design

 Detailed Design

 Coding

 Testing

 Integration

 Operations and Maintenance

Software Engineering Principles / Chapter 3 / 7 of 27


Waterfall Model Contd…

Software Engineering Principles / Chapter 3 / 8 of 27


Waterfall Model - Shortfalls
 Real projects rarely follow the sequential flow that the model proposes

 Often difficult for the customer to state all requirements explicitly

 Customer must have patience

Software Engineering Principles / Chapter 3 / 9 of 27


Prototyping Model
 Allows for reduced functionality or limited performance version of
the eventual software

 Delivered in the early stage of project lifecycle

 Helps to make the user requirement more concrete

Software Engineering Principles / Chapter 3 / 10 of 27


Prototyping Model Contd…

Software Engineering Principles / Chapter 3 / 11 of 27


Incremental Model
 Combines
 Elements of the linear sequential model

 Iterative philosophy of prototyping

Software Engineering Principles / Chapter 3 / 12 of 27


Incremental Model Contd…

Software Engineering Principles / Chapter 3 / 13 of 27


Incremental Model –
Benefits
 Tolerates changing requirements

 Elements are integrated progressively

 Risks are mitigated earlier

 Allows the organization to learn and improve

 Facilitates reuse

 Results in a more robust product

 Process itself can be improved and refined along the way

 Accommodates changes

Software Engineering Principles / Chapter 3 / 14 of 27


Incremental Model –
Benefits Contd…
 Provides a way in which management can perform tactical changes to the
product

 Allows technological changes on the way

 Increasing reuse

 Easier to take advantage of commercial-off-the-shelf (COTS) products

 Learning

 Higher quality


Results in a more thoroughly tested product

Software Engineering Principles / Chapter 3 / 15 of 27


Incremental Model – Problems
 Inflexible point-solutions

 High-risk downstream capabilities

 Off-target initial release

Software Engineering Principles / Chapter 3 / 16 of 27


Spiral Model
 Views software development as a spiral process

 Divided into framework activities, called, task regions


 Understanding the Context

 Planning-tasks

 Risk analysis-tasks

 Engineering-tasks

 Construction & release

 Customer Evaluation-tasks

 Task regions vary from 3 to 6

Software Engineering Principles / Chapter 3 / 17 of 27


Spiral Model Contd…

Software Engineering Principles / Chapter 3 / 18 of 27


Spiral Model – Explanation
 Inner cycles represent the early phases of requirement analysis
along with prototyping

 Outer spirals are progressively representative of the classic


software life cycle

Software Engineering Principles / Chapter 3 / 19 of 27


Component Assembly Model
 Application is built from discrete executable components

 Application may be upgraded in smaller increments

 Components may be shared between applications

Software Engineering Principles / Chapter 3 / 20 of 27


Choosing a Process Model –
The Criteria
 Time frame available

 Execution of project

 Type of product/project being developed

 Detail in which specifications are available

 Having previous experience with similar projects

Software Engineering Principles / Chapter 3 / 21 of 27


Process Tailoring
 The process of adjusting the standard process of an organization

 Obtains a process that is suitable for the particular business or


technical needs of a project

 Happens at
 Macro Level

 Micro level

Software Engineering Principles / Chapter 3 / 22 of 27


Process Tailoring-Criteria
 Scope

 Formality

 Frequency

 Granularity

Software Engineering Principles / Chapter 3 / 23 of 27


Process Tailoring-
Influencing Factors
 Skill level of the team

 Peak team size

 Criticality of the application

Software Engineering Principles / Chapter 3 / 24 of 27


Web Engineering
 An adaptable and incremental process

 Populated by a set of framework activities


 Formulation

 Planning

 Analysis

 Modeling

 Page generation and testing


Customer evaluation

Software Engineering Principles / Chapter 3 / 25 of 27


Process Technology Tools
 Help software organizations
 Analyze their current process

 Organize work tasks

 Control and monitor progress

 Manage technical quality

 Example - Rational Unified Process


 Implements incremental approach

 Allow a software organization to build an automated model of


 Common process framework

 Task sets

 Umbrella activities

Software Engineering Principles / Chapter 3 / 26 of 27


Summary
 Software engineering is a discipline that integrates process, methods,
and tools for the development of computer software.
 A number of different process models for software engineering have
been proposed, each exhibiting strengths and weaknesses, but all having
a series of generic phases in common.
 Any process model goes through:
 Requirements definition

 Requirement analysis

 Preliminary design

 Detailed design

 Coding

 Testing

 Integration

 Operations and maintenance

 The software process models can be broadly categorized into Linear


process models and Evolutionary software process models.

Software Engineering Principles / Chapter 3 / 27 of 27

You might also like