You are on page 1of 50

Object-Oriented Software Engineering

Practical Software Development using UML and Java


Chapter11:
ManagingtheSoftwareProcess

11.1 What is Project Management?


Projectmanagementencompassesalltheactivities
neededtoplanandexecuteaproject:
Decidingwhatneedstobedone
Estimatingcosts
Ensuringtherearesuitablepeopletoundertakethe
project
Definingresponsibilities
Scheduling
Makingarrangementsforthework
continued...

Lethbridge/

Chapter 11: Managing the Softw

What is Project Management?


Directing
Beingatechnicalleader
Reviewingandapprovingdecisionsmadebyothers
Buildingmoraleandsupportingstaff
Monitoringandcontrolling
Coordinatingtheworkwithmanagersofotherprojects
Reporting
Continuallystrivingtoimprovetheprocess

Lethbridge/

Chapter 11: Managing the Softw

11.2 Software Process Models


Softwareprocessmodelsaregeneralapproachesfor
organizingaprojectintoactivities.
Helptheprojectmanagerandhisorherteamtodecide:
Whatworkshouldbedone;
Inwhatsequencetoperformthework.
Themodelsshouldbeseenasaidstothinking,notrigid
prescriptionsofthewaytodothings.
Eachprojectendsupwithitsownuniqueplan.

Lethbridge/

Chapter 11: Managing the Softw

The opportunistic approach

First
Prototype

Lethbridge/

Modify
Until
Satisfied

Think of Idea
for
Improvement

Chapter 11: Managing the Softw

The opportunistic approach


iswhatoccurswhenanorganizationdoesnotfollow
goodengineeringpractices.
Itdoesnotacknowledgetheimportanceofworkingout
therequirementsandthedesignbeforeimplementinga
system.
Thedesignofsoftwaredeterioratesfasterifitisnotwell
designed.
Sincetherearenoplans,thereisnothingtoaimtowards.
Thereisnoexplicitrecognitionoftheneedfor
systematictestingandotherformsofqualityassurance.
Theaboveproblemsmakethecostofdevelopingand
maintainingsoftwareveryhigh.
Lethbridge/

Chapter 11: Managing the Softw

The waterfall model

Lethbridge/

Chapter 11: Managing the Softw

The waterfall model


TheclassicwayoflookingatS.E.thataccountsforthe
importanceofrequirements,designandqualityassurance.
Themodelsuggeststhatsoftwareengineersshouldworkin
aseriesofstages.
Beforecompletingeachstage,theyshouldperformquality
assurance(verificationandvalidation).
Thewaterfallmodelalsorecognizes,toalimitedextent,
thatyousometimeshavetostepbacktoearlierstages.

Lethbridge/

Chapter 11: Managing the Softw

Limitations of the waterfall model


Themodelimpliesthatyoushouldattempttocompletea
givenstagebeforemovingontothenextstage
Doesnotaccountforthefactthatrequirements
constantlychange.
Italsomeansthatcustomerscannotuseanything
untiltheentiresystemiscomplete.
Themodelmakesnoallowancesforprototyping.
Itimpliesthatyoucangettherequirementsrightby
simplywritingthemdownandreviewingthem.
Themodelimpliesthatoncetheproductisfinished,
everythingelseismaintenance.
Lethbridge/

Chapter 11: Managing the Softw

The phased-release model

Lethbridge/

Chapter 11: Managing the Softw 1

The phased-release model


Itintroducesthenotionofincrementaldevelopment.
Afterrequirementsgatheringandplanning,theproject
shouldbebrokenintoseparatesubprojects,orphases.
Eachphasecanbereleasedtocustomerswhenready.
Partsofthesystemwillbeavailableearlierthanwhen
usingastrictwaterfallapproach.
However,itcontinuestosuggestthatallrequirementsbe
finalizedatthestartofdevelopment.

Lethbridge/

Chapter 11: Managing the Softw 1

The spiral model

Lethbridge/

Chapter 11: Managing the Softw 1

The spiral model


Itexplicitlyembracesprototypingandaniterative
approachtosoftwaredevelopment.
Startbydevelopingasmallprototype.
Followedbyaminiwaterfallprocess,primarilyto
gatherrequirements.
Then,thefirstprototypeisreviewed.
Insubsequentloops,theprojectteamperformsfurther
requirements,design,implementationandreview.
Thefirstthingtodobeforeembarkingoneachnewloop
isriskanalysis.
Maintenanceissimplyatypeofongoingdevelopment.
Lethbridge/

Chapter 11: Managing the Softw 1

The evolutionary model

Lethbridge/

Chapter 11: Managing the Softw 1

The evolutionary model


