收藏 分享(赏)

软件工程_第1章电子教案.ppt

上传人:weiwoduzun 文档编号:5008297 上传时间:2019-01-30 格式:PPT 页数:38 大小:125KB
下载 相关 举报
软件工程_第1章电子教案.ppt_第1页
第1页 / 共38页
软件工程_第1章电子教案.ppt_第2页
第2页 / 共38页
软件工程_第1章电子教案.ppt_第3页
第3页 / 共38页
软件工程_第1章电子教案.ppt_第4页
第4页 / 共38页
软件工程_第1章电子教案.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、软件工程 原理、方法与应用肖孟强 曲秀清 主 编中国水利水电出版社1第 1章 软件工程概论学习目标u 掌握软件的概念及特点 u 了解软件危机的产生 u 掌握软件工程的概念及其研究内容 u 掌握软件生存周期的定义及其模型 2第 1章 软件工程概论教学内容 1.1 引 言1.2 软件与软件危机 1.3 软件工程的概念1.4 软件生存周期及软件开发模型 本章小结 返回总目录31.1 引 言尽管软件的发展非常迅速,但软件的开发尚没有摆脱手工制作的过程,开发人员对软件开发的认识存在一些偏差,严重影响了软件的发展。于是,许多计算机和软件科学家进行了一些尝试,把其他工程领域中行之有效的方法运用到软件开发中来

2、,形成了软件工程。 本书以大家都比较熟知的学生成绩管理系统为案例,进行软件工程的讲解与学习。本软件规模比较小,通过可行性论证,形成相关文档,并同用户进行协商。在同用户达成共识的基础上对系统进行需求分析的调研与设计。通过广泛的调研与分析,并与用户达成了一致。41.1 引 言学生成绩管理系统总体框图如下:51.1 引 言系统模块功能确定以后,下一步就要对模块的功能和性能、数据结构、用户界面等进行必要的设计;然后进入程序编码、软件测试等阶段,而后方可交付用户使用;在用户使用的过程中,还要对程序进行不断的完善与修改,以满足用户的实际需要。返回目录61.2 软件与软件危机主要教学内容:1.2.1 软件的

3、定义1.2.2 软件的特点 1.2.3 软件的分类 1.2.4 软件危机 返回目录71.2 软件与软件危机 1.2.1 软件的定义软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。可以写作为:软件 =程序 +数据 +文档。程序:程序是按事先设计好的功能和性能要求执行的指令序列。数据:数据是指程序能正常处理信息的数据和数据结构。文档:文档是与程序运行和维护有关的图文资料。返回目录81.2 软件与软件危机1.2.2 软件的特点( 1) 软件具有抽象特征。( 2) 软件具有无明显制造过程特征。( 3) 软件无备件的特征。( 4) 手工制作特征。( 5) 成本昂

4、贵特征。返回目录91.2 软件与软件危机1.2.3 软件的分类1按软件功能进行划分( 1)系统软件( 2)支撑软件( 3)应用软件2按软件规模进行划分按开发软件所需的人力、时间以及完成的源程序行数,可确定六种不同规模的软件。如表 1.1所示。101.2 软件与软件危机表 1.1软件规模的分类 类别 参加人员数 研制期限 产品规模(源程序行数)微型 1 1 4周 0.5k小型 1 1 6月 1k 2k中型 2 5 1 2年 5k 50k大型 5 20 2 3年 50k 100k甚大型 100 1000 4 5年 1M(=1000k)极大型 2000 5000 5 10年 1M 10M返回目录11

5、1.2 软件与软件危机1.2.4 软件危机1软件危机的产生20世纪 60年代中期以后,一些开发大型软件系统的要求提了出来。然而软件技术的进步一直未能满足形势发展的需要,在大型软件的开发过程中出现了复杂程度高、研制周期长、正确性难以保证的三大难题。遇到的问题找不到解决办法,致使问题堆积起来,形成了人们难以控制的局面,出现了所谓的 “ 软件危机 ” 。1963年,美国用于控制火星探测器的计算机软件中的一个 “ , ” 号被误写为 “ 。 ” ,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。121.2 软件与软件危机2软件危机的定义及其表现形式软件危机是指在软件开发和维护中所产生的一系列严

6、重的问题。一是如何开发软件,满足用户对软件的需求,二是如何维护数量众多的已有软件。其主要表现如下:( 1)用户需求不明确、变更过多( 2)软件成本日益增长( 3)开发进度难以控制( 4)软件质量差( 5)软件维护困难131.2 软件与软件危机3软件危机产生的原因( 1)软件开发无计划性( 2)软件需求不充分( 3)软件开发过程无规范( 4)软件产品无评测手段4解决软件危机的途径( 1)应该加强软件开发过程的管理。( 2)推广使用开发软件的成功技术与方法( 3)开发和使用好的软件工具返回目录141.3 软件工程的概念主要教学内容:1.3.1 软件工程的产生及发展 1.3.2 软件工程的定义及目标

