大连理工软件学院软件工程课件.ppt

上传人(卖家):三亚风情 文档编号:2671888 上传时间:2022-05-17 格式:PPT 页数:63 大小:6.56MB
下载 相关 举报
大连理工软件学院软件工程课件.ppt_第1页
第1页 / 共63页
大连理工软件学院软件工程课件.ppt_第2页
第2页 / 共63页
大连理工软件学院软件工程课件.ppt_第3页
第3页 / 共63页
大连理工软件学院软件工程课件.ppt_第4页
第4页 / 共63页
大连理工软件学院软件工程课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、大连理工大学软件学院软件工程软件工程2022-5-16大连理工大学软件学院2第第1章章 软件工程学概述软件工程学概述 1.1 软件危机软件危机 1.2 软件工程软件工程 1.3 软件生命周期软件生命周期 1.4 软件过程软件过程 1.5 小结小结2022-5-16大连理工大学软件学院3软件及软件工程软件及软件工程 为什么要讲软件和软件工程为什么要讲软件和软件工程 只有对软件和软件的开发过程有充分的认识,只有对软件和软件的开发过程有充分的认识,才能更好的开发出过程受控、质量受控的软件才能更好的开发出过程受控、质量受控的软件产品。产品。 对于软件和软件开发过程的认识是困难的,存对于软件和软件开发过

2、程的认识是困难的,存在很多困惑,需要对此有深刻的认识。在很多困惑,需要对此有深刻的认识。2022-5-16大连理工大学软件学院4一些对软件的偏见或误解一些对软件的偏见或误解 软件就是程序,软件开发就是编写程序。编完了软件就是程序,软件开发就是编写程序。编完了程序,就一切程序,就一切OK了。了。 掌握了最新的语言和工具,就能写程序了。掌握了最新的语言和工具,就能写程序了。 软件是灵活的,软件的修改很容易。软件是灵活的,软件的修改很容易。 只要会编程,就能写软件,就是程序员;一个公只要会编程,就能写软件,就是程序员;一个公司,只要召些程序员,就能开发好的软件产品。司,只要召些程序员,就能开发好的软

3、件产品。 只要有几个有经验的程序员,再找些兼职的大学只要有几个有经验的程序员,再找些兼职的大学生,就能组成一个软件公司。生,就能组成一个软件公司。2022-5-16大连理工大学软件学院5什么是软件什么是软件 软件的定义软件的定义软件由三部分组成:软件由三部分组成: 程序:在运行时,能提供所希望的功能和性能的指程序:在运行时,能提供所希望的功能和性能的指令集令集 数据:使程序能够正确运行的数据数据:使程序能够正确运行的数据 文档:描述程序研制过程、方法及使用的文档文档:描述程序研制过程、方法及使用的文档 软件处理的是信息和逻辑软件处理的是信息和逻辑 软件的开发,绝不仅仅是编写程序软件的开发,绝不

4、仅仅是编写程序 软件围绕着逻辑进行软件围绕着逻辑进行 软件就是一个信息交换器软件就是一个信息交换器 产生、管理、获取、修改、显示或传送信息产生、管理、获取、修改、显示或传送信息2022-5-16大连理工大学软件学院6软件无处不在软件无处不在 软件不仅仅是在计算机运行的程序,任何预先定软件不仅仅是在计算机运行的程序,任何预先定义好的程序步骤的地方,都有软件的身影义好的程序步骤的地方,都有软件的身影 软件的应用领域软件的应用领域 系统软件系统软件 实时软件实时软件 商业软件商业软件 工程和科学计算软件工程和科学计算软件 嵌入式软件嵌入式软件 个人计算机软件个人计算机软件 基于基于Web的软件(网站

5、)的软件(网站) 人工智能软件人工智能软件2022-5-16大连理工大学软件学院7软件的特征软件的特征软件是逻辑的而不是有形的系统元件,具软件是逻辑的而不是有形的系统元件,具有与硬件完全不同的特征有与硬件完全不同的特征1. 软件是被开发或设计的,而不是传统意义上软件是被开发或设计的,而不是传统意义上被制造的被制造的 软件成本集中于开发上,软件项目不能像制造项目软件成本集中于开发上,软件项目不能像制造项目那样管理。那样管理。2. 软件不会磨损,不过它会退化软件不会磨损,不过它会退化 对未发现的对未发现的BUG的修复,会引起较高的故障率。的修复,会引起较高的故障率。 不能像硬件维修中直接更换磨损的

