软件工程1100.ppt
《软件工程1100.ppt》由会员分享,可在线阅读,更多相关《软件工程1100.ppt(100页珍藏版)》请在课桌文档上搜索。
1、软件工程,(Software Engineering),第1章:软件工程学概述,1.1 软件危机 60年代中期以前:通用硬件相当普遍,软件却是为某个具体的应用而编写的。60年代中到70年代中:软件作坊。,软件危机:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题),1.1.1 软件危机的介绍,1)对软件开发成本和进度的估计常常很不准确;2)用户对完成的软件系统不满意的现象经常发生;3)软件产品的质量往往靠不住;,软件危机的典型表现:,4)软件常常是不可维护的;5)软件通常没有适当的文档资料;6)软件成本在计算机系统总成本中所占的比例逐年上升;7)软件开发
2、生产率提高的速度跟不上计算机应用的发展趋势。,1.1.2 产生软件危机的原因,1)软件本身特点造成;2)软件开发与维护的方法不正确。,主要表现:(a)忽视软件需求分析;(b)认为软件开发就是写程序并使之运行;(c)轻视软件维护;,在软件开发的不同阶段进行修改需要付出的代价很不相同:,1)推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法;2)开发和使用更好的软件工具;3)良好的组织管理措施。,1.1.3 解决软件危机的途径,为了解决软件危机产生的问题,软件工程与方法学逐渐形成,然后出现了两个相互相承又各有侧重的学科:1)软件工程学:主要应用工程的方法和技术研究软件
3、开发与维护的方法、工具和管理的一门交叉学科。2)程序设计方法学:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学科。,1.2 软件工程,1.2.1 软件工程的介绍,1968年NATO会议:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。,1993年IEEE:软件工程是(1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程;(2)研究(1)中提到的途径。,1.软件工程关注于大型程序的构造;2.软件工程的中心课题是控制复杂性;3.软件经常变化;4.开发软件的效率非常重要;5.和谐地合作是软件开发的关键;6.软件必须有效地支持它的
4、用户;7.在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。,软件工程的本质特性:,1.2.2 软件工程的基本原理,1.用分阶段的生命周期计划严格管理;2.坚持进行阶段评审;3.实行严格的产品控制;4.采用现代程序设计技术;5.结果能清楚地审查;6.开发小组的人员应该少而精;7.承认不断改进软件工程实践的必要性。,1.2.3 软件工程方法学 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(Methodology),也称为范型(Paradigm)。软件工程方法学的3要素:方法、工具和过程,1.传统方法学 也称为生命周期方法学或结构化范型。结构化方法(St
5、ructure Method)有:1)结构化设计方法(SD);2)结构化分析方法(SA);3)结构化分析与设计技术(SADT)4)JACKSON方法 5)WARNIER方法,2.面向对象方法学 把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。面向对象的方法=对象(属性与服务的封装)+分类+继承+通过消息的通讯,1)适用于实时事物处理系统的有限状态机方法(FSM);2)适用于并发软件系统的PETRI网方法;3)以数学概念和理论为基础的形式化方法,如 SDC公司的形式化开发方法FDM:(Formal Development Methodology)IBM公司的维也纳开
6、发方法VDM:(Vienna Development Method),3.其他开发方法,1.3 软件生命周期,软件生命周期:指软件从提出到最终被淘汰的这个存在期。,软件生命周期组成:1)软件定义;A.问题定义 B.可行性研究 C.需求分析 2)软件开发;D.总体设计 E.详细设计 F.编码和单元测试 G.综合测试 3)运行维护。,1.问题定义;2.可行性研究;3.需求分析;4.总体设计(概要设计);5.详细设计;6.编码与单元测试;7.综合测试;8.维护。,软件生命周期各个阶段:,1.4 软件过程,软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。软件过
7、程(ISO9000):使用资源将输入转化为输出的活动所构成的系统。输入:如软件需求输出:如软件产品,1.4.1 瀑布模型,1.阶段间具有顺序性和依赖性2.推迟实现的观点3.质量保证的观点,优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。,1.4.2 快速原型模型优点:不带反馈环,基本上是线性顺序进行。,1.4.3 增量模型,优点:能较短时间内提交可完成部分工作的产品;可以使用户有充裕的时间学习和适应新产品。,一种风险更大的增量模型:,1.4.4 螺旋模型 可把它看作在每个阶段之前都增加风险分析的快速原型模型。,1.4.5 喷泉模型,典型的面向对象软件开发过
8、程模型之一。,1.4.6 Rational 统一过程,1.RUP软件开发经验(1)迭代式开发(2)管理需求(3)使用基于构件的体系结构(4)可视化建模(5)贯穿于开发过程的软件质量验证(6)控制软件变更,1.4.7 敏捷过程与极限编程,1.敏捷过程 具有高效、快速响应变化的开发过程。(1)个体和交互胜过过程和工具;(2)可以工作的软件胜过面面俱到的文档;(3)客户合作胜过合同谈判;(4)响应变化胜过遵循计划。2.极限编程 敏捷过程中最著名的一种,指把好的开发实践运用到极致,多应用于软件需求模糊的场合。,1.4.8 微软过程,1.微软过程准则2.微软软件生命周期(1)规划阶段(2)设计阶段(3)
9、开发阶段(4)稳定阶段(5)发布阶段3.微软过程模型,问题定义就是要确定为用户建立什么样的软件系统,软件叫什么样的名称等等。“问题”是指软件最基本的问题,如:软件的总体目标什么?有什么用途?为那些用户设计?,1.5 问题定义阶段,问题定义报告的内容包括:1)软件项目标题;2)软件目标;3)软件用户对象;4)软件规模。,问题定义是软件生命周期中时间最短的阶段,一般都比较简单,因此在实际开发中它是最容易被忽视的一个阶段。这一阶段工作主要由系统分析员来完成,系统分析员要尽可能从较高的角度概括软件所要做的工作,而不用写明问题的实现细节。,第2章:可行性研究,可行性研究就是要回答“所定义的问题有可行的解
10、决办法吗?”。可行性研究的目的是:用最小的代价在尽可能短的时间内确定问题是否有解,以及是否值得去解。,2.1 可行性研究的任务,可行性研究所需的时间取决于工程的规模,所需要的成本要占工程总成本的5%10%。,可行性研究的内容:1)技术可行性技术可行性要分析各种技术因素,例如:使用现有的技术能否实现这个系统?是否有胜任开发该项目的熟练技术人员?能否按期得到开发该项目所需的软件、硬件资源?,2)经济可行性 对经济合理性进行评价,所要考虑的问题是:这个系统的经济效益能否超过它的开发成本?这就需要对项目进行价格/利益分析,即“投入/产出”分析。由于利益分析取决于软件系统的特点,因此在软件开发之前,很难
11、对新系统产生的效益作出精确的定量描述,所以往往采用一些估算方法。,3)操作可行性 操作可行性评价系统运行后会引起的各方面变化,如:对组织机构管理模式、用户工作环境等产生的影响。,4)社会可行性 社会可行性主要讨论法律方面和使用方面的可行性。例如,被开发软件的权利归属问题、软件所使用的技术是否会造成侵权等问题。,2.2 可行性研究的步骤,1)复查系统规模和目标;2)研究目前正在使用的系统;3)导出新系统的高层逻辑模型(数据流图、数据字典);4)重新定义问题;,5)导出和评价供选择的解法(物理解决方案);6)推荐行动方案;7)草拟开发计划;8)书写文档提交审查。,2.2 可行性研究的步骤,2.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 1100
链接地址:https://www.desk33.com/p-235686.html