Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Software Development Life Cycle
Models
Whenwedecidetodevelopasoftware,manyinitialquestionsfocusingon
theneedofthesoftwarecomeintoourmind,suchas
o“Woulditbebettertoelectronicallygeneratemarksheets?,”or
o“Isthereanymarketforthewordprocessingsystem?,”or
oIsiteconomicallyviableifweelectronicallygeneratepayrollofan
employee?”
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Software Development Life Cycle
Models
Oncetheneedsaredetermined,the
softwaregoesthroughaseriesof
phasesofdevelopment.
Thesephasesincludeanalysis,design,
implementation,testing,maintenance,
andretirement.
Thesoftwareremainsusefulbetween
analysisandmaintenancephasesand
endswiththeretirementphase.
Theperiodfromwhichasoftwarestarts
tilltheretirementisknownaslifecycleof
asoftware.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Conventional Software Life Cycle
Models
Conventional software
development life cycle
Data flow diagrams
Entity Relationship
diagrams
Data dictionary
Structured chart
Pseudocode
Coding of
modules/functions
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Productisconstructedwithout
specificationsoranyattemptat
design
Adhocapproachandnotwell
defined
Simple two phase model Fix
Build
Code
Build and Fix Model
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Suitable for small programming exercises of 100 or 200 lines
Unsatisfactory for software for any reasonable size
Code soon becomes unfixable & unenhanceable
No room for structured design
Maintenance is practically not possible
Build and Fix Model
Waterfall Model
Requirement
analysis
Design
Implementation
and unit testing
Integration and
testing
Deployment and
maintenance
Preliminary design
Detailed design
Software Requirement
Specification Document, Software
project management plan
Design Document,
test plan
Test plan, test
cases, test
results
Operating
manuals
Source code listing
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Waterfall Model
Thephasesarecompletedinsequentialorderanddonotoverlapwith
eachother.
Eachphasedefinesitsownsetoffunctionsthataredistinctfromthoseof
theotherphases.
Eachphaseshouldbecompletedbeforethecommencementofthenext
phase.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Waterfall Model
Theadvantagesofwaterfallmodelinclude
itssimplicity,easeofunderstandability,and
distinctphaseswiththeirownsetof
functions.
Itishighlysuitablefortheprojectswhere
requirementsarecompletelyknowninthe
beginningoftheproject.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
UMLisapopularstandardforvisuallymodelingelementsof
thesystemandisgovernedbyObjectManagementGroup
(OMG).
UMLisalanguageforcreating,visualizinganddocumenting
variousdiagramsthatdepictdifferentaspectsofthe
software.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
Rational
Unified
Process
Ensuring Quality of
the Software
Iterative Software
Development
Effective Requirement
Capturing
Visual modeling
Use and Development
of Reusable
Components
Change Control
Management
Automated Testing
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
RUPoverview
Staticstructure:Itprovidestheprocessdescriptionin
termsofroles,activities,artifacts,disciplinesand
workflows.
Dynamicstructure:thedynamicaspectoftheprocess
canbeviewedintermsofiterativedevelopment.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Iterations & Workflow of Unified Process
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
Identification of
actors and use
cases
Definition of classes
Preparation of test plan
Review of requirement
SRS Document Use case
diagram
Use case
description
Sequence
diagram
Designer Manager Analyst Tester
Roles
Activities
Artifacts
Produces
Performs
Roles and activities
Mary
Rita
Ram
Hary
Designer
Use case creator
Requirement analyst
Tester
Class design
Identification of attributes
and functions
Create use case model
Describe use case
model
Prepare SRS
Creation of test plan
Execution of test cases
Person Role
Activities
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
Artifacts
Artifactsaretheoutputsproducedduringdevelopmentlife
cycleofthesoftware.
An activity performed by a role to produce an artifact. The
following are the examples of artifacts:
Software requirement specification
Use case model
Class model
Test plan
Source code
User manual
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
I: Inception
E: Elaboration
C: Construction
D: Deployment
Version 2
Version n
Final
Product
I
E
C
T
I
E
C
T
I
E
C
T
I
E
C
T
Version 1
Iterations
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
The essential activities of inception phase are:
Establishment of scope and boundary of the project.
Determination of cost and schedule of the project.
Identification of actors and use cases.
Development of initial iteration plan.
Determination of high level risks.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
The essential activities of elaboration phase are:
Establishment and validation of architectural baselines.
To address significant risks.
Design of use case model.
Selection of components and formation of policies for
their purchase and usage.
Creation of detailed iteration plans.
Development of prototypes.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
The essential activities of construction phase are:
Optimization of resources by avoiding rework and
unnecessary coding.
Assessment and verification of quality.
Testing all the functionalities of the product. Testing
activities include unit, integration, and system testing.
Object Oriented Software Engineering by Yogesh Singh & Ruchika Malhotra
Rational Unified Process
Transitionphaseincludesdelivering,trainingusersand
maintainingthesoftware.Elaborationinvolvesbeta
releases,bugfixesandenhancementreleases.
Vision document
Business case
Risk assessment
Software development plan
Iteration plan
Tools
Initial project glossary
Initial use case model
Project repository
Prototypes
Prototypes
Updated risk list
Development case
Software architecture
description document
Design & data model
Implementation model
Use case model
Detailed iteration plan
Test plan
Test automation architecture
Software product
Deployment plan
Test outline
Training materials
Test suite
Iteration plan
Design model
Implementation model
Documentation manuals
Product release
Release notes
Training material
End user support material
Beta test reports
Artifacts
Fish bone diagram showing the artifacts produced