Itshowssoftwaredevelopmentasaseriesofhills,each
representingaseparateloopofthespiral.
Showsthatloops,orreleases,tendtooverlapeachother.
Makesitclearthatdevelopmentworktendstoreacha
peak,ataroundthetimeofthedeadlineforcompletion.
Showsthateachprototypeorreleasecantake
differentamountsoftimetodeliver;
differingamountsofeffort.

Lethbridge/

Chapter 11: Managing the Softw 1

The concurrent engineering model

Lethbridge/

Chapter 11: Managing the Softw 1

The concurrent engineering model


It explicitly accounts for the divide and conquer
principle.
Each team works on its own component, typically
followingaspiralorevolutionaryapproach.
Therehastobesomeinitialplanning,andperiodic
integration.

Lethbridge/

Chapter 11: Managing the Softw 1

The Rational Unified process


Thisisthemostwidelyknownmethodologythat
embracesUML
Designedtobeadaptable
Suggestsaprocessframework
Adaptstotheprojectneeds
Usecasedrivendevelopment
Architecturecentricprocess

Lethbridge/

Chapter 11: Managing the Softw 1

Agile approaches
Theseapproachesencouragethedevelopmentofparticularlysmall
iterations
Well suited for small projects that involve uncertain, changing
requirementsandotherhighrisk
ThemostfamousagiletechniqueiseXtremeProgramming(XP)
Allstakeholdersworkcloselytogether
Userstoriesarewritteninsteadofrequirementdocument
There must be a series of small and frequent releases (1 to 3
weeks)
The project variable are: scope, resources and time (and
quality)
Testcasesarewrittenbeforethesoftwareisdeveloped
Alargeamountofrefactoringisencouraged
Pairprogrammingisrecommended

Lethbridge/

Chapter 11: Managing the Softw 1

Choosing a process model


Fromthewaterfallmodel:
Incorporatethenotionofstages.
Fromthephasedreleasemodel:
Incorporatethenotionofdoingsomeinitialhighlevelanalysis,
andthendividingtheprojectintoreleases.
Fromthespiralmodel:
Incorporateprototypingandriskanalysis.
Fromtheevolutionarymodel:
Incorporatethenotionofvaryingamountsoftimeandwork,
withoverlappingreleases.
Fromconcurrentengineering:
Incorporatethenotionofbreakingthesystemdowninto
componentsanddevelopingtheminparallel.

Lethbridge/

Chapter 11: Managing the Softw 2

Reengineering
Periodicallyprojectmanagersshouldsetasidesome
timetoreengineerpartorallofthesystem
Theextentofthisworkcanvaryconsiderably:
Cleaningupthecodetomakeitmorereadable.
Completelyreplacingalayer.
Refactoringpartofthedesign.
Ingeneral,theobjectiveofareengineeringactivityisto
increasemaintainability.

Lethbridge/

Chapter 11: Managing the Softw 2

11.3 Cost estimation


Toestimatehowmuchsoftwareengineeringtimewillbe
requiredtodosomework.
Elapsedtime
Thedifferenceintimefromthestartdatetotheend
dateofataskorproject.
Developmenteffort
Theamountoflabourusedinpersonmonthsor
persondays.
Toconvertanestimateofdevelopmentefforttoan
amountofmoney:
Youmultiplyitbytheweightedaveragecost(burdenedcost)
ofemployingasoftwareengineerforamonth(oraday).

Lethbridge/

Chapter 11: Managing the Softw 2

Principles of effective cost estimation


Principle1:Divideandconquer.
Tomakeabetterestimate,youshoulddividetheproject
upintoindividualsubsystems.
Thendivideeachsubsystemfurtherintotheactivities
thatwillberequiredtodevelopit.
Next,youmakeaseriesofdetailedestimatesforeach
individualactivity.
Andsumtheresultstoarriveatthegrandtotalestimate
fortheproject.

Lethbridge/

Chapter 11: Managing the Softw 2

Principles of effective cost estimation


Principle2:Includeallactivitieswhenmaking
estimates.
Thetimerequiredforalldevelopmentactivitiesmustbe
takenintoaccount.
Including:

Prototyping
Design
Inspecting
Testing
Debugging
Writinguserdocumentation
Deployment.

Lethbridge/

Chapter 11: Managing the Softw 2

Principles of effective cost estimation


Principle3:Baseyourestimatesonpastexperience
combinedwithknowledgeofthecurrentproject.
Ifyouaredevelopingaprojectthathasmanysimilarities
withapastproject:
Youcanexpectittotakeasimilaramountofwork.
Baseyourestimatesonthepersonaljudgementofyour
experts
or
Usealgorithmicmodelsdevelopedinthesoftwareindustry
asawholebyanalyzingawiderangeofprojects.
Theytakeintoaccountvariousaspectsofaprojects
sizeandcomplexity,andprovideformulastocompute
anticipatedcost.

