软件开发模式分析

发布 2021-03-05 22:18:28 阅读 5737

作者:刘雪飞。

**:《中外企业家·中旬刊》2023年第01期。

摘要:软件开发是上世纪新兴的行业,由于软件的复杂性使得开发过程漫长且质量参差不齐,随着软件技术和工程化技术的发展,软件工程也得到了较大的发展。多种开发模型应运而生,那么如何根据要开发的软件选择开发模型值得我们思考,本文就介绍比较了常见的开发模型的异同和使用环境。

关键词:软件工程;瀑布模型;增量模型;类型模型;敏捷开发。

我国互联网市场已经相对成熟,但是依附互联网而生的软件开发工作却还处于早期阶段,仍然存在着许多不合理的现象和缺点。软件工程技术是软件开发的根基,只有不断去提升我国软件工程技术,软件的开发才会随着软件工程技术的不断发展而前进。我们需要将软件工程技术重视起来,利用软件工程技术的应用来满足软件开发的专业化需求和提高开发效率,同时,软件工程师还要不断地更新改善软件工程技术。

1软件开发技术的概念和重要性。

软件工程即为充分利用工程化的方法,研究、构建和维护具有实用性、高质量和有效性软件的一门科学。它所涉及的范围较广,主要包括系统软件、数据库、软件开发工具及程序设计等内容,具有较强的综合性和工程性,逐步发展成为电子计算机领域中一门独立的学科。软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。

质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。追求高质量就要耗费较长时间,这看似是一个矛盾体,其实不然。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。

从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。

2软件开发的几种常见模式。

瀑布模型、演化模型、增量模型、螺旋模型、噴泉模型、敏捷模型……这些都是在开发流程中常见的几种模式。

2.1瀑布模型。

2023年winston royce提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。他将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接,如同流水瀑布层层相扣。他的特点如下:

①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②以文档为驱动,前一阶段的输出文档就是后一阶段的输入文档。

优点:可强迫开发人员采用规范化的方法。严格地规定了每个阶段必须提交的文档。要求每个阶段交出的所有产品都必须是经过验证的。

缺点:由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格说明与用户需求之间有差异,就会发生这种情况。

所以瀑布模型只适用于项目开始时需求已确定的情况。

2.2快速原型模型。

快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。

而且在结构上看,快速原型模型是不带反馈环的,使得采用这种模型的软件产品的开发基本上是线性顺序的。只有在产品发布运行之后才需要再来维护。

快速原型的关键在于尽可能快速地建造出软件原型,快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品所具有的功能的一个子集。

2.3增量模型。

增量模型与原型实现模型和其他演化方法一样,本质上是迭代的,但与原型实现不一样的是其强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸”版本,但提供了为用户服务的功能,并且为用户提供了评估的平台。增量模型又称演化模型。

与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种具有相互作用的模块构成。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。

我们经常可以看到手机上某个软件会时不时的推送更新,当我们打开它时并不会发现它整体发生了很大的改变,它可能只是增加了一两个新功能,或者修复了原来的一些漏洞,这就是增量模型开发的典型例子。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。

2.4螺旋模型。

它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。共分为四个部分,进行若干次迭代:(1)制定计划:

确定软件目标,选定实施方案,弄清项目开发的限制条件;(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;(3)实施工程:实施软件开发和验证;(4)客户评估:

评价开发工作,提出修正建议,制定下一步计划。这种开发模型强调风险分析,但要求许多客户接受并相信这种分析,是不容易的。

2.5敏捷开发模型。

敏捷开发是近几年才逐渐流行起来的一种开发模式。开发软件就像开发新产品,无法一开始就能定义软件产品最终的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证最终方案的成功。敏捷开发将软件开发比作橄榄球队,每个成员都有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都朝向目标有明确的推进。

其特点是:以人为核心、迭代、循序渐进,使程序员从繁杂的开发流程中脱身,注重人与人之间的沟通交流。但这种开发模型对团队的要求也比较高,对测试员要求完全掌握各种脚本语言编程,会单元测试。

3结束语。所以选择一个合适的开发模型将会使软件开发事半功倍,大大缩短开发周期。随着现代社会的快速发展,软件工程在不断的壮大中,并且在开发过程中不断应用先进技术,逐渐取缔了传统的开发方案。

软件开发标准化应逐步渗透到信息化建设的过程当中,进一步推进我国信息化建设的发展。

软件开发流程规范

自控所软件项目开发流程规范。sdjt x 2011 1 范围。本流程规定了软件开发项目的基本内容和要求,适用于技术中心自动控制研究所属各项目软件开发的工作开展及软件文档的管理。2 目的。提高软件开发的效率,保证软件开发的质量。形成的软件文档在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中...

软件开发流程管理规范

编制日期 2015 5 25 版本号 v1.0 征求意见稿 批准人 发布日期 项目管理的根本目的是按时 保质 保量完成预期交付的成果。项目管理要让整个组织能清楚理解项目实施的目的 影响 进度,应做到项目组所有员工都应理解项目实施的原因 意义及客户的要求。在项目管理中还能看到公司高层领导通过实际行动表...

软件开发流程管理规定

abc集团软件系统开发管理规定。一 目的。规范营运管理及信息化中心软件开发流程,提高软件开发质量,降低团队成员的沟通难度,降低软件的维护难度,提高软件项目成本及交期的可控性。二 范围。适用于营运管理及信息化中心2013年10月1日后所有的软件开发项目及开发部 信息部所有成员。三 软件开发流程。it部...