=======================================================================
Software Engineering notebook
参考资料:
[1]:https://melsatar.blog/2012/03/21/choosing-the-right-software-development-life-cycle-model/
[2]:Software Engineering Tenth Edition
对于软件工程而言,没有放之四海而皆准、适用于所有不同类型软件开发的过程模型。正确的过程取决于客户和管理需求、软件使用所处的环境,以及所开发的软件类型。
=======================================================================
如何选择合适的SDLC
第1步:了解SDLC模型
SDLC在使用上是相同的。为了选择正确的SDLC,你应该有足够的经验,熟悉将要选择的SDLC并正确地理解它们。
正如在软件开发生命周期模型文章中所描述的,模型类似于工具,了解每个工具的使用情况以了解它适合于应用到哪个环境是非常重要的。
第2步:评估利益相关者的需求
我们必须研究业务领域,利益相关者关注点和要求,业务优先级,我们的技术能力以及技术限制,以便能够根据其选择标准选择正确的SDLC。
第3步:定义标准
您可以用来选择SDLC的一些选择标准或参数是:
- SDLC是否适合我们团队的规模和技能?
- SDLC是否适合我们用于实施解决方案的选定技术?
- SDLC是否适合客户和利益相关方的关注和优先事项?
- SDLC是否适合地理位置(分布式团队)?
- SDLC是否适合我们软件的大小和复杂性?
- SDLC是否适合我们的项目类型?
- SDLC是否适合我们的软件工程能力?
- SDLC是否适合项目风险和质量保险?
推荐的一些标准,仅供参考:
因素 | 瀑布 | V形 | 进化原型 | 螺旋 | 迭代和增量 | 敏捷 |
---|---|---|---|---|---|---|
用户要求不明确 | 较差的 | 较差的 | 好 | 优秀 | 好 | 优秀 |
不熟悉的技术 | 较差的 | 较差的 | 优秀 | 优秀 | 好 | 较差的 |
复杂系统 | 好 | 好 | 优秀 | 优秀 | 好 | 较差的 |
可靠的系统 | 好 | 好 | 较差的 | 优秀 | 好 | 好 |
短时间表 | 较差的 | 较差的 | 好 | 较差的 | 优秀 | 优秀 |
强大的项目管理 | 优秀 | 优秀 | 优秀 | 优秀 | 优秀 | 优秀 |
成本限制 | 较差的 | 较差的 | 较差的 | 较差的 | 优秀 | 优秀 |
利益相关者的可见性 | 好 | 好 | 优秀 | 优秀 | 好 | 优秀 |
技能限制 | 好 | 好 | 较差的 | 较差的 | 好 | 较差的 |
文档 | 优秀 | 优秀 | 好 | 好 | 优秀 | 较差的 |
组件可重用性 | 优秀 | 优秀 | 较差的 | 较差的 | 优秀 | 较差的 |
第4步:决定
当您定义需要与团队讨论的标准和参数时,您需要有一个决策矩阵,并为每个选项提供每个选项的定义权重和分数。在分析结果后,您应该在项目工件中记录此决策并与相关的利益相关者共享。
第5步:优化
您可以在项目执行期间始终优化SDLC,您可能会注意到即将发生的更改不适合所选的SDLC,可以对齐并应对更改。您甚至可以制作自己的SDLC模型,该模型最适合您的组织或您参与的项目类型。