软件工程第二章.PPT

合集下载

软件工程第二章-软件过程

软件工程第二章-软件过程

编码
运行 时期
1. 瀑布模型
瀑布模型(waterfall model)是软件工程最早的范例,
也称经典生命周期,它提出了一个系统的、顺序的软 件开发方法,从用户需求规格说明开始,通过计划、 建模、构建和部署的过程,最终提供一个完整的软件 并提供持续的技术支持。
沟通 项目启动 需求获取 策划 项目估算 进度计划 项目跟踪
… 框架活动 # n 动作 # n.1 任务集 …… 动作 # n.m 任务集 工作任务、工作产品、 质量保证点、项目里程碑
工作任务、工作产品、 质量保证点、项目里程碑
只有一种软件过程吗?
软件过程的种类很多,区别主要体现在几个方面: 组成过程的各个活动(包括普适性活动)、动作和任务,及其相互依 赖的关系都可能不同; 动作和任务的细化程度可能不同; 工作产品的定义和要求可能不同; 质量保证活动的应用方式可能不同; 项目跟踪和控制活动的应用方式可能不同; 过程描述的详细程度和严谨程度可能不同; 客户和利益相关者对项目参与的程度可能不同; 软件团队所赋予的自主权可能不同; 队伍组织和角色的明确程度可能不同。
下优先级进行增量开发:
第一个增量实现基本的文件管理、编辑和文档生成功能



; 第二个增量实现更加完善的编辑和文档生成功能; 第三个增量实现拼写和文法检查功能; 第四个增量完成高级的页面布局功能; ……
增量模型的特点
增量过程模型综合了线性、并行、演化三种过程流的
特征。
对于每个增量,使用的是线性过程流;
过程流
过程流(process flow):描述了在执行顺序和执行时
间上,如何组织框架中的活动、动作和任务。 大致有四大类不同的过程流:

第二章-软件开发方法概述-PPT课件

第二章-软件开发方法概述-PPT课件
把问题/子问题的分解与软件开发 中的系统/子系统或系统/模块对 应起来,就能够把一个大而复杂的 软件系统划分成易于理解的比较单 纯的模块结构。
31
抽象化
软件系统进行模块设计时,可有不 同的抽象层次。 在最高的抽象层次上,可以使用问 题所处环境的语言概括地描述问题 的解法。 在较低的抽象层次上,则采用过程 化的方法。
16
实用性:确认该设计对于需求的解 决方案是否实用 技术清晰度:确认该设计是否以一 种易于翻译成代码的形式表达 可维护性:确认该设计是否考虑了 方便未来的维护 质量:确认该设计是否表现出良好 的质量特征
17
各种选择方案:看是否考虑过其 它方案,比较各种选择方案的标 准是什么 限制:评估对该软件的限制是否 现实,是否与需求一致 其它具体问题:对于文档、可测 试性、设计过程..等进行评估
49
公共耦合的复杂程度随耦合模块的个 数增加而显著增加。若只是两模块间 有公共数据环境,则公共耦合有两种 情况。松散公共耦合和紧密公共耦合。
50
内容耦合 (Content Coupling)
如果发生下列情形,两个模块之间 就发生了内一个模块不通过正常入口转 到另一模块内部;
28
④ 在模块A的箭头尾部标以一个菱 形符号,表示模块A有条件地调用 另一个模块B。当一个在调用箭头 尾部标以一个弧形符号,表示模块 A反复调用模块C和模块D。
29
程序的系统结构图
30
模块化
软件系统的模块化是指整个软件被 划分成若干单独命名和可编址的部 分,称之为模块。这些模块可以被 组装起来以满足整个问题的需求。
外部耦合(External Coupling)
一组模块都访问同一全局简单变量而 不是同一全局数据结构,而且不是通 过参数表传递该全局变量的信息,则 称之为外部耦合。

软件工程第二章(可行性分析)

软件工程第二章(可行性分析)

(5) 交付的产品清单。
项目开发计划书供软件开发单位使用。
小结:
1、项目的问题定义、可行性分析和项目计划是总体 规划阶段的工作,重点是项目的可行性分析。
2、可行性分析主要从技术可行性、经济可行性和操 作可行性三方面来分析该项目是否值得开发。
3、可行性分析最后形成的成果是可行性分析报告。

项目的筹备、规划与准备是软件项目实施的前
期工作,它由两个重要的工作阶段构成:一是
项目规划及可行性分析;二是项目需求分析。

一、可行性分析的概念

