软件工程中的软件过程模型2025 年 3 月 25 日 | 阅读 3 分钟 术语软件指定计算机程序、过程和相关文档(流程图、手册等)的集合,这些文档描述了程序以及如何使用它们。 软件过程是产生软件产品的一组活动和相关结果。软件工程师主要执行这些活动。有四个关键的过程活动,所有软件过程都通用。这些活动是 - 软件规格: 必须定义软件的功能和对其操作的约束。
- 软件开发: 必须生成满足要求的软件。
- 软件验证: 必须验证软件以确保它能满足客户的需求。
- 软件演化: 软件必须不断发展以满足不断变化的客户需求。
软件过程模型软件过程模型是软件过程的特定定义,它从特定的角度呈现。 模型本质上是一种简化,因此软件过程模型是对正在描述的实际过程的抽象。 过程模型可能包含作为软件过程一部分的活动、软件产品以及参与软件工程的人员的角色。 可能产生的软件过程模型类型的一些示例是 - 工作流模型: 这显示了过程中活动的一系列活动及其输入、输出和依赖关系。 此模型中的活动执行人为操作。
- 2. 数据流或活动模型: 这将过程表示为一组活动,每个活动都执行一些数据转换。 它显示了过程的输入(例如规范)如何转换为输出(例如设计)。 此处的活动可能比工作流模型中的活动级别低。 它们可以执行由人或计算机执行的转换。
- 3. 角色/行动模型: 这意味着参与软件过程的人员的角色以及他们负责的活动。
有几种不同的软件开发通用模型或范例 - 瀑布式方法: 这采用上述活动,并将其作为单独的流程阶段生成,例如需求规范、软件设计、实现、测试等等。 定义完每个阶段后,对其进行“签署”,然后开发进入下一阶段。
- 演化式开发: 这种方法交织了规范、开发和验证的活动。 从非常抽象的规范中快速开发初始系统。
- 形式转换: 这种方法基于生成形式化的数学系统规范,并使用数学方法将该规范转换为程序。 这些转换是“正确性保持”。 这意味着您可以确保开发的程序满足其规范。
- 从可重用组件进行系统组装: 这种方法假定系统部件已经存在。 系统开发过程的目标是集成这些部件,而不是从头开始开发它们。
软件危机- 规模: 随着软件的复杂性和期望的增长,软件变得越来越昂贵和复杂。 例如,消费品中的代码每隔几年就会增加一倍。
- 质量: 许多软件产品质量较差,即软件产品在使用后由于测试技术无效而出现缺陷。 例如,软件测试通常每 1000 行代码发现 25 个错误。
- 成本: 软件开发成本高昂,即在开发所需的时间和所涉及的资金方面。 例如,美国联邦航空管理局的高级自动化系统开发成本超过每行代码 700 美元。
- 交付延迟: 严重的进度超支很常见。 通常,软件的开发时间比估计的时间长,这反过来又导致成本上升。 例如,四分之一的大型开发项目从未完成。
程序 vs. 软件软件不仅仅是程序。 任何程序都是软件的子集,只有在准备好文档和操作程序手册后,它才能成为软件。 软件有三个组成部分,如图所示  1. 程序: 程序是源代码和目标代码的组合。 2. 文档: 文档包含不同类型的手册。 文档手册的示例有:数据流图、流程图、ER 图等。  3. 操作程序: 操作程序包含用于设置和使用软件系统的说明,以及有关如何应对系统故障的说明。 操作系统程序手册的示例有:安装指南、入门指南、参考指南、系统管理指南等。  |