您的位置:首页 >聚焦 >

软件架构设计系列之二(软件开发模型)

2023-02-27 11:58:39    来源:架构师荆轲

软件架构设计系列包括软件生命周期、软件开发模型、软件开发方法、基于架构的软件开发、软件架构设计(软件架构设计原则、软件架构质量属性、软件架构风格、软件架构设计、软件架构文档化、软件架构评估)等。本文为系列之二——软件开发模型。

软件开发模型

随着信息技术的快速发展,软件的复杂度不断提高,软件系统已经变得非常复杂,软件开发需要遵循一定的开发方法才能取得成功,这些模式化的软件开发方法称为软件开发模型。常用的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型、增量模型等。


【资料图】

瀑布模型:瀑布模型就如同瀑布一样,从一个特定的阶段流向下一个阶段。瀑布模型是最早的开发模型,也是最经典的软件开发模型,至今仍在软件开发中起到重要的作用。

瀑布模型认为软件开发过程是一个阶段化的精确的过程。分为如下几个顺序的阶段:需求分析、总体设计、详细设计、编码、调试、集成测试和系统测试。

当软件需求明确、稳定时,可以采用瀑布模型按部就班地开发软件,当软件需求不明确或变动剧烈时,瀑布模型中往往要到测试阶段才会暴露出需求的缺陷,造成后期修改代价太大,难以控制开发的风险。

瀑布 V 模型:瀑布 V 模型是瀑布模型的一种变体。随着对瀑布模型的应用,人们发现,缺陷是无法避免的,任何一个阶段都会在软件中引入缺陷,而最后的测试也不能保证软件完全没有缺陷,只能争取在交付前发现更多的缺陷。测试成为软件开发中非常重要的环节,测试的质量直接影响到软件的质量。因此,人们对瀑布模型进行了小小的更改,提出了更强调测试的瀑布 V 模型。

整个瀑布模型在编码与调试阶段转了个弯,形成了一个对称的 V 字。瀑布 V 模型同标准瀑布模型一样,在进行完需求分析后就将进入总体设计阶段,但是除总体设计外,需求分析还有一条虚线指向系统测试。这指的是,需求分析的结果将作为系统测试的准则,即需求分析阶段也将产生同软件需求一致的系统测试;同时软件产品是否符合最初的需求将在系统测试阶段得到验证。以此类推,总体设计对应了集成测试,详细设计对应了单元测试。瀑布 V 模型不但保持了瀑布模型的阶段式文档驱动的特点,而且更强调了软件产品的验证工作。

虽然是经典的开发模型,但瀑布模型中仍存在一些难以克服的缺陷,即使是在改进的瀑布 V 模型中还是会存在。

首先,在瀑布模型中,需求分析阶段是一切活动的基础,设计、实现和验证活动都是从需求分析阶段的结果导出的。一旦需求分析的结果不完全正确,存在偏差,那么后续的活动只能放大这个偏差,在错误的道路上越走越远。事实上,由于用户和开发者的立场、经验、知识域都不相同,不同的人对同一件事物的表述也不同,这就造成需求分析的结果不可能精确、完整地描述整个软件系统。所以瀑布模型后期的维护工作相当繁重,而这些维护工作大多都是修正在需求分析阶段引入的缺陷。这个问题是瀑布模型难以克服的。

其次,瀑布模型难以适应变化。在瀑布模型中精确地定义了每一个阶段的活动和活动结果,而每一阶段都紧密依赖于上一阶段的结果。如果在软件的后期出现了需求的变化,整个系统又要从头开始。

再次,使用瀑布模型意味着当所有阶段都结束才能最终交付软件产品,所以在提出需求后需要相当长一段时间的等待才能够看到最终结果,才能发现软件产品究竟能不能够满足客户的需求。

最后,文档驱动型的瀑布模型除了制造出软件产品外还将产生一大堆的文档,大部分的文档对客户没有任何意义,但完成这些对客户没有意义的文档却需要花费大量的人力。所以瀑布模型也是一种重载过程。

