Software Engineering Perspective and Specialized Process Models

5,761 views 47 slides May 20, 2024
Slide 1
Slide 1 of 47
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47

About This Presentation

Perspective and Specialized Process Models – Waterfall model – Spiral Model – V shaped model – RAD model – Iterative Model – Prototype model.


Slide Content

Software Engineering
KCS-601, Unit-I, 1.3
Dr APJ Abdul KalamTechnical
University, Lucknow
By
Dr AnuranjanMisra
1
Dr AnuranjanMisra
innovation
Ambassador
Ministry of Education,
Government of India
& Professor & Dean,
GNIOT, Greater Noida

Perspective and Specialized
Process Models

AGENERICPROCESSMODEL

Aprocesswasdefinedasacollectionofworkactivities,actions,andtasks
thatareperformedwhensomeworkproductistobecreated.Eachofthese
activities,actions,andtasksresidewithinaframeworkormodelthatdefines
theirrelationshipwiththeprocessandwithoneanother.

ThesoftwareprocessisrepresentedschematicallyinFigure2.1.Referring

ThesoftwareprocessisrepresentedschematicallyinFigure2.1.Referring
tothefigure,eachframeworkactivityispopulatedbyasetofsoftware
engineeringactions.

Eachsoftwareengineeringactionisdefinedbyatasksetthatidentifiesthe
worktasksthataretobecompleted,theworkproductsthatwillbe
produced,thequalityassurancepointsthatwillberequired,andthe
milestonesthatwillbeusedtoindicateprogress.


Agenericprocessframeworkforsoftwareengineeringdefines
fiveframework activities—communication,planning,
modeling,construction,anddeployment.Inaddition,asetof
umbrellaactivities—projecttrackingandcontrol,risk
management,qualityassurance,configurationmanagement,
technicalreviews,andothers—areappliedthroughoutthe
process.

Alinearprocessflowexecuteseachofthefiveframework

Alinearprocessflowexecuteseachofthefiveframework
activitiesinsequence,beginningwithcommunicationand
culminatingwithdeployment(Figure2.2a).

Aniterativeprocessflowrepeatsoneormoreofthe
activitiesbeforeproceedingtothenext(Figure2.2b).

Anevolutionaryprocessflowexecutestheactivitiesina
“circular”manner.
(Figure2.2c).

Aparallelprocessflow(Figure2.2d)executesoneormore
activitiesinparallelwithotheractivities.

Typical umbrella activities include:
Software project tracking and control—allows the software team to assess
progress against the project plan and take any necessary action to maintain
the schedule.
Risk management—assesses risks that may affect the outcome of the project
or the quality of the product.
Software quality assurance—defines and conducts the activities required to
ensure software quality
Technical reviews—assessessoftware engineering work products in an effort
to uncover and remove errors before they are propagated to the next activity.to uncover and remove errors before they are propagated to the next activity.
Measurement—defines and collects process, project, and product measures
that assist the team in delivering software that meets stakeholders‘ needs;
can be used in conjunction with all other framework and umbrella activities.
Software configuration management—manages the effects of change
throughout the software process.
Reusability management—defines criteria for work product reuse and
establishes mechanisms to achieve reusable components.
Work product preparation and production—encompasses the activities
required to create work products such as models, documents, logs, forms,
and lists.

PRESCRIPTIVEPROCESSMODELS

TheWaterfall Model

Spiral Model

V Shaped Model

V Shaped Model

RAD Model

Iterative Model

Prototype Model

TheWaterfallModel

Thewaterfallmodel,sometimescalledtheclassiclifecycle,suggestsa
systematic, sequential approach to software development that begins with
customer specification of requirements and progresses through planning,
modeling,construction,anddeployment.Linear-sequential modelor
classic life cycle model.classic life cycle model.

Features of waterfall model
:
•It is very simple to understand and use.
•In a waterfall model, each phase must be completed
fully before the next phase can begin.
•This type of model is basically used for the for the
project which is small and there are no uncertain
requirements.
•At the end of each phase, a review takes place to
determine if the project is on the right path and
whether or not to continue or discard the project.
•Testing phase starts only after the development is
complete.
•In waterfall model phases do not overlap.
•Documentation is produced in each and every step

Advantagesofwaterfall model-

Thismodelworksforsmallprojectsbecausetherequirementsare
understoodverywell.

Thewaterfallmodelissimpleandeasytounderstand,implement,
anduse.

Alltherequirementsareknownatthebeginningoftheproject,
henceitiseasytomanage.

Documentation helps for future reference

Documentation helps for future reference
Disadvantagesofthewaterfallmodel

Theproblemswiththismodelareuncovered,untilthesoftware
testing.

