loading请求处理中...

什么是软件开发流程及模型类型

2021-12-03 00:10:41 阅读 8106次 标签: 软件开发 作者: a454466904

软件开发过程或生命周期是强加于软件产品开发的结构。这些过程有几种模型,每种模型都描述了在过程中发生的各种任务或活动的方法。越来越多的软件开发组织实施过程方法。的能力成熟度模型(CMM)是全球领先的车型之一。独立评估可用于根据组织定义和执行流程的方式对组织创建软件的程度进行评级。还有其他几十种,其他流行的是ISO 9000,ISO 15504和六西格玛。

什么是软件开发流程及模型类型

软件开发流程或步骤:

需求分析:提取所需软件产品的要求是创建它的第一项任务。虽然客户可能认为他们知道软件要做什么,但可能需要软件工程方面的技能和经验来识别不完整,模糊或矛盾的要求。

规范:规范是以数学上严格的方式精确描述要编写的软件的任务。实际上,尽管在应用程序开发之前经常仔细指定安全关键型软件系统,但大多数成功的规范都是为了理解和微调已经很好开发的应用程序而编写的。规范对于必须保持稳定的外部接口最为重要。

软件架构:软件系统的体系结构是指该系统的抽象表示。架构关注的是确保软件系统满足产品的要求,并确保可以解决未来的需求。

开发:将设计简化为代码可能是软件工程工作中最明显的部分,但它不一定是最大的部分。

测试:软件部分的测试,特别是两个不同工程师必须协同工作的代码,属于软件工程师。

文档:一项重要任务是记录软件的内部设计,以便将来进行维护和增强。

培训和支持:很大一部分软件项目都失败了,因为开发人员没有意识到,如果组织中的任何人最终都没有使用它,那么开发团队花费多少时间和计划创建软件并不重要。人们偶尔会抵制变化并避免冒险进入一个不熟悉的区域,因此作为部署阶段的一部分,为最热心的软件用户提供培训课程(建立兴奋和信心)非常重要,将培训转向中立用户与狂热的支持者混在一起,最后让组织的其他成员采用新的软件。

保养: 维护和增强软件以应对新发现的问题或新要求可能比软件的初始开发花费更多的时间。不仅可能需要添加不符合原始设计的代码,而且仅仅确定软件在完成后的某个时刻如何工作可能需要软件工程师付出巨大努力。所有软件工程工作中约有60%是维护工作,但这种统计数据可能会产生误导。其中一小部分是修复错误。大多数维护是扩展系统来做新事物,这在很多方面都可以被认为是新工作。

软件开发模型:

过程模型

长达数十年的目标是找到可重复的,可预测的流程或方法,以提高生产力和质量。有些人试图将看似不守规矩的编写软件的任务系统化或形式化。其他人将项目管理技术应用于编写软件。如果没有项目管理,软件项目可以很容易地延迟交付或超出预算。由于大量软件项目在功能,成本或交付时间表方面无法满足其期望,因此有效的项目管理变得困难。

瀑布模型

最着名和最古老的流程是瀑布模型,开发人员按顺序执行这些步骤。他们陈述要求,分析它们,设计解决方案方法,为该解决方案构建软件框架,开发代码,测试,部署和维护。在每个步骤完成之后,该过程进行到下一步骤。

迭代过程

迭代开发规定构建软件项目最初较小但更大的部分,以帮助所有相关人员在问题或错误假设可能导致灾难之前尽早发现重要问题。迭代过程是商业开发人员的首选,因为它允许达到不知道如何定义他想要的客户的设计目标的潜力。

敏捷软件开发过程建立在迭代开发的基础之上。在此基础上,他们增加了一种比传统方法更轻松,更以人为本的观点。敏捷流程使用反馈而不是计划作为其主要控制机制。反馈是由不断发展的软件的定期测试和发布驱动的。

敏捷流程似乎比旧方法更有效,使用更少的程序员时间来生成更多功能,更高质量的软件,但从业务角度来看它们不具备长期规划能力的缺点。从本质上讲,他们说他们会提供最大的收益,但不会确切说明什么时候爆炸。

极限编程,XP,是最着名的敏捷过程。在XP中,与较旧的“批量”过程相比,这些阶段以极小(或“连续”)的步骤进行。(故意不完整)首次通过这些步骤可能需要一天或一周,而不是瀑布模型中每个完整步骤的月份或年份。首先,人们编写自动化测试,为开发提供具体目标。接下来是编码(由一对程序员编写),在所有测试通过时完成,并且程序员不能想到任何需要的测试。设计和体系结构源于重构,并在编码之后出现。设计由进行编码的人员完成。为用户部署或演示了不完整但功能强大的系统(其中至少有一个在开发团队中)。

虽然迭代开发方法有其优势,但软件架构师仍然面临着创建可靠开发基础的挑战。这样的基础通常需要大量的前期分析和原型设计来构建开发模型。开发模型通常依赖于特定的设计模式和实体关系图(ERD)。如果没有这种前期基础,迭代开发可以创造在成本和质量方面具有重要意义的长期挑战。

迭代开发方法的批评者指出,这些过程对软件的接收者提出了可能不合理的期望:他们必须拥有经验丰富的软件开发人员的技能和经验。这种方法也可能非常昂贵,类似于......“如果你不知道你想要什么样的房子,让我建一个你看看你是否喜欢它。如果你不喜欢它,我们会撕掉它所有下来并重新开始。“ 现在废弃的大量建筑材料可能是缺乏前期纪律的最终结果。这种批评的问题在于,迭代编程的重点在于,在收到收件人的反馈之前,您不必构建整个房屋。

开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
相关任务
DESIGN TASK 更多
快递发货终端软件开发

¥3000 已有0人投标

软件开发UI设计

¥3000 已有0人投标

应急系统管理软件开发

¥100000 已有3人投标

小游戏开发类的软件开发

¥20000 已有3人投标

电商软件开发

¥50000 已有17人投标

手游软件开发

¥50000 已有1人投标

客服系统软件开发(PC端)

¥200000 已有1人投标