软件工程中的软件过程模型

2025 年 3 月 25 日 | 阅读 3 分钟

术语软件指定计算机程序、过程和相关文档(流程图、手册等)的集合,这些文档描述了程序以及如何使用它们。

软件过程是产生软件产品的一组活动和相关结果。软件工程师主要执行这些活动。有四个关键的过程活动,所有软件过程都通用。这些活动是

  1. 软件规格: 必须定义软件的功能和对其操作的约束。
  2. 软件开发: 必须生成满足要求的软件。
  3. 软件验证: 必须验证软件以确保它能满足客户的需求。
  4. 软件演化: 软件必须不断发展以满足不断变化的客户需求。

软件过程模型

软件过程模型是软件过程的特定定义,它从特定的角度呈现。 模型本质上是一种简化,因此软件过程模型是对正在描述的实际过程的抽象。 过程模型可能包含作为软件过程一部分的活动、软件产品以及参与软件工程的人员的角色。 可能产生的软件过程模型类型的一些示例是

  1. 工作流模型: 这显示了过程中活动的一系列活动及其输入、输出和依赖关系。 此模型中的活动执行人为操作。
  2. 2. 数据流或活动模型: 这将过程表示为一组活动,每个活动都执行一些数据转换。 它显示了过程的输入(例如规范)如何转换为输出(例如设计)。 此处的活动可能比工作流模型中的活动级别低。 它们可以执行由人或计算机执行的转换。
  3. 3. 角色/行动模型: 这意味着参与软件过程的人员的角色以及他们负责的活动。

有几种不同的软件开发通用模型或范例

  1. 瀑布式方法: 这采用上述活动,并将其作为单独的流程阶段生成,例如需求规范、软件设计、实现、测试等等。 定义完每个阶段后,对其进行“签署”,然后开发进入下一阶段。
  2. 演化式开发: 这种方法交织了规范、开发和验证的活动。 从非常抽象的规范中快速开发初始系统。
  3. 形式转换: 这种方法基于生成形式化的数学系统规范,并使用数学方法将该规范转换为程序。 这些转换是“正确性保持”。 这意味着您可以确保开发的程序满足其规范。
  4. 从可重用组件进行系统组装: 这种方法假定系统部件已经存在。 系统开发过程的目标是集成这些部件,而不是从头开始开发它们。

软件危机

  1. 规模: 随着软件的复杂性和期望的增长,软件变得越来越昂贵和复杂。 例如,消费品中的代码每隔几年就会增加一倍。
  2. 质量: 许多软件产品质量较差,即软件产品在使用后由于测试技术无效而出现缺陷。 例如,软件测试通常每 1000 行代码发现 25 个错误。
  3. 成本: 软件开发成本高昂,即在开发所需的时间和所涉及的资金方面。 例如,美国联邦航空管理局的高级自动化系统开发成本超过每行代码 700 美元。
  4. 交付延迟: 严重的进度超支很常见。 通常,软件的开发时间比估计的时间长,这反过来又导致成本上升。 例如,四分之一的大型开发项目从未完成。

程序 vs. 软件

软件不仅仅是程序。 任何程序都是软件的子集,只有在准备好文档和操作程序手册后,它才能成为软件。

软件有三个组成部分,如图所示

Program vs. Software

1. 程序: 程序是源代码和目标代码的组合。

2. 文档: 文档包含不同类型的手册。 文档手册的示例有:数据流图、流程图、ER 图等。

Program vs. Software

3. 操作程序: 操作程序包含用于设置和使用软件系统的说明,以及有关如何应对系统故障的说明。 操作系统程序手册的示例有:安装指南、入门指南、参考指南、系统管理指南等。

Program vs. Software
下一个主题SDLC