SoftwareEngineering10–SolutionsManual©IanSommerville20141SoftwareEngineering10SolutionsManualIANSOMMERVILLEThesesolutionsaremadeavailableforinstructionalpurposesonly.Neithertheauthornorthepublisherwarrantsthecorrectnessofthesesolutionsnoracceptsanyliabilityfortheiruse.Solutionsmayonlybedistributedtostudentsanditisaconditionofdistributionthattheyareonlydistributedbyaccreditedinstructorsusing‘SoftwareEngineering,10hedition’asatextbook.Thesolutionsmaybemadeavailabletostudentsonapassword-protectedintranetbutmustnotbemadeavailableonapublicly-accessible–SolutionsManualIntroduction©IanSommerville20142SoftwareEngineering10–SolutionsManual©IanSommerville20143PrefaceThissolutionsmanualisintendedtohelpteachersofsoftwareengineeringcoursesinmarkinghomeworkquestionsforstudents.Eachchapterinthebookhas10exercisesofdifferenttypes,whichyoumaysetforstudentseitherasisorinamodifiedform.Ihavesuppliedanswersto50%oftheexercisesinthismanual.Theexercisesforwhichanswershavenotbeensuppliedare,generally,ofoneofthreetypes:1.Simpleexerciseswhoseanswerscanbefoundinthetextofthechapter.Therearetypicallyoneortwoofthesequestionsineachchapterandtheyareintendedtostimulatestudentstoreadthechapter.2.Designproblemsforwhichthereisarangeofsolutionsandyouhavetouseyourjudgmenttodecideifthesolutionisappropriate.Supplyingasolutionherewouldimplythatthereisonlyonerightanswertothequestion.3.Ethics-relatedquestionsastheaimofthesequestionsistoencouragestudentstothinkabouttheethicsissuesinvolved.Thenotionofarightandwronganswerdoesnotapplyinthiscaseasthestudent’sresponsetothequestiondependsbothontheirculturalbackgroundandontheirparticularviewsonatopic.Isuggestthatthesequestionsshouldbeusedtostimulateclassdiscussionsratherthanaspartofclasstests.Itisimportantwhenmarkingthestudent’sanswerstoexercisestoseethesuppliedsolutionsasaguideonlyratherthanadefinitivestatementoftheonlypossibleanswertothequestion.Itisgenerallygoodeducationalpracticetogivestudentscreditforwhattheyknowandiftheyproducecredibleanswersthatrevealtheyhavethoughtabouttheexerciseandhavesomeknowledgeofthetopic,thenthisshouldberewarded.Thissolutionsmanualmaybeusedinconjunctionwiththeassociatedquizbook,whichlistsshortquestionsandanswersforeachchapterinthebook.Thesecanbeusedforshortclassteststoassessifstudentshavereadthematerialorasself-assessmenttestswhichthestudentscompleteintheirowntime.IfyouthinkthatIhavemadeamistakeinsomeoftheseanswers(quitepossible),pleaseletmeknow.Insomecases,thereareobviouslyseveralpossibleanswersandyoumaydisagreewithmysolutions.I’dbedelightedtoconsiderincludingyouralternativesolutionsbutIdonothavetimetoengageindetailedemaildiscussionsabouttheexercisesinthebook.IanSommervilleOctober2014SoftwareEngineering10–SolutionsManualIntroduction©IanSommerville201441Introduction1.2Whatisthemostimportantdifferencebetweengenericsoftwareproductdevelopmentandcustomsoftwaredevelopment?Whatmightthismeaninpracticeforusersofgenericsoftwareproducts?Theessentialdifferenceisthatingenericsoftwareproductdevelopment,thespecificationisownedbytheproductdeveloper.Forcustomproductdevelopment,thespecificationisownedandcontrolledbythecustomer.Theimplicationsofthisaresignificant–thedevelopercanquicklydecidetochangethespecificationinresponsetosomeexternalchange(e.g.acompetingproduct)but,whenthecustomerownsthespecification,changeshavetobenegotiatedbetweenthecustomerandthedeveloperandmayhavecontractualimplications.Forusersofgenericproducts,thismeanstheyhavenocontroloverthesoftwarespecificationsocannotcontroltheevolutionoftheproduct.Thedevelopermaydecidetoinclude/excludefeaturesandchangetheuserinterface.Thiscouldhaveimplicationsfortheuser’sbusinessprocessesandaddextratrainingcostswhennewversionsofthesystemareinstalled.Italsomaylimitthecustomer’sflexibilitytochangetheirownbusinessprocesses.1.3Whatarethefourimportantattributesthatallprofessionalsoftwareshouldhave?Suggestfourotherattributesthatmaysometimesbesignificant.Fourimportantattributesaremaintainability,dependability,performanceandusability.Otherattributesthatmaybesignificantcouldbereusability(canitbereusedinotherapplications),distributability(canitbedistributedoveranetworkofprocessors),portability(canitoperateonmultipleplatformse.glaptopandmobileplatforms)andinter-operability(canitworkwithawiderangeofothersoftwaresystems).Decompositionsofthe4keyattributese.g.dependabilitydecomposestosecurity,safety,availability,etc.isalsoavalidanswertothisquestion.SoftwareEngineering10–SolutionsManual©IanSommerville201451.4Apartfromthechallengesofheterogeneity,businessandsocialchangeandtrustandsecurity,identifyotherproblemsandchallengesthatsoftwareengineeringislikelytofaceinthe21stcentury(hint:thinkabouttheenvironment).ProblemsandchallengesforsoftwareengineeringTherearemanypossiblechallengesthatcouldbeidentified.Theseinclude:1.Developingsystemsthatareenergy-efficient.ThismakesthemmoreusableonlowpowermobiledevicesandhelpsreducetheoverallcarbonfootprintofITequipment.2.Developingvalidationtechniquesforsimulationsystems(whichwillbeessentialinpredictin