可行性分析就是解决一个项目是否有可行解以及是
否值得去解的问题。该阶段的主要任务就是用最小
的代价在尽可能短的时间内确定问题是否能够得到 解决。
二、可行性分析的目标和内容
等。
(6) 技术可行性(技术风险评价):技术实力分析、已有的 工作及技术基础和设备条件等等。 (7) 法律可行性分析结果描述。 (8) 可用性评价:汇报用户的工作制度和人员的素质,确 定人机交互功能界面需求。
(9) 其他项目相关的问题:如可能会发生的变更等等。
可行性研究报告由系统分析员撰写,交由项目负责人审查, 再上报给上级主管审阅。 在可行性研究报告中,应当明确项目“可行还是不可行”, 如果认为可行,接下来还要制定项目开发计划书。


识别用户要求 评价系统的可行性 进行经济分析和技术分析 把功能分配给硬件、软件、人、数据库和其它系 统元素 建立成本和进度限制 生成系统规格说明,形成所有后续工程的基础
三、 可行性分析的主要任务
具体地说,分析员应从下面三个方面对项目做出可行性分 析: (1)技术可行性:使用现有的技术能实现这个系统吗? (2)经济可行性:这个系统的经济效益能超过它的开发成本 吗?(详细在后面介绍成本/效益分析) (3)操作可行性:系统的操作方式在该用户组织内行得通吗?

软件工程第2章

软件工程第2章

软件定义的基本任务是确定软件系统
的工程需求,也就是要搞清“做什
么”。 软件定义过程可通过软件系统的可行
性研究和需求分析两个阶段来完成。
ZLL
BeiHua
1)可行性研究
确定用户要求解决的项目的性质、目标和 规模。
可行性研究
经济可行性、技术可行性、操作可行性、法律 可行性、不同的方案。
确定软件元素的作用范围,并对软件进行 成本估算,制定进度安排,最后提交软件 计划。
ZLL
BeiHua 软件研制与软件测试的层次对应关系
可行性研究 需求分析
(验收测试计划) 概要设计 (组装测试计划) 详细设计 (单元测试计划) 编码与调试
ZLL
运行与维护
验收测试
组装测试
单元测试
BeiHua
3 . 软件的使用与维护及退役
任务: 通过各种维护活动使软件系统持久地满足用户的需求。 每项维护活动实质上都是一次压缩和简化了的软件定义和软
软件开发小组人员素质和数量是影响软件质量和 开发效率的重要因素。实践表明,素质高的人员 与素质低的人员相比,开发效率可能高几倍至几 十倍、而且所开发的软件中的错误也要少得多。 另外,开发小组的人数不宜过多,因为随着人数 的增加,人员之间交流情况、讨论问题的通信开 销将急剧增加,这不但不能提高生产率,反而由 于误解等原因可能增加出错的概率。
软件危机的具体表现: ·开发成本和进度估计不准
·用户对“已完成的”软件系统不满意 ·软件质量往往靠不住 ·软件常常是不可维护的 ·软件通常没有适当的文档资料 ·软件成本逐年上升 ·软件开发生产率滞后于硬件和计算机应用普及
ZLL
BeiHua 软件、硬件成本变化趋势
100% 80% 硬 件 60% 40% 20% 1955年 1970年 软件开发

软件工程(第3版)第2章 人民邮电出版社PPT课件

软件工程(第3版)第2章 人民邮电出版社PPT课件
用于成功开发软件的一组基本观念和原则
6条“最佳实践” 10个“流程要素”
可重用方法内容及流程构建块的框架
可以在定义自己的开发方法和过程
底层方法及流程定义语言
统一方法架构元模型 UML
RUP最佳实践
迭代式开发 需求管理 使用基于组件的架构 可视化建模 验证软件质量 控制软件变更
问题定义 可行性研究 需求分析 概要设计 详细设计 编码和单元测试 集成测试(综合测试) 软件维护
瀑布模型
收集需求 分析 设计 编码 测试 维护
瀑布模型 - 加入迭代过程
收集需求 分析 设计 编码 测试 维护
快速原型法
快速建立一个反映用户 主要需求的原型系统
可视化编程工具的广泛 使用
架构和组件
软件架构(Software Architecture)
构成系统的组件 组件之间的关联和交互
架构刻画了系统的整体设计
去掉了细节部分 突出了系统的重要特征
可视化建模
由于应用领域不同,模型可以有文字、图形或数学 表达式等多种形式,一般说来,使用可视化的图形 更容易令人理解。
验证软件质量
用户故事 需求
测试用例 新用户故事
差错
隐喻 架构试探
制定交付 交付计划 计划
不确定的估计
确定的估计
最新版本
用户认可
迭代开发
验收测试
下一次迭代
小交付
难点试探
XP(极限编程Extreme Programming)的整体开发过程
极限编程
未完成的任务 用户故事 交付计划 项目速率
新用户故事 新项目速率
共享的信息
能力成熟度模型的结构
能力成熟度等级
初始级 可重复级 已定义级 已管理级 优化级