演化模型:演化模型可以看做若干次瀑布模型的迭代,当完成一个瀑布模型后,重新进入下一个迭代周期,软件在这样的迭代过程中得以演化、完善。根据不同的迭代特点,演化模型可以演变为螺旋模型、增量模型和原型法开发。

螺旋模型:螺旋模型将瀑布模型和演化模型结合起来,不仅体现了两个模型的优点,而且还强调了其他模型均忽略了的风险分析。螺旋模型的每一周期都包括需求定义、风险分析、工程实现和评审 4 个阶段,由这 4 个阶段进行迭代,软件开发过程每迭代一次,软件开发就前进一个层次。

螺旋模型的基本做法是在“瀑布模型”的每一个开发阶段前,引入一个非常严格的风险识别、风险分析和风险控制。它把软件项目分解成一个个小项目,每个小项目都标识一个或多个主要风险,直到所有的主要风险因素都被确定。

螺旋模型强调风险分析,使得开发人员和用户对每个演化层出现的风险都有所了解,继而做出应有的反应。因此,螺旋模型特别适用于庞大而复杂、具有高风险的系统,对于这些系统,风险是软件开发潜在的、不可忽视的不利因素,它可能在不同程度上损害软件开发过程,影响软件产品的质量。减小软件风险的目标是在造成危害之前,及时对风险进行识别、分析,决定采取何种对策,进而消除或减少风险的损害。

与瀑布模型相比,螺旋模型支持用户需求的动态变化,为用户参与软件开发的所有关键决策提供了方便,有助于提高目标软件的适应能力,为项目管理人员及时调整管理决策提供了便利,从而降低了软件开发风险。

但是,不能说螺旋模型绝对比其他模型优越,事实上,螺旋模型也有其自身的缺点:

(1)采用螺旋模型,需要具有相当丰富的风险评估经验和专业知识。在风险较大的项目开发中,如果未能及时标识风险,势必会造成重大损失。

(2)过多的迭代次数会增加开发成本,延迟提交时间。

增量模型:演化模型的另一种形式是增量模型。在系统的技术架构成熟、风险较低的时候,可以采用增量的方式进行系统开发,这样可以提前进行集成测试和系统测试,缩短初始版本的发布周期,提高用户对系统的可见度。

对于增量模型,通常有两种策略。

一是增量发布的办法。即首先做好系统的分析和设计工作,然后将系统划分为若干不同的版本,每一个版本都是一个完整的系统,后一版本以前一版本为基础进行开发,扩充前一版本的功能。在这种策略中,第一版本往往是系统的核心功能,可以满足用户最基本的需求,随着增量的发布,系统的功能逐步地丰富、完善起来。用户在很短的时间内就可以得到系统的初始版本并进行试用。试用中的问题可以很快地反馈到后续开发中,从而降低了系统的风险。在应用增量模型中需要注意:

(1)每一个版本都是一个完整的版本。虽然最初的几个增量不能完全地实现用户需求,但这些版本都是完整的、可用的。

(2)版本间的增量要均匀,这一点是很重要的。不均匀的分配会降低增量发布的意义,需要重新调整。

二是原型法。同增量发布不同,原型法的每一次迭代都经过一个完整的生命周期。当用户需求很不明确或技术架构中存在很多不可知因素的时候,可以采用原型法。原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。

显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。

快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。一般情况下,会在后面的开发中抛弃这个原型,重新实现完整的系统。

喷泉模型:也称面向对象的生存期模型, OO模型。喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。

评论:

软件开发模型是软件开发方法的总结。每个软件开发组织应该选择适合于该组织的软件开发模型,也可以结合项目或产品特性进行组合、裁剪或优化,以充分利用其软件开发模型的优点,减小模型缺点所带来的损失。在现代软件开发过程中,这些软件模型中的一种模型已经很难能完全匹配软件开发过程,软件开发模型也产生了更多的变种。例如业内常采用的外瀑布内敏捷(有人称为“信封法”)的开发方式,对外采用瀑布模型,对内采用敏捷开发来提高开发效率。互联网企业大量采用的DevOps方法,进行持续的开发、持续的测试、持续交付,快速传递产品价值。具体采用内中开发模型,应结合软件项目或产品的特性来决定。但无论采用哪种方式,软件开发模型在软件项目一开始就应明确下来。

