一、系统开发模型
一)能力成熟度模型(CMM)
目标是提高生产率和质量,减少项目时间和费用。
1、 初始级:系统开发项目没有规定的过程可遵循。
2、 可重复级:组织已经建立了项目管理过程和实践来跟踪项目费用、进度和功能。
3、 已定义级:组织购买或者开发了一个标准的系统开发过程。
4、 已管理级:组织建立了可度量的质量和生产率目标。
5、 优化级:根据第4级建立的度量和数据分析,标准化的系统开发过程被连续地监督和改进。
二)系统生命周期
系统生命周期有两个关键事件触发了两个阶段的转换:开发阶段到运行支持阶段、运行阶段到重新开发阶段。
三)系统开发方法
执行系统生命周期的开发阶段。方法学是构建和维护系统以及所有其他信息系统走过他们的生命周期的标准过程。
主要有:结构化快速应用开发(Architected RAD)、动态系统开发方法(DSDM)、联合应用开发(JAD)、信息工程(IE)、快速应用开发(RAD)、Rational统一开发过程(RUP)、结构化分析和设计、极限编程(XP)。
1、 让系统用户参与
2、 使用一套问题解决步骤
3、 确立开发阶段和开发活动
4、 在开发过程中记录文档
5、 建立标准
6、 管理过程和项目
7、 将信息系统作为重要的投资看待
8、 不必害怕取消和反工
9、 分而治之
10、 设计系统时应考虑到增长和变化
五)
二、系统开发过程
一)使用系统开发过程的优点
1、 能够提高效率,管理层可以在项目之间调动资源;
2、 一致的方法产生一致的文档,减少了维护系统的生命期费用。
二)项目确定
项目的推动来源于问题、机会或指示,所以在项目开始之前发现问题、机会和指示是很重要的。那么该如何发现问题呢?
PIECES问题解决框架和检查表
P----改进性能(performance)的需要;
I----改进信息(information)(和数据)的需要;
E----改进经济(economics)、控制成本或增加收益的需要;
C----改进控制(control)或安全的需要
E----改进人与过程的效率(efficiency)的需要
S----改进对客户、供应商、合作伙伴、雇员等的服务(service)的需要
PIECES |
性能 |
A、 吞吐量---在一些时间内执行的工作量。 B、 响应时间---事务或请求与响应之间的平均延迟。 |
信息(和数据) |
A、输出 1、缺少某些信息 2、缺少必要的信息 3、缺少相关的信息 4、太多的信息----“信息超载” 5、无用格式的信息 6、不正确的信息 7、难以生成的信息 8、不能及时提供给后续使用的信息 B、输入 1、没有收集数据 2、没有及时地收集有用的数据 3、没有正确地收集数据—包含错误 4、难以收集数据 5、冗余的收集数据—同样的数据收集了多次 6、收集了太多的数据 7、收集了非法的数据 C、数据存储 1、数据冗余地存储在多个文件和/或数据库中 2、数据存储不正确 3、数据由于事故或者故意破环而不安全 4、没有很好的组织数据 5、数据不灵活—不易满足对数据存储的新需求 6、数据不可访问 |
经济 |
A、 费用 1、 费用不明确 2、 费用不可追踪到源头 3、 费用太高 B、 利润 1、 可被开发的新市场 2、 可以被改进的现有市场 3、 可以增加的订单 |
控制(和安全) |
A、 安全或控制太少 1、 没有充分的编辑输入数据; 2、 对数据实施(或可能实施)犯罪(例如:欺骗、窃取) 3、 违背道德—将数据和信息给了未经授权的人 4、 在不同的文件或数据库中冗余存储的数据相互不一致 5、 数据隐私法规和规定被侵犯,或者可能被侵犯 6、 出现处理错误(由人、机器或软件造成) 7、 出现决策错误 B、 安全或控制太多 1、 官僚作风使系统变慢 2、 控制使客户或雇员感到不方便 3、 过多的控制引起处理延迟 |
效率 |
A、 人、机器或计算机浪费时间 1、 冗余地输入或复制数据 2、 冗余地处理数据 3、 冗余地生成信息 B、 人、机器或计算机浪费材料和供应 C、 任务所需的工作量太大 D、 任务所需的材料太多 |
服务 |
A、 系统产生了不正确的结果 B、 系统产生了不一致的结果 C、 系统产生了不可靠的结果 D、 系统不易学习 E、 系统不易使用 F、 系统难以使用 G、 系统对新情况或异常情况反应不灵活 H、 系统对变化反应不灵活 I、 系统与其它系统不兼容 |
三)范围定义阶段
1、 目标
回答下列问题“这个项目值得考虑吗?”,如果值得考虑应该确定项目的范围、目标、约束和限制条件以及所需的项目参与者、预算和进度。
2、 参与者
系统所有者、项目经理、系统分析员。
3、 交付物
问题陈述:触发项目的问题的简要陈述。对问题进行分类,并不解决。
约束条件:包括预算限制、最后期限、人力资源、企业政策或*法规,以及
技术和标准。期望的系统改进说明:
范围陈述:使用如下图工具,图2-6
工作陈述:开发信息系统的合约或协议,将上述内容进行合并。
4、 检查点
系统所有者同意
减小范围
取消项目
5、
四)问题分析阶段
1、 目标
系统分析员研究现有系统,分析发现的问题,促使项目团队更深入的理解引发
该项目的问题。需要确定收益与开销的大小关系。
了解现有系统的术语、历史、文化等。
2、 参与者
系统所有者、项目经理、系统分析员、系统用户
3、 输入
范围和问题陈述
4、 输出
系统改进目标
5、 检查点
问题不值得解决,取消项目
同意,继续进入下一个阶段
销减或者扩大范围(同时修改预算和进度),同意继续进入下一阶段
6、
五)需求分析阶段
1、 目标
定义业务需求,并排序。主要考虑做什么,包括为用户提供什么功能?收集什么数据?存储什么数据?期望的性能等级?不包含任何技术方案。需求优先级排序用于重新确定项目范围,确定迭代层次。
2、 参与者
项目经理、系统分析员、系统用户
3、 内容
业务数据需求、业务过程需求、业务和系统接口需求
4、 输入
系统改进目标
5、 输出
业务需求陈述
6、 分析工具和技术
参照第6、7章
7、
六)逻辑设计阶段
1、 目标
将业务需求转换成系统模型。包括逻辑数据模型(描述数据和信息需求)、逻辑过程模型(描述业务过程需求)、逻辑接口模型(描述业务和系统接口需求)。该阶段与实现技术无关。
2、 参与者
系统分析员、系统用户
3、 输入
业务需求陈述
4、 输出
逻辑设计模型和规格说明
5、 常见模型
数据流图
6、 常见方法
结构化分析和设计、信息工程、rational统一过程、敏捷方法。
7、
七)决策分析阶段
1、 目标
确定候选技术方案、分析候选方案的可行性、推荐一个候选系统作为目标方案进行设计。
2、 参与者
系统用户、系统设计人员、系统分析员
3、 输入
验证过的业务需求和逻辑系统模型
需求规格说明书
4、 输出
系统方案建议
5、 候选方案评估
技术可行性:技术上是否能够实现?相应人员是否熟悉该技术?
运行可行性:是否满足用户需求?在多大程度上满足?该方案怎样改变用户的工作环境?用户对这个方案的感觉怎么样?
经济可行性:该方案是否划算?
进度可行性:该方案能够在可接受的时间内设计和实现吗?
风险可行性:这一技术和方法成功实现的可能性有多大?
6、 检查点
同意并资助系统的设计和构造建议
同意或者资助其他候选方案中的某个方案
驳回所有候选方案,要么取消要么做新的方案
同意建议方案的一个范围缩小的版本
7、
八)物理设计和集成阶段
该阶段的目的是将业务需求陈述变成用于指导系统构造的“物理设计说明”;该阶段的技术视图有:物理数据设计说明、物理业务过程和软件设计说明、物理用户和系统接口说明。
该阶段的交付物是“物理设计模型和规格说明”、“设计原型”和“重新设计的业务过程”的组合。
该阶段的参与者主要是“系统设计人员”和“系统分析人员”,通常也包括“系统用户”。
九)构造和测试阶段
该阶段主要目的:创建并测试一个实现业务需求和设计说明的系统;实现新系统和现有系统之间的接口;生成最终文档(帮助系统、培训手册),准备用于培训和系统运行。
该阶段的参与者有:系统构造人员、系统分析员、系统用户、项目经理。也可以包括“系统设计人员”。
十)安装和发布阶段
该阶段需要完成老系统到新系统的平稳转换、人员培训。
十一) 运行和维护阶段
该阶段要进行系统维护,系统维护的活动有:辅助用户、修正软件缺陷、恢复系统、调整系统适应新需求。
十二)
三、跨生命周期活动
一)调查研究
二)记录文档和演示汇报
三)可行性分析
四)项目管理和过程管理
五)顺序开发和迭代开发
四、开发路线和策略
一)模型驱动开发策略
1、 过程建模
2、 数据建模
3、 对象建模
二)快速应用开发策略(RAD)
三)商用应用软件包实现策略
四)混合策略
五)系统维护策略
五、自动化工具和技术
一)计算机辅助系统工程(CASE)
Erwin、Designer2000、System Architect、ROSE、Visible Analyst
二)应用开发环境
六、过程和项目管理器
一)Project
二)Open Workbench
三)Project Manager
七、思考
一)解释为什么对于企业来说拥有一个标准的系统开发过程很重要?
1、 提高效率
2、 降低成本
3、 积累可复用资产
二)如何关联系统生命周期和系统开发方法学?
系统开发方法学是为了执行和完成系统生命周期的不同阶段。
三)系统开发的十个基本原理是什么?
参看“系统开发基本原理”一节。
四)为什么文档在整个开发过程中很重要?
1、 在大型组织中出现人员的不断变化,文档可以作为变化人员之间的有效交流。
2、 文档可以提到关联人员之间的通信和相互接受程度。
五)为什么需要过程管理和项目管理?
1、 过程管理可以确保一个组织选定的过程在所有项目中得到一致的运用,还可以定义和改进选定的过程;
2、 项目管理确保以最小的开销、在规定的时间内、以可接受的质量开发信息系统。
六)为什么需要风险管理?
风险管理寻求风险和收益之间的平衡。
七)大多数项目由哪些关联人员发起?大多数项目的推动力是什么?
1、 系统用户和所有者启动;
2、 推动力是问题、机会和指示。
八)在项目定义中,谁是主要的参与者?他们在项目定义中的目标是什么?该阶段三个主要的发布物是什么?
九)在需求分析阶段,谁是主要参与者?为什么他们是主要的参与者?
参照“需求分析阶段”一节。
十)在决策分析阶段做哪些可行性分析?
十一) 为什么是模型驱动开发,为什么流行模型驱动开发?
十二) 为什么是快速应用开发,RAD可以为系统开发过程带来什么好处?
十三)
八、