当前位置:文档之家› 第2章软件工程原理与应用

第2章软件工程原理与应用


2.2 软件生存周期
需求分析
这个阶段的任务主要是确定待开发软件的功能需 求、性能需求和运行环境约束、编制软件需求规格说 明、软件系统的确认测试准则和用户手册概要。软件 的功能需求应该指明软件必须完成的功能。软件的性 能需求包括:软件的安全性、可靠性、可维护性、精 度、错误处理、适应性及用户培训等。软件系统的运 行环境约束指软件系统必须满足的运行环境方面(硬 件环境、系统平台与维护
图2.5 软件生存周期
2.2 软件生存周期
2.2.1 软件定义
软件定义可分为软件系统的可行性研究和需求分析两个阶段: 软件系统的可行性研究
可行性研究的任务是了解用户要求和现实环境,从技术、经 济、市场等方面研究并论证开发该软件系统的可行性。即这个软 件系统是否值得开发,是否有可行的技术去开发。 系统分析员一般需通过以下途径完成此阶段的任务: 调查和了解用户要求和现实环境。 撰写调查报告。 可行性论证和分析(技术可行性、操作可行性和经济可行性)如 可行,制定初步项目开发计划(成本估算、人员组织、进度安排 等)。
2.2 软件生存周期
2.2.2 软件开发
在软件生存周期模型中,软件开发由概要设计、详细设计、 实现、集成测试和确认测试五个阶段组成。 概要设计
概要设计的任务是根据软件需求规格说明(SRS)建立软件系 统的总体结构和模块间的关系,定义各功能模块的接口,设计全 局数据库或数据结构,规定设计约束,制定组装测试计划。对于 大型软件系统,应对软件需求进行分解,将其划分为若干个子系 统,对每个子系统定义功能模块和各功能模块之间的关系,并给 出各子系统接口界面的定义;对于一般的软件系统可以直接定义 各功能模块以及它们之间的关系
2.2 软件生存周期
软件需求分析不仅是软件开发依据,而且也是软件验收的标准。
系统需求一般由用户提出。由于用户往往缺乏软件开发的知识和 经验,系统分析员和软件开发人员不得不与用户反复讨论、协商、 使用户需求逐步精确化、一致化、完全化。
需求分析的一项重要任务是建立面向开发者的软件需求规格说明 (Software Requirements Specification,简称SRS)。多数场合 面向开发者的软件需求用需求规格说明语言描述。SRS应该指明 软件系统的功能需求、性能需求、接口需求、设计需求、基本结 构,以及开发标准和验收原则,等等。SRS是软件开发的基础, 建立SRS是软件开发成败的关键。
问题定义
状态 捕获
技术开发
方案综合
其中包括四个截然不同的阶段:状态捕获、问题定义、技术 开发和方案综合。状态捕获表示了事物的当前状态;问题定义标 识了需要解决的特定问题;技术开发利用某些技术来解决问题; 方案综合导出最终的结果(如文档、程序、数据、新的事务功能、 新的产品)。
2.1 软件工程过程
以上的问题循环解决过程可以用于软件工程的不同开 发级别上。它可用于考虑整个应用系统的宏观级,也 可用于建造程序构件的中间级,甚至还可用于源代码 行级。因此,可以用分级几何表示来给出过程的理想 化的视图。首先定义一个分级几何表示的模式,然后 相继地在更小的规模上递归地应用分级几何表示:模 式中嵌套模式。在图2.4中,问题循环解决过程的每一 个阶段又包含一个同样的问题循环解决过程,该循环 中每一个步骤中还可以再包含另一个问题循环解决过 程。这样一直继续下去,直到某个合理的边界为止。 对于软件来说,就是源代码行。
第2章 软件生存周期
2.1 软件工程过程 2.2 软件生存周期 2.3 软件生存周期瀑布模型 2.4 软件生存周期原型模型 2.5 软件生存周期其他模型
2.1 软件工程过程
2.1.1 什么是软件工程过程
软件工程是一种层次化的技术。如图2.1所示
工具 方法 过程 质量关注点
图2.1 软件工程层次
软件过程定义了一组关键过程域,它们构成软件项目管理的基础, 并规定了技术方法的采用、工程产品(模型、文档、数据、报告 以及表格等)的产生、里程碑的建立、质量的管理以及适当的变 更控制。
2.1 软件工程过程
软件过程是软件生存期中的一系列相关软件工程活动的集合。每 一个软件过程又是由一组工作任务、项目里程碑、软件工程产品 和交付物以及质量保证(SQA)点等组成。一个软件过程可以用 图2.2的形式来表示。
2.1 软件工程过程
状态捕获
状态
技术
捕获
开发
方案 综合
问题 定义
状态
技术
捕获
开发
方案 综合
问题 定义
状态
技术
捕获
开发
方案 综合
图2.4 问题循环解决过程中阶段嵌套阶段
2.1 软件工程过程
2.1.3 过程建造技术
为了使得软件过程模型适合于软件项目组的使用,需要开发 一些过程技术工具,以帮助软件开发组织分析它们当前的过程,组 织工作任务,控制和监控进度,管理技术质量。
任务。软件项目组的每一个成员都可以使用这样的工具来开发检查
表,列出所有将要执行的工作任务、将要产生的工作产品和将要实
施的软件质量保证活动。
2.2 软件生存周期
如同任何事物一样,软件也有一个孕育、诞生、成长、成 熟、衰亡的生存过程。软件产品从形成概念开始,经过开发、使 用和维护,直到最后退役的全过程称为软件生存周期。根据这一 思想我们可以得到软件生存周期的三个时期:软件定义、软件开 发、软件使用与维护,如图2.5所示。
公共过程框架 框架活动 任务集合 工作任务 里程碑、交付物 SQA 点
图2.2 软件过程
保护伞活动
2.1 软件工程过程
2.1.2 软件过程模型
软件工程过程模型的选择基于项目和应用的特点、采用的方法 和工具、要求的控制和需交付的产品.所有的软件开发都可以看成 是一个问题循环解决过程,如图2.3所示。
使用过程技术工具,可以建造一个自动模型,模型包含前面
提到的公共过程框架、任务集合及保护伞活动。该模型一般表示成
一个网络,对其加以分析,就能够确定典型的工作流程,考察可能
导致减少开发时间、降低开发成本的可选的过程结构。
一旦创建了一个可接受的过程,就可以使用其他过程技术工
具来分配、监视、甚至控制在软件过程模型中定义的所有软件工程
相关主题