6、零件,软件维护不能像硬件维修中直接更换磨损的零件,软件维护要复杂得多。要复杂得多。2022-5-16大连理工大学软件学院8软件的特征软件的特征3. 大多数软件开发,仍是手工作坊式的开发模式大多数软件开发,仍是手工作坊式的开发模式在硬件世界和现代工业的发展中,被大量使用的标准设计的构建是在硬件世界和现代工业的发展中,被大量使用的标准设计的构建是一条非常成功的路子。一条非常成功的路子。标准化也是软件设计的一个方向,软件产业正在向基于构件的组装标准化也是软件设计的一个方向,软件产业正在向基于构件的组装进前进。进前进。4. 软件是一种逻辑实体,具有抽象性。软件是一种逻辑实体,具有抽象性。人们可以使用软

7、件,但是无法看到软件本身的形态人们可以使用软件,但是无法看到软件本身的形态 。必须通过观察、。必须通过观察、分析、思考、判断,才能了解其功能、性能等特性。分析、思考、判断,才能了解其功能、性能等特性。 设计中,软件的质量、可维护性、可测试性更加重要。设计中,软件的质量、可维护性、可测试性更加重要。当前软件设计的趋势,是设计高度封装,定义良好的应用接口。当前软件设计的趋势,是设计高度封装,定义良好的应用接口。5. 软件是复杂的,而且以后会更加复杂软件是复杂的,而且以后会更加复杂软件是人类有史以来生产的复杂度最高的工业产品。软件是人类有史以来生产的复杂度最高的工业产品。软件的复杂,不是因为软件本身

8、复杂,而是人的思想复杂。软件的复杂,不是因为软件本身复杂,而是人的思想复杂。2022-5-16大连理工大学软件学院9 软件危机的介绍软件危机的介绍1.1 软件危机软件危机硬件和软件发展的不平衡,硬件性能的发硬件和软件发展的不平衡,硬件性能的发展极其迅速,给软件提出了更高的要求展极其迅速,给软件提出了更高的要求软件开发和维护成本越来越大,令人吃惊软件开发和维护成本越来越大,令人吃惊地高地高失败的软件开发项目屡见不鲜失败的软件开发项目屡见不鲜 什么是软件危机什么是软件危机 软件危机是指在计算软件危机是指在计算机软件的开发和维护机软件的开发和维护过程中所遇到的一系过程中所遇到的一系列严重问题。列严重

9、问题。2022-5-16大连理工大学软件学院10软件危机软件危机 软件危机的表现软件危机的表现 软件成本日益增长软件成本日益增长 开发进度难以控制开发进度难以控制 软件质量差软件质量差 软件维护困难软件维护困难 软件开发速度跟不上计算机发展速度软件开发速度跟不上计算机发展速度 软件危机的原因软件危机的原因 技术原因技术原因 软件规模越来越大软件规模越来越大 软件复杂度越来越高软件复杂度越来越高 管理原因管理原因 软件开发缺乏正确的理论指导,过分依靠个人技巧和创造性软件开发缺乏正确的理论指导,过分依靠个人技巧和创造性 对用户需求没有完整准确的认识,就匆忙着手编写程序对用户需求没有完整准确的认识,

10、就匆忙着手编写程序 如何克服软件危机如何克服软件危机 :软件工程:软件工程2022-5-16大连理工大学软件学院112022-5-16大连理工大学软件学院12引入同一变动付出的代价随时间变化的趋势问题在哪里?问题在哪里? 软件开发链条的软件开发链条的“放大放大”作用。作用。(规范每个环节规范每个环节) 只有早期发现问题,才会只有早期发现问题,才会尽量减少损失。尽量减少损失。(失之毫厘,失之毫厘,谬以千里谬以千里) 但客观规律:用户的牙膏但客观规律:用户的牙膏不会一下子挤完。不会一下子挤完。(静态开静态开发方法发方法“天生天生”会延迟问会延迟问题的发现题的发现)2022-5-16大连理工大学软件

