测试基础02:软件开发流程及模型、敏捷开发

1、软件开发流程

包括:项目开发目的分析与确定、需求分析、设计、编程、软件测试、软件交付、验收和维护。

2、软件开发模型

2.1 定义

软件开发模型(Software Development Model)是软件开发全过程的框架,规定了软件开发过程中各项活动的基本步骤、任务和流程,决定了项目的组织、管理和执行方式。

软件开发模型能清晰、直观地表达软件开发全过程,是对软件开发过程的建模,即用一定的流程将各个环节连接起来,并可用规范的方式操作全过程,好比工厂的生产线。

2.2 分类

  1. 边做边改模型(Build-and-Fix Model):没有章法
  2. 瀑布模型(Waterfall Model):比较经典的模型
  3. 快速原型模型(Rapid Prototype Model):1、2的整合优化
  4. 螺旋模型(Spiral Model)
  5. 演化模型(迭代模型/渐增模型/增量模型,Incremental Model):项目拆解,逐步交付
  6. 喷泉模型(fountain model)
  7. 混合模型(hybrid model)
  8. 敏捷开发模型(Agile Development):5的极速版
  9. 智能模型(四代技术(4GL))
  10. RUP模型(Rational Unified Process)
  11. IPD模型(Integrated Product Development)

(以下介绍上方划线的几种常见模型)

1、边做边改模型(Build-and-Fix Model)

开发拿到项目需求,立刻直接代码实现,调试后生成软件版本提供给用户。用户使用后出现程序问题或者新需求,开发人员修改、重新发版。循环往复,直至项目结束。


1_边做边改模型(Build-and-Fix Model).png

1_边做边改模型(Build-and-Fix Model)_网络.png

优点:快。
缺点:
1、无需求环节,很可能有开发风险。
2、无规划、无设计、无文档,逻辑不严谨,可读性差。软件结构会随不断修改而混乱,最终无法修改、维护、扩展。
适用场景:
作坊式,常见于小公司、小项目,如小程序开发、个人开发或承接的项目。

2、瀑布模型(Waterfall Model)

传统的计算机软件开发方法,形状像瀑布。


2_瀑布模型(Waterfall Model).png

瀑布模型将软件生命周期划分为六个阶段:计划制定、需求分析、软件设计、程序编写、软件测试和运行维护。这些阶段自上而下、相互衔接,像瀑布流水一样向前推进。

模型要求严格按照线性方式进行软件开发的各个活动,每一项活动的工作内容都必须依据上一项活动的成果来实施完成。完成当前活动的工作内容后,需要对结果进行验证,若验证通过,则将工作结果输入到下一项活动中,继续进行下一项活动的工作内容。如未通过验证,则要重新修改。

优点:
软件开发过程严格遵循预先计划,需求明确,工作量可控。
缺点:
1、不灵活:阶段划分完全固定,用户见成果需等到过程末期。
2、工作量大:强调文档,每个阶段会产生大量文档;每个阶段都要仔细验证,极大增加工作量。
3、过于理想化,实际操作风险高:线性流程,早期问题可能等到后期测试阶段才被发现,问题修复成本随着阶段向后发展呈指数升高,可能导致严重后果。
适用场景:
一直使用到八十年代。

3、快速原型模型(Rapid Prototype Model)

快速原型开发模式把"边做边改模式"和"瀑布式开发模式"的一些特点整合在了一起:加入模拟成品的“原型”设计环节(所见即所得),(产品经理)边做边改原型;确定原型后,瀑布流顺序开发产品。

3_快速原型模型(Rapid Prototype Model).png

第一步:建造一个快速原型,实现客户或未来用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型,使其满足客户的要求,使开发人员确定客户的真正需求。(“边做边改”需求原型,不着急开发)

第二步:在第一步的基础上开发客户满意的软件产品。(确定需求,进行开发)

