软件产品设计说明书.docx

上传人:小飞机 文档编号:4297573 上传时间:2023-04-14 格式:DOCX 页数:17 大小:277.29KB
返回 下载 相关 举报
软件产品设计说明书.docx_第1页
第1页 / 共17页
软件产品设计说明书.docx_第2页
第2页 / 共17页
软件产品设计说明书.docx_第3页
第3页 / 共17页
软件产品设计说明书.docx_第4页
第4页 / 共17页
软件产品设计说明书.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《软件产品设计说明书.docx》由会员分享,可在线阅读,更多相关《软件产品设计说明书.docx(17页珍藏版)》请在三一办公上搜索。

1、 项目名称 软件产品设计说明书文件状态: 草稿 正式发布 正在修改文件标识:Company-Project-PIM-PROPOSAL当前版本:作 者:完成日期:Year-Month-Day北京捷诺视讯数码科技有限公司Beijing General DVR Science & Technology 二零一零年五月版 本 历 史版本/状态作者参与者起止日期备注目录一、 设计介绍系统设计(System Design, SD)是指设计软件系统的体系结构、用户界面、数据库、模块等,从而在需求与代码之间建立桥梁,指导开发人员去实现能满足用户需求的软件产品。系统设计过程域是CMM模型的重要组成部分。本规范阐

2、述了系统设计过程域的四个主要规程: 体系结构设计 用户界面设计 数据库设计 模块设计上述每个规程的“目标”、“角色与职责”、“启动准则”、“输入”、“主要步骤”、“输出”、“完成准则”和“度量”均已定义。系统设计过程域分为两个阶段:高层设计阶段和详细设计阶段。高层设计阶段的重点是软件系统的体系结构设计。详细设计阶段的重点是用户界面设计、数据库设计和模块设计,如图所示。需求开发高层设计阶段体系结构设计数据库设计用户界面设计模块设计实现与测试详细设计阶段系统设计过程域示意图系统设计过程域产生的主要文档有: 体系结构设计报告。 用户界面设计报告。 数据库设计报告。 模块设计报告。二、 体系结构设计2

3、.1、 目的l 分析与设计软件的体系结构。通过系统分解,确定子系统的功能和子系统之间的关系,以及模块的功能和模块之间的关系,产生体系结构设计报告。2.2、 角色与职责l 项目经理指定若干名开发人员从事体系结构设计(以下称为体系结构设计人员)。2.3、 启动准则l 体系结构设计人员已经确定。2.4、 输入l 需求文档如产品需求规格说明书2.5、 主要步骤体系结构设计流程如图所示。Step3. 确定设计策略Step2. 确定约束因素Step1. 设计准备Step4. 系统分解设计Step6. 设计评审Step5. 撰写文档体系结构设计流程2.5.1、 设计准备l 项目经理或者技术负责人分配系统设计

4、任务,包括体系结构设计、模块设计、用户界面设计、数据库设计等。本活动可能产生一份阶段性的开发计划,如系统设计计划,视工作量而定。l 体系结构设计人员阅读需求文档,明确设计任务。l 体系结构设计人员准备相关的设计工具(如Rational Rose)和资料。2.5.2、 确定影响系统设计的约束因素l 需求约束。体系结构设计人员从需求文档如软件需求规格说明书中提取需求约束,例如: 本系统应当遵循的标准或规范 软件、硬件环境(包括运行环境和开发环境)的约束 接口/协议的约束 用户界面的约束 软件质量的约束,如正确性、健壮性、可靠性、效率(性能)、易用性、清晰性、安全性、可扩展性、兼容性、可移植性等等。

5、l 隐含约束。有一些假设或依赖并没有在需求文档中明确指出,但可能会对系统设计产生影响,设计人员应当尽可能地在此处说明。例如对用户教育程度、计算机技能的一些假设或依赖,对支撑本系统的软件硬件的假设或依赖等。2.5.3、 确定设计策略l 体系结构设计人员根据产品的需求与发展战略,确定设计策略(Design Strategy)。例如: 扩展策略。说明为了方便本系统在将来扩展功能,现在有什么措施。 复用策略。说明本系统在当前以及将来的复用策略。 折衷策略。说明当两个目标难以同时优化时如何折衷,例如“时空”效率折衷,复杂性与实用性折衷。2.5.4、 系统分解与设计l 体系结构设计人员: 将系统分解为若干

6、子系统,确定每个子系统的功能以及子系统之间的关系。 将子系统分解为若干模块,确定每个模块的功能以及模块之间的关系。 确定系统开发、测试、运行所需的软硬件环境。2.5.5、 撰写体系结构设计文档l 体系结构设计人员根据指定的模板撰写体系结构设计报告,主要内容包括: 软件系统概述 影响设计的约束因素 设计策略 系统总体结构 子系统的结构与模块功能 开发、测试、运行所需的软硬件环境2.5.6、 体系结构设计评审l 体系结构设计人员邀请同行专家、开发人员对体系结构进行正式技术评审。l 体系结构评审的重点不是“对还是错”,而是“好还是差”。主要评审要素包括: 合适性。考察该体系结构是否适合于产品需求,是

