软件项目管理(CMM)经验谈(2)
2.2.9项目验收
2.2.10项目版本化发布
2.3项目组织
3开发工作规范
3.1总体规划阶段
3.1.1项目需求报告
3.1.1.1工作定义
3.1.1.2前序工作及输入成果
3.1.1.3具体工作内容
3.1.1.3.1资料收集(可选)
3.1.1.3.2资料研究(可选)
3.1.1.3.3项目需求报告编制
3.1.1.3.4项目需求报告讨论准备
3.1.1.3.5项目需求报告讨论
3.1.1.3.6项目需求报告修改
3.1.1.3.7项目需求报告验收
3.1.1.4参与者及职责
3.1.1.5输出成果及后序工作
3.1.2技术可行性实验(可选)
3.1.3项目计划书
3.2项目立项
3.2.1立项申请
3.2.2项目立项评估
3.2.3项目进度计划
3.2.4项目立项审批
3.3需求分析
3.3.1资料收集
3.3.2需求分析编制
3.3.3讨论准备
3.3.4需求分析讨论
3.3.5需求分析修改
3.3.6需求分析验收
3.4系统分析
3.4.1系统分析准备
3.4.2确定问题域
3.4.3需求建模
3.4.4建立分析对象模型
3.4.5系统分析合并
3.4.6系统分析测试
3.4.7系统分析修改(测试后)
3.4.8系统分析验收
3.5系统设计
3.5.1系统设计准备
3.5.2界面设计
3.5.3建立设计模型
3.5.4系统设计合并
3.5.5对象持久化设计
3.5.6详细设计
3.5.7系统设计测试
3.5.8系统设计修改(测试后)
3.5.9系统设计验收
3.6编码实现
3.6.1编码准备
3.6.2编码
3.6.3编码单元测试(测试工作)
3.6.4单元测试后编码修改
3.6.5编码联调
3.6.6集成测试(测试工作)
3.6.7集成测试后编码修改
3.6.8系统测试(测试工作)
3.6.9系统测试后编码修改
3.6.10编码验收
3.7项目测试
3.7.1系统分析测试
3.7.2系统设计测试
3.7.3项目测试方案
3.7.4单元测试
3.7.5集成测试
3.7.6系统测试
3.8文档编制
3.8.1开发文档整理
3.8.2用户文档编制
3.8.3宣传资料编写
3.9项目验收
3.10项目版本化发布
4项目工作总结
4.1项目任务数
4.1.1总任务数
4.1.2阶段任务数
4.2输出成果
2开发规范概述
2.1应用项目管理管理开发过程
产品部接受的各种开发任务均以项目形式出现,包括:新产品开发,产品维护(错误修改、功能增强、缺陷完善等),产品客户化开发及维护等,全程使用项目管理方法进行控制和管理。
根据项目规模和难易有大、小,繁简之分。每个项目的完成周期要控制在6个月以内,项目规模控制在60个人月内。过大的项目需要拆分成多个小的项目来完成。30个人月以上的项目称为大项目,10个人月以内的项目称为小项目。
每个项目要根据具体情况拆分成工作阶段,即里程碑,以便对项目进度的有效控制与检测。
2.2标准的阶段性开发工作
2.2.1总体规划
全面规划项目工作的内容,确定目标市场、技术指标和应用要求,划定项目工作范围和交付成果,明确项目实现的总体设想和实施方案;确定项目中的新技术的可行性;明确项目需要用到的各种资源,估算项目的工作量和成本。
2.2.2项目立项
产品部对要进行的开发项目进行立项申请,提交项目资料。由公司的有关人员对项目进行一系列的风险评估。
通过风险评估的项目,由产品部进行详细进度计划安排,落实时间进度、资源(人员/设备、内部/外部)、技术、资金和费用等,相关资源和资金使用计划要详细列出。
最后所有的项目申请资料、风险评估报告及产品进度计划都要报给公司上级领导审批,进行立项评审。
立项通过的项目才能进入正式的开发工作。
2.2.3需求分析
根据项目需求报告界定的工作范围和应用方案的设计思路,进一步深入细化应用方案,描述将要开发出计算机系统中包含的各项业务是如何做的,及业务流程、相关理论、运算公式、原理、业务数据、单据报表格式等。
2.2.4系统分析
根据项目需求分析,对将要建立的满足用户需求的计算机系统进行分析。在系统分析过程中采用面向对象分析技术(OOA)划分需求的问题域,对每一个问题域进行分析和抽象,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及其系统责任所需的类及对象,定义这些类和对象的属性与服务,以及它们之间所形成的结构、静态联系和动态联系。最终产生一个符合用户需求,并能够直接反映问题域和系统责任的面向对象的分析模型。
2.2.5系统设计
根据项目需求分析和系统分析,针对具体实现中的人机界面、数据存储、任务管理等内容,运用面向对象设计技术(OOD)进行系统设计。主要包括UI设计、对象设计和数据库表设计。
2.2.6编码实现
根据系统设计的结果,运用面向对象的方法进行程序编码(OOP)以实现系统设计的内容。
编码过程就是用具体的数据结构来定义对象的属性,用具体的语言来实现服务流程图所表示的算法。在对象设计阶段形成的对象类和关系最后被转换成特殊的程序设计语言、数据库或者硬件的实现。
2.2.7项目测试
对系统分析、系统设计、程序编码等运用面向对象的方法进行测试(OOT)。项目的测试工作贯穿项目的整个开发过程。主要包括:分析(OOA)测试、设计(OOD)测试和编码(OOP)测试,以及集成测试和系统测试。
2.2.8文档制作
跟随项目开发过程应产生的文档主要包括三类:
(1)开发文档:分析、设计、编码、测试以及各种开发管理文档等资料;
(2)用户文档:在线帮助,安装指南,使用手册,技术手册,培训教材等;
(3)宣传资料:产品介绍资料,产品白皮书,产品宣传PPT,演示光盘等。
2.2.9项目验收
对完工的项目按照验收步骤进行验收。验收过程中对项目的情况给予评价。
2.2.10项目版本化发布
对验收通过的项目进行版本控制,整理项目版本包含的内容并版本化,发布产品发布通告。
2.3项目组织
每个项目指定一个项目经理进行管理,同时指定一个分析、设计人员(来自分析设计组)负责对技术问题的管理。当任务涉及到多个职能组的工作时(有些项目可能只涉及单一的职能组),由项目经理根据项目工作安排与职能组的组长进行协调,由职能组的组长来协助安排本组承担的项目工作,指定组内人员来完成相关工作。项目经理根据各职能组长的安排汇总编制整个项目的进度计划,并根据最终形成的项目计划对项目进行控制和管理。
项目进行过程中需按照项目管理的要求对项目进行跟踪、总结,各职能组的人员要对这些工作给予积极的支持和配合。产品委员会(或产品部内部)不定期组织人员对项目进行审查,确保项目的进度和质量。