版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
传统软件工程概述第1页,课件共54页,创作于2023年2月Question什么是软件?为什么需要“软件工程”?软件工程的研究内容有哪些?第2页,课件共54页,创作于2023年2月第0章传统软件工程概述计算机系统的发展软件、软件生存周期和软件生存周期过程软件生存周期模型软件工程定义第3页,课件共54页,创作于2023年2月第0章传统软件工程概述进入上个世纪60年代,人们开始逐渐认识到了确实存在着“软件危机”
这样一个事实。例如:软件生产不能满足日益增长的需要软件开发成本和开发进度估计往往不准确软件开发人员和用户之间信息交流不充分,用户对完成的软件满意度很低软件价格昂贵,软件成本在整个计算机系统中所占的比例急剧上升,软件已成为许多计算机系统中花钱最多的项目软件质量难以保证软件可维护性差,程序中的错误很难改正,适应性或完善性维护都极其困难第4页,课件共54页,创作于2023年2月第0章传统软件工程概述导致危机问题的一个重要原因,是由于软件研制和维护本身是工程性的任务,但软件人员采取的方式却未能工程化为克服软件危机,人们开始考虑采用工程化方法和工程途径来研制和维护软件第5页,课件共54页,创作于2023年2月第0章传统软件工程概述上个世纪60年代末至70年代初开始,逐渐发展起一组总称为“软件工程”的技术这些技术把软件作为一个工程产品来处理:它需要计划、分析、设计、实现、测试以及维护软件工程学主要研究软件结构、软件设计方法论、软件工具、软件工程标准和规范,以及与软件工程有关的理论等软件产业的逐步建立,也带动了软件工程这门学科的发展。同时,软件生产的系列化、产品化、工程化和标准化形成了软件产业的标志第6页,课件共54页,创作于2023年2月0.1计算机系统的发展软件工程和硬件工程都可以看成是一门更广义的学科——计算机系统工程的一部分用于计算机硬件的工程技术是由电子设计技术发展起来的,已经达到了比较成熟的水平,可靠性已是一种可以期待的现实而不再是一种愿望但是,软件已经取代硬件成为系统中设计起来最困难、最不容易成功(按时完成和不超过预计的成本),而且是最不易管理的部分另一方面,随着以计算机为基础的系统在数量、复杂程度和应用范围上的不断增长,对软件的需求却仍然有增无减第7页,课件共54页,创作于2023年2月0.1.1计算机系统及其软件的发展软件发展的历史与计算机系统发展紧密相关计算机系统发展的初期(50~60年代),程序设计时期计算机系统发展的第二个时期(从60年代中期到70年代中期),程序系统时期计算机系统发展的第三个时期从70年代初期开始,软件工程时期如今,计算机系统的发展处于第四个时期,即从技术性应用转向消费性市场。第8页,课件共54页,创作于2023年2月0.1.2计算机系统工程计算机系统工程的主要内容是对系统所要求的功能加以揭示、分析,并把它们分配给系统的各个部分在大多数新系统创建时,对系统所要求的功能往往只有模糊的概念。系统分析和系统定义的目的在于揭示摆在面前的项目的范围要对需要进行处理的信息、所要求的功能、所期望的性能以及设计的约束和检验的标准等进行系统、详细的分析范围确定之后,系统工程师必须考虑多种能潜在地满足项目范围的、可供选择的配置。在综合考虑了各项因素之后,选择其中的一种配置,并将系统的功能分配给系统的各个部分第9页,课件共54页,创作于2023年2月系统分析和定义概念综合考虑软件硬件硬件工程软件工程图0-1计算机系统工程第10页,课件共54页,创作于2023年2月0.2软件和软件生存周期《中国大百科全书》给软件下的定义是:软件是计算机系统中的程序和有关文件也就是说,“软件”不仅仅是指程序,在软件研制过程中按一定规格产生的各种文件也是软件不可缺少的组成部分第11页,课件共54页,创作于2023年2月0.2软件和软件生存周期一个计算机软件,从出现一个构思之日起,经过开发成功投入使用,在使用中不断增补修订,直到最后决定停止使用,并被另一项软件代替之时止,被认为是该软件的一个生存周期(或称生命周期、生存期,lifecycle)第12页,课件共54页,创作于2023年2月0.2软件和软件生存周期一个软件产品的生存周期可以划分成若干个互相区别而又有联系的阶段,每个阶段中的工作均以上一阶段工作的结果为依据,并为下一阶段的工作提供了前提经验表明,失误造成的差错越是发生在生存周期的前期,在系统交付使用时造成的影响和损失就越大,要纠正它所花费的代价也越高。因而在前一阶段工作没有做好之前,决不要草率地进入下一阶段第13页,课件共54页,创作于2023年2月0.2软件和软件生存周期国家标准
GB/T8566-2001《信息技术软件生存周期过程》将软件生存周期划分为以下8个阶段可行性研究与计划需求分析概要设计详细设计实现(包括单元测试)组装测试(即集成测试)确认测试使用和维护第14页,课件共54页,创作于2023年2月0.2软件和软件生存周期GB/T8567-88《计算机软件产品开发文件编制指南》建议在软件的开发过程中编制下述14种文件可行性研究报告项目开发计划软件需求说明书数据要求说明书概要设计说明书详细设计说明书数据库设计说明书用户手册操作手册模块开发卷宗测试计划测试分析报告开发进度月报项目开发总结报告第15页,课件共54页,创作于2023年2月可行性研究与计划需求分析设计实现测试使用和维护维护阶段开发阶段计划阶段图0-2软件生存周期的瀑布模型第16页,课件共54页,创作于2023年2月0.2软件和软件生存周期可行性研究与计划(策划):对软件进行可行性分析,估算开发费用和时间等需求分析:向用户了解需求,解决“做什么”的问题设计:分为概要设计和详细设计。对需要解决的问题进行分析,提出解决方案,解决“怎么做”的问题实现(编码):按照设计的结果,采用某种编程语言加以实现测试:编码结束后,要用大量的数据进行测试,找出其中隐藏的错误使用和维护:软件交付用户使用后,在运行过程中仍有可能出错,而且用户的需求也有可能改变,因此,软件需要继续修改第17页,课件共54页,创作于2023年2月图0-3软件生存周期工作量分配第18页,课件共54页,创作于2023年2月图0-4开发期工作量分配第19页,课件共54页,创作于2023年2月0.3软件生存周期模型在软件工程中,重要的概念是软件生存周期模型(又称软件开发模型)以及软件生存周期过程软件生存周期模型可以定义为:是软件开发全部过程、活动和任务的结构框架。在整个软件开发的发展过程中,为了要从宏观上管理软件的开发和维护,而对软件的发展过程的总体认识和描述。即对软件过程建立的模型。第20页,课件共54页,创作于2023年2月0.3软件生存周期模型软件生存周期模型能清晰、直观地表达软件开发全过程,明确规定了开发工作各阶段所要完成的主要活动和任务,以作为软件项目开发工作的基础对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境软件生存周期模型是稳定有效和普遍适用的第21页,课件共54页,创作于2023年2月0.3软件生存周期模型软件生存周期过程可分为基本生存周期过程获取过程、供应过程、开发过程、运作过程和维护过程等支持生存周期过程组织生存周期过程第22页,课件共54页,创作于2023年2月0.3软件生存周期模型软件生存周期模型仅对软件的开发、运作、维护过程有意义,在ISO12207和ISO9000-3中都提到软件生存周期模型,它包括:瀑布模型、渐增模型、演化模型、螺旋模型、喷泉模型和智能模型等第23页,课件共54页,创作于2023年2月0.3.1瀑布模型瀑布模型是1970年W.Royce提出的最早的软件开发模型,其开发过程依照固定顺序进行。该模型严格规定各阶段的任务,上一阶段任务输出作为下一阶段工作输入。此模型适合于用户需求明确、开发技术比较成熟、工程管理严格的场合使用。其缺点是:由于任务顺序固定,软件研制周期长,前一阶段工作中造成的差错越到后期越大,而且纠正前期错误的代价高。
第24页,课件共54页,创作于2023年2月0.3.1瀑布模型软件维护构成了生存周期的循环表示如果把软件维护看作是软件的二次开发,便有了软件生存周期的b形表示第25页,课件共54页,创作于2023年2月0.3.1瀑布模型在评价瀑布模型时,应考虑以下的相关风险需求未被充分理解系统太大而一次不能做完所有的事事先打算采用的技术迅速发生变化需求迅速发生变化有限的资源无法利用某一中间产品第26页,课件共54页,创作于2023年2月需求分析测试计划运行评价设计编码图0-5软件生存周期循环第27页,课件共54页,创作于2023年2月图0-6具有维护循环的软件生存周期测试运行计划编码设计编码设计需求分析计划需求分析评价软件开发维护循环第28页,课件共54页,创作于2023年2月0.3.2渐增模型是指从一组给定的需求开始,通过构造一系列可执行的中间版本来实施开发活动第一个中间版本纳入一部分需求,下一个中间版本纳入更多的需求,依此类推,直到系统完成每个中间版本都要执行必要的过程、活动和任务,如:需求分析和体系结构设计需要执行一次,而详细设计、编码和测试、软件组装和验收测试在每个中间版本构造过程中都执行第29页,课件共54页,创作于2023年2月0.3.2渐增模型在评价该模型时,需要考虑的风险因素是需求未被很好地理解突然提出一些功能事先打算采用的技术迅速发生变化需求迅速发生变化长时期内仅有有限的资源保证(工作人员/资金)第30页,课件共54页,创作于2023年2月图0-7渐增模型示意R:需求C/T:编码/测试D:设计I/AS:安装和验收支持DC/TI/AS中间版本nDC/TI/AS中间版本1中间版本2DC/TI/ASR可能的信息流第31页,课件共54页,创作于2023年2月0.3.3演化模型主要针对事先不能完整定义需求的软件项目开发对需要开发的软件给出基本需求,作第一次试验开发,其目标仅在于探索可行性和弄清需求,取得有效的反馈信息,以支持软件的最终设计和实现通常把第一次试验性开发出来的软件称为原型。这种开发模型可以减少由于需求不明给开发工作带来的风险与渐增模型的区别是:演化模型承认需求不能被完全了解,且不能在初始时就确定。在该模型中,需求一部分被预先定义,然后在每个相继的中间版本中逐步完善对所有的中间版本,开发过程中的活动和任务通常接同一顺序被重复使用。维护过程和运作过程可以与开发过程平行地使用。获取过程、供应过程、支持过程和组织过程通常与开发过程平行地使用第32页,课件共54页,创作于2023年2月图1-8演化模型示意RnDC/TI/AS工作版本nDC/TI/AS工作版本2R2DC/TI/AS工作版本1R1信息流(细化)R:需求C/T:编码/测试D:设计I/AS:安装和验收支持第33页,课件共54页,创作于2023年2月0.3.4螺旋模型该模型是B.Boehm于1988年提出的,它将瀑布模型与演化模型相结合,并增加了两者所忽略的风险分析该模型通常用来指导大型软件项目的开发。它将开发划分为制订计划、风险分析、实施开发和客户评估四类活动。沿着螺旋线每转一圈,表示开发出一个更完善的新的软件版本如果开发风险过大,开发机构和客户无法接受,项目有可能就此终止;多数情况下,会沿着螺旋线继续下去,自内向外逐步延伸,最终得到满意的软件产品沿着螺旋线旋转,在笛卡儿坐标的四个象限上分别表达了四类活动制定计划、风险分析、实施开发、客户评估第34页,课件共54页,创作于2023年2月图0-9螺旋模型原型1原型2原型3可运行原型详细设计编码实现单元测试集成与测试验收测试需求确认软件需求软件产品设计需求计划设计确认与验证生存期计划开发计划集成与测试风险分析风险分析风险分析累计成本提交线评审制定计划决定目标方案与限制风险分析评价方案、识别风险、消除风险客户评估实施开发开发、验证下一产品第35页,课件共54页,创作于2023年2月0.3.5喷泉模型是由B.H.So11ers和J.M.Edwards于1990年提出的一种开发模型,主要用于采用面向对象技术的软件开发项目“喷泉”一词本身就体现了迭代和无间隙的特性软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分无间隙是指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限。由于对象概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用第36页,课件共54页,创作于2023年2月图0-10喷泉模型演化分析设计实现确认维护第37页,课件共54页,创作于2023年2月0.3.6智能模型也称为基于知识的软件开发模型,它是知识工程与软件工程在开发模型上结合的产物它的维护不在程序一级上进行,把问题的复杂性大为降低,从而可以把精力更加集中于具体描述的表达上,即维护在功能规约一级进行具体描述可以使用形式功能规约,也可以使用知识处理语言描述等等,因而必须将规则和推理机制应用到开发模型中,所以必须建立知识库,将模型本身、软件工程知识和特定领域的知识分别存入知识库,由此构成某一领域的软件开发系统第38页,课件共54页,创作于2023年2月获取需求需求分析具体描述优化程序验证维护调整知识库/专家系统图0-11智能模型第39页,课件共54页,创作于2023年2月0.4软件工程定义定义一:科学知识在设计和构造计算机程序,以及开发、运作和维护这些程序所要求的有关文档编制中的实际应用定义二:为了经济地获得软件,这个软件是可靠的并且能在实在的计算机上工作,所需要的健全的工程原理(方法)的确立和使用定义三:1983年IEEE(国际电气与电子工程师协会)的《软件工程术语汇编》中,将软件工程定义为:对软件开发、运作、维护、退役的系统研究方法定义四:1990年新版的IEEE《软件工程术语汇编》又将定义更改为:对软件开发、运作、维护的系统化的、有纪律的、可定量的方法之应用,即是对软件的工程化应用第40页,课件共54页,创作于2023年2月0.4软件工程定义软件工程已经是一门交叉性学科,它是解决软件问题的工程,对它的理解不应是静止的和孤立的软件工程是应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法来创建软件,从而达到提高质量、降低成本的目的计算机科学和数学用于构造模型、分析算法工程科学用于制定规范、明确风格、评估成本、确定权衡管理科学用于进度、资源、质量、成本等的管理第41页,课件共54页,创作于2023年2月0.4软件工程定义软件工程的目标是明确的,就是研制开发与生产出具有良好的软件质量和费用合算的产品费用合算是指软件开发运行的整个开销能满足用户要求的程度软件质量是指该软件能满足明确的和隐含的需求能力的有关特征和特性的总和第42页,课件共54页,创作于2023年2月0.4软件工程定义软件工程的基础是一些指导性的原则必须认识软件需求的变动性,并采取适当措施来保证结果产品能忠实地满足用户要求。在软件设计中,通常要考虑模块化、抽象与信息隐蔽、局部化、一致性等原则稳妥的设计方法大大地方便软件开发,为达到软件工程的目标,软件工具与环境对软件设计的支持来说,颇为重要软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用有效的软件工程只有在对软件过程进行有效管理的情况下才能实现第43页,课件共54页,创作于2023年2月0.4.1软件工程学的内容从软件的生产管理技术来分软件的需求定义和分析技术软件设计技术和设计审查技术软件设计表现技术软件测试技术软件可靠性的理论及其评价方法软件扩充和维护软件成本估算等第44页,课件共54页,创作于2023年2月0.4.1软件工程学的内容从内容上可分为理论、结构、方法、工具等部分理论与结构是方法论与工具的基础及前提在方法论与工具方面存在着这样的关系:为了找出行之有效的方法就应该具备合适的工具;反之,为了制造、改进软件工具,也应先有合适的方法要达到如何以较少的代价获得高质量的软件这个目的,就必须研究软件开发方法和软件开发工具第45页,课件共54页,创作于2023年2月0.4.1软件工程学的内容软件开发方法就是开发软件的规范化方法工作步骤,即明确软件系统的基本开发步骤及每一步的条件、目的、结果等软件文件格式评价标准,即确定对各种不同的软件开发方案的评价标准第46页,课件共54页,创作于2023年2月0.4.2软件工程过程是指为获得软件产品,在软件工具的支持下,由软件工程师完成的一系列软件工程活动,通常包含4种基本的过程活动P(Plan):软件规格说明,规定软件的功能及其运行的限制D(Do):软件开发,产生满足规格说明的软件C(Check):软件确认,确认软件能够完成客户提出的要求A(Action):软件演进,为满足客户的变更要求,软件必须在使用的过程中演进事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤第47页,课件共54页,创作于2023年2月0.4.3软件工程学的基本目标和原则软件工程项目的成功,是指达到以下几个主要目标付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发工作,及时交付使用上述目标有些很可能是互相冲突的若只顾降低开发成本,很可能同时也降低了软件的可靠性如果过于追求提高软件的性能,可能造成所开发软件对硬件有较大的依赖,从而直接影响到软件的可移植性等等第48页,课件共54页,创作于2023年2月低开发成本易于维护高可靠性高性能按时交付互斥关系互补关系图0-12软件工程目标之间的关系第49页,课件共54页,创作于2023年2月0.4.3软件工程学的基本目标和原则各种软件工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共享服务合同的创新发展趋势展望
- 江苏省江阴市璜土中学高中地理 4.1区域农业发展-以我国东北地区为例教案2 新人教版必修3
- 2024-2025学年高中语文 第四单元 有无相生教案6 新人教版选修《先秦诸子选读》
- 九年级化学下册 第12单元 化学与生活教案 (新版)新人教版
- 2024-2025学年高中历史下学期第13周 罗斯福新政教学设计
- 2024六年级语文下册 第六单元 古诗词诵读 5 江上渔者教学设计+教案+素材 新人教版
- 2024-2025学年上海市浦东新区七年级上英语期中试卷(含答案和音频)
- 雨花石音乐课件
- 发现规律 课件
- 剖宫产手术课件
- 民间借贷利息计算表
- 2024江苏省铁路集团限公司春季招聘24人高频500题难、易错点模拟试题附带答案详解
- 沪科版(2024)八年级全一册物理第一学期期中学业质量测试卷 2套(含答案)
- Q GDW 10115-2022 110kV~1000kV架空输电线路施工及验收规范
- 2023《住院患者身体约束的护理》团体标准解读PPT
- 核心素养导向下初中数学课堂作业多元化设计
- 愚公移山英文 -中国故事英文版课件
- 国开经济学(本)1-14章练习试题及答案
- 施工现场平面布置图
- 精神病医院住院患者护理评估单
- 生活中的音乐教案
评论
0/150
提交评论