在预算和时间限制内持续开发高质量的嵌入式系统对于许多团队而言是一项艰巨的挑战。原因可能千差万别,但是从我与新兴企业到大型半导体公司的全球客户和团队的对话中,不成熟的软件开发生命周期(SDLC)是最重要的元凶之一。在这篇文章中,我将启动一个系列,该系列不仅会回顾SDLC的主要阶段,还将深入到每个阶段,并提供可用于调整自己的SDLC的专家技术。
定义软件开发生命周期
软件开发生命周期可以定义为:
“在合理的预算和时间限制内,用于始终如一地实现系统所需软件质量的过程”。
SDLC定义了有助于团队避免常见陷阱的流程和规程,否则这些陷阱将导致软件返工和调试。我们都知道,返工和调试可能会对业务产生重大影响,例如上市时间晚,预算超支和客户反冲等。 SLDC旨在帮助团队更快地前进,而不会减慢他们的速度!
软件开发生命周期阶段
SDLC定义了跨越几个不同开发阶段的流程。传统上,这些阶段包括以下内容:
- 要求
- 设计
- 施工
- 测验
- 部署方式
SDLC并不需要严格遵循瀑布式执行这些阶段,而是许多成功的现代开发团队将这些阶段混合在一起,然后经常重复进行。例如,测试阶段已与软件构建阶段融合在一起。利用持续集成服务器和单元测试框架的团队可以在构建代码时对其代码进行测试,以便立即发现缺陷,而不是在开发周期结束时发现缺陷。这种融合极大地提高了嵌入式软件的质量。
放慢速度
公司往往希望以最快的速度发展。他们都有股东想要看到利润和增长,无论是小型企业的单一所有者还是上市公司的董事会和股东。总是充满活力,没有足够的时间去做所有需要做的事情,并且处于压力之下的团队开始偷工减料。他们开始将进程扔出窗口! SDLC流程非常严格,可以防范常见的陷阱。结果是较低的质量和较长的开发周期。当然,诀窍是平衡SDLC中的流程,以免它们变得过于霸道和成本过高,我将在以后的帖子中进行讨论。
结论
每个开发嵌入式软件的团队都需要有一个明确的软件开发生命周期,并由开发团队和管理人员支持。生命周期必须包括需求,设计,构造,测试和部署。跳过或最小化任何一个阶段都会导致无效的生命周期,这不仅会花费金钱,还会花费时间和质量。您在SDLC上浪费了多少?
雅各布的本周专家提示
即使只有10分钟,本周也要花几分钟来评估您的软件开发生命周期。问问自己以下问题:
- 我们是否具有确定的软件开发生命周期,或者是临时开发产品?
- 如果我们有SDLC,我们是否真的遵循它?上次更新时间是什么时候?它变得太麻烦了吗?
- 如果没有SDLC,我们每年浪费多少钱做返工?多少时间?这如何影响我们的业务和客户?
最重要的是,使用这些问题来帮助指导您确定组织需要采取的下一步。如果可以提供帮助,请随时与我联系 [电子邮件 protected]
您忘记了维护。这项要求极大地推动了SDLC阶段的其余阶段(或更好)。
在消费产品中,您基本上不 ’没有维护。对于必须使用10年或更长时间的产品(例如,工业自动化将接近20年),维护设计变得至关重要,并且是SDLC的最大组成部分
我经常认为维护不仅仅是重复SDLC。在维护阶段,应在部署变更之前对变更或新需求,设计更新,软件构建和测试进行变更。我知道IEEE Swebok将维护列为一个单独的阶段,但我通常不这样做’不能那样看。就是说,我喜欢有文件记录的SDLC,因为它使开发人员可以指定他们的流程和使用的术语。 SDLC的设置方式肯定会有变化,并且实现它们的方法不只一种。感谢您的评论!
在开发SDLC时,您是否推荐任何工具?例如,我听说过可以在需求,设计输出,测试的通过/失败之间建立可追溯性的工具。
在开发SDLC时,您是否有建议参考的参考材料?也许将来的帖子会更详细?
感谢您的评论!一世’在以后的文章中将对此进行更详细的讨论。我建议检查Atlassian工具链。 SDLC有很多良好的功能。熟悉IEEE Swebok也很有帮助。他们有一本免费的书,涵盖了SDLC的所有细节。一世’过去使用过几种不同的单元测试框架。一个我’最近一直在密切关注的是CMOCK。