您的位置:首页 > 其它

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

2009-07-17 07:34 204 查看
Csdn c++学习小组 张进昌 杜万智 王锴

一.软件开发模型

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

初始阶段 b细化阶段 c构造阶段 d交付阶段
A初始阶段的目标是为系统建立商业案例并确定项目的边界。

细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。

C在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。

D交付阶段的重点是确保软件对最终用户是可用的。

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

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

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

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

[align=left][/align]
[align=left][/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: