软件工程导论第五版.ppt
《软件工程导论第五版.ppt》由会员分享,可在线阅读,更多相关《软件工程导论第五版.ppt(705页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程软件工程(SoftwareEngineering)信息学院信息学院 信息工程系信息工程系 杨振刚杨振刚第第1章:软件工程学概述章:软件工程学概述1.11.1软件危机软件危机软件危机软件危机 6060年年年年代代代代中中中中期期期期以以以以前前前前:通通通通用用用用硬硬硬硬件件件件相相相相当当当当普普普普遍遍遍遍,软软软软件件件件却却却却是是是是为为为为某某某某个个个个具体的应用而编写的。具体的应用而编写的。具体的应用而编写的。具体的应用而编写的。6060年代中到年代中到年代中到年代中到7070年代中:软件作坊。年代中:软件作坊。年代中:软件作坊。年代中:软件作坊。软件危机软件危机软件危
2、机软件危机:计算机软件的开发和维护过程中所遇:计算机软件的开发和维护过程中所遇:计算机软件的开发和维护过程中所遇:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都到的一系列严重问题。(正常、不正常运行软件都到的一系列严重问题。(正常、不正常运行软件都到的一系列严重问题。(正常、不正常运行软件都具有这种问题)具有这种问题)具有这种问题)具有这种问题)1.1.1软件危机的介绍软件危机的介绍1 1)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;)对软件开发成本和进度的估计常常很不准确;2 2)用
3、户对完成的软件系统不满意的现象经常发生;)用户对完成的软件系统不满意的现象经常发生;)用户对完成的软件系统不满意的现象经常发生;)用户对完成的软件系统不满意的现象经常发生;3 3)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;)软件产品的质量往往靠不住;软件危机的典型表现:软件危机的典型表现:4 4)软件常常是不可维护的;)软件常常是不可维护的;)软件常常是不可维护的;)软件常常是不可维护的;5 5)软件通常没有适当的文档资料;)软件通常没有适当的文档资料;)软件通常没有适当的文档资料;)软件通常没有适当的文档资料;6 6)软软软软件件件件成成成成本本本本在
4、在在在计计计计算算算算机机机机系系系系统统统统总总总总成成成成本本本本中中中中所所所所占占占占的的的的比比比比例逐年上升;例逐年上升;例逐年上升;例逐年上升;7 7)软件开发生产率提高的速度跟不上计算机)软件开发生产率提高的速度跟不上计算机)软件开发生产率提高的速度跟不上计算机)软件开发生产率提高的速度跟不上计算机应用的发展趋势。应用的发展趋势。应用的发展趋势。应用的发展趋势。1.1.2产生软件危机的原因产生软件危机的原因1)软件本身特点造成;)软件本身特点造成;2)软件开发与维护的方法不正确。)软件开发与维护的方法不正确。主要表现:主要表现:(a)忽视软件需求分析;)忽视软件需求分析;(b)
5、认为软件开发就是写程序并使之运行;)认为软件开发就是写程序并使之运行;(c)轻视软件维护;)轻视软件维护;在软件开发的不同阶段进行修改需要付出的在软件开发的不同阶段进行修改需要付出的在软件开发的不同阶段进行修改需要付出的在软件开发的不同阶段进行修改需要付出的代价很不相同:代价很不相同:代价很不相同:代价很不相同:高高中中低低早期早期中期中期后期后期软件开发时期软件开发时期代价代价引入同一修改的代价随时间变化的趋势引入同一修改的代价随时间变化的趋势1 1)推推推推广广广广使使使使用用用用在在在在实实实实践践践践中中中中总总总总结结结结出出出出来来来来的的的的开开开开发发发发软软软软件件件件的的的
6、的成成成成功功功功技技技技术术术术和和和和方方方方法法法法,并并并并研研研研究究究究探探探探索索索索更更更更有有有有效效效效的的的的技技技技术术术术和和和和方法;方法;方法;方法;2 2)开发和使用更好的软件工具;)开发和使用更好的软件工具;)开发和使用更好的软件工具;)开发和使用更好的软件工具;3 3)良好的组织管理措施。)良好的组织管理措施。)良好的组织管理措施。)良好的组织管理措施。1.1.3解决软件危机的途径解决软件危机的途径 为为为为了了了了解解解解决决决决软软软软件件件件危危危危机机机机产产产产生生生生的的的的问问问问题题题题,软软软软件件件件工工工工程程程程与与与与方方方方法法法
7、法学学学学逐逐逐逐渐渐渐渐形形形形成成成成,然然然然后后后后出出出出现现现现了了了了两两两两个个个个相相相相互互互互相相相相承承承承又又又又各有侧重的学科:各有侧重的学科:各有侧重的学科:各有侧重的学科:1 1)软软软软件件件件工工工工程程程程学学学学:主主主主要要要要应应应应用用用用工工工工程程程程的的的的方方方方法法法法和和和和技技技技术术术术研研研研究究究究软软软软件件件件开开开开发发发发与与与与维维维维护护护护的的的的方方方方法法法法、工工工工具具具具和和和和管管管管理理理理的的的的一一一一门交叉学科。门交叉学科。门交叉学科。门交叉学科。22)程序设计方法学程序设计方法学程序设计方法学
8、程序设计方法学:主要应用数学的方法研:主要应用数学的方法研:主要应用数学的方法研:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学究程序的性质以及程序设计的理论和方法的学究程序的性质以及程序设计的理论和方法的学究程序的性质以及程序设计的理论和方法的学科。科。科。科。1.2软件工程软件工程1.2.11.2.1软件工程的介绍软件工程的介绍软件工程的介绍软件工程的介绍1968年年NATO会会议议:软软件件工工程程就就是是为为了了经经济济地地获获得得可可靠靠的的且且能能在在实实际际机机器器上上有有效效地地运运行行的的软软件件,而建立和使用完善的工程原理。而建立和使用完善的工程原理。1993
9、年年IEEE:软软件件工工程程是是(1)把把系系统统的的、规规范范的的、可可度度量量的的途途径径应应用用于于软软件件开开发发、运运行行和和维维护护过程;(过程;(2)研究()研究(1)中提到的途径。)中提到的途径。1.1.软件工程关注于大型程序的构造;软件工程关注于大型程序的构造;软件工程关注于大型程序的构造;软件工程关注于大型程序的构造;2.2.软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性;软件工程的中心课题是控制复杂性;3.3.软件经常变化;软件经常变化;软件经常变化;软件经常变化;4.4.开发软件的效率非常重要;开发软件的效率非常重要;开
10、发软件的效率非常重要;开发软件的效率非常重要;5.5.和谐地合作是软件开发的关键;和谐地合作是软件开发的关键;和谐地合作是软件开发的关键;和谐地合作是软件开发的关键;6.6.软件必须有效地支持它的用户;软件必须有效地支持它的用户;软件必须有效地支持它的用户;软件必须有效地支持它的用户;7.7.在软件工程领域中是由具有一种文化背景的在软件工程领域中是由具有一种文化背景的在软件工程领域中是由具有一种文化背景的在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。人替具有另一种文化背景的人创造产品。人替具有另一种文化背景的人创造产品。人替具有另一种文化背景的人创造产品。软件工程的
11、本质特性:软件工程的本质特性:1.2.2软件工程的基本原理软件工程的基本原理1.1.用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理;用分阶段的生命周期计划严格管理;2 2.坚持进行阶段评审;坚持进行阶段评审;坚持进行阶段评审;坚持进行阶段评审;3 3.实行严格的产品控制;实行严格的产品控制;实行严格的产品控制;实行严格的产品控制;4 4.采用现代程序设计技术;采用现代程序设计技术;采用现代程序设计技术;采用现代程序设计技术;5 5.结果能清楚地审查;结果能清楚地审查;结果能清楚地审查;结果能清楚地审查;6 6.开发小组的人员应该少而精;开发小组的
12、人员应该少而精;开发小组的人员应该少而精;开发小组的人员应该少而精;7 7.承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。承认不断改进软件工程实践的必要性。1.2.3软件工程方法学软件工程方法学通常把在软件生命周期全过程中使用的一整套通常把在软件生命周期全过程中使用的一整套通常把在软件生命周期全过程中使用的一整套通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(技术方法的集合称为方法学(技术方法的集合称为方法学(技术方法的集合称为方法学(MethodologyMethodology),),),),也称为范型(也称为范型(也
13、称为范型(也称为范型(ParadigmParadigm)。)。)。)。软件工程方法学的软件工程方法学的软件工程方法学的软件工程方法学的3 3要素:方法、工具和过程要素:方法、工具和过程要素:方法、工具和过程要素:方法、工具和过程1.传统方法学传统方法学也称为生命周期方法学或结构化范型。也称为生命周期方法学或结构化范型。也称为生命周期方法学或结构化范型。也称为生命周期方法学或结构化范型。结构化方法(结构化方法(结构化方法(结构化方法(StructureMethodStructureMethod)有:有:有:有:11)结构化设计方法()结构化设计方法()结构化设计方法()结构化设计方法(SDSD)
14、;);););22)结构化分析方法(结构化分析方法(结构化分析方法(结构化分析方法(SASA););););33)结构化分析与设计技术()结构化分析与设计技术()结构化分析与设计技术()结构化分析与设计技术(SADTSADT)44)JACKSONJACKSON方法方法方法方法55)WARNIERWARNIER方法方法方法方法2.面向对象方法学面向对象方法学把数据和对数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法,把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。模拟人类认识世界解决问题的方法和过程。模拟人
15、类认识世界解决问题的方法和过程。模拟人类认识世界解决问题的方法和过程。面向对象的方法面向对象的方法面向对象的方法面向对象的方法=对象(属性与服务的封装)对象(属性与服务的封装)对象(属性与服务的封装)对象(属性与服务的封装)+分类分类分类分类+继承继承继承继承+通过消息的通讯通过消息的通讯通过消息的通讯通过消息的通讯1 1)适适适适用用用用于于于于实实实实时时时时事事事事物物物物处处处处理理理理系系系系统统统统的的的的有有有有限限限限状状状状态态态态机机机机方方方方法法法法(FSMFSM););););2 2)适用于并发软件系统的适用于并发软件系统的适用于并发软件系统的适用于并发软件系统的PE
16、TRIPETRI网方法;网方法;网方法;网方法;3 3)以数学概念和理论为基础的形式化方法,如)以数学概念和理论为基础的形式化方法,如)以数学概念和理论为基础的形式化方法,如)以数学概念和理论为基础的形式化方法,如 SDCSDC公司的形式化开发方法公司的形式化开发方法公司的形式化开发方法公司的形式化开发方法FDMFDM:(FormalDevelopmentMethodologyFormalDevelopmentMethodology)IBMIBM公司的维也纳开发方法公司的维也纳开发方法公司的维也纳开发方法公司的维也纳开发方法VDMVDM:(ViennaDevelopmentMethodVien
17、naDevelopmentMethod)3.其他开发方法其他开发方法 1.3软件生命周期软件生命周期软件生命周期软件生命周期:指软件从提出到最终被淘汰的这个存在期。指软件从提出到最终被淘汰的这个存在期。软件生命周期组成:软件生命周期组成:1 1)软件定义;)软件定义;)软件定义;)软件定义;A.A.问题定义问题定义问题定义问题定义 B.B.可行性研究可行性研究可行性研究可行性研究 C.C.需求分需求分需求分需求分析析析析2 2)软件开发;)软件开发;)软件开发;)软件开发;D.D.总体设计总体设计总体设计总体设计E.E.详细设计详细设计详细设计详细设计F.F.编码和单元测试编码和单元测试编码和
18、单元测试编码和单元测试G.G.综合测试综合测试综合测试综合测试3 3)运行维护。)运行维护。)运行维护。)运行维护。1.问题定义;问题定义;2.可行性研究;可行性研究;3.需求分析;需求分析;4.总体设计(概要设计);总体设计(概要设计);5.详细设计;详细设计;6.编码与单元测试;编码与单元测试;7.综合测试;综合测试;8.维护。维护。软件生命周期各个阶段:软件生命周期各个阶段:1.4软件过程软件过程软软软软件件件件过过过过程程程程:为为为为了了了了获获获获得得得得高高高高质质质质量量量量软软软软件件件件所所所所需需需需要要要要完完完完成成成成的的的的一一一一系系系系列列列列任任任任务务务务
19、的的的的框框框框架架架架,它它它它规规规规定定定定了了了了完完完完成成成成各各各各项项项项任任任任务务务务的的的的工工工工作作作作步骤。步骤。步骤。步骤。软软软软件件件件过过过过程程程程(ISO9000ISO9000):使使使使用用用用资资资资源源源源将将将将输输输输入入入入转转转转化化化化为为为为输出的活动所构成的系统。输出的活动所构成的系统。输出的活动所构成的系统。输出的活动所构成的系统。输入:如软件需求输入:如软件需求输入:如软件需求输入:如软件需求输出:如软件产品输出:如软件产品输出:如软件产品输出:如软件产品1.4.1瀑布模型瀑布模型1.阶阶段段间间具具有有顺顺序序性性和和依赖性依赖
20、性2.推迟实现的观点推迟实现的观点3.质量保证的观点质量保证的观点优优点点:采采用用规规范范的的方方法法;严严格格规规定定每每个个阶阶段段提提交交的的文文档档;要要求求每每个个阶阶段段交交出出的的产产品品必必须须经经过过验验证。证。1.4.2快速原型模型快速原型模型优点优点优点优点:不带反馈环,基:不带反馈环,基:不带反馈环,基:不带反馈环,基本上是线性顺序进行。本上是线性顺序进行。本上是线性顺序进行。本上是线性顺序进行。1.4.3增量模型增量模型优优点点:能能较较短短时时间间内内提提交交可可完完成成部部分分工工作作的的产产品品;可可以以使使用用户有充裕的时间学习和适应新产品。户有充裕的时间学
21、习和适应新产品。一种风险更大的增量模型:一种风险更大的增量模型:1.4.4螺旋模型螺旋模型可把它看作在每可把它看作在每可把它看作在每可把它看作在每个阶段之前都增加个阶段之前都增加个阶段之前都增加个阶段之前都增加风险分析的快速原风险分析的快速原风险分析的快速原风险分析的快速原型模型。型模型。型模型。型模型。1.4.5喷泉模型喷泉模型典型的面向对象软件典型的面向对象软件开发过程模型之一。开发过程模型之一。1.4.6Rational统一过程统一过程1.RUP1.RUP软件开发经验软件开发经验软件开发经验软件开发经验(1 1)迭代式开发)迭代式开发)迭代式开发)迭代式开发(2 2)管理需求)管理需求)
22、管理需求)管理需求(3 3)使用基于构件的体系结构)使用基于构件的体系结构)使用基于构件的体系结构)使用基于构件的体系结构(4 4)可视化建模)可视化建模)可视化建模)可视化建模(5 5)贯穿于开发过程的软件质量验证)贯穿于开发过程的软件质量验证)贯穿于开发过程的软件质量验证)贯穿于开发过程的软件质量验证(6 6)控制软件变更)控制软件变更)控制软件变更)控制软件变更1.4.7敏捷过程与极限编程敏捷过程与极限编程1.1.敏捷过程敏捷过程敏捷过程敏捷过程具有高效、快速响应变化的开发过程。具有高效、快速响应变化的开发过程。具有高效、快速响应变化的开发过程。具有高效、快速响应变化的开发过程。(1 1
23、)个体和交互胜过过程和工具;)个体和交互胜过过程和工具;)个体和交互胜过过程和工具;)个体和交互胜过过程和工具;(2 2)可以工作的软件胜过面面俱到的文档;)可以工作的软件胜过面面俱到的文档;)可以工作的软件胜过面面俱到的文档;)可以工作的软件胜过面面俱到的文档;(3 3)客户合作胜过合同谈判;)客户合作胜过合同谈判;)客户合作胜过合同谈判;)客户合作胜过合同谈判;(4 4)响应变化胜过遵循计划。)响应变化胜过遵循计划。)响应变化胜过遵循计划。)响应变化胜过遵循计划。2.2.极限编程极限编程极限编程极限编程敏捷过程中最著名的一种,指把好的开发实践运敏捷过程中最著名的一种,指把好的开发实践运敏捷
24、过程中最著名的一种,指把好的开发实践运敏捷过程中最著名的一种,指把好的开发实践运用到极致,多应用于软件需求模糊的场合。用到极致,多应用于软件需求模糊的场合。用到极致,多应用于软件需求模糊的场合。用到极致,多应用于软件需求模糊的场合。1.4.8微软过程微软过程1.1.微软过程准则微软过程准则微软过程准则微软过程准则2.2.微软软件生命周期微软软件生命周期微软软件生命周期微软软件生命周期(1 1)规划阶段)规划阶段)规划阶段)规划阶段(2 2)设计阶段)设计阶段)设计阶段)设计阶段(3 3)开发阶段)开发阶段)开发阶段)开发阶段(4 4)稳定阶段)稳定阶段)稳定阶段)稳定阶段(5 5)发布阶段)发
25、布阶段)发布阶段)发布阶段3.3.微软过程模型微软过程模型微软过程模型微软过程模型 问问问问题题题题定定定定义义义义就就就就是是是是要要要要确确确确定定定定为为为为用用用用户户户户建建建建立立立立什什什什么么么么样样样样的的的的软软软软件件件件系系系系统统统统,软软软软件件件件叫叫叫叫什什什什么么么么样样样样的的的的名名名名称称称称等等等等等等等等。“问问问问题题题题”是指软件最基本的问题,如:是指软件最基本的问题,如:是指软件最基本的问题,如:是指软件最基本的问题,如:软件的总体目标什么?软件的总体目标什么?软件的总体目标什么?软件的总体目标什么?有什么用途?有什么用途?有什么用途?有什么用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 第五
限制150内