7、 1.3.3 软件工程学的范畴 返回目录151.3 软件工程的概念1.3.1 软件工程的产生及发展为了解决软件危机,人们在软件开发中也不断改进和发展,在 50多年中计算机软件开发经历了三个发展阶段:u 程序设计阶段:约为 50至 60年代u 程序系统阶段:约为 60至 70年代 u 软件工程阶段:约为 70年代以后从表 1.2中可以看到软件开发三个发展阶段的主要特点。161.3 软件工程的概念几十年来最根本的变化体现在:( 1)人们改变了对软件的看法。( 2)软件的需求是软件发展的动力。( 3)软件工作的范围从只考虑程序的编写扩展到涉及整个软件生存周期。返回目录171.3 软件工程的概念1.3

8、.2 软件工程的定义及目标Fritz Bauer曾经为软件工程下了定义: “ 软件工程是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。 ”1983年 IEEE给出的定义为: “ 软件工程是开发、运行、维护和修复软件的系统方法 ” ,其中, “ 软件 ” 的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。181.3 软件工程的概念软件工程的方法、工具、过程构成了软件工程的三要素。软件工程的目标可概括为:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可

9、互操作性并满足用户要求的软件产品。图 1.2 软件工程目标之间的关系 返回目录191.3 软件工程的概念1.3.3 软件工程学的范畴软件工程学所研究的主要内容包括:软件开发技术和软件工程管理两个方面。其中:软件开发技术包含:1、软件开发方法学2、软件工具3、软件工程环境4、软件工程管理返回目录201.4 软件生存周期及软件开发模型 主要教学内容:1.4.1 软件生存周期1.4.2 软件生存周期模型 1.4.3 瀑布模型( Waterfall model) 1.4.4 演化模型( evolutional model) 1.4.5 螺旋模型( spiral model)1.4.6 智能模型( in

10、telligence model) 返回目录211.4 软件生存周期及软件开发模型1.4.1 软件生存周期软件也有一个孕育、诞生、成长、成熟、衰亡的生存过程。我们称其为计算机软件的生存周期。软件生存周期可划分为若干个阶段。各阶段都包括计划、开发、运行与维护三个时期,而每个时期又划分为若干个阶段。1计划时期计划时期的主要任务是调查和分析。计划时期有问题定义和可行性研究两个阶段。 221.4 软件生存周期及软件开发模型2开发时期开发时期 要完成设计和实现两大任务。设计任务包括需求分析和软件设计两个阶段;实现任务包括编码和测试。 ( 1)需求分析该阶段主要解决的问题是 “目标系统必须做什么 ”,也就

11、是要深入描述软件的功能和性能;确定软件设计的限制和软件与其他系统元素的接口;定义软件的其他有效性需求,并用 “需求规格说明书 ”的形式准确地表达出来,提交管理机构评审。 231.4 软件生存周期及软件开发模型( 2)软件设计是软件工程的技术核心,主要任务是把已确定了的各项需求转换成一个相应的体系结构,通常细分成总体设计和详细设计两个阶段。( 3)编码该阶段的主要任务就是按照选定的语言把软件设计转换成计算机可以接受的程序代码, 即写成 “ 源程序清单 ” 。( 4)测试测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检验软件的各个组成部分。241.4 软件生存周期及软件开发模型3

12、运行时期已交付的软件投入正式使用,便进入运行时期。这是软件生存期的最后一个时期,可能要持续若干年甚至几十年。在运行过程中,可能由于多方面的原因,需要对它进行修改。因此,软件人员在这一时期的主要工作,就是做好软件维护。返回目录251.4 软件生存周期及软件开发模型1.4.2 软件生存周期模型软件生存周期模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。有多种软件生存期模型。例如:瀑布模型、演化模型、螺旋模型、智能模型等。它们各有特色,但一般都包含“ 定义(或计划) ” 、 “ 开发 ” 和 “ 维护 ” 3类活动。定义

13、活动主要弄清软件 “ 做什么 ” ;开发活动集中解决让软件 “怎么做 ” ;维护活动则聚集于软件的 “ 修改 ” ,即 “ What-How-Change” 。 返回目录261.4 软件生存周期及软件开发模型1.4.3 瀑布模型( Waterfall model)瀑布模型(也称线性顺序模型或软件生存周期模型),是 W.Royce在 1970年提出的。瀑布模型遵循软件生存期的划分,明确规定各个阶段的任务,各个阶段的工作自上而下、顺序展开,如同瀑布流水,逐级下落。瀑布模型把软件生存周期划分为计划时期(或定义时期)、开发时期和运行时期。这三个时期又分别细分为若干个阶段。参看图 1.3。 271.4

14、软件生存周期及软件开发模型图 1.3 软件生存周期的瀑布模型 281.4 软件生存周期及软件开发模型瀑布模型软件开发具有以下几个特征:1阶段间的顺序性和依赖性 顺序性是指:只有等前一阶段的工作完成以后,后一阶段的工作才能开始;前一阶段的输出文档,就是后一阶段的输入文档。依赖性又同时表明了,只有前一阶段有正确的输出时,后一阶段才可能有正确的结果。291.4 软件生存周期及软件开发模型2推迟实现的观点过早地考虑程序的实现,常常导致大量返工,有时甚至给开发人员带来灾难性的后果。瀑布模型在编码以前安排了分析阶段和设计阶段,并且明确宣布,这两个阶段都只考虑目标系统的逻辑模型,不涉及软件的物理实现。把逻辑设计与物理设计清楚地划分开来,尽可能推迟程序的物理实现,这是瀑布型软件开发的一条重要的指导思想。30

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

当前位置:首页 > 中等教育 > 教学研究

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


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

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

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