1. 引言
1.1 意图和价值
意图: 设计和构建符合客户要求的解决方案。
价值: 提供符合客户要求和减少返工的成本效益高的设计和解决方案。
1.2 适用范围
本过程文档是系统设计及开发人员,根据需求实现产品的依据,适用于公司内所有软件产品、产品组件。
1.3 名词术语
2 EPG:Engineer Process Group(工程过程组)
2 PLAN:Project Plan (项目计划)
2 TDP:Technical Data Package (技术数据包)
技术数据包包含需求规格文档、技术方案文档,概要设计、详细设计、数据库设计等设计文档,还包含测试用例、用户手册等文档,另外产品的开发环境、测试环境、使用环境等也是技术数据包的内容。
2. 过程定义
2.1 角色和职责
角 色 |
职 责 描 述 |
项目经理 |
1. 依据项目计划安排设计、开发、代码走查及支持文档编写的任务,并监督执行。 2. 负责此过程中产生的所有文档的评审。 |
设计人员 |
1. 编写技术解决方案,并设定评选准则; 2. 进行概要设计、数据库设计,并参与详细设计。 |
开发人员 |
1. 参与评审概要设计及数据库设计; 2. 编写详细设计; 3. 进行代码实现、代码走查以及软件产品支持文档的编写; |
2.2 入口准则
2 《产品需求规格说明书》、《项目计划》等文档已经完成,并评审通过形成基线。
2.3 输入
2 《产品需求规格说明书》。
2.4 过程活动
图 过程管理活动流程图
2.4.1 建立技术解决方案
设计人员确定技术解决方案的选择标准,一般的选择标准如下:
1、当客户有要求的解决方案,遵循客户要求。
2、组织有成熟的解决方案,可以复用现有方案。
3、当投标时已指定的解决方案,项目可使用投标中的方案。
4、其他情况用决策分析过程来选择。
设计人员依据以上选择标准,制订《技术解决方案》。
对《技术解决方案》进行评审:
项目经理就要组织同行专家人员对《技术解决方案》进行正式评审;评审不通过,设计人员要重新修改,评审流程参考《正式评审过程》。
2.4.2 系统设计
系统设计的内容包括:概要设计、数据库设计等。
2.4.2.1 概要设计
系统设计人员根据《技术解决方案》得出的决策结果,依照《产品需求规格说明书》进行系统概要设计。
设计人员按照从整体到局部、自顶向下的方法进行系统功能分解,将系统分解为若干个子系统,确定子系统间的接口关系;将子系统分解为若干个模块,并确定模块间的关系。确定系统开发、测试、运行的软硬件环境等。
购买复用分析:
2 确定哪些产品部件应当采购、外包开发或者自主研发,说明理由。
2 分析相应的风险。
2 列出多个可选方案。(即使没有可选方案也应有“用”和“不用”两个方案)
撰写概要设计文档:
2 概要设计人员根据指定的模板撰写《概要设计说明书》,主要内容包括:
ü 软件系统概述
ü 影响设计的约束因素
ü 系统的软件架构
ü 子系统的结构与模块功能
ü 系统接口、数据库设计规划
ü 运行所需的软硬件环境
ü 购买复用分析结果
对概要设计进行评审:
概要设计结束之后,产生《概要设计说明书》,项目经理就要组织同行专家人员对设计成果进行正式评审;评审不通过,系统设计人员要重新修改,评审流程参考《正式评审过程》。
2.4.2.2 数据库设计
数据库设计的内容包括:
2 数据库设计准备:
系统设计人员阅读《产品需求规格说明书》、和《概要设计说明书》,明确数据库设计任务,准备PowerDesigner设计工具。
2 逻辑设计:
系统设计人员根据需求文档,创建与数据库相关的那部分实体关系图。
2 物理设计:
系统设计人员进行表结构设计。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。系统设计人员要对表结构进行规范化处理。
2 安全性设计:
系统设计人员要提高系统的安全性,应当从“管理”和“设计”两方面着手。这里仅考虑数据库的安全性设计。用户只能用账 登录到应用软件,通过应用软件访问数据,而没有其他途径可以操作数据库。对用户账 的密码进行加密处理,确保在任何地方都不会出现密码的明文。确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。
2 设计优化:
分析并优化数据库的效率,尽可能地“提高处理速度”并且“降低数据库占用的空间”。分析效率的瓶颈,找出优化对象(目标),并确定优先级。当优化对象(目标)之间存在对抗时,给出折衷方案,给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。
2 撰写数据库设计文档:
系统设计人员利用PowerDesigner工具撰写《数据库设计说明书》。
u 对数据库设计进行评审:
数据库设计结束之后,产生的《数据库设计说明书》,项目经理就要组织同行专家等所有相关人员对设计成果进行评审;评审不通过,系统设计人员要重新修改。
2.4.3 详细设计
数据库设计评审通过后,系统设计人员进行详细设计,详细设计主要是指对模块的功能进行设计。详细设计的步骤包括:
u 模块设计:
2 模块设计准备:
系统设计人员阅读需求文档和《概要设计说明书》文档,明确模块设计任务。准备相关的设计工具和资料。确定本软件的编程规范,确保模块设计文档的风格与代码的风格保持一致。
2 模块设计:
模块设计一般要经历“接口与属性设计 → 数据结构与算法设计”等步骤,通常需要迭代进行。面向对象软件开发中,模块是与包对应的,模块设计的工作是对模块中的类方法、类属性和类关系进行设计。模块设计要视问题复杂性以及所采用的开发工具而定,要确定每个模块的主要接口、数据结构与算法或者类,要能够清楚地指导模块编程。
2 撰写模块设计文档:
系统设计人员根据指定的模板撰写《详细设计说明书》。
u 对详细设计文档进行评审:
详细设计结束之后,产生的《详细设计说明书》,项目经理就要组织同行专家及开发人员等所有相关人员对关键点的设计成果进行评审;评审不通过,系统设计人员要重新修改。
2.4.4 编码实现
2 开发人员依据《详细设计说明书》的内容进行代码编写工作。
2 开发人员要完全按照《编码规范》,套用界面原型(系统开发原型Demo)进行模块功能编码。
2 数据库开发人员根据《数据库设计说明书》要求,对数据库对象(过程、函数、触发器等)进行编码实现。
在编写完成后,开发人员必须对自己的代码进行必要的走查和自测,保证提交代码的质量。
2.4.5 代码走查
2 代码走查人员根据《项目进度中》的“编码实现”任务计划内容进行代码走查工作;
2 代码走查人员根据《详细设计说明书》、《数据库设计规范》、《编码规范》要求进行数据库脚本、模块代码的走查工作。检查的内容包括:
l 数据库对象代码(如:函数、存储过程、触发器等)是否满足数据库实现的功能要求?
l 模块代码(如:类、界面代码等)是否满足《详细设计说明书》中要求实现的功能要求?
l 数据库对象或模块代码是否符合规范?如:命名、注释、循环语句、判断语句、格式(换行、格式)等;语句的执行性能是否优化、是否有对异常情况的处理机制(健壮性)、注释是否清晰及与代码内容匹配等;
2 代码走查是在技术人员之间交叉进行,走查的形式不限,可以是正式的(类似正式评审的方式),也可以是非正式的(类似个人评审的方式),由项目经理根据项目的实际情况自由选择;代码走查结果记录在《代码走查检查单》中,并由专人负责跟踪监督。
2.4.6 单元测试
对产品核心组件有条件地进行单元测试。
2.4.7 编写支持文档
编码实现及代码走查结束后,根据《项目计划》分配的人员进行软件支持文档的编写,最终生成《用户操作手册》、《运行维护手册》。支持文档编写完毕后,须经正式或非正式的技术评审。支持文档的内容可以和用户进行协商确定,支持文档应编写的内容有:
2 产品的安装部署
2 用户的功能操作
2 产品的维护方法
2 联机帮助
2.5 输出
2 《技术解决方案》
2 《概要设计说明书》
2 《数据库设计说明书》;
2 《详细设计说明书》;
2 模块代码/数据库代码;
2 《用户操作手册》;
2 《运行维护手册》。
2.6 出口准则
所有产出文档已评审通过,代码走查完毕,所有缺陷均已修复。
2.7 过程度量
№ |
度量点 |
执行人 |
度量时机|频率 |
存储位置 |
M-1 |
概要设计的工作量 |
项目经理 |
项目例会 PP计划中里程碑的时间点 |
项目周 里程碑 告 |
M-2 |
数据库设计的工作量 |
项目经理 |
项目例会 PP计划中里程碑的时间点 |
项目周 里程碑 告 |
M-3 |
详细设计的工作量 |
项目经理 |
项目例会 PP计划中里程碑的时间点 |
项目周 里程碑 告 |
M-4 |
编码实现工作量 |
项目经理 |
项目例会 PP计划中里程碑的时间点 |
项目周 里程碑 告 |
M-5 |
支持文档编写工作量 |
项目经理 |
项目例会 PP计划中里程碑的时间点 |
项目周 里程碑 告 |
2.8 裁剪说明
裁剪对象 |
类型(过程活动或工作产品) |
裁减要素(增加、删除、修改) |
裁减条件 |
活动 |
详细设计 |
删除 |
除了系统管理部分外,如果功能点少于10个。 |
3. 相关指南
2 《JAVA编码规范》
2 《界面设计规范》
2 《数据库设计规范》
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!