普通软件项目开发过程规范培训课程.docx
《普通软件项目开发过程规范培训课程.docx》由会员分享,可在线阅读,更多相关《普通软件项目开发过程规范培训课程.docx(35页珍藏版)》请在三一文库上搜索。
1、前 言前一篇文章软件开发基本原则谈论了软件开发原则方面的问题,而本篇文章尝试谈谈软件开发中更具体的一些内容 普通软件项目的开发过程规范。本座也知道,如果过程规范讲的太具体对谈论者来说是非常冒险的一件事情,它不像技术,对就对错就错,有一个客观的评判标准,别人想喷你也得自己先好好研究等拿到了足够的论据才能喷,但开发过程和项目管理就不同了,别人仅凭一点点所谓的管理经验甚至是主观推断就能喷得你体无完肤,摇摇欲坠 因为没有什么所谓的事实标准与放之四海皆有效的软件开发过程和项目管理方法。保守估计,100个人中至少有150种想法。本座也深知其中的凶险,因此避重就轻,从基本原理谈起,宏观的角度阐述相关问题,尽
2、量减少中弹的机会。欢迎大家畅所欲言 _*本文阐述软件项目开发和管理的流程规范,作为软件项目开发的高级指引,本规范定义了软件开发的各个阶段以及每个阶段的工作活动和工件,但不对活动和工件的细节作过多规定。在项目开发过程中,每个项目根据自身的需要确定这些活动和工件的细节。项目阶段图 2-1 项目开发的五个阶段 启动阶段 这个阶段的工作目的是决定一个项目是否需要启动。为了达到这个目的,首先要明确项目的总体战略目标,对项目的需要建立认同。即确定到底需要做什么、开发什么产品或提供什么服务,以及需要解决什么样的问题和需要满足客户或市场的什么要求等,同时还要总结项目工作的范围、所需资源、大约开支、各种风险,以
3、及该项目不执行的其他替代选择等。这些代表了对整个项目目标从战略角度和宏观层次所进行的分析,通过项目的意向书总结出来,由此确证客户或项目发起人和赞助者的要求与期望,并帮助他们判定项目是否上马。项目意向总结书的通过及项目被批准上马形成了这个项目的起始点。 计划阶段 这个阶段的工作是为整个项目做计划。项目开始后,首先要确定项目的具体范围,明确定出项目到底要做什么,总结、归纳并定出产品的功能。然后进一步制定项目的计划,列出每项具体工作,并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的配置和能力设定各项工作和整个项目的完成时间表。 执行阶段 这个阶段的工作是通过执行项目的计划
4、来完成项目的任务。它包括落实一切所需资源,如:人员、设备、费用、技术、信息,由管理者领导全体项目参与者开展各项工作。同时跟踪各项具体工作和整个项目的进度,定期向全体项目人员及项目的发起人报告项目状态。 控制阶段 这个阶段的工作是确证项目工作的结果符合项目的计划。它通过对项目结果的衡量和审核,与项目计划所期望的结果进行比较,找出实际结果与计划的差别,并制定处理措施。这个阶段的工作还包括对项目进程中出现的任何更改要求进行审核和批准。同时调解项目进程中出现的各种问题,如:对缺乏的资源的补偿调节;对项目的进度表及各项具体工作的优先级或顺序的修订。 结束阶段 这个阶段的工作是确保项目的最终结果或提交物达
5、到计划的要求,并对完成的结果作可接受的确认。还包括在项目完成之后的收尾工作,对整个项目的经历进行总结,修订项目文档,用户培训等。阶段完成标志在项目开发过程中,当一个阶段完成后才会开展下一个阶段的工作;另外,“某个阶段完成”通常被定义为项目的一个里程碑,里程碑标识了项目的进度,它是项目开发和控制的重要参考,对整个项目有重要的意义。因此,“确证某个阶段是否已经完成”的工作非常有重要。 每一个阶段的结束以它特定任务的完成为象征 只有当某个阶段中被规定的所有工作任务都完成了,这个阶段才算真正结束,整个项目才可以进入到下一个阶段中去。反过来说,要是阶段中某个任务没有全部完成,按照项目的定义,整个阶段就不
6、能算是完成,因此项目就不能进入到下一个阶段去。 衡量阶段结束的工作结果必须是实在的交付品 阶段中的任务是否完成是透过任务活动中产生的交付品来体现的,交付品必须是可交付的、非抽象的、实质的并且可以通过用衡量的方法来判断是否真正地完成了的具体事物。如:某一阶段的完成是以建造一个样品或完成某分文件作为象征。任何项目阶段的结束,都应该有这样的实质性东西的完成作为象征。 跨阶段的进程以阶段结尾的合格验证和审核来决定 当一个阶段结束时,在进入到下一个阶段之前所需要做的工作应包括对交付品进行合格验证,并检查这一阶段的工作质量和效率,由此判断是否可以进入到下一个阶段。这些检验象征了一个阶段的结尾终点,表示项目
7、的进程离开了上一个阶段而进入了下一个阶段。普通软件项目开发过程规范(二) 启动和计划阶段 启动阶段图 3-1 启动阶段的任务和工件 产品领域研究 研究产品所在领域的状况,为项目论证提供依据。研究内容包括:o 产品领域的现状和前景 o 产品领域的商业模式和业务流程 o 产品的价值和盈利空间 o 产品的特性和复杂度 技术可行性研究 研究产品的实现技术,总结技术可行性。研究内容包括:oo 类似产品的当前实现技术和技术趋势 o 实现技术的候选方案 o 各个方案的优点、成本和风险 o 开发团队与实现技术的匹配情况 项目论证 基于商业和技术等方面对项目的可行性进行论证,确定项目是否开展。如果开展项目,则进
8、一步论证项目的总体方案。论证的内容包括:oo 商业可行性 o 技术可行性 o 当前产品与类似产品的比较 o 项目收益和前景 o 项目的成本和风险 o 项目的总体方案 确定项目目标和范围 项目开始时,所有相关人员必须对项目的目标和范围达成共识,形成共同的项目愿景。并把愿景叙述为项目开发大纲向相关人员传达。项目开发大纲的内容包括:概 述用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责高级功能用一个段落来综述产品,再用一个段落来描述每个重要的功能不实现的功能用一个段落来描述每个对产品有用的但本项目不实现的功能涉 众用一个段落来明确每个重要的涉众群体和他们的风险股本项目需求用一个段落来
9、讲述每个重要的项目需求项目风险按风险暴露量对每个重要的项目风险都用一个段落来讨论项目回报用一个段落综述产品的回报,其后再对每个重要的项目回报都用一个段落来讨论结 论用一到三个段落将上述所有部分联系起来,明确项目的需求和风险,再用论点和论据来总结为什么这个项目会成功表 3-1 项目开发大纲计划阶段图 4-1 计划阶段的任务和工件 规模、工作量评估 围绕各项计划的制定工作对项目的规模、工作量等进行评估,评估的内容包括:oo 模块数量与复杂度 o 输入、输出和对外接口等数量与复杂度 o SLOC和功能点 o 非生产性的支持工作量 o 开发工作量(人月) o 进度与里程碑 o 进度风险 定制项目开发计
10、划 项目开发计划体现了项目组对整个开发周期的预期,指定了项目开发的总体方针。与其他计划一样,项目开发计划不是固定不变的,在执行过程中要对计划进行监控,可能会根据实际情况修改计划并重新发布。项目开发计划的内容包括:概 述用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责。(项目开发计划的概述部分应该是项目开发大纲中概述部分的拷贝。当项目计划改变时,修订项目开发计划的概述部分而不是修订项目开发大纲。这样,以后在进行项目评价时,通过比较项目开发大纲和项目开发计划的概述,就能看出项目是如何改变的)高级功能用一到五页的篇幅来概述产品的功能,其中,要包括这些功能的附加信息(开发者需要这样的信
11、息来了解实现需求)。项目成员确定软件工程职能角色,以及分配到这些角色的人员数量。软件过程概述这个项目中所应用的软件过程。(具体内容可在质量保证计划中定义)软件工程方法概述这个项目中所应用的软件工程方法和技术。(具体内容可在质量保证计划中定义)进度和工作量这一部分要表达出整个项目进度和工作量的估计。其中要包括: 对固定不变的里程碑和同步点的解释 在评估中的设想情况、评估中的不准确性的可能来源 随着项目的进展如何更新评估 (具体进度表内容可在开发进度表中定义)风险管理计划概述这个项目中风险管理计划。(具体内容可在风险管理计划中定义)测 量概述这个项目中要收集的测量。软件工具列出要使用的每一项软件工
12、具,以及该工具所支持的任务。项目支持硬件支持 明确所需的硬件,包括那些需要移动、获取或升级的硬件。软件支持 明确所需的软件,包括需要获取、安装或升级的软件件。人力支持 由哪个人、部门或团队为开发组的哪项任务提供支持。表 4-1 项目开发计划 定制风险管理计划 风险管理任务包括:风险识别、风险分析、确定风险优先级、定制风险化解方案、风险化解和风险监控【如:图4-2】。图 4-2 风险管理任务风险管理计划定义这些任务的执行流程和人员分配。风险管理计划的内容包括:概 述用文字和图表概述风险管理任务的总体执行流程。风险识别详细说明“风险识别”任务的实施细节和各项工作的负责人。风险分析详细说明“风险分析
13、任务的实施细节和各项工作的负责人。确定风险优先级详细说明“确定风险优先级”任务的实施细节和各项工作的负责人。定制风险化解方案详细说明“定制风险处理方案”任务的实施细节和各项工作的负责人。风险化解当风险发生时,需要采取相应的措施化解风险。这部分的内容是描述风险化解工作的操作规范和流程。风险监控详细说明风险监控任务的实施细节和各项工作的负责人。表 4-2 风险管理计划风险管理中通常会用到Top N 风险列表,风险列表按照风险暴露量排序列出当前项目中主要的N个风险,Top N 风险列表的内容包括:本周排名本周的排名(如果本周已被完全化解用“-”表示)上周排名上周排名(如果是新识别的风险用“-”表示
14、上表周数该风险已上表的周数风 险风险的名称或简述类 型风险类型(只针对进度相关的风险):o 计划编制 o 组织和管理 o 设计和实现 o 客户和需求 o 承包商 o 产品 o 人员 o 过程 o 技术 o 外部环境 o 开发环境 发生概率风险发生的百分比概率损失程度风险发生时损失的进度(工作日或工作周)暴露量发生概率 X 损失程度状 态风险的当前状态:未发生、已发生、已化解化解方案简述风险的化解方案,如果有具体的化解方案文档则链接到相应文档化解进度对已发生的风险,简述化解进度(未发生的风险用“-”表示) 表 4-3 风险列表 定制质量保证计划 保证工作质量的一个重要步骤是制定一套合理的质量保
15、证计划并贯彻执行。质量保证计划的内容包括:概 述说明编写的目的、适用范围以及对相关人员的要求等软件过程详细说明这个项目中所应用的软件过程。软件工程方法详细说明这个项目中所应用的软件工程方法和技术。工作规范对工程方法中的各种工作任务进行规范,明确执行的时机、流程和准则等。这些工作任务包括:常规开发活动(需求分析、架构设计、详细设计、编码和测试、发布和实施等)会议(工作例会、进度会议、审查会议等)评审(方案评审、技术评审、质量评审等)测量(产品规模测量、进度测量、缺陷率测量、测试覆盖率测量等)其他活动(技能培训、资料收集、内部流、客户沟通等)表 4-4 工作规范 定制开发进度计划 基于当前对项目的
16、规模和工作量评估,定制初步的开发进度表,作为项目开发计划的组成部分。开发进度表的内容包括:oo 项目的开始和结束时间 o 项目各个阶段的开始和结束时间 o 每个阶段的工作任务及其开始和结束时间 o 每个工作任务的子任务的及其开始和结束时间 o 里程碑和同步点 o 角色的定义和任务分配 作为跟踪项目进度的重要依据,进度表在项目推进过程中需要不断细化。另外,当实际进度与计划进度出现偏差时,需要修改进度表并重新发布。执行阶段图 5-1 执行阶段的任务和工件 需求分析 分析产品的关键需求、对架构设计有影响的需求和风险较高的需求,直到分析的程度能开展足界面原型设计和架构设计工作。需求规格说明书的内容包括
17、商业或业务需求从商业或业务角度宏观上对产品或系统的要求。它主要在宏观的层面归纳总结为满足客户提出的要求或赢得市场竞争所必须实现的功能、性能、质量等要求。1. 做什么 2. 做的范围 3. 对结果的要求 使用者需求从客户对软件产品或系统使用方案的角度出发,描述和总结使用者利用该软件产品或系统能够做的事或能够完成的任务。功能需求根据上述使用者需求列出的使用方案,列出开发者必须为软件产品或系统实现的功能。性能需求1. 运行速度、容量、并发性能 2. 对资源的利用率 3. 对外界输入的反馈速度和准确性 4. 对差错的负荷能力 系统需求o 必须适应的运行环境的要求 (包括运行平台、网络及其他硬件要求)
18、o 与其他系统兼容的要求 (包括与操作系统、数据库、浏览器及其他应用软件的兼容要求)o 与外部其他系统和组件的接口要求 质量需求o 对用户重要的质量标志 (可靠性、效率性、灵活性、安全性、互操作性、稳定性、健全性、可用性)o 对开发者重要的质量标志 (可维护性、多用转换性、重复使用性、可测试性)其他需求不属于上述需求范围的,但受到其他环境和商业合同影响的要求。1. 国家或地区的任何特别的标准 2. 软件使用界面的特别要求 3. 与知识产权有关的要求 4. 软件所面对的市场和行业的规范 5. 客户的特别要求 开发的局限对开发的成功与否起很大影响的因素,是开发能力的局限:1. 人员的局限 2. 技
19、术的制约和局限 3. 客户的特别要求 表 5-1 需求分析告需求分析报告的编制方式可以是多样的,例如把所有“非功能性需求”组织成“外部接口需求”、“质量属性需求”和“需求约束”。【如:图5-2】图 5-2 需求规格说明书 界面原型设计 明确了系统的关键需求后,就可以进行界面原型设计工作,获取用户的反馈,尽快确定产品的界面基调。同时要编写一份界面设计概要文档,作为后续的界面设计工作的指导。界面设计概要的内容包括:o 设计的理念 o 理念的来源或参考 o 设计的要点 o 与类似产品界面的对比 架构设计 架构设计从关键需求开始,建立概念性的架构,并逐步细化和验证。最终生成架构设计说明书和架构基线代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 普通 软件 项目 开发 过程 规范 培训 课程