7、否可在预定计划内实现。 系统的综合能力(Capability)。例如“时空”效率(性能,容量等),可扩展性,可管理性(可维护性),可复用性,安全性等等,视产品特征而定。2.5.7、 后续活动 l 体系结构设计完成后进入详细设计阶段(用户界面设计、数据库设计、模块设计等)。2.6、 输出l 体系结构设计报告2.7、 结束准则l 体系结构设计报告已经完成,并且通过了技术评审。2.8、 度量l 体系结构设计人员统计工作量以及文档的规模,汇报给项目经理。三、 用户界面设计3.1、 目的l 设计软件的用户界面,产生用户界面设计报告。l 制作用户界面的资源如图像、图标或者界面专用组件等。3.2、 角色与职

8、责l 项目经理指定若干名开发人员从事用户界面设计(以下称为界面设计人员)。l 如果可能的话,邀请用户或美工人员协助设计用户界面。3.3、 启动准则l 需求文档已经完成。l 体系结构设计已经完成。3.4、 输入l 需求文档l 体系结构设计文档3.5、 主要步骤用户界面设计流程如图所示。迭代Step2. 界面设计Step4. 设计评审Step3. 撰写文档Step1. 设计准备细化原型评估原型创作体系结构设计流程3.5.1、 设计准备l 界面设计人员阅读需求文档和体系结构设计文档,明确界面设计任务。l 界面设计人员与用户交流,了解用户的工作习惯和他们对界面的看法。l 界面设计人员准备相关的设计工具

9、和资料,收集或创作基本的界面资源如图像、图标以及通用的组件。l 界面设计人员确定本软件的用户界面设计规则(或指南),主要包括: 优秀界面的特征或通用的设计原则; 软件主界面(如主窗口、主页面)的设计规则; 软件子界面(如子窗口、子页面)的设计规则; 标准控件的使用规则; 美学设计规则。3.5.2、 用户界面设计用户界面设计一般要经历“原型创作原型评估细化”等步骤,通常迭代进行。l 原型创作界面设计人员创作界面原型: 先徒手画,或者用Visio 等工具绘制界面的视图; 再用软件开发工具实现可以运行的原型。l 原型评估 界面设计人员邀请用户和同行们评估界面的原型,汇集意见,及时改进。l 细化 界面

10、设计人员细化界面原型,例如美工处理,添加细节等。补充说明:开发人员在本阶段不必关心界面原型的代码质量,因为界面原型可能不断地被修改甚至被抛弃。3.5.3、 撰写用户界面设计文档l 用户界面定型之后,界面设计人员根据指定的模板撰写用户界面设计报告,主要内容包括: 应当遵循的界面设计规范; 界面的关系图和工作流程图; 主界面的视图、功能说明、操作方式; 子界面的视图、功能说明、操作方式; 美学设计说明。3.5.4、 用户界面设计评审l 界面设计人员邀请用户和同行们对定型后的界面进行正式技术评审,尽最大努力使界面变得更加美观、易用。l 用户界面的主要评审要素包括: 合适性 简洁易用 一致性 美观 动

11、态反馈 功能屏蔽和出错处理 用户控制 国际化(兼容性和可移植性) 适应性(针对各种用户)3.5.5、 后续活动 l 在系统设计工作结束之后,开发人员编写界面的代码,并和用户一起通过各种途径测试界面,从而不断地完善用户界面。(请参考有关测试的文档)l 界面设计人员总结经验教训,不断地完善适用于本机构的“用户界面设计指南”。3.6、 输出l 用户界面设计报告3.7、 结束准则l 用户界面设计报告已经完成,界面原型已经通过评审。3.8、 度量l 界面设计人员统计工作量以及文档的规模,汇报给项目经理。四、 数据库设计4.1、 目的l 设计软件的数据库,产生数据库设计报告。4.2、 角色与职责l 项目经

12、理指定若干名开发人员从事数据库设计(以下称为数据库设计人员)。4.3、 启动准则l 需求文档已经完成。l 体系结构设计已经完成。4.4、 输入l 需求文档l 体系结构设计文档4.5、 主要步骤数据库设计流程如图所示。迭代Step2. 数据库设计Step3. 撰写文档优化安全性设计物理设计逻辑设计Step1. 设计准备Step4. 设计评审数据库设计流程4.5.1、 设计准备l 数据库设计人员阅读需求文档和体系结构设计文档,明确数据库设计任务。l 数据库设计人员准备相关的设计工具和资料。l 数据库设计人员确定本软件的数据库设计规则(或指南),主要包括: 数据库命名规则 逻辑设计规则(或指南) 物