第二章_软件工程(可行性分析)

第二章_软件工程(可行性分析)
用户单位:xx 校财务处 负 责 人:xxx 分析员单位:xx软件开发公司 分析员:xxx 项目名称:工资管理系统 项目背景:财务处每月工资管理工作太忙,花费精力太大…… 项目目标:开发一个高效的工资管理系统,实现财务支付的 科学管理,工资审核与计算等功能。 项目规模:开发成本约2.4万元
6
2.2 可行性研究
• 课题提出:系统开发人员本身也可以提出系统开发任 务。
• 上级机关布置 • 合作开发
2. 系统任务的提出形式
• 书面形式:系统任务的提出一般以书面形式,如系统 开发任务书或系统开发协议书等形式。
• 口头形式
2
❖ 系统目标的确定
1. 系统目标的含义 系统目标是系统最终要达到的目标,是系统开
发的宗旨,各个阶段的工作都要以这个宗旨为中心。 2. 如何确定系统的目标
23Βιβλιοθήκη 2、成本/收益分析 系统收益分为经济收益和社会收益两方面,社会收
益具有无形性。经济收益主要是新系统将来增加的收 入或可节约的成本。一般说来,投资是现在的支出, 而收益是将来的收入,因此必须考虑货币的时间价值 。
(1)货币的时间价值:货币的时间价值是指同样数 量的货币随时间的不同具有不同的价值。货币的时间 价值一般用利率形式表示,因为一定数量的货币如果 不做其他投资,放在银行里是可以获得利息的。
9
(3)导出新系统的高层逻辑模型,绘制系统流 程图和数据流图,并与现有系统进行比较。
(4)重新定义问题,再次复审工程规模目标和 约束条件,若发现对问题的说明或对用户的 要求有遗漏应及时修改。
(5)导出若干高层次的物理解法,通过对解法 的技术可行性、经济可行性、运行可行性进 行比较分析,推荐行动方案。
假设年利率为 i,现在存入P元钱,n 年后的价值为 F,则F= P(1+i)n ;反之,如果n年后能收入 F元钱, 这些钱现在的价值是P= F/(1+i)n ,称为折现 P36

《软件工程》第2章_软件可行性研究

《软件工程》第2章_软件可行性研究
为了使读者具体了解怎样编写可行性研究报告技术文档, 下面对可行性研究报告的内容要求及写法作一下简要说明。
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.3 可行性研究报告
2.4 小结
可行性研究是抽象和简化了的系统分析和设计的全 过程,它的目标是用最小代价尽快确定问题是否能够解 决,以避免盲目投资带来的巨大浪费。可行性研究是从 技术上、经济上、使用上、法律上分析应解决的问题是 否有可行的解,从而确定该软件是否有可行的解。
上述可行性研究的步骤只是一个经过长期实践总结出来的 框架,在实际的使用过程中,它不是固定的,根据项目的性质、 特点以及开发团队对业务领域的熟悉程度会有些变化。
2.3 可行性研究报告
可行性研究可以归档为一个单独的报告,提供给上级管理 部门,又可以包括在“系统规格说明”的附录中,虽然可行性 报告的形式可以有多种,但最重要的内容应当有:
第二章 软件可行性研究
【本章引言】
在计算机的软件项目开发过程中,只要资源和时间 不加以限制,所有的项目都是可行的。然而,由于资源 缺乏和交付时间限制的困扰,使得基于计算机系统的开 发变得比较困难。因此,尽早对软件项目的可行性做出 细致而谨慎的评估是十分必要的。如果在定义阶段及早 发现将来可能在开发过程中遇到的问题及早做出决定, 可以避免大量的人力、财力、时间上的浪费。
本章简要的介绍了有关可行性研究的任务、步骤, 以及在撰写可行性研究报告时有哪些要求。
2.5 习题
1. 为什么要对计算机软件项目进行可行性研
究?
2. 可行性研究主要研究哪些问题?试说明之。 3. 可行性研究的任务是什么? 4. 可行性研究的步骤? 5. 撰写可行性研究报告的方法?

软件工程课件第2章

