Chapter-1-Why-Software-Engineering_第1页
Chapter-1-Why-Software-Engineering_第2页
Chapter-1-Why-Software-Engineering_第3页
Chapter-1-Why-Software-Engineering_第4页
Chapter-1-Why-Software-Engineering_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

WhySoftwareEngineering?,信息技术学院软件工程系郭烨,2014年09月,一、软件工程学科介绍,软件工程学科发展历史三个阶段:概念提出、学科雏形、学科确立第一阶段:概念提出1968年NATO会议(北大西洋公约组织的计算机科学家的国际会议)提出“软件工程”概念。当时对“软件工程”代表性定义:为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法。1972年IEEE学会的计算机分会IEEE一CS第一次出版了“软件工程学报”,第二阶段:学科雏形,上世纪70年代末,美国将软件工程教程列入研究生教育计划。1980年代末和1990年代初,软件工程教育得到卡内基一梅隆大学软件工程研究所(CMU/SEI)的支持。1991年,“软件工程”被ACM(美国计算机协会)和IEEE/CS列为计算学科的九个知识领域之一。1993年,IEEE一CS和ACM为了把软件工程建设成为一个专业,建立了IEEE一CS/ACM联合指导委员会。,第三阶段:学科确立,2004年8月,IEEE一CS和ACM给出:软件工程知识体(SWEBOK,SoftwareEngineeringBodyofKnowledge)软件工程教育知识体(SEEK)最终版,标志着软件工程学科在世界范围正式确立。软件工程、计算机科学、计算机工程、信息系统、信息技术并列成为计算学科下的独立学科。软件工程知识体(SWEBOK):全面描述了软件工程实践所需的知识。,SWEBOK(软件工程知识体10个领域,软件需求软件设计软件构造软件测试软件维护软件配置管理软件工程管理软件工程过程软件工程工具和方法软件质量,参考资料:1白征SWEBOK:软件工程知识体,计算机科学,2001年07期2万江平软件工程知识体系指南综述,计算机应用研究,2006年10期,SWEBOK详细结构(1),软件工程与其他学科的关系,1、软件工程是计算学科9个领域之一算法和数据结构计算机系统结构人工智能和机器人学数据库和信息检索人一机交互操作系统程序设计语言软件方法学和软件工程数字和符号计算,2、8个相关学科知识域,计算机工程计算机科学数学管理学项目管理质量管理系统工程学软件人类工程学其中:计算机科学、数学是基础工程学科、管理学科也非常重要,软件工程是一门什么样的学科?,是指导计算机软件开发与维护的一门工程学科。工程:将科学及数学原理运用于实际用途的应用手段,如:设计、制造、机器操纵、构架等。典型的传统工程:建筑工程、机械工程、电力工程等。概括的说,软件工程即用工程、科学和数学的原则和方法研制、维护计算机软件的有关技术及方法,其优点是以较小的代价开发高质量的软件并有效地维护它。,二、学习目标(1),掌握软件工程的基础知识和理论,对软件工程学有一个全貌的了解;熟悉软件项目开发和维护的一般过程;熟练掌握软件需求分析、设计、编码和测试等阶段的主要思想和技术方法;,二、学习目标(2),通过学习及课程设计,真正运用和体会软件工程的思想方法,转变对软件开发的认识:从个人的单纯编程活动转移到进行系统分析与设计方面上来转变思维定式:程序员系统工程师(系统分析员),1.郑人杰,殷人昆,陶永雷著,实用软件工程,清华大学出版社2.RogerS.Pressman,SoftwareEngineering:APractitionersApproach,FourthEdition,McGraw-HillRogerS.Pressman著,软件工程-实践者的研究方法,机械工业出版社3.EricJ.Braude著,SoftwareEngineeringAnObject-OrientedPerspective面向对象的软件工程,电子工业出版社(影印版)4.软件工程导论(第五版)张海藩编著,清华大学出版社,三、部分参考资料,14,四、课程特点和学习的注意事项,1、知易行难要将理论知识与实践运用结合,进行对照,以加深理解和掌握。2、内容纷杂软件工程涉及计算机科学、数学、工程科学和管理科学等多个领域。其中:计算机科学和数学用于构造模型与算法;工程科学用于制定规范、设计范型、评估成本及确定权衡管理科学用于计划、资源、质量和成本的管理。,Agenda,1.1WhatisSoftwareEngineering?1.2HowSuccessfulHaveWeBeen?1.3WhatIsGoodSoftware?1.4WhoDoesSoftwareEngineering?1.5ASystemApproach1.6AnEngineeringApproach1.7MembersoftheDevelopmentTeam1.8HowHasSoftwareEngineeringChanged?,Objectives,WhatwemeanbysoftwareengineeringSoftwareengineeringstrackrecordWhatwemeanbygoodsoftwareWhyasystemapproachisimportantHowsoftwareengineeringhaschangedsince1970s,1.1WhatisSoftwareEngineeringSolvingProblems,SoftwareproductsarelargeandcomplexDevelopmentrequiresanalysisandsynthesisAnalysis:decomposealargeproblemintosmaller,understandablepiecesabstractionisthekeySynthesis:build(compose)asoftwarefromsmallerbuildingblockscompositionischallenging,1.1WhatisSoftwareEngineeringSolvingProblems,Theanalysisprocess,1.1WhatisSoftwareEngineeringSolvingProblems,Thesynthesisprocess,1.1WhatisSoftwareEngineeringSolvingProblems,Method:referstoaformalprocedure;aformal“recipe”foraccomplishingagoalthatistypicallyindependentofthetoolsusedTool:aninstrumentorautomatedsystemforaccomplishingsomethinginabetterwayProcedure:acombinationoftoolsandtechniquestoproduceaproductParadigm:philosophyorapproachforbuildingaproduct(e.g.,OOvsstructuredapproaches),1.1WhatisSoftwareEngineeringWhereDoestheSoftwareEngineerFitIn?,Computerscience:focusingoncomputerhardware,compilers,operatingsystems,andprogramminglanguagesSoftwareengineering:adisciplinethatusescomputerandsoftwaretechnologiesasaproblem-solvingtools,1.1WhatisSoftwareEngineeringWhereDoestheSoftwareEngineerFitIn?,Relationshipbetweencomputerscienceandsoftwareengineering,1.2HowSuccessfulHaveWeBeen?,PerformtasksmorequicklyandeffectivelyWordprocessing,spreadsheets,e-mailSupportadvancesinmedicine,agriculture,transportation,multimediaeducation,andmostotherindustriesManygoodstoriesHowever,softwareisnotwithoutproblems,1.2HowSuccessfulHaveWeBeen?Sidebar1.1TerminologyforDescribingBugs,Afault:occurswhenahumanmakesamistake,calledanerror,inperformingsomesoftwareactivitiesAfailure:isadeparturefromthesystemsrequiredbehaviour,1.2HowSuccessfulHaveWeBeen?ExamplesofSoftwareFailure,IRShiredSperryCorporationtobuildanautomatedfederalincometaxformprocessingprocessAnextra$90Mwasneededtoenhancetheoriginal$103MproductIRSlost$40.2Moninterestsand$22.3MinovertimewagesbecauserefundswerenotreturnedontimeMalfunctioningcodeinTherac-25killedseveralpeopleReliabilityconstraintshavecausedcancellationofmanysafetycriticalsystemsSafety-critical:somethingwhosefailureposesathreattolifeorhealth,1.3WhatIsGoodSoftware?Sidebar1.2PerspectiveonQuality,Thetranscendentalview:qualityissomethingwecanrecognizebutnotdefineTheuserview:qualityisfitnessforpurposeThemanufacturingview:qualityisconformancetospecificationTheproductview:qualitytiedtoinherentproductcharacteristicsThevalue-basedview:dependsontheamountthecustomersiswillingtopayforit,1.3WhatisGoodSoftware?,GoodsoftwareengineeringmustalwaysincludeastrategyforproducingqualitysoftwareThreewaysofconsideringqualityThequalityoftheproductThequalityoftheprocessThequalityoftheproductinthecontextofthebusinessenvironment,1.3WhatIsGoodSoftware?TheQualityoftheProduct,Usersjudgeexternalcharacteristics(e.g.,correctfunctionality,numberoffailures,typeoffailures)Designersandmaintainersjudgeinternalcharacteristics(e.g.,typesoffaults)ThusdifferentstakeholdersmayhavedifferentcriteriaNeedqualitymodelstorelatetheusersexternalviewtodevelopersinternalview,1.3WhatIsGoodSoftware?TheQualityoftheProduct(continued),McCallsqualitymodel,1.3WhatIsGoodSoftware?TheQualityoftheProcess,QualityofthedevelopmentandmaintenanceprocessisasimportantastheproductqualityThedevelopmentprocessneedstobemodeledModelingwilladdressquestionssuchasWheretofindaparticularkindoffaultHowtofindfaultsearlyHowtobuildinfaulttoleranceWhatarealternativeactivities,1.3WhatIsGoodSoftware?TheQualityoftheProcess(continued),ModelsforprocessimprovementSEIsCapabilityMaturityModel(CMM)ISO9000SoftwareProcessImprovementandCapabilitydetermination(SPICE),1.3WhatIsGoodSoftware?TheQualityintheContextoftheBusinessEnvironment,BusinessvalueisasimportantastechnicalvalueBusinessvalue(inrelationshiptotechnicalvalue)mustbequantifiedAcommonapproach:returnoninvestment(ROI)ROIisinterpretedindifferentterms:reducingcosts,predictingsavings,improvingproductivity,andcosts(effortsandresources),1.4WhoDoesSoftwareEngineering?,Customer:thecompany,organization,orpersonwhopaysforthesoftwaresystemDeveloper:thecompany,organization,orpersonwhoisbuildingthesoftwaresystemUser:thepersonorpeoplewhowillactuallyusethesystem,1.4WhoDoesSoftwareEngineering?(continued),Participants(stakeholders)inasoftwaredevelopmentproject,COTSSubcontractorturnkeysystem:acompletesystemofhardwareandsoftwaredesignedforaspecificuseanddeliveredtothecustomerinaready-to-runcondition.,1.5SystemApproach,Hardware,software,interactionwithpeopleIdentifyactivitiesandobjectsDefinethesystemboundaryConsidernestedsystems,systemsinterrelationship,1.5SystemApproachTheElementofaSystem,ActivitiesandobjectsAnactivityisaneventinitiatedbyatriggerObjectsorentitiesaretheelementsinvolvedintheactivitiesRelationshipsandthesystemboundariesArelationshipdefinestheinteractionamongentitiesandactivitiesSystemboundariesdeterminetheoriginofinputanddestinationsoftheoutput,1.5SystemApproachTheElementofaSystem(continued),Exampleofsystems:ahumanrespiratorysystem,1.5SystemApproachTheElementofaSystem(continued),Acomputersystemmustalsobeclearlydescribed:Systemdefinitionofapaycheckproduction,1.5SystemApproachInterrelatedSystems,SomesystemsaredependenttoothersystemsTheinterdependenciesmaybecomplexItispossibleforonesystemtoexistinsideanothersystemIftheboundarydefinitionsaredetailed,buildingalargersystemfromthesmalleronesisrelativelyeasy,1.5SystemApproachInterrelatedSystems(continued),Alayeredsystem,1.6EngineeringApproachBuildingaSystem,RequirementanalysisanddefinitionSystemdesignProgramdesignWritingtheprogramsUnittestingIntegrationtestingSystemtestingSystemdeliveryMaintenance,1.7MembersoftheDevelopmentTeam,Requirementanalysts:workwiththecustomerstoidentifyanddocumenttherequirementsDesigners:generateasystem-leveldescriptionofwhatthesystemissupposedtodoProgrammers:writelinesofcodetoimplementthedesignTesters:catchfaultsTrainers:showusershowtousethesystemMaintenanceteam:fixfaultsthatshowuplaterLibrarians:prepareandstoredocumentssuchassoftwarerequirementsConfigurationmanagementteam:maintaincorrespondenceamongvariousartifacts,1.7MembersoftheDevelopmentTeam(continued),Typicalrolesplayedbythemembersofadevelopmentteam,1.8HowHasSoftwareEngineeringChanged?TheNatureoftheChange,Before1970sSingleprocessors:mainframesDesignedinoneoftwowaysasatransformation:inputwasconvertedtooutputasatransaction:inputdeterminedwhichfunctionshouldbeperformedAfter1970sRunonmultiplesystemsPerformmulti-functions,1.8HowHasSEChanged?WassermansSevenKeyFactors,Criticallyoftime-to-marketShiftsintheeconomicsofcomputingAvailabilityofpowerfuldesktopcomputingExtensivelocal-andwide-areanetworkingAvailabilityandadoptionofobject-orientedtechnologyGraphicaluserinterfacesUnpredictabilityofthewaterfallmodelofsoftwaredevelopment,1.8HowHasSEChanged?WassermansSevenKeyFactors(continued),1.8HowHasSEChanged?WassermansDisciplineofSoftwareEngineering,AbstractionsAnalysisanddesignmethodsandnotationsUserinterfaceprototypingSoftwarearchitectureSoftwareprocessReuseMeasurementToolsandintegratedenvironments,1.8HowHasSEChanged?Abstraction,AdescriptionoftheproblematsomelevelofgeneralizationHidedetails,1.8HowHasSEChanged?AnalysisandDesignMethodsandNotations,ProvidedocumentationFacilitatecommunicationOffermultipleviewsUnifydifferentviews,1.8HowHasSEChanged?UserInterfacePrototyping,Prototyping:buildingasmallversionofasystemHelpusersidentifykeyrequirementsofasystemDemonstratefeasibilityDevelopgooduserinterface,1.8HowHasSEChanged?SoftwareArchitecture,AsystemsarchitecturedescribesthesystemintermsofasetofarchitecturalunitsandrelationshipsbetweentheseunitsArchitecturaldecompositiontechniquesModulardecompositionData-orienteddecompositionEvent-drivendecompositionOutside-in-designdecompositionObject-orienteddecomposition,1.8HowHasSEChanged?SoftwareProcess,ManyvariationsDifferenttypesofsoftwareneeddifferentprocessesEnterprise-wideapplicationsneedagreatdealofcontrolDepartmentalapplicationscantakeadvantageofrapiddevelopment,1.8HowHasSEChanged?SoftwareProcess(continued),Pictorialrepresentationofdifferencesindevelopmentprocesses,1.8HowHasSEChanged?SoftwareReuse,CommonalitiesbetweenapplicationsmayallowreusingartifactsfrompreviousdevelopmentsImproveproductivityReducecostsPotentialconcernsItmaybefastertobuildasmallerapplicationthansearchingforreusablecomponentsGeneralizedcomponentstakemoretimetobuildMustclarifywhowillberesponsibleformaintainingreusablecomponentsGeneralityvsspecificity:alwaysaconflict,1.8HowHasSEChanged?Measurement,Objective:describequalitygoalsinaquantitativeway,1.8HowHasSEChanged?ToolsandIntegratedEnvironments,Platformintegration(onheterogeneousnetworks)Presentationintegration(commonalityofuserinterface)Processintegration(linkingtoolsandthedevelopmentprocess)Dataintegration(tosharecommondata)Controlintegration(theabilityofonetooltoinitiateactioninanotherone),WhatthisChapterMeansforYou,GivenaproblemtosolveAnalyzeitSynthesizeasolutionUnderstandthatrequirementsma

温馨提示

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

评论

0/150

提交评论