版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 软件工程原理、方法与应用 肖孟强 曲秀清主编 中国水利水电出版社 2 第1章 软件工程概论 学习目标 ?掌握软件的概念及特点 ?了解软件危机的产生 ?掌握软件工程的概念及其研究内容 ?掌握软件生存周期的定义及其模型 3 第1章 软件工程概论 教学内容 1.1引言 1.2软件与软件危机 1.3软件工程的概念 1.4软件生存周期及软件开发模型 本章小结 返回总目录 4 1.1 引言 尽管软件的发展非常迅速,但软件的开发尚没有摆脱 手工制作的过程,开发人员对软件开发的认识存在一些 偏差,严重影响了软件的发展。于是,许多计算机和软 件科学家进行了一些尝试,把其他工程领域中行之有效 的方法运用到软件
2、开发中来,形成了软件工程。 本书以大家都比较熟知的学生成绩管理系统为案例,进 行软件工程的讲解与学习。本软件规模比较小,通过可行 性论证,形成相关文档,并同用户进行协商。在同用户达 成共识的基础上对系统进行需求分析的调研与设计。通过 广泛的调研与分析,并与用户达成了一致。 5 1.1 引言 学生成绩管理系统总体框图如下: 6 1.1 引言 系统模块功能确定以后,下一步就要对模块的功能和 性能、数据结构、用户界面等进行必要的设计;然后进 入程序编码、软件测试等阶段,而后方可交付用户使用; 在用户使用的过程中,还要对程序进行不断的完善与修 改,以满足用户的实际需要。 返回目录 7 1.2 软件与软
3、件危机软件与软件危机 主要教学内容: 1.2.1 软件的定义 1.2.2 软件的特点 1.2.3 软件的分类 1.2.4 软件危机 返回目录 8 1.2 软件与软件危机软件与软件危机 1.2.1 软件的定义 软件是计算机系统中与硬件相互依存的另一部分,它 是包括程序、数据及其相关文档组成的完整集合。 可以写作为:软件=程序+数据+文档。 程序:程序是按事先设计好的功能和性能要求执行的 指令序列。 数据:数据是指程序能正常处理信息的数据和数据结 构。 文档:文档是与程序运行和维护有关的图文资料。 返回目录 9 1.2 软件与软件危机软件与软件危机 1.2.2 软件的特点 (1) 软件具有抽象特征
4、。 (2) 软件具有无明显制造过程特征。 (3) 软件无备件的特征。 (4) 手工制作特征。 (5) 成本昂贵特征。 返回目录 10 1.2 软件与软件危机软件与软件危机 1.2.3 软件的分类 1按软件功能进行划分 (1)系统软件 (2)支撑软件 (3)应用软件 2按软件规模进行划分 按开发软件所需的人力、时间以及完成的源程序行数, 可确定六种不同规模的软件。如表1.1所示。 11 1.2 软件与软件危机软件与软件危机 表1.1软件规模的分类 类别参加人员数研制期限产品规模(源程序行数) 微型114周0.5k 小型116月1k2k 中型2512年5k50k 大型52023年50k100k 甚
5、大型100100045年1M(=1000k) 极大型20005000510年1M10M 返回目录 12 1.2 软件与软件危机软件与软件危机 1.2.4 软件危机 1软件危机的产生 20世纪60年代中期以后,一些开发大型软件系统的要求 提了出来。然而软件技术的进步一直未能满足形势发展的 需要,在大型软件的开发过程中出现了复杂程度高、研制 周期长、正确性难以保证的三大难题。遇到的问题找不到 解决办法,致使问题堆积起来,形成了人们难以控制的局 面,出现了所谓的“软件危机”。 1963年,美国用于控制火星探测器的计算机软件中的一 个“,”号被误写为“。”,而致使飞往火星的探测器发 生爆 炸,造成高达
6、数亿美元的损失。 13 1.2 软件与软件危机软件与软件危机 2软件危机的定义及其表现形式 软件危机是指在软件开发和维护中所产生的一系列严 重的问题。一是如何开发软件,满足用户对软件的需求, 二是如何维护数量众多的已有软件。其主要表现如下: (1)用户需求不明确、变更过多 (2)软件成本日益增长 (3)开发进度难以控制 (4)软件质量差 (5)软件维护困难 14 1.2 软件与软件危机软件与软件危机 3软件危机产生的原因 (1)软件开发无计划性 (2)软件需求不充分 (3)软件开发过程无规范 (4)软件产品无评测手段 4解决软件危机的途径 (1)应该加强软件开发过程的管理。 (2)推广使用开发
7、软件的成功技术与方法 (3)开发和使用好的软件工具 返回目录 15 1.3 软件工程的概念软件工程的概念 主要教学内容: 1.3.1 软件工程的产生及发展 1.3.2 软件工程的定义及目标 1.3.3 软件工程学的范畴 返回目录 16 1.3 软件工程的概念 1.3.1 软件工程的产生及发展 为了解决软件危机,人们在软件开发中也不断改进和 发展,在50多年中计算机软件开发经历了三个发展阶段: ?程序设计阶段:约为50至60年代 ?程序系统阶段:约为60至70年代 ?软件工程阶段:约为70年代以后 从表1.2中可以看到软件开发三个发展阶段的主要特点。 17 1.3 软件工程的概念软件工程的概念
8、几十年来最根本的变化体现在: (1)人们改变了对软件的看法。 (2)软件的需求是软件发展的动力。 (3)软件工作的范围从只考虑程序的编写扩展到涉及 整个软件生存周期。 返回目录 18 1.3 软件工程的概念软件工程的概念 1.3.2 软件工程的定义及目标 Fritz Bauer曾经为软件工程下了定义:“软件工程 是 为了经济地获得能够在实际机器上有效运行的可靠软件 而建立和使用的一系列完善的工程化原则。” 1983年IEEE给出的定义为:“软件工程是开发、运行、 维护和修复软件的系统方法”,其中,“软件”的定义 为: 计算机程序、方法、规则、相关的文档资料以及在计算 机上运行时所必需的数据。
9、19 1.3 软件工程的概念软件工程的概念 软件工程的方法、工具、过程构成了软件工程的三要素。 软件工程的目标可概括为:在给定成本、进度的前提下, 开发出具有可修改性、有效性、可靠性、可理解性、可 维护性、可重用性、可适应性、可移植性、可追踪性和 可互操作性并满足用户要求的软件产品。 图1.2 软件工程目标之间的关系 返回目录 20 1.3 软件工程的概念软件工程的概念 1.3.3软件工程学的范畴 软件工程学所研究的主要内容包括:软件开发技术和 软件工程管理两个方面。其中:软件开发技术包含: 1、软件开发方法学 2、软件工具 3、软件工程环境 4、软件工程管理 返回目录 21 1.4 软件生存
10、周期及软件开发模型软件生存周期及软件开发模型 主要教学内容: 1.4.1软件生存周期 1.4.2 软件生存周期模型 1.4.3 瀑布模型(Waterfall model) 1.4.4 演化模型(evolutional model) 1.4.5 螺旋模型(spiral model) 1.4.6 智能模型(intelligence model) 返回目录 22 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 1.4.1 软件生存周期 软件也有一个孕育、诞生、成长、成熟、衰亡的生存 过程。我们称其为计算机软件的生存周期。 软件生存周期可划分为若干个阶段。各阶段都包括计 划、开发、运行与
11、维护三个时期,而每个时期又划分为 若干个阶段。 1计划时期 计划时期的主要任务是调查和分析。计划时期有问题 定义和可行性研究两个阶段。 23 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 2开发时期 开发时期要完成设计和实现两大任务。设计任务包括 需求分析和软件设计两个阶段;实现任务包括编码和测 试。 (1)需求分析 该阶段主要解决的问题是“目标系统必须做什么”, 也 就是要深入描述软件的功能和性能;确定软件设计的限 制和软件与其他系统元素的接口;定义软件的其他有效 性需求,并用“需求规格说明书”的形式准确地表达出 24 1.4 软件生存周期及软件开发模型软件生存周期及软件开发
12、模型 (2)软件设计 是软件工程的技术核心,主要任务是把已确定了的各 项需求转换成一个相应的体系结构,通常细分成总体设 计和详细设计两个阶段。 (3)编码 该阶段的主要任务就是按照选定的语言把软件设计转 换成计算机可以接受的程序代码,即写成 “源程序清 单”。 (4)测试 测试是保证软件质量的重要手段,其主要方式是在设 25 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 3运行时期 已交付的软件投入正式使用,便进入运行时期。这是 软件生存期的最后一个时期,可能要持续若干年甚至几 十年。在运行过程中,可能由于多方面的原因,需要对 它进行修改。因此,软件人员在这一时期的主要工作,
13、就是做好软件维护。 返回目录 26 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 1.4.2 软件生存周期模型 软件生存周期模型是从软件项目需求定义直至软件经 使用后废弃为止,跨越整个生存周期的系统开发、运作 和维护所实施的全部过程、活动和任务的结构框架。 有多种软件生存期模型。例如:瀑布模型、演化模型、 螺旋模型、智能模型等。它们各有特色,但一般都包含 “定义(或计划)”、“开发”和“维护”3类活动。定 义活动 主要弄清软件“做什么”;开发活动集中解决让软件 “怎么 做”;维护活动则聚集于软件的“修改”,即“What- 返回目录 27 1.4 软件生存周期及软件开发模型软件生
14、存周期及软件开发模型 1.4.3 瀑布模型(Waterfall model) 瀑布模型(也称线性顺序模型或软件生存周期模型), 是W.Royce在1970年提出的。瀑布模型遵循软件生存期的 划分,明确规定各个阶段的任务,各个阶段的工作自上而 下、顺序展开,如同瀑布流水,逐级下落。 瀑布模型把软件生存周期划分为计划时期(或定义时 期)、开发时期和运行时期。这三个时期又分别细分为若 干个阶段。参看图1.3。 28 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 图1.3 软件生存周期的瀑布模型 29 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 瀑布模型软件开发具有以
15、下几个特征: 1阶段间的顺序性和依赖性 顺序性是指:只有等前一阶段的工作完成以后,后一 阶段的工作才能开始;前一阶段的输出文档,就是后一 阶段的输入文档。依赖性又同时表明了,只有前一阶段 有正确的输出时,后一阶段才可能有正确的结果。 30 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 2推迟实现的观点 过早地考虑程序的实现,常常导致大量返工,有时甚 至给开发人员带来灾难性的后果。 瀑布模型在编码以前安排了分析阶段和设计阶段,并 且明确宣布,这两个阶段都只考虑目标系统的逻辑模型, 不涉及软件的物理实现。 把逻辑设计与物理设计清楚地划分开来,尽可能推 迟程序的物理实现,这是瀑布型软
16、件开发的一条重要的 指导思想。 31 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 3质量保证的观点 为了保证质量,瀑布型软件开发在各个阶段坚持了两 个重要的做法: (1)每一阶段都要完成规定的文档。没有完成文档, 就认为没有完成该阶段的任务。 (2)每一阶段都要对完成的文档进行复审,以便尽早 发现问题,消除隐患。 返回目录 32 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 1.4.4 演化模型(evolutional model) 先做试验开发,其目标只是在于探索可行性,弄清软 件需求;然后在此基础上获得较为满意的软件产品。 通常把第一次得到的试验性产品称为
17、“原型”。显然, 演 化模型在克服瀑布模型缺点、减少由于软件需求不明确 而给开发工作带来风险方面,确有显著的效果。 返回目录 33 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 1.4.5 螺旋模型(spiral model) 螺旋模型将瀑布模型与演化模型结合起来,并且加入 两种模型均忽略了的风险分析,弥补了两者的不足。螺 旋模型沿着螺线旋转,如图1.4所示,在笛卡尔坐标的四 个象限上分别表达了四个方面的活动,即: (1) 制定计划确定软件目标,选定实施方案, 弄清项目开发的限制条件; (2) 风险分析分析所选方案,考虑如何识别和 消除风险; (3) 实施工程实施软件开发; (
18、4) 客户评估评价开发工作,提出修正建议。 34 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 图1.4 螺旋模型 35 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 沿螺线自内向外每旋转一圈便开发出更为完善的一个 新的软件版本。如果软件开发人员对项目的需求已有较 好的理解,则无需开发原型,第一圈就可以直接采用瀑 布模型,这在瀑布模型中认为是单圈螺线。反之,若对 项目的需求没有把握,就需要经过多圈螺线,并通过开 发一个或多个原型来弄清软件的需求。 对于高风险的大型软件,螺旋模型是一个理想的开发 方法。风险分析是螺旋模型的一项重要活动。 返回目录 36 1.4 软件生存周期及软件开发模型软件生存周期及软件开发模型 1.4.6智能模型(intelligence model) 智能模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 救助站物品采购制度
- 4s店办公用品采购管理制度
- 施工工地材料采购制度
- 厨房采购制度管理规定
- 精麻药采购管理制度
- 合格日用百货采购制度
- 学校政府采购内部控制制度
- 4s店备件采购入库制度
- 日用品采购制度
- 药品网上采购与管理制度
- 中西医结合思路与方法学课件
- JTS-201-2011水运工程施工通则
- 黑素体与皮肤色素沉着关系研究
- GB/T 19665-2024红外成像人体表面测温筛查仪通用规范
- 丽水职业技术学院单招《职业技能测试》参考试题库(含答案)
- 检验科实验室生物安全培训课件
- 义务教育语文课程标准2001版
- 物理学(高职)全套教学课件
- 八中龙兴分校工程设计建设项目设计说明
- 2023年(电力行业)电力设备交接和预防性试验规程
- 退款合同协议书
评论
0/150
提交评论