收藏 分享(赏)

软件工程导论(第五版).ppt

上传人:fmgc7290 文档编号:5163478 上传时间:2019-02-11 格式:PPT 页数:705 大小:2.97MB
下载 相关 举报
软件工程导论(第五版).ppt_第1页
第1页 / 共705页
软件工程导论(第五版).ppt_第2页
第2页 / 共705页
软件工程导论(第五版).ppt_第3页
第3页 / 共705页
软件工程导论(第五版).ppt_第4页
第4页 / 共705页
软件工程导论(第五版).ppt_第5页
第5页 / 共705页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式单击此处编辑母版副标题样式* 1软件工程( Software Engineering )信息学院 信息工程系 杨振刚第 1章:软件工程学概述1.1 软件危机60年代中期以前:通用硬件相当普遍,软件却是为某个具体的应用而编写的。60年代中到 70年代中:软件作坊。软件危机 :计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题) 1.1.1 软件危机的介绍1)对软件开发成本和进度的估计常常很不准确;2)用户对完成的软件系统不满意的现象经常发生;3)软件产品的质量往往靠不住; 软件危机的典型表现:4)软件常常是不可维护的;5)软件通常没有

2、适当的文档资料;6)软件成本在计算机系统总成本中所占的比例逐年上升;7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。 1.1.2 产生软件危机的原因1)软件本身特点造成;2)软件开发与维护的方法不正确。主要表现:( a)忽视软件需求分析;( b)认为软件开发就是写程序并使之运行;( c)轻视软件维护;在软件开发的不同阶段进行修改需要付出的代价很不相同:高中低早期 中期 后期 软件开发时期代价引入同一修改的代价随时间变化的趋势1)推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法;2)开发和使用更好的软件工具;3)良好的组织管理措施。 1.1.3 解决软件危

3、机的途径为了解决软件危机产生的问题,软件工程与方法学逐渐形成,然后出现了两个相互相承又各有侧重的学科:1) 软件工程学 :主要应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门交叉学科。2) 程序设计方法学 :主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学科。 1.2 软件工程1.2.1 软件工程的介绍1968年 NATO会议:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。1993年 IEEE:软件工程是( 1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程;( 2)研究( 1)中提到的途径。1. 软件工程

4、关注于大型程序的构造;2. 软件工程的中心课题是控制复杂性;3. 软件经常变化;4. 开发软件的效率非常重要;5. 和谐地合作是软件开发的关键;6. 软件必须有效地支持它的用户;7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。软件工程的本质特性:1.2.2 软件工程的基本原理1. 用分阶段的生命周期计划严格管理;2. 坚持进行阶段评审;3. 实行严格的产品控制;4. 采用现代程序设计技术;5. 结果能清楚地审查;6. 开发小组的人员应该少而精;7. 承认不断改进软件工程实践的必要性。1.2.3 软件工程方法学通常把在软件生命周期全过程中使用的一整套技术方法的集合

5、称为方法学( Methodology),也称为范型( Paradigm)。软件工程方法学的 3要素:方法、工具和过程1. 传统方法学也称为生命周期方法学或结构化范型。结构化方法( Structure Method) 有:1)结构化设计方法( SD);2) 结构化分析方法( SA); 3)结构化分析与设计技术( SADT)4) JACKSON方法5) WARNIER方法2. 面向对象方法学把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。面向对象的方法=对象(属性与服务的封装)+分类+继承+通过消息的通讯1)适用于实时事物处理系统的有限状态机方法( FSM);2) 适

6、用于并发软件系统的 PETRI网方法;3)以数学概念和理论为基础的形式化方法,如SDC公司的形式化开发方法 FDM:( Formal Development Methodology)IBM公司的维也纳开发方法 VDM:( Vienna Development Method ) 3. 其他开发方法 1.3 软件生命周期软件生命周期 :指软件从提出到最终被淘汰的这个存在期。 软件生命周期组成:1)软件定义;A.问题定义 B.可行性研究 C.需求分析2)软件开发;D.总体设计 E.详细设计F.编码和单元测试 G.综合测试3)运行维护。1.问题定义;2.可行性研究;3.需求分析;4.总体设计(概要设计

7、);5.详细设计;6.编码与单元测试;7.综合测试;8.维护。软件生命周期各个阶段:1.4 软件过程软件过程 :为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过程( ISO9000) : 使用资源将输入转化为输出的活动所构成的系统。输入:如软件需求输出:如软件产品1.4.1 瀑布模型1. 阶段间具有顺序性和依赖性2. 推迟实现的观点3. 质量保证的观点优点 :采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。1.4.2 快速原型模型优点 :不带反馈环,基本上是线性顺序进行。1.4.3 增量模型优点 :能较短时间内提交可完成部分

8、工作的产品;可以使用户有充裕的时间学习和适应新产品。一种风险更大的增量模型:1.4.4 螺旋模型可把它看作在每个阶段之前都增加风险分析的快速原型模型。1.4.5 喷泉模型典型的面向对象软件开发过程模型之一。1.4.6 Rational 统一过程1. RUP软件开发经验( 1)迭代式开发( 2)管理需求( 3)使用基于构件的体系结构( 4)可视化建模( 5)贯穿于开发过程的软件质量验证( 6)控制软件变更1.4.7 敏捷过程与极限编程1.敏捷过程具有高效、快速响应变化的开发过程。( 1)个体和交互胜过过程和工具;( 2)可以工作的软件胜过面面俱到的文档;( 3)客户合作胜过合同谈判;( 4)响应变化胜过遵循计划。2.极限编程敏捷过程中最著名的一种,指把好的开发实践运用到极致,多应用于软件需求模糊的场合。

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

当前位置:首页 > 网络科技 > 软件工程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报