Requirement analysis is done initially, sometime its nit possible
to state all requirements initially.

Theamountofriskishigh.

Thismodelisnotgoodforcomplexandobjectorientedprojects.

Customer can see the model only at the end

When to use the waterfall model:
•This model is used only when the requirements
are very well known, clear and fixed.
•Product definition is stable.
•Technology is understood.•Technology is understood.
•There are no ambiguous requirements
•The project is short.

Iterative Waterfall Model

TheSpiralmodel

Spiral model is a risk driven process model.

Spiral model is iterative in nature

In spiral model, an alternate solution is provided if the risk is
found in the risk analysis, then alternate solutions are suggested
and implemented.and implemented.

It is a combination of prototype and sequential model or
waterfall model.

In one iteration all activities are done, for large project's the
output is small.

The framework activities of the spiral model are as shown in
the following figure.

•The spiral model is similar to the incremental model, with
more emphasis placed on risk analysis.
•The spiral model has four phases: Planning, Risk Analysis,
Engineering and Evaluation.
•A software project repeatedly passes through these phases in •A software project repeatedly passes through these phases in
iterations (called Spirals in this model).
•The baseline spiral, starting in the planning phase,
requirements is gathered and risk is assessed.
•Each subsequent spiral builds on the baseline spiral.

Planning Phase:
Requirements are gathered during the planning phase.
Requirements like ‛BRS‘ that is ‛Business Requirement
Specifications’ and SRS‘ that is System Requirement
specifications’.
Risk Analysis:
In the risk analysis phase, a process is undertaken to identify
risk and alternate solutions.
A prototype is produced at the end of the risk analysis phase.A prototype is produced at the end of the risk analysis phase.
If any risk is found during the risk analysis then alternate
solutions are suggested and implemented.
Engineering Phase:
In this phase software is developed, along with testing at the
end of the phase.
Hence in this phase the development and testing is done.
Evaluation phase:
This phase allows the customer to evaluate the output of the
project to date before the project continues to the next spiral.

Advantages ofSpiralModel

Itreduceshighamountofrisk.

Itisgoodforlargeandcriticalprojects.

Itgivesstrongapprovalanddocumentationcontrol.

Requirement changes can be made easily at every stage.

Additional Functionality can be added at a later date.

Inspiralmodel,thesoftwareisproducedearlyinthelifecycleprocess.

Inspiralmodel,thesoftwareisproducedearlyinthelifecycleprocess.DisadvantagesofSpiralModel

Itcanbecostlytodevelopasoftwaremodel.

Itisnotusedforsmallprojects.

Risk analysis requires highly specific expertise.

Project‘s success is highly dependent on the risk analysis phase

When to use Spiral model:
•When costs and risk evaluation is important
•When project is not expected within a specific limited time span
•For medium to high-risk projects
•Users are unsure of their needs
•Requirements are complex.
•Significant changes are expected (research and exploration)

V-Shaped Model means Verification and Validation model. A
variation in the representation of the waterfall model is called the V-
Shaped Model.
Just like the waterfall model, the V-Shaped life cycle is a sequential
V-Shaped Model
path of execution of processes.
Each phase must be completed before the next phase begins.
Testing of the product is planned in parallel with a corresponding
phase of development


AsasoftwareteammovesdowntheleftsideoftheV,basicproblem
requirementsarerefinedintoprogressivelymoredetailedandtechnical
representationsoftheproblemanditssolution.

Oncecodehasbeengenerated,theteammovesuptherightsideoftheV,
essentiallyperformingaseriesoftests(qualityassuranceactions)that
validateeachofthemodelscreatedastheteammoveddowntheleftside.

Phases of V-Model
Requirements
•Requirements like BRS and SRS begin the life cycle model just
like the waterfall model.
•But, in this model before development is started, a system test
plan is created.
•The test plan focuses on meeting the functionality specified in
the requirements gathering.
The high-level design (HLD)
•This phase focuses on system architecture and design.
•It provides overview of solution, platform, system, product and
service/process.
•An integration test plan is created in this phase as well in order
to test the pieces of the software systems ability to work
together
.

Phases of V-Model
The low-level design (LLD)
•This phase is where the actual software components are designed.
•It defines the actual logic for each and every component of the
system.
•Class diagram with all the methods and relation between classes
comes under LLD.
•Component tests are created in this phase as well.
ImplementationImplementation
•In this phase , all coding takes place.
•Once coding is complete, the path of execution continues up the
right side of the V where the test plans developed earlier are now
put to use.
Coding
•This is at the bottom of the V-Shape model.
•Module design is converted into code by developers.

