地信1902邹小红——第二三章思考

1.简述软件过程、软件生存周期、软件过程模型三者之间的概念区别

答:

软件过程:软件的诞生及其生命周期是一个过程,我们总体上称这个过程为软件过程。软件生存周期中的一系列相关过程所涉及的活动。过程是活动的集合,活动是任务的集合,任务是将输入转换为输出的操作。

软件生存周期:软件也有一个从生到死的过程,这个过程一般称之为软件的软件生存周期或生命周期。软件生存周期包括可行性分析、项目计划、需求分析、软件设计、编码与测试、运行与维护等阶段,每个阶段又包含一系列的活动。

软件过程模型:一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从系统的需求定义到系统的使用终止。 软件生存周期模型是一种软件过程的抽象表示,也称为软件开发模型。软件生存周期模型一般使用直观的图形标识软件开发的过程,主要根据软件的类型、规模,特别是软件的开发方法、开发环境等多种因素确立过程模型。

2.软件过程就是软件开发过程么?为什么?

答:不是的。软件开发过程不仅仅只是软件开发过程。软件过程是一个为了构造高质量软件所需完成的一系列活动的过程框架,即形成软件产品的一系列步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴。软件过程是指软件整个生存周期,从需求获取、需求分析、设计、实现、测试到发布和维护的一个过程模型。

3.请选择两个常见的软件过程模型,谈谈你对它们的理解?并对它们进行比较。

答:

①瀑布模型

瀑布模型(Waterfall Model)是一个项目开发架构。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、设计、实现、测试、运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。

它的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,包括软件工程开发、企业项目开发、产品生产以及市场销售等。

优点:1)为项目提供了按阶段划分的检查点。

2)当前一阶段完成后,只需要去关注后续阶段。

3)可在迭代模型中应用瀑布模型。

4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导

缺点:1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。

2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。

3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。

4)瀑布模型的突出缺点是不适应用户需求的变化

适用范围:如果产品的定义非常稳定,且产品的正确性非常重要,需要每一步的验证;产品模块之间的接口,输入和输出能很好的用形式化方法定义和验证;使用的技术非常成熟,团队成员都很熟悉这些技术;负责各个步骤的子团队分属不同的机构,或在不同的地理位置,不可能做到频繁的交流

②螺旋模型

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。

特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

优点:1)设计上的灵活性,可以在项目的各个阶段进行变更。

2)以小的分段来构建大型系统,使成本计算变得简单容易。

3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。

4)随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。

5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。

缺点:很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

螺旋模型的项目适用:

对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。

4.瀑布模型和其他常见模型有什么关联和区别?

答:

关联:

①原型模型:原型模型可以利用原型法技术构造一个实际系统的简化模型。

②增量模型:增量模型在瀑布模型的基础上,对一些阶段进行整体开发,如分析和设计阶段,对另一些阶段进行增量开发,如编码和测试阶段。前面的分析和设计阶段按瀑布模型进行整体开发,后面的编码与测试阶段按增量方式开发。

③螺旋模型:螺旋模型将瀑布模型与原型模型结合起来,体现了其优点。

 区别:

①原型模型:原型模型可以大大避免瀑布模型在软件开发过程中由于冗长的开发过程中看不见产品雏形而导致软件需求变化时无法及时改正的缺点。

②增量模型:瀑布模型将整个过程分为几个阶段,上一个阶段完成后才能开启下一个阶段;而增量模型是分为多个子开发阶段的开发模型。                                瀑布模型是一种相对线性的顺序设计方法,本质上是连续的;增量模型是以顺序方式进行的,本质是顺序的。

③螺旋模型:螺旋模型灵活性较好,引入了其他模型不具备的风险分析,使软件在无法排除重大风险时停止以减少损失。

5.根据你当前所在的团队项目,你更倾向于选择哪一种软件过程模型?为什么?

答:我会选择增量模型。

增量模型融合了瀑布模型的基本成分和原型模型的迭代特征,采用随时间的进展而交错的线性序列。

因此,在团队项目中,我们可以采用分而治之的方法,将整个工程分解为一个个增量,在不断的需求变化中进一步调整完善自己的工作量;

由于实验需要在较短的时间内完成,而对于需求方面难免有些漏洞,使用增量模型,可以根据用户的需求变化进行及时调整,将风险分布到几个小增量中,而不是集中在整个大型项目中;

在对系统的可维护性方面也是一个极大的提高,因为整个系统是由一个个构件集成在一起的,当需求变更时只变更部分部件,而不必影响整个系统。

所以我更倾向于选择增量模型。

 

posted @ 2021-03-12 13:43  青青子衿0537  阅读(55)  评论(0)    收藏  举报