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

软件开发过程选择

软件开发过程选择

by 曦 陈 -
number of replies: 0

1.快速原型模型

(1)      项目特点:功能单一,项目简单,不需要进行风险驱动。测试完成任务即可。

(2)      快速原型模型的特点:原型系统已经通过用户交互得到验证,据此产生的规格说明文档正确地描述了用户的需求。且其本质为“快速”,能节省时间和资金成本。

 

 

2.

方法一:增量模型(侧重新功能的添加)

(1)    项目特点:已有旧版本的软件,可直接建立于旧版本的软件进行维护和新功能的开发。不需要把软件全部推到重做,只需针对旧版本中的bug或过时的功能进行提升和新功能的添加即可。且因为市场竞争激烈,在进行该软件的新版本开发时需要考虑用户的使用感受,即需要循序渐进地进行功能的更新和完善,让用户于软件的使用感受不会出现太大的差异。

(2)    增量模型的特点:把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。旧版的软件至少已经完成了核心功能和基本功能,新版本的软件只需要增加合适的功能即可实现。这种模型需要逐步增加产品功能使用户能较有充裕的时间学习和适应新产品,提高用户的使用舒适度。

(3)    适用性:大规模软件、功能综合性较强的软件、用户数量较多的软件等

方法二:螺旋模型(侧重风险的评估)

(1)    项目特点:已有旧版本的软件,可直接建立于旧版本的软件进行维护和新功能的开发。不需要把软件全部推到重做,只需针对旧版本中的bug或过时的功能进行提升和新功能的添加即可。且因为市场竞争激烈,需要准确评估软件实现功能与用户需求的差异;又因为期限已定,为了赶上新版本的发布需要在快速开发的同时也尽可能减少过多测试或测试不足所带来的风险。又有:该软件已被广泛应用,已经称为一个大规模软件项目,进行风险分析有利于软件在市场更好地生存。

(2)    螺旋模型的特点:使用原型及其他方法来尽量降低风险,可以看作是每个阶段之前都增加了风险分析过程的快速原型模型。适用于内部开发的大规模软件项目,是风险驱动的,能为公司减少开发支出。

(3)    适用性:已上市软件、软件公司主力软件、用户数量较多的软件、竞争激烈的同类软件。

 

 

3.

可靠性要求很高的软件:瀑布模型、喷泉模型、螺旋模型

方式一:瀑布模型:侧重规范

1)  项目特点:要求可靠性高,发射火箭、汽车自动驾驶都需要与硬件联动,因此在问题设计阶段就需要准确明确涵盖哪些功能,在发现问题后也要及时纠正。火箭发射和汽车自动驾驶的推迟实现能够确保有足够的时间发现错误、修改错误,也就是能保证质量。

2)  瀑布模型的特点:①阶段具有顺序性和依赖性:必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②推迟实现;③质量保证。这些特点能够强迫哦开发人员采用规范的方法(结构化技术),能很好地适应大项目的要求。

方式二:喷泉模型:侧重维护方便

1)  项目特点:要求可靠性高,也就是要求在软件的实现和维护过程中可能需要迭代和无缝衔接,使得发现问题能够得到及时纠正。各阶段之间的迭代和无缝能够确保程序容易修改错误和进行维护

2)  喷泉模型是面向对象的经典模型,它的与特点是开发过程中实现得带和无缝的特性。

方式三:螺旋模型:侧重风险避免

1)  项目特点:要求可靠性高,不能出现错误(风险),否则将会造成时间、资金的大量损失(比如火箭发射)甚至人员伤亡(比如自动驾驶)。为了规避这些风险可能需要风险分析,实现风险的规避。

2)  螺旋模型的特点:是由风险驱动的,对于这类大型项目,进行风险分析是必要的。

 

可靠性要求不高的软件:快速原型模型

1)  项目特点:快速便捷,不需要太复杂的过程但需要解决用户需求问题。

2)  快速原型模型的特点:软件开发是按线性顺序进行。原型系统已经通过与用户交互得到验证,据此产生的规格说明文档正确地描述了用户的需求。开发“快速”,能实现利益的最大化。

 

4.

方法一:增量模型:侧重后期的多模块增添

1)  项目特点:要求时间短,且一开始对系统功能认识不太全面,也就意味着一开始制作出来的软件需要首先满足主要需求,后期再对其根据特殊需求进行功能的增加来完善。

2)  增量模型特点:能在较短时间内向用户提交可完成一些有用的工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品

方法二:敏捷过程:侧重满足需求和快速研制可运行软件

1)  项目特点:时间紧,对系统用功能认识不太全面,故可能需要开发人员和客户进行频繁的交流,健康码需要及时研制以“战疫”。同时健康码需要及时反映持码人的健康状况,也就是需要软件能及时的根据持码人的状态(如行动轨迹等)进行响应变化。

2)  敏捷过程的特点:“可使用的软件”胜过“面面俱到的文档”:需要快速为用户提供可以使用的软件。“客户合作”胜过“合同谈判”:客户和开发团队的合作共同研制出满足需求的软件。“响应变化”胜过“遵循计划”:软件过程应该有足够的能力及时响应变化。同时还具有“个体交互”胜过“过程工具”等特点。

 

5.

瀑布模型

(1)项目特点:需要设计数据库逻辑结构和物理结构设计,虽然已经做过多个类似项目但数据库仍需要结合用户需求进行适当的修改,且期限较为宽松,按照瀑布模型一步一步进行时间充裕。而且数据库的数据复杂多样,不同的数据库的数据项和关系不完全相同,无法完全套现成模板,需要针对特殊的数据项和关系做出适当的修改,一旦关系稍有不同成品的功能可能与客户要求实现的功能会稍有不同,需要谨慎小心地完成。因此需要在每一次设计过程中不断对之前的设计进行纠错或者修改。

(2)模型特点:具有顺序性和依赖性:需要完成前一阶段的工作后才能实现后一阶段。具有推迟实现的特点:尽可能推迟物理实现,先把逻辑设计制定完成后再进行程序的物理实现。需要文档驱动:数据量多,关系复杂,采用规范的方法可以避免理解出现偏差,导致成品效果与预期效果不符。

(3)适用性:开发新软件、用户有特殊需求的软件、涉及数据量庞大的软件

 

6.

增量模型

1)  项目特点:已经成功做过多个医院的管理系统,故开发团队已经有充足的经验甚至有软件原型,可直接再软件原型的基础上进行功能的增加。且医院管理系统需要很好地满足医院的需求,即根据医院的需求添加新的功能。同时医院管理系统十分庞大且复杂,需要适应原系统,便于使用者的适应。

2)  增量模型的特点:能在较短时间内向用户提交可完成一些有用工作的产品;逐步增加产品功能可以使用户有较充裕的时间学习和适应新的产品。