




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ModernSoftwareEngineering,蒋欣荣Jiangxinrong,1,软件工程学科介绍,概念提出1968年NATO会议(北大西洋公约组织的计算机科学家的国际会议)提出“软件工程”概念。当时对“软件工程”代表性定义:为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法。1972年IEEE学会的计算机分会IEEECS第一次出版了“软件工程学报”,2,软件工程学科介绍,学科雏形上世纪70年代末,美国将软件工程教程列入研究生教学计划。1980年代末和1990年代初,软件工程教育得到卡内基-梅隆大学软件工程研究所(CMU/SEI)的支持。1991年,“软件工程”被ACM(美国计算机协会)和IEEE-CS列为计算科学的九个知识领域之一。1993年,IEEE-CS和ACM为了把软件工程建设成为一个专业,建立了IEEE-CS/ACM联合指导委员会。,3,软件工程学科介绍,学科确立2004年6月,IEEE-CS和ACM联合给出:SWEBOK(软件工程知识体)(SoftwareEngineeringBodyofKnowledge)把软件工程学科的主体知识分为10个知识领域:软件需求软件设计软件构造软件测试软件维护软件配置管理软件工程管理软件工程过程软件质量软件工程工具和方法,4,软件工程与其他学科的关系,软件工程是计算科学9个领域之一算法和数据结构程序设计语言计算机系统结构数值和符号计算操作系统软件方法学和软件工程数据库和信息检索人工智能和机器人学人机交互,5,软件工程是一门工程学科,是指导计算机软件开发与维护的一门工程学科。工程:是科学和数学的某种应用,通过这一应用,使自然界的物质和能源的特性能够通过各种结构、机器、产品、系统和过程,以最短的时间和精而少的人力做出高效、可靠且对人类有用的东西。将自然科学的理论应用到具体工农业生产部门中形成的各学科的总称。包括:研究、开发、设计、施工、生产、操作、管理及其他职能等。典型的传统工程:建筑工程、机械工程、电力工程等。软件工程即用工程、科学和数学的原则和方法研制、维护计算机软件的有关技术及方法,其优点是以较小的代价开发高质量的软件并有效地维护它。,6,简单的建筑,修建简单的建筑仅需要初级的建筑知识,如建立房屋需要立柱、横梁、屋顶及墙面等基本元素;在头脑中大致构思,便可以建造。,7,复杂的建筑,复杂的建筑是许多人合作的结果,不可能一边构思,一边修建。在实际动工前,必须完成全部(至少是绝大多数)设计工作,并经过评审,才能动工。其设计包括外观设计、平面设计、结构设计、施工设计、电气设计、给排水设计.并且必须留下详细的文档以便使用过程中的维护。,8,项目计划书施工质量计划书建设标准和规范施工手册,复杂的建筑,9,简单的程序,#includeintmain()printf(“helloworld!”);/输出helloworld!return0;,简单的程序,不需要设计,直接动手,就可完成。(严格地说,设计过程必不可少,只是迅速地在头脑中完成了),10,复杂的程序,为实现复杂的功能需求,应用程序具有相当复杂的结构;功能模块众多;数据结构繁琐;代码量巨大。这样的程序由项目团队合作完成,无法依靠个人的简单构思完成设计并编码;同时,程序的后期维护也需要详细文档的支撑。,11,图书馆信息管理系统-需求分析,程序建造的目的是满足用户的需求,所以程序设计的依据就是用户的需求。为准确把握用户的需求,需要在与用户的充分沟通基础上,建立需求文档;并通过有用户参与的评审通过后,成为设计的依据。,12,图书馆信息管理系统-功能设计,设计的依据是经过了评审的需求说明书。在实际建造程序前,应该首先完成设计工作。设计工作是以一种可评审的方式完成系统的逻辑建造工作。设计工作从抽象层次较高的系统架构设计开始,包括功能的设计、数据结构的设计、部署的设计、界面的设计等。,13,图书馆信息管理系统-物理模型设计,14,图书馆信息管理系统部分逻辑模型设计,15,图书馆信息管理系统-数据设计,16,图书馆信息管理系统-过程设计,17,图书馆信息管理系统-界面设计,18,软件开发是工程化的过程,软件生产同其他行业,例如建筑行业一样需要工程化、规模化、自动化、标准化。软件生产过程中也有中间环节(设计物理模型、逻辑模型、界面、数据、过程等等),也可以随时进行质量检查。软件生产中也需要有高效的工具。软件生产人员也可以细分为:分析员、设计员、程序员、测试员、操作员、维护人员等等。软件生产低水平的手工作坊不能适应当今的大规模软件开发需求怎么办?软件工程化开发与维护!,19,软件工程课程的学习目标,掌握软件工程的基础知识和理论,对软件工程学有一个全貌的了解;熟悉软件项目开发和维护的一般过程;掌握软件需求分析、设计、编码和测试等阶段的主要思想和技术方法;通过学习及课程设计,真正运用和体会软件工程的思想方法,转变对软件开发的认识:从个人的单纯编程活动转移到进行系统分析与设计方面上来转变思维定式:程序员系统工程师(系统分析员),20,教材,软件工程课程考评,课程成绩=平时成绩X60%+期末成绩X40%平时成绩=出勤X30%+作业X40%+期中考试X30%期末成绩=期末闭卷考试成绩X100%,22,Chapter1IntroductiontoSoftwareEngineering,ContentWhatssoftwareWhatsagoodsoftwareSoftwarecharacteristicsSoftwarecategoriesSoftwareevolutionSoftwarecrisisWhatsSESoftwareMyths,23,SoftwareDefinition,24,WhatisSoftware?,Softwareisasetofitemsorobjectsthatforma“configuration”thatincludes,Programs,Document,Data,SoftwareDefinition,WhatisSoftware?Computerprograms(Instructions)whenexecutedprovidedesiredfeatures,function,andperformance;Datastructuresenabletheprogramstoadequatelymanipulateinformation;Documentation(Descriptiveinformation)describetheoperationanduseoftheprograms.,25,SoftwareDocumentation,ImprovethevisibilityonsoftwareprocessDevelopmoreefficientlyMaketheoutcomeatendofonecertainperiodfordevelopersRecordtechnicalinformationduringthedevelopmentProvideinformationonsoftwareoperation,maintenance,andtrainingHelpuserstounderstandsoftwarefunctions,26,SoftwareDocumentation,Feasibilitystudyreport可行性研究报告Softwarerequirementspecification软件需求规范Datarequirementspecification数据需求规范Projectdevelopmentplan项目开发计划Testingplan测试计划Conceptual(Architectural)designdocument架构设计文件Detaileddesigndocument详细设计文档Databasedesigndocument数据库设计文档Moduledevelopmentfiles模块开发文件Usermanual用户手册Softwareinstructionmanual软件说明书Testinganalysisreport测试分析报告Developmentmonthlyreport发展月度报告Projectdevelopmentsummaryreport项目开发总结报告,27,WhatIsGoodSoftware?,PerspectiveonQualityThetranscendentalview:qualityissomethingwecanrecognizebutnotdefineTheuserview:qualityisfitnessforpurposeThemanufacturingview:qualityisconformancetospecificationTheproductview:qualitytiedtoinherentproductcharacteristicsThevalue-basedview:dependsontheamountthecustomersiswillingtopayforit,28,WhatIsGoodSoftware?,GoodsoftwareengineeringmustalwaysincludeastrategyforproducingqualitysoftwareThreewaysofconsideringqualityThequalityoftheproductThequalityoftheprocessThequalityoftheproductinthecontextofthebusinessenvironment,29,WhatIsGoodSoftware?,QualityoftheProductUsersjudgeexternalcharacteristics(e.g.,correctfunctionality,numberoffailures,typeoffailures)Designersandmaintainersjudgeinternalcharacteristics(e.g.,typesoffaults)ThusdifferentstakeholdersmayhavedifferentcriteriaNeedqualitymodelstorelatetheusersexternalviewtodevelopersinternalview,30,WhatIsGoodSoftware?,QualityModels,31,JimMcCall(1977)BarryW.Boehm(1978)FURPS/FURPS+R.GeoffDromeyISO/IEC9126(1993)ISO/IEC25010(2011),McCall,32,WhatIsGoodSoftware?,QualityoftheProcessQualityofthedevelopmentandmaintenanceprocessisasimportantastheproductqualityThedevelopmentprocessneedstobemodeledModelingwilladdressquestionssuchasWheretofindaparticularkindoffaultHowtofindfaultsearlyHowtobuildinfaulttoleranceWhatarealternativeactivities,33,WhatIsGoodSoftware?,QualityoftheProcessModelsforprocessimprovementSEIsCapabilityMaturityModel(CMM)ISO9000SoftwareProcessImprovementandCapabilitydetermination(SPICE),34,WhatIsGoodSoftware?,QualityintheContextoftheBusinessEnvironmentBusinessvalueisasimportantastechnicalvalueBusinessvalue(inrelationshiptotechnicalvalue)mustbequantifiedAcommonapproach:returnoninvestment(ROI)ROIisinterpretedindifferentterms:reducingcosts(effortsandresources),predictingsavings,improvingproductivity.,35,SoftwaresDualRoles,SoftwareisproductDeliverscomputingpotentialProduces,manages,acquires,modifies,displays,ortransmitsinformationSoftwareisavehiclefordeliveringaproductSupportsordirectlyprovidessystemfunctionalityControlsotherprograms(e.g.,anoperatingsystem)Effectscommunications(e.g.,networkingsoftware)Helpsbuildothersoftware(e.g.,softwaretoolsSourcecodeisnotwellformatted,whichintroducesextramaintenancecost;Latefoundbugsresultinbudgetoverrun;Customerscomplainsofleakedbugs;Systembecomesmoreandmorecomplexwhileusersatisfactionisgettingdown.Scheduleslipping,budgetburntout.,54,So,whereisthewayout?,Needsystematicalanddisciplinedwaystosolvesuchproblems,tomaketheprojectasuccess!Thatswhypeoplestudymethodologies,createtoolstomakeSEaprofession.,55,WhatsSE?,Thetermsoftwareengineeringfirstappearedinthe1968NATOSoftwareEngineeringConference,andwasmeanttoprovokethoughtregardingtheperceived“softwarecrisisatthetime.SEisanengineeringdisciplinethatisconcernedwithallaspectsofsoftwareproductionfromtheearlystagesofsystemspecificationthroughtomaintainingthesystemafterithasgoneintouse.ConcernedwithALLaspectsofsoftwareproductionNotjusttechnicalprocessofdevelopment.Alsoprojectmanagementandthedevelopmentoftools,methodsetc.tosupportsoftwareproduction.,56,Definitionof“SE”inIEEE,Theapplicationofasystematic,disciplined,quantifiableapproachtothedevelopment,operationandmaintenanceofsoftware;thatis,theapplicationofengineeringtosoftware.Thestudyofapproachesasin1.EssenceofSE:Max.GainwithMin.Cost!,57,WhatsSE?,SoftwaredevelopmentprocessFrameworkofaseriesoftasksforgettinghighqualifiedsoftware,whichdefinestheworkflowtofinishthesetasksSoftwareengineeringmethodsTechnicalmethodstofinishalldevelopingtasksSoftwaredevelopmenttoolsProvidemethodswithautomaticorsemi-automaticsoftwaresupportingenvironment,58,IdealGoalsofSoftwareEngineering,Correctness:NoerrorsUsefulness:DoeswhatwewantittodoMinimalproductioneffortAndtherefore:minimalcost,minimaltime,maximumprofitMinimalmaintenanceeffort,59,FrequentlyAskedQuestionsaboutSE,A:Whatissoftware?Q:Computerprograms,dataandassociateddocumentation.Softwareproductsmaybedevelopedforaparticularcustomerormaybedevelopedforageneralmarket.A:Whataretheattributesofgoodsoftware?Q:Goodsoftwareshoulddelivertherequiredfunctionalityandperformancetotheuserandshouldbemaintainable,dependable,efficient,andacceptable.,60,FrequentlyAskedQuestionsaboutSE,A:Whatissoftwareengineering?Q:Softwareengineeringisanengineeringdisciplinethatisconcernedwithallaspectsofsoftwareproduction.A:Whatisthedifferencebetweensoftwareengineeringandcomputerscience?Q:Computersciencefocusesontheoryandfundamentals;softwareengineeringisconcernedwiththepracticalitiesofdevelopinganddeliveringusefulsoftware.,61,FrequentlyAskedQuestionsaboutSE,A:Whatisthedifferencebetweensoftwareengineeringandsystemengineering?Q:Systemengineeringisconcernedwithallaspectsofcomputer-basedsystemsdevelopmentincludinghardware,softwareandprocessengineering.Softwareengineeringispartofthismoregeneralprocess.A:Whatarethekeychallengesfacingsoftwareengineering?Q:Copingwithincreasingdiversity,demandsforreduceddeliverytimesanddevelopingtrustworthysoftware.,62,FrequentlyAskedQuestionsaboutSE,A:Whatarethecostsofsoftwareengineering?Q:Roughly60%ofsoftwarecostsaredevelopmentcosts,40%aretestingcosts.Forcustomsoftware,evolutioncostsoftenexceeddevelopmentcosts.,63,FrequentlyAskedQuestionsaboutSE,A:Whatarethebestsoftwareengineeringtechniquesandmethods?Q:Whileallsoftwareprojectshavetobeprofessionallymanagedanddeveloped,differenttechniquesareappropriatefordifferenttypesofsystem.Forexample,gamesshouldalwaysbedevelopedusingaseriesofprototypeswhereassafetycriticalcontrolsystemsrequireacompleteandanalyzablespecificationtobedeveloped.Youcant,therefore,saythatonemethodisbetterthananother.,64,SoftwareMyths,ManagementMythsMyth:Ifwegetbehindschedule,wecanaddmoreprogrammersandcatchup.Reality:Softwaredevelopmentisnotamechanisticprocesslikemanufacturing.InthewordsofBrooks“Addingpeopletoalate,softwareprojectmakesitlater”Peoplecanbeaddedonlyinaplannedandwell-coordinatedmanner.,65,SoftwareMyths,CustomerMythsMyth:Projectrequirementscontinuallychange,butchangecanbeeasilyaccommodatedbecausesoftwareisflexible.Reality:Theimpactofchangevarieswiththetimeatwhichitisintroduced.Astimepasses,costimpactgrowsrapidly.Changecancauseupheavalthatrequiresadditionalresourcesandmajordesignmodification.,66,SoftwareMyths,PractitionersMythsMyth:UntilIgettheprogramrunning,Ihavenowayofassessingitsquality.Reality:Theformaltechnicalreviewisoneofmosteffectivesoftwarequalityassurancemechanisms.Softwarereviewsarea“qualityfilter”thathavebeenfoundtobemoreeffectivethantestingforfindingcertainclassesofsoftwareerrors.,67,68,Exercise,WhichquestionnolongerconcernsthemodernsoftwareengineeringWhydoescomputerhardwarecostsomuch?Whydoessoftwaretakealongtimetofinish?Whydoesitcostsomuchtodevelopapieceofsoftware?Whycantsoftwareerrorsberemovedfromproductspriortodelivery?Answer:aTodaytheincreasedpowerofthepersonalcomputerhasbroughtaboutanabandonmentofthepracticeofteamdevelopmentofsoftware.TrueFalseAnswer:bSoftwareisaproductandcanbemanufacturedusingthesametechnologiesusedforotherengineeringartifacts.TrueFa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【教案版】小学三班级上册 小篮球3
- 2025年热切割与焊接作业考试必-备知识点及模拟题集答案
- 2025年焊接工艺高频考点梳理与模拟题集含答案
- 2025年数据分析师招聘面试题分析与实战策略
- 2025年燃气储运安全知识中级工测试卷
- 单车图片素描教学课件
- 2025年旅游公司导游员招聘面试技巧手册及模拟题解析
- 2025年初级网络工程师面试要点及预测题
- 2025年燃气行业初级工程师笔试模拟题详解
- 2025年炼油工艺中级操作工考试题库及参考答案
- 2025年秋季学期第一次中层干部会议上校长讲话:凝心聚力明方向沉心落力干实事
- 广西2025年公需科目学习考试试题及答案4
- 代加工板材合同协议书范本
- T-CRHA 028-2023 成人住院患者静脉血栓栓塞症风险评估技术
- 泌尿系损伤-教案-外科课件
- 供应室pdca质量提高腔镜器械包装合格率品管圈ppt模板课件
- 某大楼建设工程-监理规划
- KDL16变频器更换步骤
- 英语教学经验交流发言稿
- 高中化学 1.2.1 研究物质性质的基本方法课件(1)鲁科版必修第一册-鲁科版高中第一册化学课件
- SAGEERPX3V5总账
评论
0/150
提交评论