11、学院13 消除软件危机的途径消除软件危机的途径 对计算机软件正确认识。对计算机软件正确认识。(软件不仅仅是程序软件不仅仅是程序)推广使用开发软件成功的推广使用开发软件成功的技术和方法技术和方法,研究探索更好更有,研究探索更好更有效的技术和方法,消除错误概念和做法。效的技术和方法,消除错误概念和做法。 开发和使用更好的开发和使用更好的软件工具软件工具。 需要需要组织管理措施组织管理措施。 软件工程正是从软件工程正是从技术和管理技术和管理两方面研究如何更好地开发和维护两方面研究如何更好地开发和维护计算机软件的一门新兴学科。计算机软件的一门新兴学科。无章法(个人英雄主义)无章法(个人英雄主义) 工程

12、项目管理模式(团队合作开发)工程项目管理模式(团队合作开发)2022-5-16大连理工大学软件学院141.2 软件工程软件工程 软件工程(软件工程(IEEE) 1968年秋,提出软件工程年秋,提出软件工程1) 将系统化、规范化、可量化将系统化、规范化、可量化的工程原则和方法,应用于的工程原则和方法,应用于软件的开发、运行和维护。软件的开发、运行和维护。2) 对对1)中方法的理论研究。中方法的理论研究。 软件工程软件工程 认为:认为:按照工程化的原则和方法组织软件开发工作,是按照工程化的原则和方法组织软件开发工作,是摆脱软件危机的一个主要出路。摆脱软件危机的一个主要出路。 主要目标:主要目标:高

13、效开发高质量软件高效开发高质量软件。 软件工程规范软件工程规范 工业界:参照修改其它工程项目的管理模式工业界:参照修改其它工程项目的管理模式如如 ISO, PMI, Six Sigma 学术界:学术界:CMM2022-5-16大连理工大学软件学院15软件工程基本原理软件工程基本原理 (开发与维护的指导开发与维护的指导)1.用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理2.坚持进行阶段评审坚持进行阶段评审3.实行严格的产品控制实行严格的产品控制4.采用现代程序设计技术采用现代程序设计技术5.结果应能清楚地审查结果应能清楚地审查6.开发小组的人员应该少而精开发小组的人员应该少而精7.

14、承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性2022-5-16大连理工大学软件学院16 软件的生命周期软件的生命周期 软件开发过程软件开发过程 瀑布模型瀑布模型 快速原型、螺旋模型快速原型、螺旋模型 喷泉模型等喷泉模型等 软件开发新过程软件开发新过程 敏捷软件开发敏捷软件开发(极限编极限编程程XP) 快速软件开发快速软件开发 统一软件开发过程统一软件开发过程软件开发的规律软件开发的规律 软件开发方法软件开发方法 结构化方法结构化方法 面向对象方法面向对象方法 Jackson系统开发方法系统开发方法 模块化方法模块化方法 软件复用软件复用2022-5-16大连理工大学软件学院

15、17 软件工程方法学软件工程方法学 把在软件生命周期全过程中使用的一整套把在软件生命周期全过程中使用的一整套技术的集合技术的集合称为称为方法学方法学(methodology),也称范型,也称范型(paradigm)。 软件工程方法学三个要素:软件工程方法学三个要素:方法、工具和过程方法、工具和过程。 方法是完成软件开发各项任务的技术,回答方法是完成软件开发各项任务的技术,回答“如何做如何做”; 工具是为方法的运用提供自动或半自动软件支撑环境,回答工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什用什么做么做”; 过程是为获得高质量的软件要完成的一系列任务的框架,规定完成过程是为获得高质

16、量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答各项任务步骤,回答“如何控制、协调、保证质量如何控制、协调、保证质量”。管理方法管理方法2022-5-16大连理工大学软件学院18 目前使用得最广泛的软件工程方法学。目前使用得最广泛的软件工程方法学。 传统方法学也称为传统方法学也称为生命周期方法学生命周期方法学或或结构化范型结构化范型。 当软件规模较大,或对软件的需求是当软件规模较大,或对软件的需求是模糊模糊的或随时间的或随时间变化变化的时的时候,使用结构化范型开发软件往往不成功;候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。此外,使用

17、传统方法学开发出的软件,维护起来通常都很困难。 结构化静态分析,面向对象动态分析结构化静态分析,面向对象动态分析世界万物是变化的世界万物是变化的传统方法学与面向对象方法学传统方法学与面向对象方法学2022-5-16大连理工大学软件学院19传统方法的特点传统方法的特点生命周期模型生命周期模型软件过程划分为若干个阶软件过程划分为若干个阶段段每个阶段有各自的任务每个阶段有各自的任务阶段之间有某种顺序性阶段之间有某种顺序性2022-5-16大连理工大学软件学院20面向对象方法:面向对象方法:1. 对象作为融合数据及在数据之上的操作行为的统一的软件对象作为融合数据及在数据之上的操作行为的统一的软件构件。