标签: 软件开发模型 软件架构

相关推荐

【环球热闻】永定城·京津冀固安国际商贸城吸引四千余家北京等地商户入驻

天天消息!河北唐山古冶区,发生2.2级地震

太空183天!专访神舟十四号飞行乘组

全球资讯:土耳其地震是“超级太空武器”引发的吗?谢天谢地,真的没有

死亡录像4剧情介绍是什么?死亡录像4拍摄日期是何时?

素然是几线品牌属于什么档次?素然和安高若是两个牌子吗?

兵临村下的演员都有谁?兵临村下讲述了什么故事?

黑寡妇扮演者叫什么名字?黑寡妇到底多大了?

波兰向乌交付豹2坦克后,俄罗斯已停止向波兰输送石油

ETF销售,竟有如此“潜规则”?

今日关注:仅6.1%应届本科生起薪过万,“钱少、事少、不累”的工作受欢迎

什么信号?龙头房企筹划出手了!大湾区土拍市场即将掀起高潮?

天天亮点!蚂蚁集团第二次分红派息319亿元,两次累计超438亿元

环球热点!巴菲特44年最短股东信精读:太谦虚,商业帝国不会拆分,为回购辩护

英国副首相:英国即将就北爱尔兰问题与欧盟达成新的“脱欧”协议

环球即时看!佩洛西公开被怼:为什么给乌克兰1500亿美元美国还有人无家可归

焦点关注:澳门27日起室外不要求佩戴口罩

世界今日报丨通讯:塞尔维亚旅游市场热盼中国游客

环球资讯:美媒:穿越“战区”去上学?美国社区暴力令学生面临高于战场的风险

“中国海军朝我挥手了!”

【报资讯】十大券商一周策略:A股下行风险有限!市场有望出现新主线

环球观察:上蜂路

资讯推荐:神赌狂后txt下载全集_神赌狂后

世界热点!金融如何助推实体经济升级?专家:盘活市场存量资产是关键

焦点快播:华兴资本CEO包凡正配合调查 或与工银金融租赁贷款有关

【世界新视野】北向资金今年首次单周净卖出!19股仍逆势大买

每日快讯!天气晴好,气温升,注意昼夜温差

美国推特公司进行第八轮裁员

环球即时看!“00后”现在开始规划养老,早吗?

当前短讯!杠上了!“牙茅”计划二度入股,这家上市公司到底有何魅力?

每日热议!日本央行新行长与YCC的去向

今日看点:特斯拉宏图篇章3下周将揭晓,我们将等来什么?

世界看点:澳门27日起室外不要求佩戴口罩

全球热头条丨奋进的春天|大规模招聘重回线下,释放火热复苏信号

焦点播报:俄媒:普京祝贺埃尔多安生日,赞扬其为俄土关系所做贡献

动态焦点:奋进的春天|阡陌交通点亮流动中国 为经济发展注入活力

天天快讯:安全感满满!四川男子南非偶遇中国海军护航编队

全球快看点丨奋进的春天 | 金融文旅齐加力 稳经济促消费

【新要闻】近期北京甲流患者增多,专家提醒:勿自行服用——

天天快看点丨奋进的春天 | 金融文旅齐加力 稳经济促消费

petgugu荣获2023年第10届京宠展金奖

天天滚动:全面修复行情的第二波即将开启?市场新洼地是谁?十大券商策略来了

头条焦点:美元二次冲顶,人民币再度“破7”在即

普京:北约通过输送武器参与乌克兰冲突

全球快资讯丨美国资深调查记者赫什:美国破坏“北溪”管道以裹挟欧洲盟友

新资讯:乌克兰回应“泽连斯基替身曝光”

【天天快播报】多名附近居民患上支气管炎!美国“毒火车”事件最新追踪

中国就业市场持续升温 企业招聘和人才求职“供需两旺”

期末考试期间,这位医学生干了件大事

全球资讯:新闻观察:春季招聘市场暖意浓