软件工程课件第2章
过程,也就是在较高层次上以较抽象的方式进 行的系统分析和设计的过程。
精选ppt
6
可行性研究的内容: 首先进一步分析和澄清问题定义,导出系统的
逻辑模型; 然后从系统逻辑模型出发,探索若干种可供选
择的主要解法(即系统实现方案); 对每种解法都研究它的可行性,至少应该从三
方面研究每种解法的可行性 。
精选ppt
3
关于系统规模和目标的报告书
1.项目名称:教材销售系统 2.问题:人工发售教材手续繁杂,且易出错。 3.项目目标:建立一个高效率、无差错的微机教材销售
系统。 4.项目规模:利用现有微型计算机,软件开发费用不超
过5000元。 5.初步想法:建议在系统中增加对缺书的统计与采购功
能。 6.可行性研究:建议进行大约10天的可行性研究,研究
该装配厂使用一台小型计算机,处理更新库存清单主文 件和产生定货报告。零件库存量的每一次变化称为一个事务, 由放在仓库中CRT终端输入到计算机中;系统中的库存清单 程序对事务进行处理,更新存储在磁盘上的库存清单主文件, 并且把必要的订货信息写在磁带上。最后,每天由报告生成 程序读一次磁带,并且打印出订货报告。
包括开发和运行该系统所需要的各种资源 如硬件、软件、人员和组织机构等 3. 费用预算:分阶段的人员费用、机时费用及其他费用 4. 进度安排:各阶段起始时间、完成文档及验证方式 5. 要交付的产品清单
精选ppt
16
8. 书写文档提交审查 把可行性研究各个步骤的工作结果写成清晰的
文档,请用户、客户组织的负责人及评审组审 查,以决定是否继续这项工程及是否接受分析 员推荐的方案。
库存清单 主文件
报告生成程序
定货报告
第三层:合成后的系统流程图

《软件工程电子教案》课件

《软件工程电子教案》课件

《软件工程电子教案》PPT课件第一章:软件工程概述1.1 软件工程的定义解释软件工程的含义和目的强调软件工程的重要性1.2 软件开发生命周期介绍软件开发生命周期的基本阶段讨论每个阶段的关键活动和任务1.3 软件工程原则介绍软件工程的基本原则解释每个原则的重要性和应用第二章:需求分析2.1 需求分析的重要性强调需求分析在软件工程中的作用解释需求分析的目标和结果2.2 需求收集和分析方法介绍需求收集和分析的主要方法讨论每种方法的优缺点和适用场景2.3 需求规格说明书解释需求规格说明书的结构和内容强调需求规格说明书的重要性和维护第三章:软件设计和架构3.1 软件设计的重要性强调软件设计在软件工程中的作用解释设计的目标和结果3.2 软件架构设计介绍软件架构设计的基本概念和方法讨论架构设计的重要性和评估3.3 详细设计解释详细设计的过程和工具强调详细设计的重要性和与实现的关联第四章:软件实现和编码4.1 编码的重要性强调编码在软件工程中的作用解释编码的目标和结果4.2 编程语言和工具介绍常用的编程语言和开发工具讨论每种语言和工具的适用场景和特点4.3 编码规范和最佳实践解释编码规范和最佳实践的作用强调遵循规范和最佳实践的重要性第五章:软件测试和验证5.1 软件测试的重要性强调软件测试在软件工程中的作用解释测试的目标和结果5.2 测试方法和策略介绍常用的软件测试方法和策略讨论每种方法和策略的适用场景和优缺点5.3 测试用例和测试覆盖率解释测试用例的设计和编写强调测试覆盖率的重要性和评估方法第六章:软件维护和演化6.1 软件维护的概念解释软件维护的定义和目的强调软件维护的重要性6.2 维护活动和维护过程介绍软件维护的主要活动和过程讨论每个活动的关键任务和挑战6.3 软件演化模型介绍软件演化的一些常见模型讨论每种模型的适用场景和特点第七章:软件项目管理7.1 软件项目管理的重要性强调软件项目管理在软件工程中的作用解释项目管理的目标和结果7.2 项目管理工具和技术介绍常用的软件项目管理工具和技术讨论每种工具和技术的适用场景和优缺点7.3 项目计划和进度控制解释项目计划的概念和过程强调进度控制的重要性和方法第八章:软件质量保证8.1 软件质量的概念解释软件质量的定义和重要性强调软件质量保证的作用8.2 质量标准和质量模型介绍常用的软件质量标准和模型讨论每种标准和模型的适用场景和特点8.3 质量保证过程和活动解释质量保证的过程和主要活动强调质量保证的重要性和实施方法第九章:软件工程伦理和法律问题9.1 软件工程伦理问题讨论软件工程中的伦理问题,如知识产权、隐私等强调软件工程师的伦理责任和行为准则9.2 软件工程法律问题介绍软件工程中涉及的法律问题,如版权、合同等讨论法律问题对软件工程的影响和应对策略9.3 合规性和标准化解释软件工程的合规性和标准化的概念强调合规性和标准化的作用和实施方法第十章:软件工程前沿技术10.1 软件工程新技术介绍软件工程中的一些前沿技术,如、云计算等讨论每种技术的应用场景和前景10.2 技术趋势和挑战讨论软件工程中的技术趋势和面临的挑战强调应对技术趋势和挑战的方法和策略10.3 未来软件工程的发展展望未来软件工程的发展方向和趋势强调软件工程师在未来的角色和责任重点和难点解析重点环节一:软件工程的定义和目的重点关注软件工程的定义和目的,理解软件工程的核心目标和原则。