13、理设计规则(或指南) 安全性设计规则(或指南) 优化规则(或指南) 数据库管理与维护规则(或指南)4.5.2、 数据库设计数据库设计一般要经历“逻辑设计物理设计安全性设计优化”等步骤,通常要迭代进行。l 逻辑设计 数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象方法(OOAD),这里实体相当于类(class)。l 物理设计 设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。数据库表的参考格式如表11-1所示。 对表结构进行规范化处理(第三范

14、式)。表名功能说明列名数据类型(精度范围)空/非空约束条件补充说明数据库表的参考格式l 安全性设计提高软件系统的安全性应当从“管理”和“设计”两方面着手。这里仅考虑数据库的安全性设计。 用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其它途径可以操作数据库。 对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。 确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。l 优化分析并优化数据库的“时空”效率,尽可能地“提高处理速度”并且“降低数据占用

15、的空间”。 分析“时空”效率的瓶颈,找出优化对象(目标),并确定优先级。 当优化对象(目标)之间存在对抗时,给出折衷方案。 给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。4.5.3、 撰写数据库设计文档l 数据库设计人员根据指定的模板撰写数据库设计报告,主要内容包括: 数据库环境说明 数据库的命名规则 逻辑设计 物理设计 安全性设计 优化 数据库管理与维护说明4.5.4、 数据库设计评审l 数据库设计人员邀请同行们对数据库进行正式技术评审。l 数据库的主要评审要素包括: 正确性、完整性、一致性 安全性 “时空”效率4.5.5、 后续活动 l 在系统设计工作结束之后,开发

16、人员将编写与数据库相关的代码,并和用户一起通过各种途径测试数据库,从而不断地完善数据库。(请参考有关测试的文档)l 数据库设计人员总结经验教训,不断地完善适用于本机构的数据库设计指南。l 软件交付给用户后,由用户管理与维护数据库。4.6、 输出l 数据库设计报告4.7、 结束准则l 数据库设计报告已经完成,并且通过了技术评审。4.8、 度量l 数据库设计人员统计工作量以及文档的规模,汇报给项目经理。五、 模块设计5.1、 目的l 设计软件所有模块的主要接口与属性、数据结构和算法,产生模块设计报告。5.2、 角色与职责l 项目经理指定若干名开发人员从事模块的设计(以下称为模块设计人员),模块设计

17、人员将在实现阶段编写这些模块的代码。5.3、 启动准则l 需求文档已经完成。l 体系结构设计已经完成。5.4、 输入l 需求文档l 体系结构设计文档5.5、 主要步骤模块设计流程如图所示。Step2. 模块设计接口与属性设计Step4. 设计评审Step3. 撰写文档Step1. 设计准备迭代数据结构与算法设计模块设计流程5.5.1、 设计准备l 模块设计人员阅读需求文档和体系结构设计文档,明确模块设计任务。l 模块设计人员准备相关的设计工具和资料。l 模块设计人员确定本软件的编程规范,确保模块设计文档的风格与代码的风格保持一致。5.5.2、 模块设计模块设计一般要经历“接口与属性设计数据结构

18、与算法设计”等步骤,并且通常需要反复迭代。建议:由于现代的软件开发工具越来越先进,模块的详细设计和编程可以很好地融合一起,而且效率相当高,有些工具甚至具有代码自动生成功能。所以在系统设计阶段,模块设计究竟要详细到什么地步,应当视问题复杂性以及所采用的开发工具而定。一般地,只要确定了每个模块的主要接口、数据结构与算法,能够清楚地指导模块编程即可。总之,不必花太多时间用于设计模块的细节。l 接口与属性设计 模块设计人员设计每个模块的主要接口与属性。如果采用面向对象方法(OOAD),相当于设计类的函数和成员变量。l 数据结构与算法设计 模块设计人员设计每个模块的数据结构与算法(如果存在的话)。5.5

19、.3、 撰写模块设计文档l 模块设计人员根据指定的模板撰写模块设计报告,主要内容包括: 模块汇总 每个模块的主要接口与属性 每个模块的数据结构与算法(如果存在的话)5.5.4、 模块设计评审l 模块设计人员邀请同行们对模块设计文档进行正式技术评审或者非正式技术评审(由技术负责人决定采用何种评审方式)。l 模块的主要评审要素包括: 信息隐藏(独立性) 强内聚、低耦合 数据结构与算法的效率5.5.5、 后续活动l 模块的代码实现可以与模块设计同步进行,也可以在模块设计完成之后进行。5.6、 输出l 模块设计报告5.7、 结束准则l 模块设计报告已经完成,并且通过了技术评审。5.8、 度量l 模块设计人员统计工作量以及文档的规模,汇报给项目经理。六、 实施建议l 先对系统设计人员进行“专题”培训,让他们掌握必要的系统设计技能。l 由于国内绝大多数的大学不开设“用户界面设计课程”,这导致大部分软件开发人员不善于设计用户界面。项目开发小组应当设法邀请用户界面设计专家参与(或指导)本软件的界面设计。l 系统设计人员可以根据产品的特征,适当地修改体系结构设计报告、用户界面设计报告、数据库设计报告和模块设计报告的模板。l 对系统设计过程中产生的所有有价值的文档进行配置管理。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号