Lethbridge/

Chapter 11: Managing the Softw 2

Algorithmic models
Allowyoutosystematicallyestimatedevelopmenteffort.
Basedonanestimateofsomeotherfactorthatyoucan
measure,orthatiseasiertoestimate:
Thenumberofusecases
Thenumberofdistinctrequirements
Thenumberofclassesinthedomainmodel
Thenumberofwidgetsintheprototypeuser
interface
Anestimateofthenumberoflinesofcode

Lethbridge/

Chapter 11: Managing the Softw 2

Algorithmic models
Atypicalalgorithmicmodelusesaformulalikethe
following:
COCOMO:
E = a + bNc
FunctionsPoints:
S = W1F1 + W2F2 +W3F3 +

Lethbridge/

Chapter 11: Managing the Softw 2

Principles of effective cost estimation


Principle4:Besuretoaccountfordifferenceswhen
extrapolatingfromotherprojects.
Differentsoftwaredevelopers
Differentdevelopmentprocessesandmaturitylevels
Differenttypesofcustomersandusers
Differentscheduledemands
Differenttechnology
Differenttechnicalcomplexityoftherequirements
Differentdomains
Differentlevelsofrequirementstability

Lethbridge/

Chapter 11: Managing the Softw 2

Principles of effective cost estimation


Principle5:Anticipatetheworstcaseandplanfor
contingencies.
Developthemostcriticalusecasesfirst
Iftheprojectrunsintodifficulty,thenthecritical
featuresaremorelikelytohavebeencompleted
Makethreeestimates:
Optimistic(O)
Imaginingaeverythinggoingperfectly

Likely(L)
Allowingfortypicalthingsgoingwrong

Pessimistic(P)
Accountingforeverythingthatcouldgowring

Lethbridge/

Chapter 11: Managing the Softw 2

Principles of effective cost estimation


Principle6:Combinemultipleindependentestimates.
Useseveraldifferenttechniquesandcomparetheresults.
Iftherearediscrepancies,analyzeyourcalculationsto
discoverwhatfactorscausingthedifferences.
UsetheDelphitechnique.
Severalindividualsinitiallymakecostestimatesin
private.
Theythensharetheirestimatestodiscoverthe
discrepancies.
Eachindividualrepeatedlyadjustshisorher
estimatesuntilaconsensusisreached.

Lethbridge/

Chapter 11: Managing the Softw 3

Principles of effective cost estimation


Principle7:Reviseandrefineestimatesaswork
progresses
Asyouadddetail.
Astherequirementschange.
Astheriskmanagementprocessuncoversproblems.

Lethbridge/

Chapter 11: Managing the Softw 3

11.4 Building Software Engineering Teams


Softwareengineeringisahumanprocess.
Choosingappropriatepeopleforateam,andassigning
rolesandresponsibilitiestotheteammembers,is
thereforeanimportantprojectmanagementskill
Softwareengineeringteamscanbeorganizedinmany
differentways

a) Egoless

b) Chief programmer

c) Strict hierarchy

Lethbridge/

Chapter 11: Managing the Softw 3

Software engineering teams


Egolessteam:
Insuchateameverybodyisequal,andtheteamworks
togethertoachieveacommongoal.
Decisionsaremadebyconsensus.
Mostsuitedtodifficultprojectswithmanytechnical
challenges.

Lethbridge/

Chapter 11: Managing the Softw 3

Software engineering teams


Hierarchicalmanagersubordinatestructure:
Eachindividualreportstoamanagerandisresponsible
forperformingthetasksdelegatedbythatmanager.
Suitableforlargeprojectswithastrictschedulewhere
everybodyiswelltrainedandhasawelldefinedrole.
However,sinceeverybodyisonlyresponsiblefortheir
ownwork,problemsmaygounnoticed.

Lethbridge/

Chapter 11: Managing the Softw 3

Software engineering teams


Chiefprogrammerteam:
Midwaybetweenegolessandhierarchical.
Thechiefprogrammerleadsandguidestheproject.
Heorsheconsultswith,andrelieson,individual
specialists.

Lethbridge/

Chapter 11: Managing the Softw 3

Choosing an effective size for a team


Foragivenestimateddevelopmenteffort,inperson
months,thereisanoptimalteamsize.
Doublingthesizeofateamwillnothalvethe
developmenttime.
Subsystemsandteamsshouldbesizedsuchthatthetotal
amountofrequiredknowledgeandexchangeof
informationisreduced.
Foragivenprojectorprojectiteration,thenumberof
peopleonateamwillnotbeconstant.
Youcannotgenerallyaddpeopleifyougetbehind
schedule,inthehopeofcatchingup.

Lethbridge/

Chapter 11: Managing the Softw 3

Skills needed on a team


