本文概述
软件一词指的是描述程序及其使用方式的计算机程序, 过程和相关文档(流程图, 手册等)的集合。
软件过程是产生软件产品的一组活动和相关结果。软件工程师主要从事这些活动。这是所有软件过程共有的四个关键过程活动。这些活动是:
- 软件规格:必须定义软件的功能及其操作约束。
- 软件开发:必须生产满足要求的软件。
- 软件验证:必须对软件进行验证, 以确保其能够满足客户的要求。
- 软件发展:软件必须发展以满足不断变化的客户需求。
软件过程模型
软件过程模型是软件过程的指定定义, 从特定角度提出。从本质上讲, 模型是一种简化, 因此, 软件过程模型是对实际过程的抽象, 正在对其进行描述。流程模型可能包含活动, 这些活动是软件流程, 软件产品以及参与软件工程的人员角色的一部分。可能产生的软件过程模型类型的一些示例是:
- 工作流程模型:显示流程中的一系列活动及其输入, 输出和依存关系。此模型中的活动执行人为行动。
- 2.数据流或活动模型:这将流程表示为一组活动, 每个活动都执行一些数据转换。它显示了如何将流程的输入(例如规格)转换为输出(例如设计)。这里的活动可能比工作流模型中的活动低。他们可以执行人员或计算机执行的转换。
- 3.角色/动作模型:这意味着参与软件过程的人员的角色以及他们负责的活动。
软件开发有几种通用模型或范例:
- 瀑布式方法:采取上述活动并将它们作为独立的过程阶段进行生产, 例如需求规范, 软件设计, 实施, 测试等。定义每个阶段后, 将其”签名”, 然后开发将进入下一个阶段。
- 演进式开发:此方法交错了规范, 开发和验证的活动。最初的系统是从非常抽象的规范迅速发展而来的。
- 形式转换:此方法基于产生正式的数学系统规范并使用数学方法将其转换为程序。这些转换是”保留正确性”。这意味着你可以确定所开发的程序符合其规范。
- 可重用组件的系统组装:此方法假定系统的各个部分已经存在。系统开发过程的目标是集成这些部分, 而不是从头开始开发它们。
软件危机
- 大小:随着软件的复杂性和期望的提高, 软件变得越来越昂贵和复杂。例如, 消费产品中的代码每两年翻一番。
- 质量:许多软件产品的质量很差, 即由于无效的测试技术而在使用后出现软件产品缺陷。例如, 软件测试通常在每1000行代码中发现25个错误。
- 成本:软件开发的成本很高, 即在开发时间和所涉及的金钱方面。例如, 开发FAA的高级自动化系统每行代码的成本超过700美元。
- 延迟交付:严重的进度超支很常见。通常, 该软件花费的时间比估计的开发时间长, 这反过来又导致成本上升。例如, 四分之一的大型开发项目从未完成。
程序与软件
软件不仅仅是程序。任何程序都是软件的子集, 只有在准备好文档和操作步骤手册的情况下, 它才能成为软件。
该软件包含三个组件, 如图所示:
1.程序:程序是源代码和目标代码的组合。
2.文档:文档由不同类型的手册组成。文档手册的示例包括:数据流程图, 流程图, ER图等。
3.操作步骤:操作步骤包括设置和使用软件系统的说明以及有关如何对系统故障做出反应的说明。操作系统过程手册的示例包括:安装指南, 初学者指南, 参考指南, 系统管理指南等。
评论前必须登录!
注册