实用软件工程第2章PPT课件

实用软件工程第2章PPT课件
25
快速原型法选择的条件
项目组中有数据库分析和设计的专家,有 面向对象编程的专家,文档制作有成熟的 模板,而且系统或项目又不是非常大。
软件有一个孕育、诞生、成长、成熟、衰 亡的生存过程。这个过程即为计算机软件 的生存期 软件生存期9个步骤:立项(或签合同、 下达任务书)、需求分析、概要设计、详 细设计、编码实现、软件测试、软件发布 与实施、软件维护和版本更新或退役。
4
软件生存周期示意图
计划时期
立项、下达任务书 需求分析
开发时期
概要设计 详细设计 编码实现 软件测试 软件发布与实施
15
瀑布模型的特征
阶段间的顺序性和依赖性 推迟实现的观点 质量保证的观点
16
瀑布模型的特点:
(1) 里程碑或基线驱动,或者说文档驱动; (2) 过程逆转性很差,或者说不可逆转。
17
选择模型的条件:
不是任何软件都可以采用瀑布模型的,软件项 目或产品选择瀑布模型,必须满足下列条件: (1)在开发时间内需求没有或很少变化。 (2)分析设计人员对应用领域很熟悉。 (3)低风险项目(对目标、环境很熟悉)。 (4)用户使用环境很稳定。 (5)用户除提出需求以外,很少参与开发。
22
原型模型特点:
(1)原型驱动。开发者必须先有一个原型。 (2)与迭代模型相同点是反复循环几次, 直到客户确认为止。不同点是原型模型 事先有一个展示性的产品原型,而迭代 模型可能没有。
23
原型模型的缺点:
因为事先有一个展示性的产品原型,所 以在一定程度上,不利于开发人员的创 新。
24
快速原型法
由于原型模型的开发速度较快,有时也将它称做 快速原型法(Rapid Prototyping)。在开发 工具和开发环境迅速发展的今天,在信息系统开 发中,原型法和快速原型法又被赋予新的内容: 事先没有原型产品,也可以采取这种办法。基本 思路是:采用以面向数据为主的方法,在需求分 析的基础上,利用Power Designer等数据库分 析和设计工具,快速建立信息系统的概念数据模 型CDM和物理数据模型PDM;然后利用面向对 象的编程工具,在软件企业强大的类库、构件库 的支撑下,快速地实现需求分析中确认的流程、 功能、性能和接口;之后交付给用户试用,反复 循环几次,直到客户确认满意为止。

软件工程-第2章

软件工程-第2章
下面给出第2.4节的例子中几个数据元素的数据字典 卡片,以具体说明数据字典卡片中上述几项内容的含义。
第2章可行性研究 2.5.4 数据字典的实现
2.5 数据字典
34
第2章可行性研究 2.5.4 数据字典的实现
主要内容
35
2.1 可行性研究的任务 2.2 可行性研究过程 2.3 系统流程图 2.4 数据流图 2.5 数据字典 2.6 成本/效益分析
正方形表示数据的源点或终点 圆角矩形代表变换数据的处理 开口矩形代表数据存储
箭头表示数据流,即特定数据的流 动方向
第2章可行性研究
2.4 数据流图
2.4 数据流图
15
2.4.2 例子
以简单例子说明怎样画数据流图
假设一家工厂的采购部每天需要一张订货报表,报表按零件编 号排序,表中列出所有需要再次订货的零件。对于每个需要再 次订货的零件应该列出下述数据:零件编号,零件名称,订货 数量,目前价格,主要供应者,次要供应者。零件入库或出库 称为事务,通过放在仓库中的CRT终端把事务报告给订货系统。 当某种零件的库存数量少于库存量临界值时就应该再次订货。
如右图所示。
第2章可行性研究
2.3.2 例子
主要内容
13
2.1 可行性研究的任务 2.2 可行性研究过程 2.3 系统流程图 2.4 数据流图 2.5 数据字典 2.6 成本/效益分析
第2章可行性研究
2.4 数据流图
2.4 数据流图
14
概念:
数据流图(DFD)是一种图形 化技术,它描绘信息流和 数据从输入移动到输出的 过程中所经受的变换。
第2章可行性研究 2.5.2 定义数据的方法
2.5 数据字典
31
2.5.3 数据字典的用途

