软件工程/流程简介
首先,我们需要简单地了解一下全局。软件开发流程是强加于软件产品开发的一种结构。它由一系列活动和步骤组成,其目标是找到可重复的、可预测的流程,以提高生产力和质量。
软件开发流程包括一系列活动和步骤,它们是
- 需求
- 规格
- 架构
- 设计
- 实现
- 测试
- 部署
- 维护
在创建软件产品中,一项重要的任务是提取需求或进行需求分析。客户通常对他们想要的最终结果有一个抽象的概念,但不知道软件应该做什么。熟练且经验丰富的软件工程师会在此时识别出不完整、含糊不清甚至矛盾的需求。经常演示实时代码可以帮助降低需求不正确的风险。
从客户那里收集到一般需求后,应该确定并明确说明开发范围的分析。这通常被称为范围文档。
某些功能可能不在项目范围内,这是由于成本原因,或者由于在开发开始时需求不明确而导致的。如果开发工作是在外部进行的,这份文档可以被视为法律文件,因此,如果出现任何争议,可以澄清对客户的承诺中任何模糊不清的地方。
实现是软件工程师实际编写项目代码的流程部分。
软件测试是软件开发流程中不可或缺的重要组成部分。流程的这一部分确保尽早发现缺陷。
为了便于未来维护和增强,在整个开发过程中都会对软件的内部设计进行文档化。这可能还包括编写 API,无论是外部 API 还是内部 API。对项目中的所有内容进行文档化非常重要。
代码经过适当测试,获得发布批准并出售或以其他方式分发到生产环境后,部署工作就会开始。
软件培训和支持很重要,许多开发人员都没有意识到这一点。如果组织中没有人最终使用它,那么开发团队在创建软件上花费的时间和规划再多也是无济于事的。人们通常抵制改变,并避免冒险进入陌生的领域,因此,作为部署阶段的一部分,为您的软件的新客户提供培训课程非常重要。
维护和增强软件以解决新发现的问题或满足新的需求,可能比最初开发软件花费的时间更多。可能需要添加不符合原始设计的代码来纠正不可预见的问题,或者客户可能要求更多功能,需要添加代码来满足他们的要求。如果维护阶段的劳动力成本超过先前阶段劳动力成本的 25%,那么很可能至少有一个先前阶段的整体质量较差。在这种情况下,管理层应考虑在维护成本失控之前重建系统(或部分系统)。
- 不要再写另一个流程
- 没有银弹:软件工程的本质和意外", 1986
- Gerhard Fischer,“21 世纪的软件技术:从软件重用到协作软件设计”,2001 年
- Lydia Ash:网络测试指南:高效有效测试的内部人士指南,Wiley,2003 年 5 月 2 日。 ISBN 0-471-43021-8
- SaaSSDLC.com — 软件即服务系统开发生命周期项目
- 软件开发生命周期 (SDLC) [视觉图像],软件开发生命周期
- 选择 SDLC", 2009
- Heraprocess.org — Hera 是一种用于管理 Web 项目的轻量级流程解决方案