快速原型的关键是尽快建立出软件模型(原型),而原型系统的内部架构并不是最重要的。一旦客户需求明确,即确定产品原型,产品经理据此书写规格说明文档(需求文档),根据这份文档开发出的软件可以满足用户的真实需求。

从上图中可以看出,快速原型模型的各阶段之间是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上做到线性顺序(同瀑布模型)进行的。
快速原型所需语言:
UNIX Shell和超文本都是广泛使用的快速原型语言,最近的趋势是,广泛地使用第四代语言(4GL)构建快速原型。

优点:
1、快:生命周期较短。
2、客户体验好:原型所见即所得,客户项目初期即可看到成品效果,及时确认需求。
3、需求真实、明确:降低了瀑布模型中可能的风险。
4、生成的原型是最终产品的一部分,如:原型界面即产品界面。
缺点:
这种模式可能会带来系统设计上的不足和难以维护等问题。(我没太懂)

5、演化模型(迭代模型/渐增模型/增量模型,Incremental Model)

(有理论将演化和增量分开,演化:事先不能定义完整需求。增量:已有完整需求。此处不做区分。)

将完整产品拆分,每次交付满足用户一个需求子集的可运行产品,逐步交付产品。

在使用迭代模型时,第一个迭代往往是实现基本需求的核心产品。核心产品交付用户使用后,经过评价形成下一个迭代的开发计划,包括对核心产品的修改和一些新功能的发布。

这个过程在每个迭代发布后不断重复,直到产生最终的完善产品。

5_演化模型(迭代模型 渐增模型 增量模型 Incremental Model).png

优点:
1、快速高效:能够弥补瀑布模型的缺点,具有更高的生产力和成功率。软件项目可以在确定客户需求之前启动,每次迭代中完成一部分。随后,根据客户反馈的需求再进一步细化,开始新一轮的迭代过程。
2、客户体验好:客户可以不断地看到所开发的软件。
3、灵活:可以较好地适应变化。
缺点:
1、对项目有可扩展性要求:需要软件具备开放式的体系结构。
2、有失控风险:容易退化为边做边改模型,使软件过程的控制失去整体性。

8、敏捷开发模型(Agile Development)

以人为核心、快速迭代、循序渐进的开发模式。

强调以人为本,专注于“尽早地、持续性地”交付对客户有价值的软件。

用于开发和维持复杂产品,把一个大项目分为多个相互联系但也可独立运行的小项目,分别完成,在此过程中软件一直处于可使用状态。

8_敏捷开发模型(Agile Development)_网络.png

敏捷开发团队三个主要工作方法:
① 将所有个体作为一个整体进行工作
② 工作以短迭代周期的方式进行
③ 每一次迭代完成都交付结果,并关注业务优先级。
敏捷开发模式的四个基本核心思想:
1. 重视面对面的沟通,人与人实际交流胜过任何网络工具
2. 将时间精力花费在可运行的程序上, 能执行的产品胜过编译全面的文档,它强调了原型和demonstration等的重要性。
3. 鼓励团队合作,提升工作激情,敏捷开发可以把需求、开发、测试等团队成员整合为一个整体。
4. 团队适应能力强,适应环境变化,拒绝按部就班。

优点:
1、用户很快可以看到一个基线架构版的产品。
2、敏捷注重市场快速反应能力,也即具体应对能力,客户前期满意度高。
缺点:
1、敏捷注重人员的沟通,忽略文档的重要性,若项目人员流动太大,维护难度增加,特别项目存在新手比较多时,老员工比较累。
2、需要项目中存在经验较强的人,否则大项目中容易遇到瓶颈问题。

(对于敏捷开发具体的细分模型,可参考:《软件开发(过程)模型—5种敏捷开发模型(Agile Development)》

参考文章:
1、《软件开发最热门的5种模式》
2、《软件开发常见模型汇总》
3、《软件开发模型》
4、《软件工程--快速原型模型详解》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容