Advantages of V-model
•Simple and easy to use.
•Testing activities like planning, test designing happens well before
coding. This saves a lot of time. Hence higher chance of success
over the waterfall model.
•Proactive defect tracking –that is defects are found at early stage.
•Avoids the downward flow of the defects.
•Works well for small projects where requirements are easily •Works well for small projects where requirements are easily
understood.
Disadvantages of V-model
•Very rigid and least flexible.
•Software is developed during the implementation phase, so no
early prototypes of the software are produced.
•If any changes happen in midway, then the test documents along
with requirement documents has to be updated

When to use the V-model
•TheV-shapedmodelshouldbeusedforsmalltomedium
sizedprojectswhererequirementsareclearlydefinedand
fixed.
•TheV-Shapedmodelshouldbechosenwhenample•TheV-Shapedmodelshouldbechosenwhenample
technicalresourcesareavailablewithneededtechnical
expertise.
•High confidence of customer is required for choosing the V-
Shaped model approach. Since, no prototypes are produced,
there is a very high risk involved in meeting customer
expectations.

RAD Model/(RAPID APPLICATION DEVELOPMENT MODEL)
•RAD model is a type of incremental process model in which
there is extremely short development cycle.
•It is a type of incremental model.
•In RAD model the components or functions are developed in •In RAD model the components or functions are developed in
parallel as if they were mini projects.
•The developments are time boxed, delivered and then
assembled into a working prototype.
•This can quickly give the customer something to see and use
and to provide feedback regarding the delivery and their
requirements.

Features of RAD model
•Using a RAD Model, a software product can be developed
within 60 to 90 days of time.
•Various phases of RAD model are
•Requirement gathering,
•Planning,•Planning,
•Analysis,
•Design and
•Deployment
When to use RAD model
•When there is a need to create a system 2-3 months of
time.
•Only when the resources with high business knowledge
are available

Advantages of the RAD model:
•Reduced development time.
•Increases reusability of components
•Quick initial reviews occur
•Encourages customer feedback
•Integration from very beginning solves a lot of integration
issues.
Disadvantages of RAD Model:Disadvantages of RAD Model:
•Requires highly skilled developers/designers.
•Requires multiple teams and large number of people to
work on a project.
•Need Heavy resources
•If there is no proper modularization, then RAD project
would fail.
•Adopting new technologies is difficult.

IterativeProcessModels
•Theiterativedevelopmentmodeldevelopsasystem
bybuildingsmallportionsofallthefeatures.This
helpstomeettheinitialscopequicklyandreleaseit
forfeedback.
•Intheiterativemodel,youstartoffbyimplementing•Intheiterativemodel,youstartoffbyimplementing
asmallsetofsoftwarerequirements.Theseare
thenenhancediterativelyintheevolvingversions
untilthesystemiscompleted.Thisprocessmodel
startswithpartofthesoftware,whichisthen
implementedandreviewedtoidentifyfurther
requirements.

In this Iterative model, the whole requirement is divided into
various builds. During each iteration, the development module
goes through the requirements, design, implementation and
testing phases. Each subsequent release of the module adds
function to the previous release. The process continues till the
complete system is ready as per the requirement.

Thismodelismostoftenusedinthefollowingscenarios−
•Requirementsofthecompletesystemareclearlydefinedand
understood.
•Majorrequirementsmustbedefined;however,some
functionalitiesorrequestedenhancementsmayevolvewithtime.
•Thereisatimetothemarketconstraint.•Thereisatimetothemarketconstraint.
•Anewtechnologyisbeingusedandisbeinglearntbythe
developmentteamwhileworkingontheproject.
•Resourceswithneededskillsetsarenotavailableandareplanned
tobeusedoncontractbasisforspecificiterations.
•Therearesomehigh-riskfeaturesandgoalswhichmaychangein
thefuture.

Advantages of Iterativemodel
•The advantages of the and Incremental SDLC Model are as
follows −
•Some working functionality can be developed quickly and
early in the life cycle.
•Results are obtained early and periodically.
•Parallel development can be planned.•Parallel development can be planned.
•Progress can be measured.
•Less costly to change the scope/requirements.
•Testing and debugging during smaller iteration is easy.
•Risks are identified and resolved during iteration; and each
iteration is an easily managed milestone.
•Easier to manage risk -High risk part is done first.
•With every increment, operational product is delivered.

Advantages of Iterativemodel
•Issues, challenges and risks identified from each increment
can be utilized/applied to the next increment.
•Risk analysis is better.
•It supports changing requirements.
•Initial Operating time is less.•Initial Operating time is less.
•Better suited for large and mission-critical projects.
•During the life cycle, software is produced early which
facilitates customer evaluation and feedback.