软件工程PPT课件

软件工程PPT课件

2.1.3 方案的选择
分析员考虑问题解决的方案。一般采用将一 个大而复杂的系统分解为若干个子系统的办 法来降低解的复杂性。如何进行系统分解、 如何定义各子系统的功能、性能和界面,实 现方案不唯一。可以采用折衷的方法,反复 比较各个方案的成本∕效益,选择可行的方 案。
2.2 可行性研究过程
1.复查系统规模和目标 2.研究目前正在使用的系统 3.导出新系统的高层逻辑模型 4.进一步定义问题 5.导出和评价供选择的解法 6.推荐行动方针 7.草拟开发计划 8.书写文档提交审查
▪ 法律可行性 :确定系统开发可能导致的任何侵 权、妨碍和责任。
2.1.1 经济可行性
分析员需要进行成本∕效益分析。 所谓成本,包括:① 购置并安装软、硬件
及有关设备的费用;② 系统开发费用;③ 系 统安装、运行及维护的费用;④ 人员培训费 用。
效益是指:① 系统为用户增加的收入或为 用户节省的开支,这是有形的效益;② 给潜 在用户心理上造成的影响,这是无形的效益。 它可以转化为有形的效益。
可行性研究是在软件项目计划阶段应该做的 事情,包括四个方面的研究: ▪ 经济可行性 :进行成本∕效益分析。从经济角 度判断系统开发是否“合算”。
▪ 技术可行性 :进行技术风险评价。从开发者的 技术实力、以往工作基础、问题的复杂性等出 发,判断系统开发在时间、费用等限制条件下 成功的可能性。
▪ 操作可行性 :评价系统的操作方式在这个用户 组织内是否可行。
类别 大小 难度 限制 资源
经验
项目要素 项目特性
成本模型
开发机构 特性 开发机构要素

