软件开发项目规范

发布时间:2022-06-29 14:30:06   来源:党团工作    点击:   
字号:

 软件项目开发和管理规范 本文阐述软件项目开发和管理的流程规范, 作为软件项目开发的高级指引, 本规范定义了软件开发的各个阶段以及每个阶段的工作活动和工件, 但不对活动和工件的细节作过多规定。在项目开发过程中, 每个项目根据自身的需要确定这些活动和工件的细节。

 项目阶段

 图 2-1 项目开发的五个阶段  启动阶段

 这个阶段的工作目的是决定一个项目是否需要启动。为了达到这个目的, 首先要明确项目的总体战略目标, 对项目的需要建立认同。即确定到底需要做什么、开发什么产品或提供什么服务, 以及需要解决什么样的问题和需要满足客户或市场的什么要求等, 同时还要总结项目工作的范围、所需资源、大约开支、各种风险, 以及该项目不执行的其他替代选择等。这些代表了对整个项目目标从战略角度和宏观层次所进行的分析, 通过项目的意向书总结出来, 由此确证客户或项目发起人和赞助者的要求与期望, 并帮助他们判定项目是否上马。项目意向总结书的通过及项目被批准上马形成了这个项目的起始点。

  计划阶段

 这个阶段的工作是为整个项目做计划。项目开始后, 首先要确定项目的具体范围, 明确定出项目到底要做什么, 总结、归纳并定出产品的功能。然后进一步制定项目的计划, 列出每项具体工作, 并建立所有工作任务的重要性及顺序;确定每项工作的执行人和所需资源;根据人员的配置和能力设定各项工作和整个项目的完成时间表。

  执行阶段

 这个阶段的工作是通过执行项目的计划来完成项目的任务。它包括落实一切所需资源, 如:

 人员、设备、费用、技术、信息, 由管理者领导全体项目参与者开展各项工作。同时跟踪各项具体工作和整个项目的进度, 定期向全体项目人员及项目的发起人报告项目状态。

  控制阶段

 这个阶段的工作是确证项目工作的结果符合项目的计划。它通过对项目结果的衡量和审核, 与项目计划所期望的结果进行比较, 找出实际结果与计划的差别, 并制定处理措施。这个阶段的工作还包括对项目进程中出现的任何更改要求进行审核和批准。同时调解项目进程中出现的各种问题, 如:对缺乏的资源的补偿调节;对项目的进度表及各项具体工作的优先级或顺序的修订。

  结束阶段

 这个阶段的工作是确保项目的最终结果或提交物达到计划的要求, 并对完成的结果作可接受的确认。还包括在项目完成之后的收尾工作, 对整个项目的经历进行总结, 修订项目文档, 用户培训等。

 阶段完成标志 在项目开发过程中, 当一个阶段完成后才会开展下一个阶段的工作;另外, “某个阶段完成”通常被定义为项目的一个里程碑, 里程碑标识了项目的进度, 它是项目开发和控制的重要参考, 对整个项目有重要的意义。因此, “确证某个阶段是否已经完成”的工作非常有重要。

  每一个阶段的结束以它特定任务的完成为象征

 只有当某个阶段中被规定的所有工作任务都完成了, 这个阶段才算真正结束, 整个项目才可以进入到下一个阶段中去。反过来说, 要是阶段中某个任务没有全部完成, 按照项目的定义, 整个阶段就不能算是完成, 因此项目就不能进入到下一个阶段去。

  衡量阶段结束的工作结果必 须是实在的交付品

 阶段中的任务是否完成是透过任务活动中产生的交付品来体现的, 交付品必须是可交付的、非抽象的、实质的并且可以通过用衡量的方法来判断是否真正地完成了的具体事物。如:某一阶段的完成是以建造一个样品或完成某分文件作为象征。任何项目阶段的结束, 都应该有这样的实质性东西的完成作为象征。

  跨阶段的进程以阶段结尾的合格验证和审核来决定

 当一个阶段结束时, 在进入到下一个阶段之前所需要做的工作应包括对交付品进行合格验证, 并检查这一阶段的工作质量和效率, 由此判断是否可以进入到下一个阶段。这些检验象征了一个阶段的结尾终点, 表示项目的进程离开了上一个阶段而进入了下一个阶段。

 启动阶段

  图 3-1 启动阶段的任务和工件  产品领域研究

  研究产品所在领域的状况, 为项目论证提供依据。研究内容包括:

 

 o 产品领域的现状和前景

 o 产品领域的商业模式和业务流程

 o 产品的价值和盈利空间

 o 产品的特性和复杂度

  技术可行性研究

  研究产品的实现技术, 总结技术可行性。研究内容包括:

 o

 o 类似产品的当前实现技术和技术趋势

 o 实现技术的候选方案

 o 各个方案的优点、成本和风险

 o 开发团队与实现技术的匹配情况

  项目论证

 基于商业和技术等方面对项目的可行性进行论证, 确定项目是否开展。如果开展项目, 则进一步论证项目的总体方案。

 论证的内容包括:

 o 商业可行性

 o 技术可行性

 o 当前产品与类似产品的比较

 o 项目收益和前景

 o 项目的成本和风险

 o 项目的总体方案

  确定项目目标和范围

  项目开始时, 所有相关人员必须对项目的目标和范围达成共识, 形成共同的项目愿景。并把愿景叙述为《项目开发大纲》向相关人员传达。

 《项目开发大纲》的内容包括:

 概

 述 用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责 高级功能 用一个段落来综述产品, 再用一个段落来描述每个重要的功能 不实现的功能 用一个段落来描述每个对产品有用的但本项目不实现的功能 涉

 众 用一个段落来明确每个重要的涉众群体和他们的风险股本 项目需求 用一个段落来讲述每个重要的项目需求 项目风险 按风险暴露量对每个重要的项目风险都用一个段落来讨论 项目回报 用一个段落综述产品的回报, 其后再对每个重要的项目回报都用一个段落来讨论 结

 论 用一到三个段落将上述所有部分联系起来, 明确项目的需求和风险, 再用论点和论据来总结为什么这个项目会成功 表 3-1 项目开发大纲 计划阶段

  图 4-1 计划阶段的任务和工件  规模、工作量评估

  围绕各项计划的制定工作对项目的规模、工作量等进行评估, 评估的内容包括:

 o

 o 模块数量与复杂度

 o 输入、输出和对外接口等数量与复杂度

 o SLOC 和功能点

 o 非生产性的支持工作量

 o 开发工作量(人月)

 o 进度与里程碑

 o 进度风险

  定制项目开发计划

  项目开发计划体现了项目组对整个开发周期的预期, 指定了项目开发的总体方针。与其他计划一样, 项目开发计划不是固定不变的, 在执行过程中要对计划进行监控, 可能会根据实际情况修改计划并重新发布。

 《项目开发计划》的内容包括:

 概

 述 用三到五张图表来描述产品目标、功能、平台、客户、进度表和开发职责。

 (《项目开发计划》的概述部分应该是《 项目开发大纲 》中概述部分的拷贝。当项目计划改变

 时, 修订《项目开发计划》的概述部分而不是修订《项目开发大纲》。这样, 以后在进行项目评价时, 通过比较《 项目开发大纲 》和《项目开发计划》的概述, 就能看出项目是如何改变的)

 高级功能 用一到五页的篇幅来概述产品的功能, 其中, 要包括这些功能的附加信息(开发者需要这样的信息来了解实现需求)。

 项目成员 确定软件工程职能角色, 以及分配到这些角色的人员数量。

 软件过程 概述这个项目中所应用的软件过程。

 (具体内容可在《 质量保证计划 》中定义)

 软件工程方法 概述这个项目中所应用的软件工程方法和技术。

 (具体内容可在《

 质量保证计划 》中定义)

 进度和工作量 这一部分要表达出整个项目进度和工作量的估计。其中要包括:

  对固定不变的里程碑和同步点的解释

  在评估中的设想情况、评估中的不准确性的可能来源

  随着项目的进展如何更新评估

 (具体进度表内容可在《 开发进度表 》中定义)

 风险管理计划 概述这个项目中风险管理计划。

 (具体内容可在《 风险管理计划 》中定义)

 测

 量 概述这个项目中要收集的测量。

 软件工具 列出要使用的每一项软件工具, 以及该工具所支持的任务。

 项目支持 硬件支持

 明确所需的硬件, 包括那些需要移动、获取或升级的硬件。

 软件支持

 明确所需的软件, 包括需要获取、安装或升级的软件件。

 人力支持 由哪个人、部门或团队为开发组的哪项任务提供支持。

 表 4-1 项目开发计划  定制风险管理计划

  风险管理任务包括:风险识别、风险分析、确定风险优先级、定制风险化解方案、风险化解和风险监控【如:图 4-2】。

  图 4-2 风险管理任务 《风险管理计划》定义这些任务的执行流程和人员分配。

 《风险管理计划》的内容包括:

 概

 述 用文字和图表概述风险管理任务的总体执行流程。

 风险识别 详细说明“风险识别”任务的实施细节和各项工作的负责人。

 风险分析 详细说明“风险分析”任务的实施细节和各项工作的负责人。

 确定风险优先级 详细说明“确定风险优先级”任务的实施细节和各项工作的负责人。

 定制风险化解方案 详细说明“定制风险处理方案”任务的实施细节和各项工作的负责人。

 风险化解 当风险发生时, 需要采取相应的措施化解风险。

 这部分的内容是描述风险化解工作的操作规范和流程。

 风险监控 详细说明风险监控任务的实施细节和各项工作的负责人。

 表 4-2 风险管理计划

  风险管理中通常会用到《Top N 风险列表》, 风险列表按照风险暴露量排序列出当前

 项目中主要的 N 个风险, 《Top N 风险列表》的内容包括:

 本周排名 本周的排名(如果本周已被完全化解用“---”表示)

 上周排名 上周排名(如果是新识别的风险用“---”表示)

 上表周数 该风险已上表的周数 风

 险 风险的名称或简述 类

 型 风险类型(只针对进度相关的风险):

 o 计划编制

 o 组织和管理

 o 设计和实现

 o 客户和需求

 o 承包商

 o 产品

 o 人员

 o 过程

 o 技术

 o 外部环境

 o 开发环境

 发生概率 风险发生的百分比概率 损失程度 风险发生时损失的进度(工作日或工作周)

 暴露量 发生概率 X 损失程度 状

 态 风险的当前状态:未发生、已发生、已化解 化解方案 简述风险的化解方案, 如果有具体的化解方案文档则链接到相应文档 化解进度 对已发生的风险, 简述化解进度(未发生的风险用“---”表示)

 表 4-3 风险列表  定制质量保证计划

 保证工作质量的一个重要步骤是制定一套合理的质量保证计划并贯彻执行。

 《质量保证计划》的内容包括:

 概

 述 说明编写的目的、适用范围以及对相关人员的要求等 软件过程 详细说明这个项目中所应用的软件过程。

 软件工程方法 详细说明这个项目中所应用的软件工程方法和技术。

 工作规范 对工程方法中的各种工作任务进行规范, 明确执行的时机、流程和准则等。这些工作任务包括:

 常规开发活动(需求分析、架构设计、详细设计、编码和测试、发布和实施等)

 会议(工作例会、进度会议、审查会议等)

 评审(方案评审、技术评审、质量评审等)

 测量(产品规模测量、进度测量、缺陷率测量、测试覆盖率测量等)

 其他活动(技能培训、资料收集、内部流、客户沟通等)

 表 4-4 工作规范  定制开发进度计划

  基于当前对项目的规模和工作量评估, 定制初步的开发进度表, 作为项目开发计划的组成部分。

 《开发进度表》的内容包括:

 o

 o 项目的开始和结束时间

 o 项目各个阶段的开始和结束时间 o 每个阶段的工作任务及其开始和结束时间

 o 每个工作任务的子任务的及其开始和结束时间 o 里程碑和同步点

 o 角色的定义和任务分配

 作为跟踪项目进度的重要依据, 进度表在项目推进过程中需要不断细化。另外, 当实际进度与计划进度出现偏差时, 需要修改进度表并重新发布。

 执行阶段

 图 5-1 执行阶段的任务和工件  需求分析

  分析产品的关键需求、对架构设计有影响的需求和风险较高的需求, 直到分析的程度能开展足界面原型设计和架构设计工作。

 《需求规格说明书》的内容包括:

 商业或业务需求 从商业或业务角度宏观上对产品或系统的要求。它主要在宏观的层面归纳总结为满足客户提出的要求或赢得市场竞争所必须实现的功能、性能、质量等要求。

 1. 做什么

 2. 做的范围

 3. 对结果的要求

 使用者需求 从客户对软件产品或系统使用方案的角度出发, 描述和总结使用者利用该软件产品或系统能够做的事或能够完成的任务。

 功能需求 根据上述 使用者需求列出的使用方案, 列出开发者必须为软件产品或系统实现的功能。

 性能需求 1. 运行速度、容量、并发性能

 2. 对资源的利用率

 3. 对外界输入的反馈速度和准确性

 4. 对差错的负荷能力

 系统需求 o 必须适应的运行环境的要求 (包括运行平台、网络及其他硬件要求)

 o 与其他系统兼容的要求 (包括与操作系统、数据库、浏览器及其他应用软件的兼容要求)

 o 与外部其他系统和组件的接口要求

 质量需求 o 对用户重要的质量标志 (可靠性、效率性、灵活性、安全性、互操作性、稳定性、健全性、可用性)

 o 对开发者重要的质量标志 (可维护性、多用转换性、重复使用性、可测试性)

 其他需求 不属于上述需求范围的, 但受到其他环境和商业合同影响的要求。

 1. 国家或地区的任何特别的标准

 2. 软件使用界面的特别要求

 3. 与知识产权有关的要求

 4. 软件所面对的市场和行业的规范

 5. 客户的特别要求

 开发的局限 对开发的成功与否起很大影响的因素, 是开发能力的局限:

 1. 人员的局限

 2. 技术的制约和局限

 3. 客户的特别要求

 表 5-1 需求分析告 《需求分析报告》的编制方式可以是多样的, 例如把所有“非功能性需求”组织成“外部接口需求”、“质量属性需求”和“需求约束”。【如:图 5-2】

 图 5-2 需求规格说明书  界面原型设计

  明确了系统的关键需求后, 就可以进行界面原型设计工作, 获取用户的反馈, 尽快确定产品的界面基调。同时要编写一份《界面设计概要》文档, 作为后续的界面设计工作的指导。

 《界面设计概要》的内容包括:

 o 设计的理念

 o 理念的来源或参考

 o 设计的要点

 o 与类似产品界面的对比

  架构设计

  架构设计从关键需求开始, 建立概念性的架构, 并逐步细化和验证。最终生成架构设计说明书和架构基线代码。

 架构设计的方法:可以从几个不同的视角进行架构设计, 然后汇总综合得出完整的设计。(架构设计的五个视图【如:图 5-3】)

  图 5-3 架构设计的五视图 《架构设计说明书》的内容包括:

 以下内容为:

 制定规范的目的和意义

  (一) 标准化为科学管理奠定了基础。所谓科学管理, 就是依据生产技术的发展规律和客观经济规律对企业进行管理, 而各种科学管理制度的形式, 都以标准化为基础。

 (二) 促进经济全面发展, 提高经济效益。标准化应用于科学研究, 可以避免在研究上的重复劳动;应用于产品设计, 可以缩短设计周期;应用于生产, 可使生产在科学的和有秩序的基础上进行;应用于管理, 可促进统一、协调、高效率等。

 (三)标准化是科研、生产、使用三者之间的桥梁。一项科研成果, 一旦纳入相应标准, 就能迅速得到推广和应用。因此, 标准化可使新技术和新科研成果得到推广应用, 从而促进技术进步;

 (四)标准化为组织现代化生产创造了前提条件。

 随着科学技 术的发展, 生产的社会化程度越来越高, 生产规模越来越大, 技术要求越来越复杂, 分工越来越细, 生产协作越来越广泛, 这就必须通过制定和使用标准, 来保证各生产部门活动, 在技术上保持高度的统一和协调, 以使生产正常进行;所以, 我们说标准化为组织现代化生产创造了前提条件。

 (五)促进对自然资源的合理利用, 保持生态平衡, 维护人类社会当前和长远的利益。标准化是经过多次实践后得出的最为有效的形式, 对于资源的利用率也是比较高的, 所以标准化在资源的合理化利用方面是有着积极意义的。

 (六)合理发展产品品种, 提高企业应变能力, 以更好的满足社会需求。标准化是对当前产品的精炼, 是针对市场需求的的细分, 把最适合的保留下来, 这样将更好的满足社会的需求。

 (七)保证产品质量, 维护消费者利益。标准化的规定的程序进行, 将人为因素对产品质量的影响降到最低, 确保了产品质量。

 (八) 在社会生产组成部分之间进行协调, 确立共同遵循的准则, 建立稳定的秩序。

 标准化的采用, 提高了企业产品之间的兼容性, 减少了由于企业产品之间标准不一致, 带来的巨大社会浪费。另外, 企业通过标准化可以避免对某一个供货商的依赖, 因为其他供货商依据公开的标准可以补充市场, 于是企业的供货渠道不断增加。供应商数量的增加, 加大了供货商之间的竞争, 从而促使产品质量不断提高, 价格也会不断降低, 建维护了市场稳定的秩序

 (九)在消除贸易障碍, 促进国际技术交流和贸易发展, 提高产品在国际市场上的竞争能力方面具有重大作用。加入 WTO 以来, 面对技术壁垒, 我国在大力提高产品质量的同时, 必须依靠标准化工作提高技术水平, 提升保障产品质量, 才能在国际贸易方面有一定的话语权, 稳定促进国际贸易发展。

 (十) 保障身体健康和生命安全, 大量的环保标准、卫生标准和安全标准制定发布后, 用法律形式强制执行, 对保障人民的身体健康和生命财产安全具有重大作用。

 (十一)标准化标志着一个行业新的标准的产生。标准化是产品质量和技术发展一定水平才能实现的, 标准化实现将进一步促使生产技术的提高, 进行形成更高水平的标准。

 总之, 标准及标准化所具有的引导性、前瞻性、公平性、强制性和惩戒性, 决定了标准化在市场经济中的作用是多层次的、全方位的, 进而也决定了

 它是建立和完善市场经济体制不可缺少的重要元素。应用标准化的目的就是为了能有效解决市场经济发展中的质

 量问题、效率问题、秩序问题、可持续发展问题等。因此, 我们必须从战略的高度重视标准化工作。只有我们不断地去提升标准化水平, 才能有效提升产品质量, 增强产品的市场竞争力, 进一步扩大出口贸易, 从而有效推进经济社会又好又快向前发展。