第3章IT软件项目的生命周期

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
风险分析 原型1 原型2 原型3
构造 原型 可操作原型
需求计划 操作概念 开发计划 需求确认
建模 软件需求
模拟
评价
软件产品设计 详细设计
评价 方案
集成与测试计划 设计确认与验证
编码
单元测试
制定下阶段计划
实现 验收测试 集成测试 开发、验证软件产品
(1)螺旋模型说明
1988年Boehm提出“基于风险”的螺旋模型 螺旋模型主要由4个部分组成: 需求定义、风险分析、实现和评审 螺旋模型是这4个部分组成的迭代模型,软件 开发的过程每迭代一次,螺旋线就增加一周, 系统产生一个新的版本,而软件开发的时间和 成本又有新的投入。 螺旋模型中的显著特点是在每个固定阶段对 项目的风险进行评估。
②并行地执行活动可能导致无效的沟通、错误的想法以及低下的效率。
(2)改进的纯瀑布模型--具有子系统的瀑布模型
初步设计中将系统分成几个逻辑上相对独立的子系统,每一个子系统都
采用相对独立的
详细设计
方法进行设计,形
软件概念
编码和调试
成了具有子系统的 瀑布模型。
需求分析
详细设计
子系统设计
初步设计
编码和调试
可选方案 风险
获得软件产品
在一年内完成 必须支持现在软件产品的类型 总成本要低于¥1000 000 购买现存的信息恢复软件 购买数据库并且采用这种数据库的查询语言开发
软件产品 开发一个特殊目的的软件产品 在约束条件内可能获得不了这些软件产品 软件产品功能可能不合适
例2 软件产品螺旋模型(2)
目标 风险解决
第3章IT软件项目的生命周 期
3.1 IT软件项目生命周期的划分
1.软件项目生命周期的概念
任何软件的开发都要经历一个“生命周期” ,从软件的调研开始到淘汰的全过程,从项 目批准到交付的过程。 一般将项目分为以下4个阶段:
识别需求、提出解决方案、执行项目、结束 项目
1.软件项目生命周期的概念
对于典型的IT软件项目,项目的生命周期可以从不 同的角度认识。
从项目承担方看:项目是从接到合同正式开 始的,到完成规定工作结束; 从客户的角度看:项目是从确认有需求开始 ,到使用项目的成果实现商务目标结束。 无论从哪个角度分析,软件项目的生命周期都包括 识别、设计、实施和评估4个阶段。 典型软件项目开发的生命周期如图3.1所示。
2.典型软件项目开发的生命周期
(1)渐进原型模型图
渐进原型模型是从软件开发系统概念开始,根
据软件需求定义,快速建立一个软件系统“原
型”的生命周期模型。
修改模型
模型不满意
用户提出 系统要求
识别归纳 用户需求
快速建立开 发原型
评价 模型
满意 确定模型,完 成并交付模型
模型不可行
重新设计或 选择模型
(2)渐进原型模型的基本过程
原型建立通常是软件从最显著的方面开始, 向用户展示待开发系统的全部或者部分功能 (通常是完成的部分);
5. 项目实施阶段
本阶段是新系统调试运行阶段。 对操作人员进行培训,编制系统设计文档、使用手 册和有关说明书。 程序员对程序进行集成和调试。 进行各种文件和数据库的建立,需要大量人力投入 到数据收集、整理和录入工作中。 本阶段的工作是十分艰巨的。 本阶段投入的人力、物力、财力最多,花费时间最 长,工作量最大。
约束 可选方案
风险
在三年内完成、没有大规模的投资、
公司标准不会发生大的变化 重用已经有的注册软件、引入正式的需求和合格
证明、采用新的测试和检验工具 提高质量可能会在很大程度上提高成本、
新的方法可能会导致现有员工的流失 详细调查、驾驭项目、对潜在重用组件的调查、
风险解决办法 对可得到的支持工具进行评价、 对员工培训和激励进行研究
办法
后果
获得软件产品 用开发软件产品的原型来明确需求 委托顾问调查现存信息恢复系统的情况 放松时间限制
信息恢复系统灵活性(可移植性)差 不能满足确认的需求 采用DBMS开发的原型可能会提高整个系统 特殊目的软件产品的开发成本可能会很高
计划 行动
应用现有DBMS提高系统原型和用户接口,开发软件产 品
投资将来12个月开发
识别 初步需求
设计 概念设计
实施 开发概念原型
评估 风险分析
子系统需求分析
逻辑设计
第一次开发
开发结果评估
系统需求分析 整体需求
物理设计 最终设计
第二次开发 最终开发
开发结果评估 测试
系统配置、 运行、产品
成型
图3.1 典型软件项目开发的生命周期
3.瀑布模型
瀑布模型是美国Winston Royce向IEEE WESCON(Royce, Winston 1970)提交的一 篇名为《管理大规模软件系统的开发》( Managing the Development of Large Software Systems)的论文中首次提出的。 这种方法是从一个阶段成瀑布流入下一个阶 段,所以这个模型就称为“瀑布模型”。
软件开发瀑布模型及不同阶段之间的交互
需求分析与 定义
系统设计与 软件设计
系统实施与 单元测试
系统集成与 系统测试
系统运行与 系统维护
图3.2 软件开发瀑布模型及不同阶段之间的交互
(1)纯瀑布模型
软件概念
①软件概念:用户提出对软件的开发与初步需求; ②需求分析:开发者与用户交流,确定
需求分析
系统的目标、服务与约束;
17
50
科学系统 44
26
30
商务系统 44
28
28
4.原型模型
原型(Prototype)法是在20世纪80年代初,在总结 和归纳结构化分析与设计方法开发软件项目的基础上 ,改进结构化系统分析与设计的过于繁琐、开发周期 长、见效慢等缺点,借助第4代程序开发语言而产生 的一种项目开发方法。 这种方法是借助先进的软件开发工具根据用户提出 的软件需求定义,快速建立一个软件系统的“原型”, 向用户展示待开发软件的全部或部分功能,在征求用 户对原型软件的意见后,反复进行修改、完善、提高 和确认,最终实现项目的目标。
6.编码修正模型
使用编码修正模型,一般是从一个大致的想法开始 工作,可能有一个正式的规范,也可能没有;然后结 合使用一些无论如何都称不上规范的设计、编码、调 试和测试方法,来完成产品开发。 编码修正模型有两点好处: ①不需要什么成本。不需要在除了纯粹编码工作以外 的项目规划、文档编制、质量保证、标准实施或任何 其他活动中花费时间。 ②它只需要极少的专业知识。
4. 项目设计阶段
本阶段是新系统的物理设Leabharlann Baidu阶段。 根据新系统的逻辑模型进行物理模型的设计,具体 地选择一个物理的计算机信息处理系统。 要求具体地进行计算机过程和人工过程的各种详细 设计,进行程序模块和处理过程(处理逻辑)的设计 等。 选择合理的硬件、软件,进行代码、输入界面、输 出界面、文件、数据存储处理等。 系统物理设计的关键是模块化。
项目专业管理人员 软件设计人员 软件设计人员 操作人员
操作人员
项目开发准备阶段
供决策参考
调查研究阶段 项目分析阶段
提出可行性分析
项目设计阶段
项目实施阶段
修改意见
维护与评价阶段 新的项目准备
图3.6 软件项目 的开发阶段
1. 项目开发准备阶段
当现行软件系统不满足业务需要时,公司领导层提 出开发新软件系统的要求。 公司管理咨询人员(或者负责信息化工作的人员) 首先进行初步调查,确定是否进行立项,制定出新软 件系统的开发计划。 本阶段不属于项目的分析与设计,但确实是一个不 可或缺的重要阶段,它往往对项目开发的成败起着至 关重要的作用。 如果项目开发采取外包的方式,本阶段还包括招标 的过程。
3.2 IT软件项目生命周期中各阶段任务
根据前面对IT软件项目各个主要模型生命周 期的分析,可以将一般的软件项目开发过程 详细划分为以下6个主要阶段:(如图3.6所示 )
➢ 项目开发准备阶段 ➢ 调查研究阶段 ➢ 项目分析阶段 ➢ 项目设计阶段 ➢ 项目实施阶段 ➢ 维护与评价阶段
项目咨询人员
项目咨询人员 项目专业管理人员
7.为项目选择最快速的生命周期(1)
为项目选择最有效的生命周期模型,通常可以思考 以下问题: (1)在项目开始的时候,开发者和用户对需求的理解 是否充分?在项目进行过程中,对需求的理解有可能 出现改变吗? (2)开发者对系统的整体框架的理解是否充分?是否 有可能在项目进展过程中对系统框架进行重大改变? (3)可靠性需求有多大? (4)需要在项目中为未来的版本提前进行多少计划和 设计?
3. 项目分析阶段
本阶段是新系统的逻辑设计阶段。 管理人员和系统分析人员使用一系列的图表工具构 造出独立于任何物理设计的系统逻辑模型,并与文字 说明、图表、流程、规范等共同组成系统的逻辑说明 书。 本阶段需要对现行系统中不能适应新项目要求的部 分进行处理,必要时对企业的资产和业务流程及管理 方式进行优化和重组。 本阶段是新系统设计方案的优化过程。 本阶段是各个阶段中的关键阶段。
③初步设计:将用户需求分解
④详细设计:
初步设计
成硬件与软件需求,并建立
将初步设计的整体
系统的整体结构模型;
结构继续分解为可实施
详细设计
编码的小模块,并完成
流程图;
编码和调试
⑤编码和调试:选择合适的计算机语言,完 成详细设计中的各个模块的编码并调试;
系统测试
⑥系统测试:测试系统的各部分是否满足需求。
(2)改进的纯瀑布模型--生鱼片模型
然后根据用户对原型的反馈信息,反复进行 修改、完善、提高和确认,直到开发者和用 户都认为原型已经“足够好”;
最终实现项目目标,完成结尾工作,交付作 为最终产品的原型。
(3)渐进原型模型的特点
直观、形象,更多地遵循了人们认识事物的 规律,因而更容易被人们接受。 采用模拟的手段,缩短了用户和系统分析、 设计人员之间的距离。 在整个系统开发过程中反馈是及时的,标准 是统一的,可及时地暴露问题,确保系统实 现的正确性。 充分利用了新一代的软件工具,使得系统开 发和运行的效率都大大提高。
(2)螺旋模型的迭代
每次迭代都包括以下六个步骤: (1)确定下一阶段的目标、方案的约束条件 ; (2)风险分析、评估及解决; (3)为该系统构造合适的原型; (4)评价方案; (5)开发、验证软件产品; (6)制定下一阶段计划,交付给下一步骤, 开始新的迭代过程。
例1 质量螺旋模型(1)
目标
尽可能提高软件产品质量
2. 调查研究阶段
本阶段需要采取各种各样的方式进行调查研 究,搞清目前系统的界限、组织分工、业务 流程、资源状况及薄弱环节,需要绘制现行 项目的有关图表。 在掌握充分资料的基础上,与用户或公司协 商讨论,提出初步的系统目标和项目计划。 针对用户的情况和要达到的目标进行新系统 开发的可行性研究,并提交可行性研究报告 。
软件概念
“生鱼片模型”,是将模型中的连续的各阶段相 互有较大幅度的重叠。
需求分析
例如,在需求分析完成之前可以
初步设计
进行初步设计和详细设计。
详细设计
主要优点:
编码和调试
在项目比较小且定义得很好时,
系统测试
可以有效地减少文档的产生。是
比较有效的模型。
主要缺点:
①因为阶段重叠,里程碑非常不明确,很难精确地进行过程跟踪;
系统测试
图中,初步设计 阶段将系统分成3个
详细设计
子系统设计
相对、独立的子系统,各子系统
编码和调试
分别独立进行详细设计、编码和调试 及子系统设计,最后统一进行系统测试。
子系统设计
Boehm给出的一些成本数据
系统类型
阶段成本(%)
需求/设计 实施
测试
控制系统 46
20
34
卫星系统 34
20
46
操作系统 33
7.为项目选择最快速的生命周期(2)
(5)项目要承受多大的风险? (6)是否被迫预先确定进度? (7)需要具备在进展过程中进行变更的能力吗 ? (8)需要在项目整个进展过程中提供给用户可 视的进展情况吗? (9)需要在项目整个进展过程中提供给管理者 可视的进展情况吗? (10)需要多少经验和技巧来成功地使用这种 生
例1 质量螺旋模型(2)
目标 后果
计划 行动
尽可能提高软件产品质量 对正规方法、经验的限制难以提高软件质量 公司可得到的工具支持是有限的 可得到能重用的组件,但几乎没有可重用的工具支持
更详细的调查重用方案 开发支持工具原型 探索组件合格计划
投资将来12个月开发
例2 软件产品螺旋模型(1)
目标 约束
(4)原型法的应用的软件支撑环境
要有一个方便灵活的关系数据系统。 要有一套完整的程序生成软件。 要有一个与数据库对应的、灵活方便的数据 字典。 有一个可以快速抽象或者能够容易提炼的原 型。
5.螺旋模型
确定下阶段 目标、约束
条件
累计成本 过程迭代
螺旋模型示意图
风险分析
评审
开始
风险分析 风险分析 风险分析
相关文档
最新文档