软件工程导论绪论_第1页
软件工程导论绪论_第2页
软件工程导论绪论_第3页
软件工程导论绪论_第4页
软件工程导论绪论_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AnIntroductiontoSoftwareEngineering,Objectives,IntroducesoftwareengineeringandtoexplainitsimportanceSetouttheanswerstokeyquestionsaboutsoftwareengineering,FAQsaboutsoftwareengineering,Whatissoftwareengineering?Whatisthedifferencebetweensoftwareengineering,computerscience,andsystemsengineering?Whatisthesoftwarecrisis?Whatarethecostsofsoftwareengineering?Whatissoftwareandwhataretheattributesofgoodsoftware?Whatisasoftwareprocessandasoftwareprocessmodel?Whataresoftwareengineeringmethods?WhatisCASE(Computer-AidedSoftwareEngineering)Whatarethekeychallengesfacingsoftwareengineering?,Whatissoftwareengineering?,“Theestablishmentanduseofsoundengineeringprinciplesinordertoobtaineconomicallybuiltsoftwarethatisreliableandworksefficientlyonrealmachines.”,“SoftwareEngineering:(1)Theapplicationofasystematic,disciplines,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware;thatistheapplicationofengineeringtosoftware.(2)Thestudyofapproachesasin(1).”,IEEEDefinition(1993),ClassicDefinition(1969),FromWikipedia,“Softwareengineeringistheapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operation,andmaintenanceofsoftware.,SoftwareEngineeringvs.ComputerScience,Computerscienceisconcernedwiththeoryandfundamentals;softwareengineeringisconcernedwiththepracticalitiesofdevelopinganddeliveringusefulsoftware.Computersciencetheoriesarestillinsufficienttoactasacompleteunderpinningforsoftwareengineering(unlikee.g.physicsandelectricalengineering).,SoftwareEngineeringvs.ComputerScience,COMPUTERSCIENCE,CUSTOMER,SOFTWAREENGINEERING,Theories,ComputerFunctions,Problem,ToolsandTechniquestoSolveProblem,Softwarevs.Hardware,Youcantsee,touch,orfeelsoftwareSoftwareisonlyengineered,notmanufacturedSoftwaredoesntwearoutSoftwareiscomplexSoftwareisadifferentiatorSoftwarecanbehavelikeanagingfactory,Communicationisacriticalelement.,SoftwareEngineeringvs.SystemEngineering,Systemengineeringisconcernedwithallaspectsofcomputer-basedsystemsdevelopmentincludinghardware,softwareandprocessengineering.Softwareengineeringispartofthisprocessconcernedwithdevelopingthesoftwareinfrastructure,control,applicationsanddatabasesinthesystem.Systemengineersareinvolvedinsystemspecification,architecturaldesign,integrationanddeployment.,WhattoStudyinSoftwareEngineering?,ProductsproducedProcessesusedtoproducetheproducts,Thefinalproductsaresoftwarecomponents.Theymaybefullyexecutablescomponents,programs,modules,systems,orsimplymethods.Therearemanysoftwaredeliverablesbetweenthespecificationoftheproductsandtheactualproducts.,Thesoftwaredevelopmentlifecycledescribesthedevelopmentprocessforproducingsoftwareproducts.Howevertherearemanyotheritemswithintheprocess.Wewillinvestigatethefullprocessofsoftwareengineering.,Somecorequestions,Whatisthesoftwareproduct?Whodoessoftwareengineeringoftheproduct?Whyissoftwareimportant?Whatarethestepsinsoftwareengineering?Whatistheworkproductoftheengineeringprocess?Howdoweensureproductsarebuiltcorrectlyandthatthecorrectproductisbuilt?,ProblemsBehindthe“SoftwareCrisis”,IncreasedsizeandcomplexityofsystemsCostoverrunsDesignbugsafterimplementationMaintenancerippleeffectRequirementsanddesignneededdevelopmenttools,notjustintheprogrammingtools,SoftwareCrisis,ResearchfromStandishGroupDataon9236developmentprojectscompletedin2004.,AbandonedorCancelledProjects,SoftwareCrisis,2002surveyofinformationtechnologyorganizationsbyCutterConsortiumData78%havebeeninvolvedindisputesendinginlitigationIn67%ofthedisputes,thefunctionalityoftheinformationsystemasdelivereddidnotmeetuptotheclaimsofthedevelopersIn56%ofthedisputes,thepromiseddeliverydateslippedseveraltimesIn45%ofthedisputes,thedefectsweresoseverethattheinformationsystemwasunusable,NewAspectsofCrisis,(In)security-wehaveallowedourselvestobecometoodependentonsoftware(andhardware)thatwasneverdesignedtoberobustorsecureOvercomplexity-competitionformorefeatures,easeofuse,andintegrationaremakingproductstoolargetocomprehendandmaintainInternationalizationthisisaproblemfortheUS,whichhasbeenpresumptuouslycomplacentaboutitsleadershipSoftwarepatents-theselegallandminesarebeginningtochokethesoftwareindustryRapidchangestowerofBabel,multicore,etc.,WeaponsAgainstSoftwareCrisis,ImprovingsoftwareengineeringmethodologiesHigh-levellanguagesandtoolsthatencourageandenforcetheseprinciples,SoftwareEngineeringDefinition,Thesoftwarecrisisyieldedyetanotherdefinitionofsoftwareengineering:Disciplinewhoseaimistheproductionoffault-freesoftware,deliveredontimeandwithinbudget,thatsatisfiestheclientsneeds.,CostsofSoftwareEngineering,Softwarecostsdominatecomputersystemscosts.Roughly60%ofcostsaredevelopmentcosts,40%aretestingcosts.Forcustomsoftware,evolutioncostsoftenexceeddevelopmentcosts.Softwaremaintenancecostsaremorethansoftwaredevelopmentcosts.Forsystemswithalonglifethemaintenancemaybeseveraltimesthedevelopmentcosts.Andoftenevenbadsoftwarehasalonglife.,CostsofSoftwareEngineering,Costsvarydependingonthetypeofsystembeingdeveloped.Thecostsdependoftherequirementsofsystemattributessuchasperformanceandsystemreliabilityaswellasthecomplexityofthetypeofsystembeingdeveloped.Distributionofcostsdependsonthedevelopmentmodelthatisused.,Activitycostdistribution,Productdevelopmentcosts,MaintenanceCosts,(a)Between1976and1981(b)Between1992and1998,ChangingViewofMaintenance,PostdeliverymaintenanceDevelopment-then-maintenancemodelTemporaldefinitionModernmaintenanceOccurswheneverafaultisfixedortherequirementschange,irrespectiveofwhetherittakesplacebeforeorafterinstallationoftheproduct,WhySoCostly?,TocorrectafaultearlyinthelifecycleUsuallyjustadocumentneedstobechangedTocorrectafaultlateinthelifecycleChangethecodeandthedocumentationTestthechangeitselfPerformregressiontestingReinstalltheproductontheclientscomputer(s),Wearvs.Deterioration,RogerS.Pressman,SoftwareEngineering:APractitionersApproach,FourthEdition1997,TheCostofChange,RogerS.Pressman,Chapter1Page19,SoftwareEngineering:APractitionersApproach,FourthEdition1997,WhatisaSoftwareProduct?,Asetofitemsorobjectscalledaconfiguration.Itincludesthingslike:MultipleseparateprogramsConfigurationfileswhichareusedtosetuptheseprogramsSystemdocumentationwhichdescribesthestructureofthesystemDeveloperandUserdocumentationwhichexplainshowtousethesystemDataforthesystemWebsitesforuserstodownloadrecentproductinformation,Whatissoftware?,Computerprogramsandassociateddocumentationsuchasrequirements,designmodelsandusermanuals.Softwareproductsmaybedevelopedforaparticularcustomerormaybedevelopedforageneralmarket.Newsoftwarecanbecreatedbydevelopingnewprograms,configuringgenericsoftwaresystemsorreusingexistingsoftware.,Whatissoftware?,SoftwareproductsmaybeGENERICdevelopedtobesoldtoarangeofdifferentcustomerse.g.PCsoftwaresuchasExcelorWord.referredtoascommercialoff-the-shelf(COTS)softwareorclickwaresuppliedbyavendorBESPOKE(custom)-developedforasinglecustomeraccordingtotheirspecification.Productspecificationcontrolledbytheproductdeveloper,SoftwareTerminology,Open-sourcesoftwareDevelopedandmaintainedbyateamofvolunteersMaybedownloadedandusedfreeofchargeExamples:LinuxoperatingsystemFirefoxwebbrowserApachewebserver,SoftwareTypes,systemsoftwarereal-timesoftwarebusinesssoftwareengineering/scientificsoftwareembeddedsoftwarePCsoftwareAIsoftwareWebApps(Webapplications),Whataretheattributesofgoodsoftware?,Thesoftwareshoulddelivertherequiredfunctionalityandperformancetotheuserandshouldbemaintainable,dependableandacceptable.MaintainabilitySoftwaremustevolvetomeetchangingneeds;DependabilitySoftwaremustbetrustworthy;EfficiencySoftwareshouldnotmakewastefuluseofsystemresources;AcceptabilitySoftwaremustacceptedbytheusersforwhichitwasdesigned.Thismeansitmustbeunderstandable,usableandcompatiblewithothersystems.,Whataretheattributesofgoodsoftware?,FromtheUsersPerspectiveCorrectnessReliabilityEfficiencyMaintainabilityUsabilityRobustnessFromtheDevelopersPerspectiveConsistencyUnderstandabilityTestabilityCompactnessCompatibilityIntegrity,SoftwareProcess,AsetofactivitiesandassociatedresultswhichproduceasoftwareproductIncorporatesasoftwarelife-cyclemodel,techniques,thetoolsused,andthesoftwaredevelopers,Whatisasoftwareprocessmodel?,Asimplifiedrepresentationofasoftwareprocess,presentedfromaspecificperspective.ExamplesofprocessperspectivesareWorkflowperspective-sequenceofactivities;Data-flowperspective-informationflow;Role/actionperspective-whodoeswhat.GenericprocessmodelsWaterfall;Iterativedevelopment;Component-basedsoftwareengineering.,SoftwareLife-cycleModels,Specifiesthevariousphasesofthesoftwareprocessandtheorderinwhichtheyaretobecarriedout.CoveredinChapter1Dennis,Whataresoftwareengineeringmethods?,Structuredapproachestosoftwaredevelopmentwhichincludesystemmodels,notations,rules,designadviceandprocessguidance.ModeldescriptionsDescriptionsofgraphicalmodelswhichshouldbeproduced;RulesConstraintsappliedtosystemmodels;RecommendationsAdviceongooddesignpractice;ProcessguidanceWhatactivitiestofollow.,WhatisCASE?,Computer-AidedSoftwareEngineeringSoftwaresystemsthatareintendedtoprovideautomatedsupportforsoftwareprocessactivities.CASEsystemsareoftenusedformethodsupport.Upper-CASEToolstosupporttheearlyprocessactivitiesofrequirementsanddesign;Lower-CASEToolstosupportlate

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论