世界动态:广西宁明爱店口岸通关顺畅 跨境贸易运输繁忙

今日热门!在工业现场定格中国力量

今日要闻!全球连线丨久别重逢,香港你好呀!

世界观天下!奋进的春天|大规模招聘重回线下,释放火热复苏信号

热头条丨轻工

当前资讯!每人最高1600元!北京要发消费券了,55类商品可用

全球快看点丨华兴资本:包先生目前正配合中国有关机关的调查 集团运营维持正常

多地向二孩三孩家庭发钱,专家:一孩家庭也需要发

天天快播:悍金斯增肌粉有用吗_增肌粉有用吗

俄罗斯总统普京与土耳其总统埃尔多安通电话

世界即时:监管月内两次表态“提前还款”,释放了哪些信号?

简讯:跨国药企加速牵手本土企业,诺华晚期肾癌药物将由百洋医药商业化

全球热点评!北京首批4家树木医院将正式挂牌开诊,市民的家养花也能送医

速递!A股第一代“庄家”吕梁去世

全球最资讯丨微众银行副行长马智涛:元宇宙技术应坚定走服务实体经济路径,未来可重点探...

一艘移民船在意大利海岸附近沉没 造成至少40人丧生

焦点热门:乌克兰外长与斯洛文尼亚外长举行会谈

全球速看:日媒:日本拟加强日美轰炸机训练 渲染“核威慑”

焦点报道:美媒:“奇怪DNA”或有助寻找火星生命

今日热搜:外媒:为削减成本 推特又裁员至少50人

天天关注:好消息!北京东城65岁以上老人免费体检开始啦

俄罗斯电视台播放普京最新采访,他都说了什么?

短讯!近1600次地震,竟由它引起?!“灾难性”影响→

环球今亮点!一艘移民船在意大利海岸附近沉没 造成至少40人丧生

如何预防诺如病毒感染、流感?专家解答春季传染病防治

“行走的蔡司镜头”让妈妈的眼睛恢复“出厂设置”

【环球快播报】巴菲特一年一度投资指南出炉,业绩“喜忧参半”,股东怎么看?

【环球热闻】这类创新产品成年内黑马,募集规模已超170亿!还有8只产品在申报

焦点简讯:上海一小区水费账单高达132万,到底怎么用掉的,该谁付?

support 名词、actor 动词、refuse 反义词、strict 副词、independent 名词和反义词prepar

天天动态:浙江苍南警方遣返一名“红通”逃犯

全球快看:普京:俄不反对北约国家参与讨论《新削减战略武器条约》事宜

每日简讯:西班牙经济学家:美国是“北溪”管道遭破坏事件的直接受益者

俄气将通过乌克兰向欧洲运送3900万立方米天然气

今日热门!下穿路县故城遗址,上跨城际联络线,京唐城际城市副中心隧道开挖

世界动态:欢迎!中国空间站将选拔国际航天员

热推荐:连通大兴亦庄通州,接驳多条地铁,公交913路正式开通

每日速看!杨利伟:完成选拔!

环球动态:奋进的春天 | “新型消费”蓬勃发展 迸发消费新活力

播报:杨利伟:完成选拔!

关注“全面注册制落地后第一案”,三问奥联电子“履历造假门”

当前关注:银行业风暴:16家银行被罚138亿,又一家华尔街巨头卷入,下一家是谁

【环球新要闻】我国即时配送年订单量超400亿单!阡陌交通点亮流动中国

环球微速讯:“中国个体餐饮第一家”的坚守与新生

环球短讯!“太空遨游”半年的洋紫荆种子,12颗出苗移植啦!

每日看点!田园春来早

热点聚焦:沪上阿姨旗袍图被质疑不雅 ,当地市监局发布调查结果

【写意中国探寻汉字起源】视频|这件“战神”酒器讲述一代殷商女杰的辉煌传奇

天天滚动:辽宁省人民政府原副省长、公安厅原厅长王大伟被提起公诉

当前关注:保洁员捡2万元现金报警后被饭店开除,官方回应:监管部门已介入