团队与软件开发模型-团队2

 

Csdn c++学习小组                                        张进昌 杜万智 王锴
一.软件开发模型
A .软件开发模型包括的范围及作用
软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。
软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。
B .典型开发模型的应用及优缺点
典型的开发模型有:
1. 边做边改模型(Build-and-Fix Model)
许多产品都是使用"边做边改"模型来开发的,没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改,知道客户满意为止。
2. 瀑布模型(Waterfall Model)
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,逐级下落。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
3. 快速原型模型(Rapid Prototype Model)
快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。
4. 增量模型(Incremental Model)
增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。
5. 螺旋模型(Spiral Model)
将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
螺旋模型沿着螺线进行若干次迭代,每次迭代包括以下活动:
(1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2) 风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3) 实施工程:实施软件开发和验证;
(4) 客户评估:评价开发工作,提出修正建议,制定下一步计划。
6. 演化模型(incremental model)
主要针对事先不能完整定义需求的软件开发。用户可以给出待开发系统的核心需求,软件开发人员根据用户的需求,首先开发核心系统。当该核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程。第一迭代过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集。
7. 喷泉模型(fountain model, (面向对象的生存期模型, OO模型))
喷泉模型与传统的结构化生存期比较,具有更多的增量和迭代性质,生存期的各个阶段可以相互重叠和多次反复,而且在项目的整个生存期中还可以嵌入子生存期。就像水喷上去又可以落下来,可以落在中间,也可以落在最底部。
8. 智能模型(四代技术(4GL))
智能模型拥有一组工具(如数据查询、报表生成、数据处理、屏幕定义、代码生成、高层图形功能及电子表格等),每个工具都能使开发人员在高层次上定义软件的某些特性,并把开发人员定义的这些软件自动地生成为源代码。目前主要限于事务信息系统的中、小型应用程序的开发。
9. 混合模型(hybrid model)
过程开发模型又叫混合模型(hybrid model),或元模型(meta-model),把几种不同模型组合成一种混合模型,它允许一个项目能沿着最有效的路径发展,这就是过程开发模型(或混合模型)。
10 统一软件过程RUP模型
整个软件开发时间被分解为四个顺序的阶段,分别是:
初始阶段  b细化阶段  c构造阶段  d交付阶段
A 初始阶段的目标是为系统建立商业案例并确定项目的边界。
细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。

     C在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。
      D交付阶段的重点是确保软件对最终用户是可用的。

 

11. 极限编程 敏捷 开发模型
极限编程诞生于一种加强开发者与用户的沟通需求,让客户全面参与软件的开发设计,保证变化的需求及时得到修正。核心是先给客户一个软件未来的模型,测试用户满意度,再进行软件开发。
敏捷就是“快”,快才可以适应目前社会的快节奏;要快就要发挥个人的个性思维多一些,个性思维的增多,虽然通过结队编程、代码共有、团队替补等方式减少个人对软件的影响力,但也会造成软件开发继承性的下降,因此敏捷开发是一个新的思路,但不是软件开发的终极选择。对于长时间、人数众多的大型软件应用的开发,文档的管理与衔接作用还是不可替代的。

各种模型的比较
每个软件开发组织应该选择适合于该组织的软件开发模型,并且应该随着当前正在开发的特定产品特性而变化,以减小所选模型的缺点,充分利用其优点。

模型
优点
缺点
瀑布模型
文档驱动
系统可能不满足客户的需求,文档处理工作量大
快速原型模型
关注满足客户需求
可能导致系统设计差、效率低,难于维护
增量模型
开发早期反馈及时,易于维护
需要开放式体系结构,可能会设计差、效率低
螺旋模型
风险驱动
风险分析人员需要有经验且经过充分训练
统一软件过程RUP模型
 
简洁和清晰的过程结构,为开发提供较大的通用性。

只是一个开发过程,并没有涵盖软件过程的全部内容
敏捷软件开发模型
速度快 效率高
个性思维的增多导致软件开发继承性下降

 
 
 
 
 

二.软件开发团队模型
有效的软件项目团队由担当各种角色的人员所组成。每位成员扮演一个或多个角色;可能一个人专门负责项目管理,而另一些人则积极地参与系统的设计与实现。常见的一些项目角色包括:
  · 分析师
  · 策划师
  · 数据库管理员
  · 设计师
  · 操作/支持工程师
  · 程序员
  · 项目经理
  · 项目赞助者
  · 质量保证工程师
  · 需求分析师
  · 主题专家(用户)
  · 测试人员
A 按团队组成分
垂直团队组织
以垂直方案组织的团队由多面手组成,每个成员都充当多重角色。以水平方案组织的团队由专家组成,每个成员充当一到两个角色。以混合方案组织的团队既包括多面手,又包括专家。
水平团队组织
  水平团队由专家组成。此类团队同时处理多个用例,每个成员都从事用例中有关其自身的方面。
混合团队组织
  混合团队由专家和多面手共同组成。多面手继续操作一个用例的整个开发过程,支持并处理多个使用例中各部分的专家们一起工作。
B .按团队目标分
通常有4种类型的项目小组(团队),每一种都有其特殊的要求和目标。4种团队分别是:
战术型团队:其工作是做某件事情,关键是遵循计划,需要良好定义的规划和过程;
问题解决型团队:其工作是去定位某事情,关键是解决问题,需要已经定义好的规则和信任;
创新型团队:其工作是去创造某事情,关键是创造新事物,需要自由,不受约束;
学习型团队:其工作是去学习某事情,关键是构建可理解的模型,需要一致的、共享的模型。(是研究型组织)。
 
 

 
 
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值