30第一篇项目初始 原型模型有如下特点: 需求定义之前,需要快速构建一个原型系统 用户根据快速构建的原型系统的优峡点,给开发人员提出反馈意见。 ·根据反馈意见修改软件需求规格,以便系统可以更正确地反映用户的需求。 ·可以减少项目的各种假设以及风险等。 使用原型模型的基本指南是 用户和开发人员根据初始需求共同开发一个项目规划。 ·用户和开发人员利用快速分析技术共同定义需求和规格 。设计者物个原系统 设计者演示这个原型系统,用户来评估性能并标识问题。 用户和设计者一起来解决标识的问题,循环这个过程,直到用户满意为止。 ·详细设计可以根据这个原型进行。 ·原型可以用代码或者工具来实施 当项目的需求在项目开始前不明确,或者需要诚少项目的不确定性的时候,可以采用原型方法。 类似的项目如:需要明确系统的界面,验证一些技术的可行性等。 1.6.4增量式模型 增量式模型(incremental life cycle model)是由澡布模型演变而来的。该模型假设需求可以分段 成为一系列增量产品,每一增量可以分别的开发。首先构造系统的核心功能,然后逐步增加功能和完 善性能的方法就是增量式模型。增量式生存期模型见图1-10。 第一增量 第二增量 第三增量 核心功能 核心功能 核心功能 图1-10增量式模型 增量式模型的特点如下: 可以避免 次性投资太多带来的风险,将主要的功能或者风险大的功能首先实现,然后逐步完善。 保证投人的有效性。 可以更快地开发出可以操作的系统。 ·以减少开发过程中用户需求的恋甲 一些增量可能需要重新开发(如果早期开发的需求不稳定或者不完整)。 使用增量式模型时,首先构建整个系统的核心部分,或者是具有高风险的部分功能,这部分功能 对项目的成功起到重要作用。通过测试这些功能以决定它们是否是项目所需要的,这样可以排除后原 之忧,然后逐步地增加功能和性能,循序渐进,避免一步走的太快,增加功能的时候应该高效而且符 合用户的需要。 增量式模型比较适合下列情况的项目:
第1章软件项目初始过程31 ·项目开始时,明确了大部分的需求,但是需求可能会发生变化的项目 对于市场和用户把握不是很准 ,需要逐步了解的项目 对于有庞大和复杂功能的系统进行功能改进时需要一步一步实施的项目。 1.6.5螺旋式模型 螺旋式模型(spiral model)是针对风险比较大的项目而设计的 一种模型。设计这个模型的目的主 要是克服瀑布模型的缺点,尤其是应对变化的灵活性上很有优势。它是通过一系列澡布模型的不断循 环来逐步规避风险的。螺旋式模型见图1-11。每个循环步骤包括如下四个阶段: 制订计划 ↑图种 风险分析 风分 风分 风分桥 原刑3 原型1 原型2 然 弹细设计 发什款 元码 集成测试 验收 实现 测试 测试 开 客户评估 实施工程 图1-11螺旋式模型 1)制定计划一确定软件目标、需求和选定实施方案,弄清项目开发的限制条件,确定下步可选 的方案 2)风险分析 评估所选方案,考虑如何识别和消除风险,进行原型开发。 3)实施工程 -实施软件开发、编码、测试等。 4)客户评估 一评价开发工作,提出修正建议,规划下一阶段的任务。 螺旋式模型提供了多个系统构造,为用户提供了几个可选的机会,因此需要精心的策划。 娜旋式模型的特点如下: ··表现为瀑布模型的多次迭代。 可以将每个阶段进行更细的划分 可以进行灵活设计 通过风险管理进行驱动 用户可以更早看到产品: ·用户可以不断对产品进行评估。 ·用户可以与开发人员进行紧密的合作 项目的投资不用-一次性投入
32第一箱项目初始 ·可以给开发人员更多的反俯信息 螺旋式模型的使用指南如下 采用最低成本开发对项目有用的一部分。 ·允许设计的变动。 。选择比较小的步伐循序渐进 需求规格处于可修改状态。 项目中有很多风险 注意风险的控制。 蝶旋式模型适合的项目类型是: 。项目中风险是主要的制约因素。 项目中的不确定因素和风险限制了项目的进度。 用户对自己的需求不是很明确 ·需要对一些基本的概念进行验证。 ·可能发生一一些重大的变更。 项目规模很大。 项目中采用了新技术。 1.6.6浙近式阶段模型 项目规模越大对项目的管理人员要求越高,参与的人员越多,需要协调沟通的渠道越多,周期越 长,开发人员也容易疲劳,将大项目拆分成几个小项目,可以降低对项目管理人员的要求 减少项目 的管理风险,而且能够充分地将项目管理的权利下放,充分调动人员的积极性,目标会比较具体明确, 易于取得阶段性的成果,使开发人员有成就感。项目采用阶段性版本发布,减少项目组成员的挫折感, 提高大家的士气 对于软件项目来讲,可以将大的项目划分成几个小项目来做,将周期长的项目划分成儿个明确的 阶段。“化繁为简,各个击破”是自古以来解决复杂问题的一个法宝。例如一个5年完成的项目可以分 成5个阶段,每年提交一个版本,无形中的感觉是工作时间缩短了,工作量变小了,尽管实际中的工 作量没有减少。 开发过程中反复和阶段提交是比较合理的过程,渐进式阶段模型恰恰体现了这些特征 它也是近来比较流行的生存期模型。渐进式阶段模型见图1-12和图1-13。 软件概念 项目规划 得求开发 需求管理 一总体设计 总体设计 详绸设计。 阶段一:详细设计、构建与发行 构建 阶段二:详细设计、构建与发行 质量保证/系统测试 阶段:详细设计、构建与发行 文档编写 时间→ 软件发行 图1-12渐进式模型 图1-13阶段式模型 渐进式阶段模型体现渐进式过程和阶段提交的模式,从图112可以看出“项目规 、“项目管理 “需求管理”、“总体设计”、 “详细设计 “构建”、 “质量保证/测试”、 文档写 等过程都是贯穿项目 始终的,只是各个阶段的任务量不同而已,“项目规划”开始任务多,而后每个阶段的工作量逐渐变少了 “项目管理”是从始至终都有的,而“需求管理”开始任务多,然后逐步变少,“总体设计”也是在需求 快结束的时候开始,然后逐步减少。著名的80/20的黄金规则可以应用到这里,在完成80%的需求开发后
第1音软件项目初始过程33 就可以开始总体设计,完成80%的总体设计后,就要开始详细设计,以此类推。而且这个模型也强调将项 目中开发的软件分阶段完成 每个阶段可以提交不同版本的产品,而不是一次性完成。这样项目经理可以 提早得到明确的进度报告,而不是类似 “完成80% “还剩20%”等模棱两可的报告。产品的动态结果 比任何书面报告更能精确反应项目状况。 渐进式阶段模型具有如下的特点: 。阶段式提交一个可运行的产品,而且每个阶 阶段 阶段 阶段 段提交的产品是独立的系统,如图114。 关键的功能更早出现,可以提高开发人员和 客户的信心 ·通过阶段式产品提交,可以早期预警问题 避免后期发现问题的高成本。 ·通过阶段式提交可以运行的产品,来有力的 证明项目的实际进展,减少项目进展报告的 系统 (系统2 系统 阶段性完成可以降低估计失误,因为通过阶 段完成的评审,可以重新估算下一阶段的 图114渐进式系统 计别。 ·阶段性完成均衡了弹性与效率,提高开发人员的效率和士气。 选择渐近式阶段模型的项目团队先进行软件概念分析,汇集、分析需求,再完成架构设计。这些工作 通过积极的风险管理与精心规划,朝着消除 风险的目标前进。在每个实施阶段,进行详细设计、实施、测 试、修正等,而且每个阶段都建立可能推出的产品。 从本质上讲,渐近式阶段模型可以适合任何规模的项目,但是需要不断提交新的版本,因此渐近式阶 段模型主要适合中型或大型项目,是目前软件开发中常采用的模型。采用这个模型可以随时看到项目的 未来。 作者曾主管过的一个软件开发项目,该项目前期投人了5人做需求,时间达3个多月,进人开发阶段 后,投人了15人,时间达10个月之久,陆续进行了3次封闭开发,在此过程中经历了需求的裁剪、开发 人员的变更、技术路线的调整,项目组成员的压力极大,大家疲惫不堪,产品上市时间拖期达4个月。项 目完工后总结下来的很致命的一个教训就是应该将该项目拆成3个小的项目来做,进行阶段性板本化发布, 以缓解市场上的压力,减少项目组成员的挫折感, 提高大家的士气。 1.7校务通系统案例分析 某教育部门(甲方)希望所管精的学校有一个现代化的信息交流平台,即校务通系统,为此他们提出 了《校务通系统)的需求,希望委托软件公司为其开发这样的软件项目。《校务通系统》是对学教务和 教学活动进行综合管理的平台系统,是一个学校和地区教育信息化的基础信息平台。目的是共享学校各种 资源、提高学校的工作效率、规范学校的工作流程、便利校内外的交流。针对这个项目, 甲方采取多方治 谈的招标方式。经过多方沟通和不懈的努力,北京XXX公司(乙方)获得了这个项目的开发权。双方经 过多次的协商和讨论,最后签署项目开发合同。 1.7.1甲方招标需求 由于本项目的甲(卖)方采取了多方治谈的招标方式,所以没有明确的招标书,只编写了工作任务说 明(S0W)与乙(买)方谈判。S0W如下: 校务通管理平台信息系统业务需求 校务通管理平台信患系统是对学校教务和教学活动进行综合管理的平台系统,是一个学校和地区教 信息化的基础信息平台。满足学校管理层、教师、学生、家长等日常 学习、 情理、。询等工作。目
34第一篇项目初始 的是共享学校各种资源、提高学校的工作效率、规范学校的工作流程、便利校内外的交流。 一、整体要求: 1,系统要求提供教师工作平台和学生工作平台 的权限管理 生数据方面和功能方面都要体现。 3.系统要求有可扩充性, 可以在现有系统的基础上,通过前台就可加挂其他功能模块。 一般学校的机构组成 学校的机构组成如图1所示。 校长☐ 行政副校业务脚校长的 办公室 思务处 政教处 教导处 工会八事财务卫生素质德有学箱教学?[科研 图1一般学校的机构组成 说明: 1)可能每个学校机构不尽相同,但基本框架相似。这里需要指出的是关于华科教研室的设置,有几种 情况: 。每个年级设立学科教研室,如:初一学教研室、初二数学教研室。 海个级部设立学科教研室,如:初中数学教研室、高中数学教研室。 每个学校设立学科教研室,如:××学校数学餐研室、××学校数学教研室。 所以,对于教研堂最好不要在机构中体现,在教师基本情况中体现即可。 2)对于学校组织机构和人员的设置应遵循以下原则: 组织机构设 ××学校为一级,各处()、单位、都为二级,各年镊为三领,各班级为四级」 人员设置: 各人员均设置在相应的处(室)、单位、级部和年缓,即人员的设置最低到年级。 3)机构的日常业务 办公室:各类通知的上传下达、工作安排、日程管理、教师档案管理 总务贤:定资 产管理、教学仅器的使用管理、图书的借阅管理 、卫生值日的安排和检声 驳教处:学生德南教育的管理和评定、学生家长和学校的沟通、学生大型活动的安排 教务(导)处:学生学辅的管理、教师教学的管理 班主任:班级学生学籍的管理、学生日常管理、学生素质评价,学生学期评定、学生毕业鉴定。 任误教师:学生的教学《备课、考试),学生考试成绩评价分析。 三奚统功能球 《一潘用功能 对于每个教师,登录系统后,都应提供如下功能 1)电子课表:系统根据学校总排课的情况和该教师的任课情况自动生成电子课表备该教师查阅。 2)会议通知和公告:系统根据该教师的权限,自动列出该教师需要查阅的会议通知和公告,同时若具 备起草和发布通知和公告,则系统提供相应功能。发送通知和公告应可自由设定相应的权限组。如全体学 生、全体老师、一年级全体老师等