18、构件。2. 把所有对象都划分成把所有对象都划分成类类(Class)。每个类都定义了一组。每个类都定义了一组数据数据和一组和一组操作操作。3. 按照父类按照父类(或称为基类或称为基类)与子类与子类(或称为派生类或称为派生类)的关系,把的关系,把若干个相关类组成一个若干个相关类组成一个层次结构层次结构的系统的系统(也称为类等级也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为和操作,称为继承继承。4. 对象彼此间仅能通过发送消息互相联系对象彼此间仅能通过发送消息互相联系封装性封装性。数据:静态数据:静态操作:动态操作:动

19、态Everything is Object.2022-5-16大连理工大学软件学院21OO特点特点 面向对象方法学的出发点和基本原则,是尽可能面向对象方法学的出发点和基本原则,是尽可能模拟人模拟人类习惯的思维方式类习惯的思维方式。 用面向对象方法学开发软件的过程,是一个用面向对象方法学开发软件的过程,是一个主动主动地多次地多次反复迭代反复迭代的演化过程。的演化过程。 概念和表示方法上的概念和表示方法上的一致性,阶段间平滑(无缝)过渡。一致性,阶段间平滑(无缝)过渡。 特殊到一般的特殊到一般的归纳归纳思维过程;一般到特殊的思维过程;一般到特殊的演绎演绎思维过思维过程。(程。(继承的思想继承的思想

20、)2022-5-16大连理工大学软件学院22OO特点特点 (2) 最终产品中的对象与现实世界中的实体相对应,降低最终产品中的对象与现实世界中的实体相对应,降低了了复杂性复杂性,提高了,提高了可理解性可理解性,简化了软件的开发和维,简化了软件的开发和维护工作。护工作。 对象是相对独立的实体,容易在软件产品中重复使用,对象是相对独立的实体,容易在软件产品中重复使用,促进了促进了软件重用软件重用。 面用对象方法特有的继承性,也进一步提高了面向对面用对象方法特有的继承性,也进一步提高了面向对象软件的可重用性。象软件的可重用性。2022-5-16大连理工大学软件学院23品品尝尝服服务务点点菜菜服服务务烹

21、烹饪饪服服务务上上菜菜服服务务+ + 品品尝尝+ + 点点菜菜+ + 上上菜菜+ + 备备料料+ + 烧烧菜菜- - 品品尝尝点点菜菜菜菜单单备备料料烧烧菜菜上上菜菜点点菜菜清清单单 当需求变化当需求变化时:时: 要求服务员要求服务员礼貌待客!礼貌待客!- 问候问候 模拟人类模拟人类思维思维 迭代开发迭代开发 设计简单、设计简单、容易理解容易理解2022-5-16大连理工大学软件学院24面向对象分析类图的例子面向对象分析类图的例子2022-5-16大连理工大学软件学院251.3 软件生命周期软件生命周期 软件生命周期由软件生命周期由软件定义、软件开发软件定义、软件开发和和运行维护运行维护三个时

22、期组成,每个时期又可进一步划分成若干三个时期组成,每个时期又可进一步划分成若干个阶段,每个阶段有各自的任务。个阶段,每个阶段有各自的任务。1软件定义软件定义2软件开发软件开发3运行维护运行维护2022-5-16大连理工大学软件学院261. 问题定义问题定义(领域分析(领域分析1) 必须回答的关键问题是:必须回答的关键问题是:“要解决的问题是什么要解决的问题是什么”。2. 可行性研究可行性研究 (领域分析(领域分析2,问题背景),问题背景) 回答的关键问题是:回答的关键问题是:“上一个阶段所确定的问题是上一个阶段所确定的问题是否有行得通的解决办法否有行得通的解决办法”。3. 需求分析需求分析 仍

23、然不是具体地解决客户的问题,而是准确地回答仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么目标系统必须做什么”。 此外,要用正式文档准确地记录对目标系统的需求,此外,要用正式文档准确地记录对目标系统的需求,这份文档通常称为这份文档通常称为规格说明规格说明(specification)。2022-5-16大连理工大学软件学院271.3 软件生命周期软件生命周期了解问题,不能准确表达,不知道怎样利用计算机实现了解软件实现,不清楚用户要求与用户配合,充分交流,得出系统需求2022-5-16大连理工大学软件学院284.概要设计概要设计概括地回答概括地回答“怎样实现目标系统怎样实现目标系

24、统?”这个问题。概要设计又这个问题。概要设计又称为称为初步设计、逻辑设计、高层设计或总体设计初步设计、逻辑设计、高层设计或总体设计。可以给出实现目标系统的几种可能的方案。可以给出实现目标系统的几种可能的方案。另一项主要任务是设计程序的另一项主要任务是设计程序的体系结构体系结构,即确定程序由哪,即确定程序由哪些模块组成以及模块间的关系。些模块组成以及模块间的关系。5.详细设计详细设计任务是把解法任务是把解法具体化具体化,回答,回答“应该怎样具体地实现这个系应该怎样具体地实现这个系统统”这个关键问题。这个关键问题。还不是编写程序,而是设计出程序的还不是编写程序,而是设计出程序的详细规格详细规格说明

25、。说明。又称为又称为模块设计、物理设计或低层设计模块设计、物理设计或低层设计。 2022-5-16大连理工大学软件学院296.编码和单元测试编码和单元测试关键任务是写出正确的容易理解、容易维护的程序模块,并测关键任务是写出正确的容易理解、容易维护的程序模块,并测试。试。7.综合测试综合测试关键任务是通过各种类型的测试关键任务是通过各种类型的测试(及相应的调试及相应的调试)使软件达到预定使软件达到预定的要求。的要求。集成测试、验收测试、系统测试集成测试、验收测试、系统测试分析系统的可靠性分析系统的可靠性记录测试计划、详细测试方案及实际测试结果,作为软件配置记录测试计划、详细测试方案及实际测试结果

26、,作为软件配置的一部分。的一部分。2022-5-16大连理工大学软件学院308.软件维护软件维护 维护阶段的关键任务是,通过各种必要的维护活动使维护阶段的关键任务是,通过各种必要的维护活动使系统系统持久持久地满足用户的需要。地满足用户的需要。 通常有四类维护活动通常有四类维护活动改正性维护改正性维护,也就是诊断和改正在使用过程中发现的软件,也就是诊断和改正在使用过程中发现的软件错误;错误;适应性维护适应性维护,即修改软件以适应环境的变化;,即修改软件以适应环境的变化;完善性维护完善性维护,即根据用户的要求改进或扩充软件使,即根据用户的要求改进或扩充软件使它更完它更完善;善;预防性维护预防性维护

27、,即修改软件为将来的维护活动预先做准备。,即修改软件为将来的维护活动预先做准备。2022-5-16大连理工大学软件学院311.4 软件过程软件过程 在实际软件开发时,软件规模、种类、在实际软件开发时,软件规模、种类、开发环境及开发时使用的技术方法等开发环境及开发时使用的技术方法等因素,因素,影响阶段的划分。影响阶段的划分。软件开发软件维护软件定义 生命周期模型规定了生命周期模型规定了把生命周期划分成哪把生命周期划分成哪些阶段及各个阶段的些阶段及各个阶段的执行顺序,因此,也执行顺序,因此,也称为称为过程模型过程模型。2022-5-16大连理工大学软件学院32瀑布模型瀑布模型 在在20世纪世纪80

28、年代之前,年代之前,唯一被广泛采用的生命唯一被广泛采用的生命周期模型周期模型 现在仍然是软件工程中现在仍然是软件工程中应用得最广泛的过程模应用得最广泛的过程模型。型。2022-5-16大连理工大学软件学院33瀑布模型瀑布模型传统的瀑布模型开发软件特传统的瀑布模型开发软件特点:点:1.阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性前一阶段完成后开始后一阶段前一阶段完成后开始后一阶段前一阶段输出作为后一阶段输入前一阶段输出作为后一阶段输入2022-5-16大连理工大学软件学院34瀑布模型瀑布模型传统的瀑布模型开发软件特传统的瀑布模型开发软件特点:点:2.推迟实现推迟实现不可急于求成不可急于求成清

29、楚地区分逻辑设计与物理实现清楚地区分逻辑设计与物理实现尽可能推迟程序的物理实现尽可能推迟程序的物理实现2022-5-16大连理工大学软件学院35瀑布模型瀑布模型传统的瀑布模型开发软件特传统的瀑布模型开发软件特点:点:3. 质量保证质量保证每个阶段都必须完成规定的每个阶段都必须完成规定的文档文档每个阶段结束前都要对所完每个阶段结束前都要对所完成的文档进行评审成的文档进行评审2022-5-16大连理工大学软件学院36瀑布模型瀑布模型 不希望有不希望有“变化变化” 变化来的越晚,付出的代价变化来的越晚,付出的代价越高。越高。 设计阶段过多的假设,导致设计阶段过多的假设,导致理想化、一厢情愿的东西过理

30、想化、一厢情愿的东西过多。多。2022-5-16大连理工大学软件学院37瀑布模型瀑布模型传 统 的 瀑 布 模 型传 统 的 瀑 布 模 型 实际的瀑布模型实际的瀑布模型2022-5-16大连理工大学软件学院38瀑布模型瀑布模型 带带“反馈环反馈环” (实线箭头实线箭头表示开发过程,虚线箭头表示开发过程,虚线箭头表示维护过程表示维护过程) 发现错误时,需要沿图中发现错误时,需要沿图中左侧的反馈线返回前面的左侧的反馈线返回前面的阶段,修正前面阶段的产阶段,修正前面阶段的产品之后再继续完成后面阶品之后再继续完成后面阶段的任务。段的任务。2022-5-16大连理工大学软件学院39瀑布模型瀑布模型 优

31、点:一定程度优点:一定程度解决解决“变化变化”的的问题。问题。 缺点:文档驱动,缺点:文档驱动,完全依赖书面文完全依赖书面文字。字。2022-5-16大连理工大学软件学院40快速原型模型快速原型模型快速建立起可以在计算机上运快速建立起可以在计算机上运行的程序,其功能往往是最终行的程序,其功能往往是最终产品功能的子集。产品功能的子集。模型的第一步是快速建立一个模型的第一步是快速建立一个能反映用户主要需求的原型系能反映用户主要需求的原型系统,让用户试用,通过实践来统,让用户试用,通过实践来了解目标系统的概貌。了解目标系统的概貌。(实线实线箭头表示开发过程,虚线箭头箭头表示开发过程,虚线箭头表示维护

32、过程表示维护过程)。2022-5-16大连理工大学软件学院41快速原型模型快速原型模型 用户试用用户试用提出修改意见提出修改意见快速地修改原型系统快速地修改原型系统用户再次试用用户再次试用 一旦用户认为原型系统确一旦用户认为原型系统确实能做他们所需要的工作,实能做他们所需要的工作,开发人员便可据此书写规开发人员便可据此书写规格说明文档,根据这份文格说明文档,根据这份文档开发出的软件可以满足档开发出的软件可以满足用户的真实需求。用户的真实需求。2022-5-16大连理工大学软件学院42快速原型模型快速原型模型快速原型的本质是快速原型的本质是“快速快速”。开发人员应该尽可能快地建造开发人员应该尽可

33、能快地建造出原型系统,以加速软件开发出原型系统,以加速软件开发过程,节约软件开发成本。过程,节约软件开发成本。原型的用途是获知用户的真正原型的用途是获知用户的真正需求,一旦需求确定了,原型需求,一旦需求确定了,原型将被抛弃。将被抛弃。 (原型通常没有严(原型通常没有严格的规范化,缺少文档,难以格的规范化,缺少文档,难以维护)维护)2022-5-16大连理工大学软件学院43快速原型模型快速原型模型2022-5-16大连理工大学软件学院44增量模型增量模型每个构件由多个相互每个构件由多个相互作用的模块构成,并作用的模块构成,并且能够完成特定的功且能够完成特定的功能。能。第一个增量构件往往第一个增量

34、构件往往实现软件的基本需求,实现软件的基本需求,提供最核心的功能。提供最核心的功能。 (滚雪球方式滚雪球方式)增量模型,也称渐增模型。增量模型,也称渐增模型。把软件产品作为一系列的增量构件来设计、编码、集成和测把软件产品作为一系列的增量构件来设计、编码、集成和测试。试。2022-5-16大连理工大学软件学院45增量模型增量模型 增量模型:逐步增量模型:逐步增加系统功能。增加系统功能。 较短时间内提交较短时间内提交可以工作的产品。可以工作的产品。 减少全新产品带减少全新产品带给客户的冲击。给客户的冲击。 困难:需要开放困难:需要开放的架构设计。的架构设计。瀑布、快速原型:力求一次性给用户完整的系

35、统。瀑布、快速原型:力求一次性给用户完整的系统。2022-5-16大连理工大学软件学院46实现各个构件之前完成全部需求分析、规格说明、概要设计。2022-5-16大连理工大学软件学院47螺旋模型螺旋模型 应采取适当措施消除或减少应采取适当措施消除或减少开发软件时的风险。开发软件时的风险。 螺旋模型的基本思想:使用螺旋模型的基本思想:使用原型及其他方法来尽量降低原型及其他方法来尽量降低风险。风险。 可以理解为在每个阶段之前可以理解为在每个阶段之前都增加了风险分析过程的快都增加了风险分析过程的快速原型模型。速原型模型。2022-5-16大连理工大学软件学院48螺旋模型螺旋模型 带箭头的点划线的带箭

36、头的点划线的长度代表当前累计长度代表当前累计的开发费用。的开发费用。 螺线旋过的角度值螺线旋过的角度值代表开发进度。代表开发进度。 每周期对应一个开每周期对应一个开发阶段发阶段2022-5-16大连理工大学软件学院49螺旋模型螺旋模型 优点:优点: 有利于软件的重用有利于软件的重用 有助于把软件质量作为软件开发的目标有助于把软件质量作为软件开发的目标 减少测试带来的风险减少测试带来的风险 维护作为开发的一个周期,与开发没有本质区别维护作为开发的一个周期,与开发没有本质区别 风险驱动:及时终止项目风险驱动:及时终止项目 弱点:弱点: 风险驱动:需要专业的风险评估人员风险驱动:需要专业的风险评估人

37、员2022-5-16大连理工大学软件学院50喷泉模型喷泉模型 迭代是软件开发过程中普迭代是软件开发过程中普遍存在的一种内在属性。遍存在的一种内在属性。 软件过程各个阶段之间的软件过程各个阶段之间的迭代或一个阶段内各个工迭代或一个阶段内各个工作步骤之间的迭代,在面作步骤之间的迭代,在面向对象范型中比在结构化向对象范型中比在结构化范型中更常见。范型中更常见。 喷泉模型是典型的面向对喷泉模型是典型的面向对象生命周期模型。象生命周期模型。2022-5-16大连理工大学软件学院51喷泉模型喷泉模型体现了面向对象软件开发过程迭体现了面向对象软件开发过程迭代和无缝的特性。代和无缝的特性。圆圈重叠:活动之间存

38、在交迭。圆圈重叠:活动之间存在交迭。概念和表示方法的一致性:保证概念和表示方法的一致性:保证无缝过渡。无缝过渡。面向对象方法:分析、设计、编面向对象方法:分析、设计、编码不存在明显的边界。码不存在明显的边界。向下箭头:阶段内的迭代(求向下箭头:阶段内的迭代(求精)。精)。2022-5-16大连理工大学软件学院52喷泉模型喷泉模型 把一个线性过程作把一个线性过程作为总目标为总目标避免避免开发过程过分无序。开发过程过分无序。 快速原型模型快速原型模型 图中的中心垂线图中的中心垂线2022-5-16大连理工大学软件学院53思考题思考题 1、假设要你开发一个软件,该软件的功能是把读入的浮、假设要你开发

39、一个软件,该软件的功能是把读入的浮点数开平发,所得结果应该精确到小数点后点数开平发,所得结果应该精确到小数点后4位。一旦实位。一旦实现并测试完之后,该产品将被抛弃。你打算选用哪种软现并测试完之后,该产品将被抛弃。你打算选用哪种软件生命周期模型?请说明理由。件生命周期模型?请说明理由。 2、假设你被任命为一家软件公司的项目负责人,你的工、假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用

40、哪种软件生命周期模型?请且已对外公布。你打算采用哪种软件生命周期模型?请说明理由。说明理由。2022-5-16大连理工大学软件学院54思考题思考题 1、瀑布模型。、瀑布模型。 需求明确、算法成熟,无需原型。需求明确、算法成熟,无需原型。 实现之后即被抛弃,无需增量或螺旋。实现之后即被抛弃,无需增量或螺旋。 2、增量模型。、增量模型。 时间紧,任务并行。时间紧,任务并行。 广泛应用软件的新版本,旧版本即相当于原型。广泛应用软件的新版本,旧版本即相当于原型。 以后可能扩充。以后可能扩充。2022-5-16大连理工大学软件学院55敏捷软件开发敏捷软件开发 快速适应快速适应需求变化需求变化 提高软件提

41、高软件生产率生产率 灵活、动灵活、动态的人员态的人员组织方式组织方式 面向业务面向业务目标持续目标持续改进和重改进和重组组2022-5-16大连理工大学软件学院56敏捷过程与极限编程敏捷过程与极限编程 敏捷软件开发宣言敏捷软件开发宣言 个体和交互胜过过程和工具个体和交互胜过过程和工具 可以工作的软件胜过面面俱到的文档可以工作的软件胜过面面俱到的文档 客户合作胜过合同谈判客户合作胜过合同谈判 响应变化胜过遵循计划响应变化胜过遵循计划 极限编程有效实践极限编程有效实践 极限编程的整体开发过程极限编程的整体开发过程 极限编程的迭代过程极限编程的迭代过程2022-5-16大连理工大学软件学院57Rat

42、ional统一过程统一过程2022-5-16大连理工大学软件学院58微软过程(微软过程(MSF) 微软过程准则微软过程准则 微软软件生命周期微软软件生命周期 规划规划 设计设计 开发开发 稳定稳定 发布发布 微软过程模型微软过程模型Microsoft Operations FrameworkMicrosoft Solutions FrameworkOperateDeployBuildPlan2022-5-16大连理工大学软件学院59 1.5 小结小结 对计算机软件工程学做了简短概述。对计算机软件工程学做了简短概述。开发软件的一些错误方法和观念。开发软件的一些错误方法和观念。错误方法带来的严重弊

43、病错误方法带来的严重弊病( (软件危机软件危机) ),澄清了一些糊涂,澄清了一些糊涂观念。观念。为了计算机系统的进一步发展,需要认真研究开发和维为了计算机系统的进一步发展,需要认真研究开发和维护软件的科学技术。(护软件的科学技术。(引入软件工程的概念引入软件工程的概念)总结经验教训,借鉴工程领域的管理技术,逐步使软件总结经验教训,借鉴工程领域的管理技术,逐步使软件工程这门新学科发展和完善起来。(工程这门新学科发展和完善起来。(可持续发展可持续发展)2022-5-16大连理工大学软件学院60 传统的方法学传统的方法学 面向对象方法面向对象方法 = = 对象对象+ +类类+ +继承继承+ +封装封

44、装 面向对象方法简化了软件的开发和维护工作,面向对象方法简化了软件的开发和维护工作,提高了软件的可重用性。(提高了软件的可重用性。(OO特点及优点特点及优点) 软件生命周期(软件生命周期(8个阶段)个阶段) 软件过程:瀑布模型、快速原型模型、增量模软件过程:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。型、螺旋模型、喷泉模型。2022-5-16大连理工大学软件学院61 生命周期模型生命周期模型( (即软件过程模型即软件过程模型) )规定了把生命周规定了把生命周期划分成的阶段及各个阶段的执行顺序。期划分成的阶段及各个阶段的执行顺序。 瀑布模型瀑布模型历史悠久、广为人知,它的优势在于它历史

45、悠久、广为人知,它的优势在于它是规范的、文档驱动的方法;开发阶段没有用户是规范的、文档驱动的方法;开发阶段没有用户参与,需要尽早发现问题。参与,需要尽早发现问题。 快速原型模型快速原型模型通过快速构建起一个可运行的原型通过快速构建起一个可运行的原型系统,让用户参与试用,获取真实需求;整体结系统,让用户参与试用,获取真实需求;整体结构不清晰;周期长,成本高。构不清晰;周期长,成本高。2022-5-16大连理工大学软件学院62 增量模型增量模型具有能在软件开发的早期阶段使投资获具有能在软件开发的早期阶段使投资获得明显回报和易于维护的优点,但是,要求软件得明显回报和易于维护的优点,但是,要求软件具有开放结构是使用这种模型时固有的困难。具有开放结构是使用这种模型时固有的困难。 风险驱动的风险驱动的螺旋模型螺旋模型适用于大规模的内部开发项适用于大规模的内部开发项目,但需要专业人员做风险分析。目,但需要专业人员做风险分析。 喷泉模型喷泉模型支持迭代、演进;各阶段无明显界限;支持迭代、演进;各阶段无明显界限;适合面向对象的开发。适合面向对象的开发。2022-5-16大连理工大学软件学院63作业作业 P32, 第第5题题

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(大连理工软件学院软件工程课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|