资源描述
第11章 系统设计 2
11.1 介绍 2
11.2 用户需求调查 3
11.2.1 目标 3
11.2.2 角色和职责 3
11.2.3 开启准则 3
11.2.4 输入 3
11.2.5 关键步骤 3
[Step1] 设计准备 3
[Step2] 确定影响系统设计约束原因 4
[Step3] 确定设计策略 4
[Step4] 系统分解和设计 4
[Step5] 撰写体系结构设计文档 4
[Step6] 体系结构设计评审 5
[后续活动] 5
11.2.6 输出 5
11.2.7 结束准则 5
11.2.8 度量 5
11.3 用户界面设计 5
11.3.1 目标 5
11.3.2 角色和职责 5
11.3.3 开启准则 6
11.3.4 输入 6
11.3.5 关键步骤 6
[Step1] 设计准备 6
[Step2] 用户界面设计 7
[Step3] 撰写用户界面设计文档 7
[Step4] 用户界面设计评审 7
[后续活动] 8
11.3.6 输出 8
11.3.7 结束准则 8
11.3.8 度量 8
11.4 数据库设计 8
11.4.1 目标 8
11.4.2 角色和职责 8
11.4.3 开启准则 8
11.4.4 输入 9
11.4.5 关键步骤 9
[Step1] 设计准备 9
[Step2] 数据库设计 9
[Step3] 撰写数据库设计文档 10
[Step4] 数据库设计评审 11
[后续活动] 11
11.4.6 输出 11
11.4.7 结束准则 11
11.4.8 度量 11
11.5 模块设计 12
11.5.1 目标 12
11.5.2 角色和职责 12
11.5.3 开启准则 12
11.5.4 输入 12
11.5.5 关键步骤 12
[Step1] 设计准备 13
[Step2] 模块设计 13
[Step3] 撰写模块设计文档 13
[Step4] 模块设计评审 13
[后续活动] 14
11.5.6 输出 14
11.5.7 结束准则 14
11.5.8 度量 14
11.6 实施提议 14
第11章 系统设计
系统设计(System Design, SD)是指设计软件系统体系结构、用户界面、数据库、模块等,从而在需求和代码之间建立桥梁,指导开发人员去实现能满足用户需求软件产品。
系统设计过程域是SPP模型关键组成部分。本规范叙述了系统设计过程域四个关键规程:
² 体系结构设计 [SPP-PROC-SD-ARCHITECTURE]
² 用户界面设计 [SPP-PROC-RM-UI]
² 数据库设计 [SPP-PROC-RM-DATABASE]
² 模块设计 [SPP-PROC-RM-MODULE]
上述每个规程“目标”、“角色和职责”、“开启准则”、“输入”、“关键步骤”、“输出”、“完成准则”和“度量”均已定义。
本规范适适用于中国IT企业软件研发项目。提议用户依据本身情况(如商业目标、研发实力等)合适地修改本规范,然后推广使用。
11.1 介绍
系统设计过程域分为两个阶段:高层设计阶段和具体设计阶段。
高层设计阶段关键是软件系统体系结构设计。具体设计阶段关键是用户界面设计、数据库设计和模块设计,图11-1所表示。
需求开发
高层设计阶段
体系结构设计
数据库设计
用户界面设计
模块设计
实现和测试
具体设计阶段
图11-1 系统设计过程域示意图
系统设计过程域产生关键文档有:
² 《体系结构设计汇报》,模板见 [SPP-TEMP-SD-ARCHITECTURE]。
² 《用户界面设计汇报》,模板见 [SPP-TEMP-SD-UI]。
² 《数据库设计汇报》,模板见 [SPP-TEMP-SD-DATABASE]。
² 《模块设计汇报》,模板见 [SPP-TEMP-SD-MODULE]。
11.2 用户需求调查体系结构设计
11.2.1 目标
l 分析和设计软件体系结构。经过系统分解,确定子系统功效和子系统之间关系,和模块功效和模块之间关系,产生《体系结构设计汇报》。
11.2.2 角色和职责
l 项目经理指定若干名开发人员从事体系结构设计(以下称为体系结构设计人员)。
11.2.3 开启准则
l 体系结构设计人员已经确定。
11.2.4 输入
l 需求文档如《产品需求规格说明书》
11.2.5 关键步骤
体系结构设计步骤图11-2所表示。
Step3.
确定
设计
策略
Step2.
确定
约束
原因
Step1.
设计
准备
Step4.
系统
分解
设计
Step6.
设计
评审
Step5.
撰写
文档
图11-2 体系结构设计步骤
[Step1] 设计准备
l 项目经理或技术责任人分配系统设计任务,包含体系结构设计、模块设计、用户界面设计、数据库设计等。本活动可能产生一份阶段性开发计划,如《系统设计计划》,视工作量而定。
l 体系结构设计人员阅读需求文档,明确设计任务。
l 体系结构设计人员准备相关设计工具(如Rational Rose)和资料。
[Step2] 确定影响系统设计约束原因
l 需求约束。体系结构设计人员从需求文档如《软件需求规格说明书》中提取需求约束,比如:
² 本系统应该遵照标准或规范
² 软件、硬件环境(包含运行环境和开发环境)约束
² 接口/协议约束
² 用户界面约束
² 软件质量约束,如正确性、健壮性、可靠性、效率(性能)、易用性、清楚性、安全性、可扩展性、兼容性、可移植性等等。
l 隐含约束。有部分假设或依靠并没有在需求文档中明确指出,但可能会对系统设计产生影响,设计人员应该尽可能地在此处说明。比如对用户教育程度、计算机技能部分假设或依靠,对支撑本系统软件硬件假设或依靠等。
[Step3] 确定设计策略
l 体系结构设计人员依据产品需求和发展战略,确定设计策略(Design Strategy)。比如:
² 扩展策略。说明为了方便本系统在未来扩展功效,现在有什么方法。
² 复用策略。说明本系统在目前和未来复用策略。
² 折衷策略。说明当两个目标难以同时优化时怎样折衷,比如“时-空”效率折衷,复杂性和实用性折衷。
[Step4] 系统分解和设计
l 体系结构设计人员:
² 将系统分解为若干子系统,确定每个子系统功效和子系统之间关系。
² 将子系统分解为若干模块,确定每个模块功效和模块之间关系。
² 确定系统开发、测试、运行所需软硬件环境。
[Step5] 撰写体系结构设计文档
l 体系结构设计人员依据指定模板撰写《体系结构设计汇报》,关键内容包含:
² 软件系统概述
² 影响设计约束原因
² 设计策略
² 系统总体结构
² 子系统结构和模块功效
² 开发、测试、运行所需软硬件环境
[Step6] 体系结构设计评审
l 体系结构设计人员邀请同行教授、开发人员对体系结构进行正式技术评审,评审步骤请参考 [SPP-PROC-TR-FTR]。
l 体系结构评审关键不是“对还是错”,而是“好还是差”。关键评审要素包含:
² 适宜性。考察该体系结构是否适合于产品需求,是否可在预定计划内实现。
² 系统综合能力(Capability)。比如“时-空”效率(性能,容量等),可扩展性,可管理性(可维护性),可复用性,安全性等等,视产品特征而定。
[后续活动]
l 体系结构设计完成后进入具体设计阶段(用户界面设计、数据库设计、模块设计等)。
11.2.6 输出
l 《体系结构设计汇报》
11.2.7 结束准则
l 《体系结构设计汇报》已经完成,而且经过了技术评审。
11.2.8 度量
l 体系结构设计人员统计工作量和文档规模,汇报给项目经理。
11.3 用户界面设计
11.3.1 目标
l 设计软件用户界面,产生《用户界面设计汇报》。
l 制作用户界面资源图像、图标或界面专用组件等。
11.3.2 角色和职责
l 项目经理指定若干名开发人员从事用户界面设计(以下称为界面设计人员)。
l 假如可能话,邀请用户或美工人员帮助设计用户界面。
11.3.3 开启准则
l 需求文档已经完成。
l 体系结构设计已经完成。
11.3.4 输入
l 需求文档
l 体系结构设计文档
11.3.5 关键步骤
用户界面设计步骤图11-3所表示。
迭代
Step2. 界面设计
Step4.
设计
评审
Step3.
撰写
文档
Step1.
设计
准备
2.3细化
2.2原型评定
2.1原型创作
图11-3 体系结构设计步骤
[Step1] 设计准备
l 界面设计人员阅读需求文档和体系结构设计文档,明确界面设计任务。
l 界面设计人员和用户交流,了解用户工作习惯和她们对界面见解。
l 界面设计人员准备相关设计工具和资料,搜集或创作基础界面资源图像、图标和通用组件。
l 界面设计人员确定本软件用户界面设计规则(或指南),关键包含:
² 优异界面特征或通用设计标准;
² 软件主界面(如主窗口、主页面)设计规则;
² 软件子界面(如子窗口、子页面)设计规则;
² 标准控件使用规则;
² 美学设计规则。
[Step2] 用户界面设计
用户界面设计通常要经历“原型创作—>原型评定->细化”等步骤,通常迭代进行。
l [Step2.1] 原型创作
界面设计人员创作界面原型:
² 先徒手画,或用Visio 等工具绘制界面视图;
² 再用软件开发工具实现能够运行原型。
l [Step2.2] 原型评定
² 界面设计人员邀请用户和同行们评定界面原型,聚集意见,立即改善。
l [Step2.3] 细化
² 界面设计人员细化界面原型,比如美工处理,添加细节等。
补充说明:开发人员在本阶段无须关心界面原型代码质量,因为界面原型可能不停地被修改甚至被抛弃。
[Step3] 撰写用户界面设计文档
l 用户界面定型以后,界面设计人员依据指定模板撰写《用户界面设计汇报》,关键内容包含:
² 应该遵照界面设计规范;
² 界面关系图和工作步骤图;
² 主界面视图、功效说明、操作方法;
² 子界面视图、功效说明、操作方法;
² 美学设计说明。
[Step4] 用户界面设计评审
l 界面设计人员邀请用户和同行们对定型后界面进行正式技术评审,尽最大努力使界面变得愈加美观、易用。评审步骤请参考 [SPP-PROC-TR-FTR]。
l 用户界面关键评审要素包含:
² 适宜性
² 简练易用
² 一致性
² 美观
² 动态反馈
² 功效屏蔽和犯错处理
² 用户控制
² 国际化(兼容性和可移植性)
² 适应性(针对多种用户)
[后续活动]
l 在系统设计工作结束以后,开发人员编写界面代码,并和用户一起经过多种路径测试界面,从而不停地完善用户界面。(请参考相关测试文档)
l 界面设计人员总结经验教训,不停地完善适适用于本机构“用户界面设计指南”。
11.3.6 输出
l 《用户界面设计汇报》
11.3.7 结束准则
l 《用户界面设计汇报》已经完成,界面原型已经经过评审。
11.3.8 度量
l 界面设计人员统计工作量和文档规模,汇报给项目经理。
11.4 数据库设计
11.4.1 目标
l 设计软件数据库,产生《数据库设计汇报》。
11.4.2 角色和职责
l 项目经理指定若干名开发人员从事数据库设计(以下称为数据库设计人员)。
11.4.3 开启准则
l 需求文档已经完成。
l 体系结构设计已经完成。
11.4.4 输入
l 需求文档
l 体系结构设计文档
11.4.5 关键步骤
数据库设计步骤图11-4所表示。
迭代
Step2. 数据库设计
Step3.
撰写
文档
2.4优化
2.3安全性设计
2.2物理设计
2.1逻辑设计
Step1.
设计
准备
Step4.
设计
评审
图11-4 数据库设计步骤
[Step1] 设计准备
l 数据库设计人员阅读需求文档和体系结构设计文档,明确数据库设计任务。
l 数据库设计人员准备相关设计工具和资料。
l 数据库设计人员确定本软件数据库设计规则(或指南),关键包含:
² 数据库命名规则
² 逻辑设计规则(或指南)
² 物理设计规则(或指南)
² 安全性设计规则(或指南)
² 优化规则(或指南)
² 数据库管理和维护规则(或指南)
[Step2] 数据库设计
数据库设计通常要经历“逻辑设计—>物理设计->安全性设计->优化”等步骤,通常要迭代进行。
l [Step2.1] 逻辑设计
² 数据库设计人员依据需求文档,创建和数据库相关那部分实体关系图(ERD)。假如采取面向对象方法(OOAD),这里实体相当于类(class)。
l [Step2.2] 物理设计
² 设计表结构。通常地,实体对应于表,实体属性对应于表列,实体之间关系成为表约束。逻辑设计中实体大部分能够转换成物理设计中表,不过它们并不一定是一一对应。数据库表参考格式如表11-1所表示。
² 对表结构进行规范化处理(第三范式)。
表名
功效说明
列名
数据类型(精度范围)
空/非空
约束条件
补充说明
表11-1 数据库表参考格式
l [Step2.3] 安全性设计
提升软件系统安全性应该从“管理”和“设计”两方面着手。这里仅考虑数据库安全性设计。
² 用户只能用帐号登陆到应用软件,经过应用软件访问数据库,而没有其它路径能够操作数据库。
² 对用户帐号密码进行加密处理,确保在任何地方全部不会出现密码明文。
² 确定每个角色对数据库表操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务权限,不多也不少。在应用时再为用户分配角色,则每个用户权限等于她所兼角色权限之和。
l [Step2.4] 优化
分析并优化数据库“时-空”效率,尽可能地“提升处理速度”而且“降低数据占用空间”。
² 分析“时-空”效率瓶颈,找出优化对象(目标),并确定优先级。
² 当优化对象(目标)之间存在对抗时,给出折衷方案。
² 给出优化具体方法,比如优化数据库环境参数,对表格进行反规范化处理等。
[Step3] 撰写数据库设计文档
l 数据库设计人员依据指定模板撰写《数据库设计汇报》,关键内容包含:
² 数据库环境说明
² 数据库命名规则
² 逻辑设计
² 物理设计
² 安全性设计
² 优化
² 数据库管理和维护说明
[Step4] 数据库设计评审
l 数据库设计人员邀请同行们对数据库进行正式技术评审,评审步骤请参考 [SPP-PROC-TR-FTR]。
l 数据库关键评审要素包含:
² 正确性、完整性、一致性
² 安全性
² “时-空”效率
[后续活动]
l 在系统设计工作结束以后,开发人员将编写和数据库相关代码,并和用户一起经过多种路径测试数据库,从而不停地完善数据库。(请参考相关测试文档)
l 数据库设计人员总结经验教训,不停地完善适适用于本机构《数据库设计指南》。
l 软件交付给用户后,由用户管理和维护数据库。
11.4.6 输出
l 《数据库设计汇报》
11.4.7 结束准则
l 《数据库设计汇报》已经完成,而且经过了技术评审。
11.4.8 度量
l 数据库设计人员统计工作量和文档规模,汇报给项目经理。
11.5 模块设计
11.5.1 目标
l 设计软件全部模块关键接口和属性、数据结构和算法,产生《模块设计汇报》。
11.5.2 角色和职责
l 项目经理指定若干名开发人员从事模块设计(以下称为模块设计人员),模块设计人员将在实现阶段编写这些模块代码。
11.5.3 开启准则
l 需求文档已经完成。
l 体系结构设计已经完成。
11.5.4 输入
l 需求文档
l 体系结构设计文档
11.5.5 关键步骤
模块设计步骤图11-5所表示。
Step2. 模块设计
2.1接口和属性设计
Step4.
设计
评审
Step3.
撰写
文档
Step1.
设计
准备
迭代
2.2数据结构
和算法设计
图11-5 模块设计步骤
[Step1] 设计准备
l 模块设计人员阅读需求文档和体系结构设计文档,明确模块设计任务。
l 模块设计人员准备相关设计工具和资料。
l 模块设计人员确定本软件编程规范,确保模块设计文档风格和代码风格保持一致。
[Step2] 模块设计
模块设计通常要经历“接口和属性设计—>数据结构和算法设计”等步骤,而且通常需要反复迭代。
提议:因为现代软件开发工具越来越优异,模块具体设计和编程能够很好地融合一起,而且效率相当高,有些工具甚至含有代码自动生成功效。所以在系统设计阶段,模块设计到底要具体到什么地步,应该视问题复杂性和所采取开发工具而定。通常地,只要确定了每个模块关键接口、数据结构和算法,能够清楚地指导模块编程即可。总而言之,无须花太多时间用于设计模块细节。
l [Step2.1] 接口和属性设计
² 模块设计人员设计每个模块关键接口和属性。假如采取面向对象方法(OOAD),相当于设计类函数和组员变量。
l [Step2.2] 数据结构和算法设计
² 模块设计人员设计每个模块数据结构和算法(假如存在话)。
[Step3] 撰写模块设计文档
l 模块设计人员依据指定模板撰写《模块设计汇报》,关键内容包含:
² 模块汇总
² 每个模块关键接口和属性
² 每个模块数据结构和算法(假如存在话)
[Step4] 模块设计评审
l 模块设计人员邀请同行们对模块设计文档进行正式技术评审或非正式技术评审(由技术责任人决定采取何种评审方法),评审步骤请参考 [SPP-PROC-TR]。
l 模块关键评审要素包含:
² 信息隐藏(独立性)
² 强内聚、低耦合
² 数据结构和算法效率
[后续活动]
l 模块代码实现能够和模块设计同时进行,也能够在模块设计完成以后进行。
11.5.6 输出
l 《模块设计汇报》
11.5.7 结束准则
l 《模块设计汇报》已经完成,而且经过了技术评审。
11.5.8 度量
l 模块设计人员统计工作量和文档规模,汇报给项目经理。
11.6 实施提议
l 先对系统设计人员进行“专题”培训,让她们掌握必需系统设计技能。
l 因为中国绝大多数大学不开设“用户界面设计课程”,这造成大部分软件开发人员不善于设计用户界面。项目开发小组应该设法邀请用户界面设计教授参与(或指导)本软件界面设计。
l 系统设计人员能够依据产品特征,合适地修改《体系结构设计汇报》、《用户界面设计汇报》、《数据库设计汇报》和《模块设计汇报》模板。
l 对系统设计过程中产生全部有价值文档进行配置管理。
机构图标
{ 项目名称 }
体系结构设计汇报
文件状态:
[√] 初稿
[ ] 正式公布
[ ] 正在修改
文件标识:
Company-Project-SD-ARCHITECTURE
目前版本:
X.Y
作 者:
完成日期:
Year-Month-Day
机构公开信息
版 本 历 史
版本/状态
作者
参与者
起止日期
备注
目 录
0. 文档介绍 4
0.1 文档目标 4
0.2 文档范围 4
0.3 读者对象 4
0.4 参考文件 4
0.5 术语和缩写解释 4
1. 系统概述 5
2. 设计约束 5
3. 设计策略 5
4. 系统总体结构 5
5. 子系统N结构和功效 6
6. 开发环境配置 6
7. 运行环境配置 6
8. 测试环境配置 6
9. 其它 6
0. 文档介绍
0.1 文档目标
0.2 文档范围
0.3 读者对象
0.4 参考文件
提醒:列出本文档全部参考文件(能够是非正式出版物),格式以下:
[标识符] 作者,文件名称,出版单位(或归属单位),日期
比如:
[AAA] 作者,《立项提议书》,机构名称,日期
[SPP-PROC-SD] SEPG,系统设计规范,机构名称,日期
0.5 术语和缩写解释
缩写、术语
解 释
SPP
精简并行过程,Simplified Parallel Process
SD
系统设计,System Design
…
1. 系统概述
提醒:(1)说明本系统“是什么”,(2)描述本系统关键功效。
2. 设计约束
提醒:
(1)需求约束。体系结构设计人员从需求文档(如《用户需求说明书》和《软件需求规格说明书》)中提取需求约束,比如:
² 本系统应该遵照标准或规范
² 软件、硬件环境(包含运行环境和开发环境)约束
² 接口/协议约束
² 用户界面约束
² 软件质量约束,如正确性、健壮性、可靠性、效率(性能)、易用性、清楚性、安全性、可扩展性、兼容性、可移植性等等。
(2)隐含约束。有部分假设或依靠并没有在需求文档中明确指出,但可能会对系统设计产生影响,设计人员应该尽可能地在此处说明。比如对用户教育程度、计算机技能部分假设或依靠,对支撑本系统软件硬件假设或依靠等。
3. 设计策略
提醒:体系结构设计人员依据产品需求和发展战略,确定设计策略(Design Strategy)。比如:
² 扩展策略。说明为了方便本系统在未来扩展功效,现在有什么方法。
² 复用策略。说明本系统在目前和未来复用策略。
² 折衷策略。说明当两个目标难以同时优化时怎样折衷,比如“时-空”效率折衷,复杂性和实用性折衷。
4. 系统总体结构
提醒:
(1)将系统分解为若干子系统,绘制物理图和逻辑图,说明各子系统关键功效。
(2)说明“怎样”和“为何”(how and why)如此分解系统。
(3)说明各子系统怎样协调工作,从而实现原系统功效。
5. 子系统N结构和功效
提醒:
(1)将子系统N分解为模块(Module),绘制逻辑图(假如物理图和逻辑图不一样话,应该绘制物理图),说明各模块关键功效。
(2)说明“怎样”和“为何”(how and why)如此分解子系统N。
(3)说明各模块怎样协调工作,从而实现子系统N功效。
6. 开发环境配置
提醒:说明本系统应该在什么样环境下开发,有什么强制要求和提议?
类别
标准配置
最低配置
计算机硬件
软件
网络通信
其它
7. 运行环境配置
提醒:说明本系统应该在什么样环境下运行,有什么强制要求和提议?
类别
标准配置
最低配置
计算机硬件
软件
网络通信
其它
8. 测试环境配置
提醒:说明本系统应该在什么样环境下测试,有什么强制要求和提议?
(1)通常地,单元测试、集成测试环境和开发环境相同。
(2)通常地,系统测试、验收测试环境和运行环境相同或相同(愈加严格)。
9. 其它
机构图标
{ 项目名称 }
用户界面设计汇报
文件状态:
[√] 初稿
[ ] 正式公布
[ ] 正在修改
文件标识:
Company-Project-SD-UI
目前版本:
X.Y
作 者:
完成日期:
Year-Month-Day
机构公开信息
版 本 历 史
版本/状态
作者
参与者
起止日期
备注
目 录
0. 文档介绍 4
0.1 文档目标 4
0.2 文档范围 4
0.3 读者对象 4
0.4 参考文件 4
0.5 术语和缩写解释 4
1. 应该遵照界面设计规范 5
2. 界面关系图和工作步骤图 5
3. 主界面 5
4. 子界面A 5
5. 子界面B 5
6. 美学设计 6
7. 界面资源设计 6
8. 其它 6
0. 文档介绍
0.1 文档目标
0.2 文档范围
0.3 读者对象
0.4 参考文件
提醒:列出本文档全部参考文件(能够是非正式出版物),格式以下:
[标识符] 作者,文件名称,出版单位(或归属单位),日期
比如:
[AAA] 作者,《立项提议书》,机构名称,日期
[SPP-PROC-SD] SEPG,系统设计规范,机构名称,日期
0.5 术语和缩写解释
缩写、术语
解 释
SPP
精简并行过程,Simplified Parallel Process
SD
系统设计,System Design
…
1. 应该遵照界面设计规范
提醒:结适用户需求和机构《软件用户界面设计指南》,叙述本软件用户界面设计应该遵照规范(标准、提议等)。
2. 界面关系图和工作步骤图
提醒:
(1)给全部界面视图分配唯一标识符。
(2)绘制各个界面之间关系图和工作步骤图。
3. 主界面
提醒:
(1)绘制主界面视图;
(2)说明主界面中全部对象功效和操作方法;
4. 子界面A
提醒:
(1)绘制子界面A视图;
(2)说明子界面A中全部对象功效和操作方法;
5. 子界面B
……
6. 美学设计
提醒:
(1)叙述界面布局及理由
(2)叙述界面色彩及理由
7. 界面资源设计
7.1 图标资源
7.2 图像资源
7.3 界面组件
8. 其它
机构图标
{ 项目名称 }
数据库设计汇报
文件状态:
[√] 初稿
[ ] 正式公布
[ ] 正在修改
文件标识:
Company-Project-SD-DATABASE
目前版本:
X.Y
作 者:
完成日期:
Year-Month-Day
Company Information
版 本 历 史
版本/状态
作者
参与者
起止日期
备注
目 录
0. 文档介绍 4
0.1 文档目标 4
0.2 文档范围 4
0.3 读者对象 4
0.4 参考文件 4
0.5 术语和缩写解释 4
1. 数据库环境说明 5
2. 数据库命名规则 5
3. 逻辑设计 5
4. 物理设计 5
4.0 表汇总 5
4.1 表A 6
4.n 表N 6
5. 安全性设计 6
5.1 预防用户直接操作数据库方法 6
5.2 用户帐号密码加密方法 6
5.3 角色和权限 7
6. 优化 7
7. 数据库管理和维护说明 7
0. 文档介绍
0.1 文档目标
0.2 文档范围
0.3 读者对象
0.4 参考文件
提醒:列出本文档全部参考文件(能够是非正式出版物),格式以下:
[标识符] 作者,文件名称,出版单位(或归属单位),日期
比如:
[AAA] 作者,《立项提议书》,机构名称,日期
[SPP-PROC-SD] SEPG,系统设计规范,机构名称,日期
0.5 术语和缩写解释
缩写、术语
解 释
SPP
精简并行过程,Simplified Parallel Process
SD
系统设计,System Design
…
1. 数据库环境说明
提醒:
(1)说明所采取数据库系统,设计工具,编程工具等
(2)具体配置
2. 数据库命名规则
提醒:
(1)完整而且清楚说明本数据库命名规则。
(2)假如本数据库命名规则和机构标准不完全一致话,请作出解释。
3. 逻辑设计
提醒:数据库设计人员依据需求文档,创建和数据库相关那部分实体关系图(ERD)。假如采取面向对象方法(OOAD),这里实体相当于类(class)。
4. 物理设计
提醒:
(1)关键是设计表结构。通常地,实体对应于表,实体属性对应于表列,实体之间关系成为表约束。逻辑设计中实体大部分能够转换成物理设计中表,不过它们并不一定是一一对应。
(2)对表结构进行规范化处理(第三范式)。
4.0 表汇总
表名
功效说明
表A
表B
表C
4.1 表A
表名
列名
数据类型(精度范围)
空/非空
约束条件
补充说明
4.n 表N
表名
列名
数据类型(精度范围)
空/非空
约束条件
补充说明
5. 安全性设计
提醒:提升软件系统安全性应该从“管理”和“设计”两方面着手。这里仅考虑数据库安全性设计。
5.1 预防用户直接操作数据库方法
提醒:用户只能用帐号登陆到应用软件,经过应用软件访问数据库,而没有其它路径操作数据库。
5.2 用户帐号密码加密方法
提醒:对用户帐号密码进行加密处理,确保在任何地方全部不会出现密码明文。
5.3 角色和权限
提醒:确定每个角色对数据库表操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务权限,不多也不少。在应用时再为用户分配角色,则每个用户权限等于她所兼角色权限之和。
角色
能够访问表和列
操作权限
角色A
角色B
6. 优化
提醒:分析并优化数据库“时-空”效率,尽可能地“提升处理速度”而且“降低数据占用空间”。
(1)分析“时-空”效率瓶颈,找出优化对象(目标),并确定优先级。
(2)当优化对象(目标)之间存在对抗时,给出折衷方案。
(3)给出优化具体方法,比如优化数据库环境参数,对表格进行反规范化处理等。
优先级
优化对象(目标)
方法
7. 数据库管理和维护说明
提醒:在设计数据库时候,立即给出管理和维护本数据库方法,有利于未来撰写出正确完备用户手册。
机构图标
{ 项目名称 }
模块设计汇报
文件状态:
[√] 初稿
[ ] 正式公布
[ ] 正在修改
文件标识:
Company-Project-SD-MODULE
目前版本:
X.Y
作 者:
完成日期:
Year-Month-Day
机构公开信息
版 本 历 史
版本/状态
作者
参与者
起止日期
备注
目 录
0. 文档介绍 4
0.1 文档目标 4
0.2 文档范围 4
0.3 读者对象 4
0.4 参考文件 4
0.5 术语和缩写解释 4
1. 模块命名规则 5
2. 模块汇总 5
2.1 模块汇总表 5
2.2 模块关系图 5
3. 子系统A模块设计 6
3.n 模块A-n 6
4. 子系统B模块设计 6
4.n 模块B-n 6
5. 其它 6
0. 文档介绍
0.1 文档目标
0.2 文档范围
0.3 读者对象
0.4 参考文件
提醒:列出本文档全部参考文件(能够是非正式出版物),格式以下:
[标识符] 作者,文件名称,出版单位(或归属单位),日期
比如:
[AAA] 作者,《立项提议书》,机构名称,日期
[SPP-PROC-SD] SEPG,系统设计规范,机构名称,日期
0.5 术语和缩写解释
缩写、术语
解 释
SPP
精简并行过程,Simplified Parallel Process
SD
系统设计,System Design
…
1. 模块命名规则
提醒:模块设计人员确定本软件模块命名规则(比如类、函数、变量等),确保模块设计文档风格和代码风格保持一致。能够从机构编程规范中摘取或引用(假如存在话)。
2. 模块汇总
2.1 模块汇总表
提醒:这里模块是指相对独立软件设计单元,比如对象类、函数包等等。
子系统A
模块名称
功效简述
…
子系统B
模块名称
功效简述
…
2.2 模块关系图
提醒:参考体系结构设计文档
3. 子系统A模块设计
3.n 模块A-n
模块名称
功效描述
接口和属性
提醒:用专业设计(开发)工具来设计本模块接口和属性,说明函数功效、输入参数、输出参数、返回值等。此处粘贴即可。
数据结构
和算法
提醒:不管是采取经典还是专用数据结构和算法,全部应该作必需描述。不仅用于指导程序实现,还能够让大家清楚地了解该对象类是怎样设计。
补充说明
4. 子系统B模块设计
4.n 模块B-n
模块名称
功效描述
接口和属性
提醒:用专业设计(开发)工具来设计本模块接口和属性,说明函数功效、输入参数、输出参数、返回值等。此处粘贴即可。
数据结构
和算法
提醒:不管是采取经典还是专用数据结构和算法,全部应该作必需描述。不仅用于指导程序实现,还能够让大家清楚地了解该对象类是怎样设计。
补充说明
5. 其它
展开阅读全文