讨论题:软件开发过程选择(课前预习思考,课堂讨论)

讨论题

讨论题

陈焱封3238018002 -
回帖数:0

1、医学图像处理软件的计算模块
我选择瀑布模型。因为需求极其明确且固定、规模小、复杂度低、“一旦实现测试完就完成任务”: 这句话表明该模块后期几乎不需要变更需求,也不需要持续的迭代和增加新功能。这与瀑布模型“一次性交付”的特点完美契合。而且流程简单高效: 对于这种简单任务,采用需求->设计->实现->测试->交付的线性顺序开发,管理成本最低,效率最高,无需引入迭代或原型的复杂性。

2、医院设备管理软件的新版本开发(有严格期限)
我选择增量模型或敏捷开发。因为核心约束是已公布的严格期限: 瀑布模型风险太高,如果前期某个环节延误,会导致整个项目延期,无法满足期限要求。而且系统已被广泛应用: 这意味着系统有清晰的核心架构和功能基础。新版本开发很可能是在原有基础上增加新功能或进行优化。
增量模型可以将新功能划分为多个增量。优先开发核心增量,并在最终期限前完成多个可交付的版本。即使某个增量延期,也不影响已完成的增量,确保在截至时总有可交付的成果。并且快速获得反馈: 每个增量都可以交付给用户使用,从而尽早获得反馈,避免在开发后期进行大量修改。
而敏捷开发通过短周期的迭代来逐步交付功能,能够灵活应对变化,并确保每个迭代周期都有可见的进展,有助于管理团队进度和应对时间压力。

3、对可靠性要求高 vs 不高的软件
对可靠性要求极高的软件(医疗手术导航、智能诊断):
我选择螺旋模型或瀑布模型
理由: 这类软件一旦失效可能导致生命危险。螺旋模型最大的优势是内置了风险分析。每个迭代循环都包含制定计划、风险分析、工程实现和客户评估四个步骤。它通过反复的原型验证和风险控制,能够系统地、逐步地消除所有已知风险,最终交付高可靠性的产品。瀑布模型如果配合极其严格的需求分析、设计评审和测试(如V模型),也能满足要求,但其缺乏应对未知风险的能力。
而对于可靠性要求不高的软件(医疗公司产品宣传):则选择快速原型模型 或 敏捷开发
理由: 宣传类软件核心是快速上线、界面美观、内容更新及时。其业务逻辑通常很简单。快速原型模型可以迅速构建界面原型,与客户确认视觉效果和内容布局,避免后期大量修改UI。敏捷开发也能很好地适应内容频繁变更的需求。

4、患者术后跟踪系统(用户需求不清晰)
我选择原型模型或敏捷开发。核心问题是“用户对系统功能认识不太清晰”: 这意味着无法在开始就确定完整的需求清单。而原型模型: 快速开发一个或多个可操作的系统原型(可能只包含界面和核心流程,后台功能可能是模拟的),让用户亲自试用和体验。通过用户的反馈,逐步明确和细化真实需求,避免开发出完全不符合用户期望的软件。敏捷开发: 敏捷通过与用户(或产品负责人)的紧密协作、持续交付和短迭代,同样可以很好地探索和明确需求。每个结束后都可以展示一个可用的产品增量,根据反馈调整下一个的计划。

5、为大医院做具有很多新业务的管理系统(有成功经验)
我选择增量模型或敏捷开发。“为多家医院做过管理系统”: 团队具备丰富的行业经验和技术积累,有可复用的架构、组件和业务逻辑。这是项目的坚实基础。“很多新的业务”: 这是项目的主要风险和不确定性所在。虽然团队有经验,但新业务意味着部分需求可能仍不明确,需要探索。因此选择增量模型。其可以先基于已有经验,搭建一个稳定的核心系统架构(第1个增量/迭代),实现那些熟悉的、明确的功能。然后,将“新业务”作为后续的增量或迭代周期,逐个或分批次地进行分析、设计、实现和集成。这样既保证了核心系统的稳定性,又能灵活地、低风险地开发和研究新功能。

6、“健康科普大家行”手机APP(有类似经验,资源方便)
我选择敏捷开发。移动APP开发的特点: 市场变化快,用户偏好多变,需要快速推出、快速试错、快速更新迭代。“以前做过类似的网站”: 团队对业务领域(健康科普)很熟悉,降低了技术风险。“数据资源获取方便”: 降低了数据获取和处理的难度。敏捷开发能够以极高的效率进行开发,快速推出第一个可用的版本占领市场。通过每个2-4周的Sprint,持续交付新功能、修复bug、优化用户体验。并且可以根据应用市场上用户的反馈和评分,灵活地调整下一个版本的开发优先级,实现“数据驱动决策”。非常适合这种需要不断运营、维护和更新的互联网移动应用产品。