ThePrototypingmodel

Prototypeisdefinedasfirstorpreliminaryformusing
whichotherformsarecopiedorderived.

Prototypemodelisasetofgeneralobjectivesfor
software.

Itdoesnotidentifytherequirementslikedetailed
input,output.input,output.

Itissoftwareworkingmodeloflimitedfunctionality.

Inthismodel,workingprogramsarequickly
produced.
•It is difficult to do modifications in earlier development
phases of linear model. In such cases Iterative approach is
adopted.
•The evolutionary process model is iterative model

Features of Prototypingmodel
•Thebasicideahereisthatinsteadoffreezingthe
requirementsbeforeadesignorcodingcanproceed,a
throwawayprototypeisbuilttounderstandtherequirements.
•Thisprototypeisdevelopedbasedonthecurrentlyknown
requirements.
•Byusingthisprototype,theclientcangetanactualfeelofthe
system,sincetheinteractionswithprototypecanenablethesystem,sincetheinteractionswithprototypecanenablethe
clienttobetterunderstandtherequirementsofthedesired
system.
•Prototypingisanattractiveideaforcomplicatedandlarge
systemsforwhichthereisnomanualprocessorexisting
systemtohelpdeterminingtherequirements.
•Theprototypeisusuallynotcompletesystemsandmanyof
thedetailsarenotbuiltintheprototype.Thegoalisto
provideasystemwithoverallfunctionality
.

ThedifferentphasesofPrototypingmodelare:
1.Communication
Inthisphase,developerandcustomermeetanddiscuss
theoverallobjectivesofthesoftware.
2.Quickdesign
Quickdesignisimplementedwhenrequirementsare
known.Itincludesonlytheimportantaspectslikeinputknown.Itincludesonlytheimportantaspectslikeinput
andoutputformatofthesoftware.Itfocusesonthose
aspectswhicharevisibletotheuserratherthanthedetailed
plan.Ithelpstoconstructaprototype.
3.Modelingquickdesign
Thisphasegivestheclearideaaboutthedevelopmentof
softwarebecausethesoftwareisnowbuilt.Itallowsthe
developertobetterunderstandtheexactrequirements.

ThedifferentphasesofPrototypingmodelare:
4.Constructionofprototype
Theprototypeisevaluatedbythecustomeritself.
5.Deployment,delivery,feedback5.Deployment,delivery,feedback
Iftheuserisnotsatisfiedwithcurrentprototypethenitrefines
accordingtotherequirementsoftheuser.Theprocessof
refiningtheprototypeisrepeateduntilalltherequirementsof
usersaremet.Whentheusersaresatisfiedwiththe
developedprototypethenthesystemisdevelopedonthebasis
offinalprototype.

AdvantagesofPrototypingModel

Prototypemodelneednotknowthedetailedinput,output,processes,
adaptabilityofoperatingsystemandfullmachineinteraction.

Inthedevelopmentprocessofthismodelusersareactivelyinvolved.

Thedevelopmentprocessisthebestplatformtounderstandthesystemby
theuser.

Errorsaredetectedmuch earlier.

Givesquickuserfeedbackforbettersolutions.

Itidentifiesthemissingfunctionalityeasily.Italsoidentifiestheconfusing

Itidentifiesthemissingfunctionalityeasily.Italsoidentifiestheconfusing
ordifficultfunctions.
DisadvantagesofPrototypingModel:

The clientinvolvementismoreanditisnotalwaysconsideredbythe
developer.

Itisaslowprocessbecauseittakesmoretimefordevelopment.

Manychangescandisturbtherhythmofthedevelopmentteam.

Itisathrownawayprototypewhentheusersareconfusedwithit.

When to use Prototype model:
Prototype model should be used when the desired system needs to
have a lot of interaction with the end users.
•Typically, online systems, web interfaces have a very high
amount of interaction with end users, are best suited for
Prototype model.
•It might take a while for a system to be built that allows ease of
use and needs minimal training for the end user.
•Prototyping ensures that the end users constantly work with the
system and provide a feedback which is incorporated in the
prototype to result in a useable system.
•They are excellent for designing good human computer interface
systems.

Disadvantages of Iterativemodel
•More resources may be required.
•Although cost of change is lesser, but it is not very suitable for changing
requirements.
•More management attention is required.
•System architecture or design issues may arise because not all •System architecture or design issues may arise because not all
requirements are gathered in the beginning of the entire life cycle.
•Defining increments may require definition of the complete system.
•Not suitable for smaller projects.
•Management complexity is more.
•End of project may not be known which is a risk.
•Highly skilled resources are required for risk analysis.
•Projects progress is highly dependent upon the risk analysis phase.