第10章 软件工程
目前,在国际上制定了若干关于软件工程的技术 标准,我国也制定了相应的国家标准,如GB8655《计算 机软件开发规范》,GB8567《计算机软件产品开发文件 编制指南》,GB1526《信息处理——数据流程图、程序 流程图、系统流程图的文件编制符号及约定》等。这些 标准的制定对软件工程的发展,对软件生产和文档编制 起了很大作用。
第10章 软件工程
(1) 不能准确估计软件开发的成本与进度; (2) 用户对“已完成的”软件系统经常不满意; (3) 软件产品质量往往靠不住; (4) 软件难以维护; (5) 软件无完整的文档,无法用以管理和控制软件的开发
和维护; (6) 软件费用急剧上升; (7) 软件生产效率低,供不应求。
第10章 软件工程
第10章 软件工程
② 技术可行性。对要求的功能、性能以及限制条 件进行分析,看是否能够做成一个可接受的系统。所考 虑的因素通常还应包括开发的风险,是否能够得到需要 的软件和硬件资源,以及一个熟练的有能力的开发队伍, 另外与系统开发有关的技术是否足以支持系统的研制。 技术可行性的估计,需要有经验的人员去完成。
第10章 软件工程
3.软件生存周期 软件生存周期的概念是从工业中产品生存周期的 概念借用过来的。一种产品从定货开始, 经过设计、制 造、调试、使用维护,直到该产品淘汰为止,这就是所 谓的产品生存周期。
第10章 软件工程
计划期 开发期 运行期
问题定义 项目说明
可行性研究 可行性分析报告
需求分析 需求说明书
③ 操作可行性。判断系统的操作方式在该用户组 织内是否可行。
程序是按既定算法,用某种计算机语言规定的指令或语句 编写的指令或语句的集合。软件是程序再加上程序实现和 维护程序时所必需的文档的总称。软件是程序和程序设计 发展到规模化和商品化后所逐渐形成的概念。
第10章 软件工程
随着计算机技术的迅速发展,计算机软件在计算 机系统中占有越来越重要的地位。在软件需求量迅速增 加,规模日益增长的情况下,计算机软件的开发和维护 过程中遇到了一系列严重问题。如软件开发的复杂度大 大上升,导致大型软件的开发费用经常超出预算,完成 时间也常常超期,同时,软件可靠性随规模的增长而下 降,质量保证也越来越困难,即产生了软件危机。软件 危机主要有以下几种表现:
第10章 软件工程
软件工程研究的对象是大型软件系统的开发过程, 它研究的内容是生产流程、各生产步骤的目的、任务、 方法、技术、工具、文档和产品规格。
软件是一种逻辑产品,与物质产品有很大差 别,它看不见,摸不着,具有无形性,是脑力劳动的结 晶。它以程序和文档形式存在,通过计算机来体现它的 作用,在研制过程中,能见度差,这给开发过程的管理 带来极大的困难,进度难以控制,质量难以保证。
第10章 软件工程
软件工程是一门交叉学科,涉及到计算机科 学、管理科学、工程学和数学。凡是计算机科学中的成 果均可用于软件工程,但计算机科学着重于理论研究, 如自动机理论、形式语言理论、编译原理、数据库原理、 操作系统原理、人工智能原理等,而软件工程着重于具 体软件系统的研制和建立。软件工程的理论、方法、技 术都是建立在计算机科学的基础上,它是用管理学的原 理、方法来进行软件生产管理;用工程学的观点来进行 费用估算,制定进度和方案;用数学的方法来建立软件 可靠性模型以及分析各种算法和性质。
第10章 软件工程
2.可行性研究 1) 可行性研究的任务 可行性研究的目的在于用最小的代价确定在问题 定义阶段确定的系统目标和规模是否现实,所确定的问 题是否可以解决,系统方案在经济上、技术上和操作上 是否可以接受。 可行性研究着重考虑以下几个方面: ① 经济可行性。估计开发费用以及新系统可能 带来的收益,将两者进行权衡,看结果是否可以接受。
第10章 软件工程
第10章 软件工程
10.1 软件工程概述 10.2 问题定义与可行性研究 10.3 软件的需求分析 10.4 软件的设计 10.5 软件的编程 10.6 软件的测试 10.7 软件的维护 习题
第10章 软件工程
10.1 软件工程概述
1.软件与软件危机 软件是由计算机程序演变而形成的一种概可行性研究
1.问题定义 问题定义阶段的任务是要确定软件系统所要 解决的任务。分析人员在与用户和部门负责人交流之后, 应提出关于问题性质、工程目标和规模的书面报告,即 软件系统目标与范围的说明。 为了成功地完成问题定义阶段的任务,需要硬件 人员和软件人员的共同参与,这一阶段是软件生存周期 中较短的阶段。
设计 设计说明书
编码 程序
测试 测试报告
维护
图10-1 瀑布模型
第10章 软件工程
软件生存周期是从用户提出开发要求开始,直到 该软件报废为止的这段时间,可分为3个时期:计划期、 开发期和运行期。计划期又分为问题定义和可行性研究 两个阶段;开发期分为4个阶段:需求分析阶段、设计阶 段(总体设计、详细设计)、编码阶段和测试阶段;运行 期即维护阶段。各阶段的工作按顺序开展,图10-1是这 种软件生存周期的模型示意图,由于其形状似多级瀑布, 常称为“瀑布模型”。
2.软件工程
“ 软 件 工 程 ” 一 词 是 1968 年 北 大 西 洋 公 约 组 织 (NATO)在联邦德国召开的一次会议上首次提出的。它的 中心思想是把软件当作一种工业产品,而不是某种个体 或小作坊的神秘技巧,要求“采用工程化的原理与方法 对软件进行计划、开发和维护”。这样做的目的,不仅 是为了实现按预期的速度和经费完成软件生产计划,也 是为了提高软件的生产率与可靠性。软件工程是从技术 (方法和工具)和管理两方面研究如何更好地开发和维护 计算机软件的一门新兴学科。
第10章 软件工程
因此,软件生产的管理也是软件工程的一个重要 研究领域,大型软件开发过程的管理是一件非常复杂的 事情,因此,管理不当也会导致软件开发的失败。软件 生产的管理包括开发人员的层次结构和组织方式、开发 进度的控制、软件质量的保证、开发费用的估算和管理、 软件开发文档的管理等。
第10章 软件工程