跳转至内容

软件工程/流程简介

来自维基教科书,开放世界中的开放书籍

首先,我们需要简单地了解一下全局。软件开发流程是强加于软件产品开发的一种结构。它由一系列活动和步骤组成,其目标是找到可重复的、可预测的流程,以提高生产力和质量。

软件开发活动

[编辑 | 编辑源代码]
系统开发生命周期模型
系统开发生命周期模型

软件开发流程包括一系列活动和步骤,它们是

  • 需求
  • 规格
  • 架构
  • 设计
  • 实现
  • 测试
  • 部署
  • 维护

在创建软件产品中,一项重要的任务是提取需求或进行需求分析。客户通常对他们想要的最终结果有一个抽象的概念,但不知道软件应该做什么。熟练且经验丰富的软件工程师会在此时识别出不完整、含糊不清甚至矛盾的需求。经常演示实时代码可以帮助降低需求不正确的风险。

从客户那里收集到一般需求后,应该确定并明确说明开发范围的分析。这通常被称为范围文档。

某些功能可能不在项目范围内,这是由于成本原因,或者由于在开发开始时需求不明确而导致的。如果开发工作是在外部进行的,这份文档可以被视为法律文件,因此,如果出现任何争议,可以澄清对客户的承诺中任何模糊不清的地方。

实现、测试和文档化

[编辑 | 编辑源代码]

实现是软件工程师实际编写项目代码的流程部分。

软件测试是软件开发流程中不可或缺的重要组成部分。流程的这一部分确保尽早发现缺陷。

为了便于未来维护和增强,在整个开发过程中都会对软件的内部设计进行文档化。这可能还包括编写 API,无论是外部 API 还是内部 API。对项目中的所有内容进行文档化非常重要。

部署和维护

[编辑 | 编辑源代码]

代码经过适当测试,获得发布批准并出售或以其他方式分发到生产环境后,部署工作就会开始。

软件培训和支持很重要,许多开发人员都没有意识到这一点。如果组织中没有人最终使用它,那么开发团队在创建软件上花费的时间和规划再多也是无济于事的。人们通常抵制改变,并避免冒险进入陌生的领域,因此,作为部署阶段的一部分,为您的软件的新客户提供培训课程非常重要。

维护和增强软件以解决新发现的问题或满足新的需求,可能比最初开发软件花费的时间更多。可能需要添加不符合原始设计的代码来纠正不可预见的问题,或者客户可能要求更多功能,需要添加代码来满足他们的要求。如果维护阶段的劳动力成本超过先前阶段劳动力成本的 25%,那么很可能至少有一个先前阶段的整体质量较差。在这种情况下,管理层应考虑在维护成本失控之前重建系统(或部分系统)。


参考文献

[编辑 | 编辑源代码]


[编辑 | 编辑源代码]
华夏公益教科书