Architect
Projectmanager
Configurationmanagementandbuildspecialist
Userinterfacespecialist
Technologyspecialist
Hardwareandthirdpartysoftwarespecialist
Userdocumentationspecialist
Tester

Lethbridge/

Chapter 11: Managing the Softw 3

11.5 Project Scheduling and Tracking


Schedulingistheprocessofdeciding:
Inwhatsequenceasetofactivitieswillbe
performed.
Whentheyshouldstartandbecompleted.
Trackingistheprocessofdetermininghowwellyouare
stickingtothecostestimateandschedule.

Lethbridge/

Chapter 11: Managing the Softw 3

PERT charts
APERTchartshowsthesequenceinwhichtasksmust
becompleted.
IneachnodeofaPERTchart,youtypicallyshowthe
elapsedtimeandeffortestimates.
Thecriticalpathindicatestheminimumtimeinwhichit
ispossibletocompletetheproject.

Lethbridge/

Chapter 11: Managing the Softw 3

Example of a PERT chart

Lethbridge/

Chapter 11: Managing the Softw 4

Gantt charts
AGanttchartisusedtographicallypresentthestart
andenddatesofeachsoftwareengineeringtask
Oneaxisshowstime.
Theotheraxisshowstheactivitiesthatwillbe
performed.
Theblackbarsarethetopleveltasks.
Thewhitebarsaresubtasks
Thediamondsaremilestones:
Importantdeadlinedates,atwhichspecificevents
mayoccur

Lethbridge/

Chapter 11: Managing the Softw 4

Example of a Gantt chart

Lethbridge/

Chapter 11: Managing the Softw 4

Earned value
Earnedvalueistheamountofworkcompleted,
measuredaccordingtothebudgetedeffortthatthework
wassupposedtoconsume.
Itisalsocalledthebudgetedcostofworkperformed.
Aseachtaskiscompleted,thenumberofpersonmonths
originallyplannedforthattaskisaddedtotheearned
valueoftheproject.

Lethbridge/

Chapter 11: Managing the Softw 4

Earned value charts


Anearnedvaluecharthasthreecurves:
Thebudgetedcostoftheworkscheduled.
Theearnedvalue.
Theactualcostoftheworkperformedsofar.

Lethbridge/

Chapter 11: Managing the Softw 4

Example of an earned value chart

Lethbridge/

Chapter 11: Managing the Softw 4

11.6 Contents of a Project Plan


A.
B.
C.
D.
E.
F.
G.
H.
I.

Purpose
Backgroundinformation
Processestobeused
Subsystemsandplannedreleases
Risksandchallenges
Tasks
Costestimates
Team
Scheduleandmilestones

Lethbridge/

Chapter 11: Managing the Softw 4

11.7 Difficulties and Risks in Project


Management
Accuratelyestimatingcostsisaconstantchallenge
Followthecostestimationguidelines.
Itisverydifficulttomeasureprogressandmeet
deadlines
Improveyourcostestimationskillssoastoaccount
forthekindsofproblemsthatmayoccur.
Developacloserrelationshipwithothermembersof
theteam.
Berealisticininitialrequirementsgathering,and
followaniterativeapproach.
Useearnedvaluechartstomonitorprogress.

Lethbridge/

Chapter 11: Managing the Softw 4

Difficulties and Risks in Project


Management
Itisdifficulttodealwithlackofhumanresourcesor
technologyneededtosuccessfullyrunaproject
Whendeterminingtherequirementsandtheproject
plan,takeintoconsiderationtheresourcesavailable.
Ifyoucannotfindskilledpeopleorsuitabletechnology
thenyoumustlimitthescopeofyourproject.

Lethbridge/

Chapter 11: Managing the Softw 4

Difficulties and Risks in Project


Management
Communicatingeffectivelyinalargeprojectishard
Takecoursesincommunication,bothwrittenand
oral.
Learnhowtoruneffectivemeetings.
Reviewwhatinformationeverybodyshouldhave,
andmakesuretheyhaveit.
Makesurethatprojectinformationisreadily
available.
Usegroupwaretechnologytohelppeople
exchangetheinformationtheyneedtoknow

Lethbridge/

Chapter 11: Managing the Softw 4

Difficulties and Risks in Project


Management
Itishardtoobtainagreementandcommitmentfrom
others
Takecoursesinnegotiatingskillsandleadership.
Ensurethateverybodyunderstands
Thepositionofeverybodyelse.
Thecostsandbenefitsofeachalternative.
Therationalebehindanycompromises.

Ensurethateverybodysproposedresponsibilityis
clearlyexpressed.
Listentoeverybodysopinion,buttakeassertive
action,whenneeded,toensureprogressoccurs.

Lethbridge/

Chapter 11: Managing the Softw 5

You might also like