进度安排数据
自动化成本估算系统
2.4.3 成本/效益分析的方法
成本/效益分析应包括估计开发成本、运行费 用和新系统将带来的经济效益。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1块 积木 第1块 积木 第1块 积木 第1块 积木 第2块 积木 第2块 第3块积 积木 木 第2块 积木 第3块积 第4块 木 积木
第N次 集成
第1块 积木
第2块 积木
第3块积 第4块 木 积木
第N块 积木
1.模型的本意 要开发一个大的软件系统,先开发其中的 一个核心模块(或子系统),然后再开发 其他模块(或子系统),这样一个个模块 (或子系统)地增加上去,就像搭积木一 样,直至整个系统开发完毕为止。 在每增加一个模块前,先要对该模块进行 模块测试。通过后再将此模块加入到系统 中,然后还要进行系统集成测试。系统集 成测试成功后,再增加新的模块。 这样多次循环,直到系统搭建完毕为止。
2.模型的特点 原型驱动。因此,开发者必须先有一个原 型(样品),至少要有一个原型的核心。 原型模型与迭代模型相同点是:反复循环 几次,直到客户确认为止。不同点是:原 型模型事先有一个展示性的产品原型(样品), 而迭代模型可能没有。
3.选择模型的条件 (1)已有产品或产品的原型(样品),只需 客户化的工程项目。 (2)简单而熟悉的行业或领域。 (3)有快速原型开发工具。 (4)进行产品移植或升级。 由于上述条件不太苛刻,所以凡是有软件 产品的IT企业,在他们熟悉的业务领域内, 当客户招标时,他们都会以原型模型作为 软件开发模型,去制作投标书,去讲解标 投标。
周期序号
1 2 3
周期名称
立项(或签合同)、 下达任务书 需求分析 概要设计
周期序号
6 7 8
周期名称
软件测试 软件发布与实施 软件维护
4
5
详细设计
编码实现
9
版本更新或退役
现在,让我们来回顾一下第1章中对软件生 命周期模型的定义。 在【定义1-2】中指出:软件生命周期模型 是指在整个软件生命周期中,软件开发过 程应遵循的开发路线图。或者说,软件生 命周期模型是软件开发全部过程、活动和 任务的结构框架。 显而易见,这个定义不但非常全面,而且 十分准确,它符合所有软件生命周期模型 对生命周期的定义与解释。
6.快速原型法 由于原型模型的开发速度较快,有时也将它称作快 速原型法(Rapid Prototyping)。 在开发工具和开发环境迅速发展的今天,在信息系 统开发中,原型法和快速原型法又被赋予新的内容: 事先没有原型产品,也可以采取这种办法。 基本思路是:采用以面向元数据为主的方法,在需 求分析的基础上,利用Power Designer等数据库 分析和设计工具,快速建立信息系统的概念数据模 型CDM和物理数据模型PDM;然后利用面向对象 的编程工具,快速地实现需求分析中确认的流程、 功能、性能和接口;之后交付给用户试用,反复循 环几次,直到客户确认满意为止。
4.模型的优点 开发阶段清晰,便于评审、审计、跟踪、 管理和控制。 5.模型的缺点 传统的项目组织方法是按顺序完成每个工 作流程,即瀑布式生命周期。瀑布只能一 个个台阶地往下流,不可能倒着往上流, 这就是它致命的缺点。 瀑布式生命周期通常会导致在项目后期, 出现“问题堆积”,更可怕的是,错误的 传递会采取发散扩大的方式。
2.模型的特点 (1)任务或功能模块驱动,可以分阶段提 交产品。 (2)有多个任务单,这些多个任务单的集 合,构成项目的一个总《任务书》,或总 《用户需求报告》/《需求规格说明书》。
3.选择模型的条件 (1)在整个项目开发过程中,需求都可能 发生变化,客户接受分阶段交付。 (2)分析设计人员对应用领域不熟悉,难 以一步到位。 (3)中等或高风险项目(工期过紧且可分 阶段提交的系统或目标、环境不熟悉)。 (4)用户可参与到整个软件开发过程中。 (5)使用面向对象语言或第四代语言。 (6)软件公司自己有较好的类库、构件库。
原型模型很适合于企业资源规划ERP (Enterprise Resource Planning)系统, 尽管市场上推出了许多公司的分行业 ERP“产品”,但是这些“产品”的产品化 程度相当低,都必须在实施中做大量的客 户化工作。 有些公司的分行业ERP“产品”称作“分行 业解决方案”,这个“分行业解决方案” 就是分行业的原型,即快速原型法中的原 型。
2.3 增量模型
增量模型(Incremental Model)是遵循 递增方式来进行软件开发的。 软件产品被作为一组增量构件(模块), 每次需求分析、设计、实现、集成、测试 和交付一块构件,直到所有构件全部实现 为止。 这一过程就像小孩子搭积木盖房子一样, 如图2-2所示。
第1次 集成 第2次 集成 第3次 集成 第4次 集成
2.5 迭代模型
针对瀑布模型的缺陷,人们提出了迭代模 型(Iterative Model)。 在多种迭代模型中,要算美国的I. Jacobson,G. Booch和J. Rumbaugh三 位软件专家提出的RUP(Rational Unified Process)模型最为成功。如图2-3表示。
快速原型法选择的条件之一是:项目组中 有数据库分析和设计的专家,有面向对象 编程的专家,文档制作有成熟的模板,而 且系统或项目又不是非常大。 快速原型法选择的条件之二是:项目组的 开发环境为分行业的业务基础平台(比如 Justep X3业务基础平台),该业务基础平 台又完全适合所需开发的系统或项目,而 且系统或项目又不是非常大。 以上两个条件,只要符合一个,就可以采 用快速原型法。
8
9
60岁以上
因病去世
老年
死亡
退休,老有所乐,写回忆录,立遗嘱
丧事从简,长眠于地下
为什么不同的软件生命周期模型,可能对 应着不同的生命周期。 因为生命周期不同,该软件的开发阶段划 分、评审次数、基线标准、产品发布、维 护方式都有所不同。 软件生命周期模型能清晰、直观地表达软 件开发全过程,明确规定了要完成的主要 活动和任务,用来作为软件项目工作的基 础。一般来说,若以时间为序,软件的生 命周期可详细地划分为几个阶段,如表2-3 所示。
4.模型的优点 开发速度快,用户意见反馈实时,有利于 开发商在短时间内推广并实施多个客户。 正因为原型模型具有这些优点,所以它一 直是软件企业界的主流开发模型。凡是有 软件产品积累的软件公司,他们在投标、 开发、实施项目的过程中,都非常喜欢用 原型模型。 5.模型的缺点 因为事先有一个展示性的产品原型,所以 在一定程度上,不利于开发人员的创新。
5.模型的缺点 如果软件系统的组装和拆卸性不强,或开 发人员全局把握水平不高(没有数据库设 计专家进行系统集成),或者客户不同意 分阶段提交产品,或者开发人员过剩,就 不宜采用这种模型。
2.4 原型模型
许多软件公司在生产软件产品与实施软件项 目时,经常采用一种“原型法”,它来源于 原型模型,下面就介绍这种模型。 1.模型的本意 原型模型(Prototype Model)的本意是: 在初步需求分析之后,马上向客户展示一个 软件产品原型(样品),对客户进行培训,让 客户试用,在试用中收集客户意见,根据客 户意见立刻修改原型,之后再让客户试用, 反复循环几次,直到客户确认为止。
6. 改进措施 为了克服该模型的缺陷,微软采取严格的里程碑 管理制度。 CMM/CMMI则采取阶段评审和不符合项 (Noncompliance Items)的动态跟踪制度,只有 前一阶段的不符合项全部改正后,才允许开发人 员进入后一阶段的工作。 所谓不符合项,就是在评审中发现的问题项,它 与Bug既有联系,又有区别。对于这些不符合项, 软件管理部门要列出表格,记录在案,确定责任 人,限定改正时间,动态跟踪到底。
2.2 瀑布模型
1970年温斯顿· 罗伊斯(Winston Royce)提出 了著名的“瀑布模型”,直到80年代早期,它一 直是唯一被广泛采用的软件开发模型。直至今日, 该模型仍然具有强大的生命力。 瀑布模型(Waterfall Model)又称流水式过程 模型,它可以形象地用阶梯瀑布描述,水由上向 下一个阶梯接着一个阶梯地倾泻下来,最后进入 一个风平浪静的大湖,这个大湖就是软件企业的 产品库,如图2-1所示。
【例2-1】 1996年8月,当时的某高级工程师, 带领一个程熟练的程序员,来到营口港务局通信 中心,开发该中心的电话业务信息管理系统。 当时,虽然这两个人手中并无什么“原型”,但 是他俩一个是数据库设计高手,一个是编程高手, 所以俩人分工负责,一人设计数据库,一人编写 程序,双方配合默契,只用一个多月时间,就圆 满地完成了开发任务,收回了全部开发费用,获 得了客户的好评。 这是一个典型的“快速原型法”例子。
周期划分 胚胎至分0岁 30~60岁
周期名称 胎儿 婴儿 幼儿 儿童 少年 青年 中年
周期的主要活动 定期到妇幼保健院或妇产科医院检查 请保姆看护,上婴儿室或托儿所 上幼儿园,健康、活泼、天真地成长 上小学,好好学习,天天向上 上中学,参加中考、高考,自古英雄 出少年 上大学,攻读硕士、博士学位,应聘 就业,开始追求创新,追求异性 上班,追求事业上的成就、成功、贡 献,经营幸福的家庭
4.模型的优点 (1)由于将一个大系统分解为多个小系统, 这就等于将一个大风险分解为多个小风险, 从而降低了开发难度。 (2)人员分配灵活,刚开始不用投入大量 人力资源。如果核心模块产品很受欢迎, 则可增加人力实现下一个增量。当配备的 人员不能在设定的期限内完成产品时,它 提供了一种先推出核心产品的途径。即可 先发布部分模块给客户,对客户起到镇静 剂的作用。
1.模型的本意 在瀑布模型中,软件开发的各项活动严格 按照线性方式进行,当前阶段的活动接受 上一阶段活动的工作结果,实施完成所需 的工作内容。 对当前阶段活动的工作结果需要进行验证, 如果验证通过,则该结果作为下一阶段活 动的输入,继续进行下一阶段的活动,否 则返回上一阶段修改。
瀑布模型认为:项目经理或软件管理人员, 只要控制好每级台阶的高度和宽度,在每 个台阶处设立里程碑或基线,并组织好对 基线的评审与审计,就可以控制好项目的 开发成本、进度和质量。 早期的面向过程的结构化分析、结构化设 计、结构化编程、结构化测试、结构化维 护方法,很适合于瀑布模型。或者说,瀑 布模型适合于结构化方法,即面向过程的 软件开发方法。
相关文档
最新文档