软件工程 软件工程学概论.pptx
《软件工程 软件工程学概论.pptx》由会员分享,可在线阅读,更多相关《软件工程 软件工程学概论.pptx(78页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1 软件危机20世纪60年代中期软件需求急剧膨胀,软件维护工作耗费大量的资源1968年北大西洋公约组织的计算机专家召开国际会议,讨论软件危机问题,首次提出软件工程概念第1页/共78页软件危机介绍什么是软件危机?在计算机软件的开发和维护过程中,所遇到的一系列严重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护软件,数量不断膨胀。第2页/共78页软件危机表现1.开发成本和进度难以估算和控制,大大超过预期2.用户对已完成的软件不满意,需求分析不够充分3.软件产品的质量难以保证4.
2、软件维护困难难以改正错误难以增加新功能5.软件通常没有合适的文档资料6.软件成本在计算机系统总成本中比例逐年上升7.软件开发生产率提高的速度,跟不上计算机普及速度。第3页/共78页几个软件危机的案例第4页/共78页产生软件危机原因两个主要原因:与软件本身的特点有关,和软件开发与维护的方法不正确有关。第5页/共78页第6页/共78页第7页/共78页第8页/共78页第9页/共78页第10页/共78页第11页/共78页第12页/共78页第13页/共78页消除软件危机的途径1.消除“软件就是程序”的错误观念 软件=程序+文档+数据2.软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工
3、程项目。非个人英雄主义3.使用实践中总结出来的成功的技术和方法4.开发和使用更好的软件工具。第14页/共78页第15页/共78页思考问题只要是编程高手,不懂软件工程,也能编出很好的软件?只要一套好的软件工程书籍,就可以解决软件开发过程的任何问题?只要有最好的开发工具、就能做出优秀的软件?软件开发进度慢于计划,增加程序员来解决?软件运行较慢,换一台机器?换一种算法?第16页/共78页目录1.1 软件危机1.2 软件工程软件工程定义软件工程原理软件工程方法学1.3 软件生命周期1.4 软件过程第17页/共78页第18页/共78页软件工程的本质特性1.软件工程关注于大型程序/系统的构造2.软件工程的
4、中心课题是控制复杂性 逻辑文档 分而治之 可管理 3.软件经常变化 4.开发软件的效率非常重要5.和谐地合作是开发软件的关键6.软件必须有效地支持它的用户7.在软件工程领域中,是由具有一种文化背景的人,替具有另一种文化背景的人 软件=知识+程序+数据+文档第19页/共78页软件工程的基本原理(I)Boehm于1983年提出:1.用分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.结果应能清楚地审查6.开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性第20页/共78页软件工程方法学软件工程包括技术和管理两方面的内容管理 对 人、财、物的
5、合理使用和配置技术 软件开发中采用的方法、过程、工具软件工程方法学:通常把在软件生命周期全过程中,使用的一整套技术方法的集合,称为方法学(Methodology),也称为范型(Paradigm)。第21页/共78页软件工程方法学3个要素方法完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具为运用方法,而提供的自动的或半自动的软件工程支撑环境;过程为了获得高质量的软件,所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。第22页/共78页软件工程方法学思想1.传统方法学2.面向对象方法学。第23页/共78页第24页/共78页第25页/共78页第26页/共78页第27页/共78
6、页目录1.1 软件危机1.2 软件工程1.3 软件生命周期软件定义软件开发软件维护1.4 软件过程第28页/共78页1.3 软件生命周期第29页/共78页第30页/共78页第31页/共78页第32页/共78页第33页/共78页第34页/共78页第35页/共78页目录1.1 软件危机1.2 软件工程1.3 软件生命周期1.4 软件过程什么是软件过程软件开发模型/过程模型/软件工程范型瀑布、原型、增量、螺旋、喷泉RUP XP MSF第36页/共78页第37页/共78页第38页/共78页第39页/共78页第40页/共78页第41页/共78页第42页/共78页第43页/共78页将软件的开发过程,分成若
7、干个日程时间交错的线性序列,每个线性序列,产生软件的一个可发布的“增量”版本,后一个版本是对前一版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。强调每一个增量都发布一个可运行的产品特别适用于:需求经常变化的软件开发市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开发能有计划地管理技术风险,如早期增量版本中,避免采用尚未成熟的技术增量模型第44页/共78页增量模型第45页/共78页第46页/共78页在软件开发过程中,必须及时识别和分析风险,并且采取适当措施,以消除或减少风险的危害。第47页/共78页螺旋模型B.Boehm于1988年提出使用原型等技术方法来降
8、低风险螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动,即:制定计划制定计划:确定软件目标,选定实施方案,弄清项目开:确定软件目标,选定实施方案,弄清项目开发的限制条件发的限制条件风险分析风险分析:评价所选的方案,识别风险,消除风险:评价所选的方案,识别风险,消除风险工程实施工程实施:实施软件开发,验证工作产品:实施软件开发,验证工作产品客户评估客户评估:评价开发工作,提出修正建议:评价开发工作,提出修正建议第48页/共78页 第49页/共78页第50页/共78页喷泉模型喷泉模型体现了面向对象软件开发过程,迭代和无缝的特性,图中代表不同阶段的圆圈相互重叠,表示两个活动之间存在交迭。第5
9、1页/共78页经验证的、最有效的软件开发经验,称为最佳实践:1.迭代式开发2.管理需求3.使用基于构件的体系结构4.可视化建模5.验证软件质量6.控制软件变更渐进的认识需求会不断变化提高重用更易理解沟通全程质保确保迭代成功第52页/共78页RUP软件开发生命周期核心过程工作流程核心支持工作流程4个连续工作阶段第53页/共78页敏捷过程与极限编程(I)敏捷过程团队高效工作、快速响应变化开发宣言1.个体和交互 胜过 过程和工具2.可以工作的软件 胜过 面面俱到的文档3.客户合作 胜过 合同谈判4.响应变化 胜过 遵循计划第54页/共78页敏捷过程与极限编程(II)XP是敏捷过程中最负盛名的一个用于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件工程学概论 软件 工程学 概论
限制150内