收藏 分销(赏)

软件产品设计说明书.doc

上传人:二*** 文档编号:4746977 上传时间:2024-10-11 格式:DOC 页数:23 大小:365.54KB 下载积分:5 金币
下载 相关 举报
软件产品设计说明书.doc_第1页
第1页 / 共23页
本文档共23页,全文阅读请下载到手机保存,查看更方便
资源描述
{ 项目名称 } 软件产品设计说明书 文献状态: [√] 草稿 [ ] 正式发布 [ ] 正在修改 文献标记: Company-Project-PIM-PROPOSAL 当前版本: X.Y 作 者: 完毕日期: Year-Month-Day 北京捷诺视讯数码科技有限公司 Beijing General DVR Science & Technology Co.Ltd 五月 版 本 历 史 版本/状态 作者 参与者 起止日期 备注 目录 目录 3 一、 介绍 5 二、 体系结构设计 5 2.1、 目的 5 2.2、 角色与职责 6 2.3、 启动准则 6 2.4、 输入 6 2.5、 重要环节 6 2.5.1、 设计准备 6 2.5.2、 拟定影响系统设计的约束因素 6 2.5.3、 拟定设计策略 7 2.5.4、 系统分解与设计 7 2.5.5、 撰写体系结构设计文档 7 2.5.6、 体系结构设计评审 7 2.5.7、 [后续活动] 8 2.6、 输出 8 2.7、 结束准则 8 2.8、 度量 8 三、 用户界面设计 8 3.1、 目的 8 3.2、 角色与职责 8 3.3、 启动准则 8 3.4、 输入 9 3.5、 重要环节 9 3.5.1、 设计准备 9 3.5.2、 用户界面设计 9 3.5.3、 撰写用户界面设计文档 10 3.5.4、 用户界面设计评审 10 3.5.5、 [后续活动] 10 3.6、 输出 11 3.7、 结束准则 11 3.8、 度量 11 四、 数据库设计 11 4.1、 目的 11 4.2、 角色与职责 11 4.3、 启动准则 11 4.4、 输入 11 4.5、 重要环节 12 4.5.1、 设计准备 12 4.5.2、 数据库设计 12 4.5.3、 撰写数据库设计文档 13 4.5.4、 数据库设计评审 14 4.5.5、 [后续活动] 14 4.6、 输出 14 4.7、 结束准则 14 4.8、 度量 14 五、 模块设计 14 5.1、 目的 14 5.2、 角色与职责 14 5.3、 启动准则 15 5.4、 输入 15 5.5、 重要环节 15 5.5.1、 设计准备 15 5.5.2、 模块设计 15 5.5.3、 撰写模块设计文档 16 5.5.4、 模块设计评审 16 5.5.5、 [后续活动] 16 5.6、 输出 16 5.7、 结束准则 16 5.8、 度量 17 六、 实行建议 17 一、 设计介绍 系统设计(System Design, SD)是指设计软件系统的体系结构、用户界面、数据库、模块等,从而在需求与代码之间建立桥梁,指导开发人员去实现能满足用户需求的软件产品。 系统设计过程域是CMM模型的重要组成部分。本规范阐述了系统设计过程域的四个重要规程: ² 体系结构设计 ² 用户界面设计 ² 数据库设计 ² 模块设计 上述每个规程的“目的”、“角色与职责”、“启动准则”、“输入”、“重要环节”、“输出”、“完毕准则”和“度量”均已定义。 系统设计过程域分为两个阶段:高层设计阶段和具体设计阶段。 高层设计阶段的重点是软件系统的体系结构设计。具体设计阶段的重点是用户界面设计、数据库设计和模块设计,如图所示。 需求开发 高层设计阶段 体系结构设计 数据库设计 用户界面设计 模块设计 实现与测试 具体设计阶段 系统设计过程域示意图 系统设计过程域产生的重要文档有: ² 《体系结构设计报告》。 ² 《用户界面设计报告》。 ² 《数据库设计报告》。 ² 《模块设计报告》。 二、 体系结构设计 2.1、 目的 l 分析与设计软件的体系结构。通过系统分解,拟定子系统的功能和子系统之间的关系,以及模块的功能和模块之间的关系,产生《体系结构设计报告》。 2.2、 角色与职责 l 项目经理指定若干名开发人员从事体系结构设计(以下称为体系结构设计人员)。 2.3、 启动准则 l 体系结构设计人员已经拟定。 2.4、 输入 l 需求文档如《产品需求规格说明书》 2.5、 重要环节 体系结构设计流程如图所示。 Step3. 拟定 设计 策略 Step2. 拟定 约束 因素 Step1. 设计 准备 Step4. 系统 分解 设计 Step6. 设计 评审 Step5. 撰写 文档 体系结构设计流程 2.5.1、 设计准备 l 项目经理或者技术负责人分派系统设计任务,涉及体系结构设计、模块设计、用户界面设计、数据库设计等。本活动也许产生一份阶段性的开发计划,如《系统设计计划》,视工作量而定。 l 体系结构设计人员阅读需求文档,明确设计任务。 l 体系结构设计人员准备相关的设计工具(如Rational Rose)和资料。 2.5.2、 拟定影响系统设计的约束因素 l 需求约束。体系结构设计人员从需求文档如《软件需求规格说明书》中提取需求约束,例如: ² 本系统应当遵循的标准或规范 ² 软件、硬件环境(涉及运营环境和开发环境)的约束 ² 接口/协议的约束 ² 用户界面的约束 ² 软件质量的约束,如对的性、健壮性、可靠性、效率(性能)、易用性、清楚性、安全性、可扩展性、兼容性、可移植性等等。 l 隐含约束。有一些假设或依赖并没有在需求文档中明确指出,但也许会对系统设计产生影响,设计人员应当尽也许地在此处说明。例如对用户教育限度、计算机技能的一些假设或依赖,对支撑本系统的软件硬件的假设或依赖等。 2.5.3、 拟定设计策略 l 体系结构设计人员根据产品的需求与发展战略,拟定设计策略(Design Strategy)。例如: ² 扩展策略。说明为了方便本系统在将来扩展功能,现在有什么措施。 ² 复用策略。说明本系统在当前以及将来的复用策略。 ² 折衷策略。说明当两个目的难以同时优化时如何折衷,例如“时-空”效率折衷,复杂性与实用性折衷。 2.5.4、 系统分解与设计 l 体系结构设计人员: ² 将系统分解为若干子系统,拟定每个子系统的功能以及子系统之间的关系。 ² 将子系统分解为若干模块,拟定每个模块的功能以及模块之间的关系。 ² 拟定系统开发、测试、运营所需的软硬件环境。 2.5.5、 撰写体系结构设计文档 l 体系结构设计人员根据指定的模板撰写《体系结构设计报告》,重要内容涉及: ² 软件系统概述 ² 影响设计的约束因素 ² 设计策略 ² 系统总体结构 ² 子系统的结构与模块功能 ² 开发、测试、运营所需的软硬件环境 2.5.6、 体系结构设计评审 l 体系结构设计人员邀请同行专家、开发人员对体系结构进行正式技术评审。 l 体系结构评审的重点不是“对还是错”,而是“好还是差”。重要评审要素涉及: ² 合适性。考察该体系结构是否适合于产品需求,是否可在预定计划内实现。 ² 系统的综合能力(Capability)。例如“时-空”效率(性能,容量等),可扩展性,可管理性(可维护性),可复用性,安全性等等,视产品特性而定。 2.5.7、 [后续活动] l 体系结构设计完毕后进入具体设计阶段(用户界面设计、数据库设计、模块设计等)。 2.6、 输出 l 《体系结构设计报告》 2.7、 结束准则 l 《体系结构设计报告》已经完毕,并且通过了技术评审。 2.8、 度量 l 体系结构设计人员记录工作量以及文档的规模,报告给项目经理。 三、 用户界面设计 3.1、 目的 l 设计软件的用户界面,产生《用户界面设计报告》。 l 制作用户界面的资源如图像、图标或者界面专用组件等。 3.2、 角色与职责 l 项目经理指定若干名开发人员从事用户界面设计(以下称为界面设计人员)。 l 假如也许的话,邀请用户或美工人员协助设计用户界面。 3.3、 启动准则 l 需求文档已经完毕。 l 体系结构设计已经完毕。 3.4、 输入 l 需求文档 l 体系结构设计文档 3.5、 重要环节 用户界面设计流程如图所示。 迭代 Step2. 界面设计 Step4. 设计 评审 Step3. 撰写 文档 Step1. 设计 准备 2.3细化 2.2原型评估 2.1原型创作 体系结构设计流程 3.5.1、 设计准备 l 界面设计人员阅读需求文档和体系结构设计文档,明确界面设计任务。 l 界面设计人员与用户交流,了解用户的工作习惯和他们对界面的见解。 l 界面设计人员准备相关的设计工具和资料,收集或创作基本的界面资源如图像、图标以及通用的组件。 l 界面设计人员拟定本软件的用户界面设计规则(或指南),重要涉及: ² 优秀界面的特性或通用的设计原则; ² 软件主界面(如主窗口、主页面)的设计规则; ² 软件子界面(如子窗口、子页面)的设计规则; ² 标准控件的使用规则; ² 美学设计规则。 3.5.2、 用户界面设计 用户界面设计一般要经历“原型创作—>原型评估->细化”等环节,通常迭代进行。 l [Step2.1] 原型创作 界面设计人员创作界面原型: ² 先徒手画,或者用Visio 等工具绘制界面的视图; ² 再用软件开发工具实现可以运营的原型。 l [Step2.2] 原型评估 ² 界面设计人员邀请用户和同行们评估界面的原型,汇集意见,及时改善。 l [Step2.3] 细化 ² 界面设计人员细化界面原型,例如美工解决,添加细节等。 补充说明:开发人员在本阶段不必关心界面原型的代码质量,由于界面原型也许不断地被修改甚至被抛弃。 3.5.3、 撰写用户界面设计文档 l 用户界面定型之后,界面设计人员根据指定的模板撰写《用户界面设计报告》,重要内容涉及: ² 应当遵循的界面设计规范; ² 界面的关系图和工作流程图; ² 主界面的视图、功能说明、操作方式; ² 子界面的视图、功能说明、操作方式; ² 美学设计说明。 3.5.4、 用户界面设计评审 l 界面设计人员邀请用户和同行们对定型后的界面进行正式技术评审,尽最大努力使界面变得更加美观、易用。 l 用户界面的重要评审要素涉及: ² 合适性 ² 简洁易用 ² 一致性 ² 美观 ² 动态反馈 ² 功能屏蔽和犯错解决 ² 用户控制 ² 国际化(兼容性和可移植性) ² 适应性(针对各种用户) 3.5.5、 [后续活动] l 在系统设计工作结束之后,开发人员编写界面的代码,并和用户一起通过各种途径测试界面,从而不断地完善用户界面。(请参考有关测试的文档) l 界面设计人员总结经验教训,不断地完善合用于本机构的“用户界面设计指南”。 3.6、 输出 l 《用户界面设计报告》 3.7、 结束准则 l 《用户界面设计报告》已经完毕,界面原型已经通过评审。 3.8、 度量 l 界面设计人员记录工作量以及文档的规模,报告给项目经理。 四、 数据库设计 4.1、 目的 l 设计软件的数据库,产生《数据库设计报告》。 4.2、 角色与职责 l 项目经理指定若干名开发人员从事数据库设计(以下称为数据库设计人员)。 4.3、 启动准则 l 需求文档已经完毕。 l 体系结构设计已经完毕。 4.4、 输入 l 需求文档 l 体系结构设计文档 4.5、 重要环节 数据库设计流程如图所示。 迭代 Step2. 数据库设计 Step3. 撰写 文档 2.4优化 2.3安全性设计 2.2物理设计 2.1逻辑设计 Step1. 设计 准备 Step4. 设计 评审 数据库设计流程 4.5.1、 设计准备 l 数据库设计人员阅读需求文档和体系结构设计文档,明确数据库设计任务。 l 数据库设计人员准备相关的设计工具和资料。 l 数据库设计人员拟定本软件的数据库设计规则(或指南),重要涉及: ² 数据库命名规则 ² 逻辑设计规则(或指南) ² 物理设计规则(或指南) ² 安全性设计规则(或指南) ² 优化规则(或指南) ² 数据库管理与维护规则(或指南) 4.5.2、 数据库设计 数据库设计一般要经历“逻辑设计—>物理设计->安全性设计->优化”等环节,通常要迭代进行。 l 逻辑设计 ² 数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。假如采用面向对象方法(OOAD),这里实体相称于类(class)。 l 物理设计 ² 设计表结构。一般地,实体相应于表,实体的属性相应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一相应的。数据库表的参考格式如表11-1所示。 ² 对表结构进行规范化解决(第三范式)。 表名 功能说明 列名 数据类型(精度范围) 空/非空 约束条件 补充说明 数据库表的参考格式 l 安全性设计 提高软件系统的安全性应当从“管理”和“设计”两方面着手。这里仅考虑数据库的安全性设计。 ² 用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其它途径可以操作数据库。 ² 对用户帐号的密码进行加密解决,保证在任何地方都不会出现密码的明文。 ² 拟定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好可以完毕任务的权限,不多也不少。在应用时再为用户分派角色,则每个用户的权限等于他所兼角色的权限之和。 l 优化 分析并优化数据库的“时-空”效率,尽也许地“提高解决速度”并且“减少数据占用的空间”。 ² 分析“时-空”效率的瓶颈,找出优化对象(目的),并拟定优先级。 ² 当优化对象(目的)之间存在对抗时,给出折衷方案。 ² 给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化解决等。 4.5.3、 撰写数据库设计文档 l 数据库设计人员根据指定的模板撰写《数据库设计报告》,重要内容涉及: ² 数据库环境说明 ² 数据库的命名规则 ² 逻辑设计 ² 物理设计 ² 安全性设计 ² 优化 ² 数据库管理与维护说明 4.5.4、 数据库设计评审 l 数据库设计人员邀请同行们对数据库进行正式技术评审。 l 数据库的重要评审要素涉及: ² 对的性、完整性、一致性 ² 安全性 ² “时-空”效率 4.5.5、 [后续活动] l 在系统设计工作结束之后,开发人员将编写与数据库相关的代码,并和用户一起通过各种途径测试数据库,从而不断地完善数据库。(请参考有关测试的文档) l 数据库设计人员总结经验教训,不断地完善合用于本机构的《数据库设计指南》。 l 软件交付给用户后,由用户管理与维护数据库。 4.6、 输出 l 《数据库设计报告》 4.7、 结束准则 l 《数据库设计报告》已经完毕,并且通过了技术评审。 4.8、 度量 l 数据库设计人员记录工作量以及文档的规模,报告给项目经理。 五、 模块设计 5.1、 目的 l 设计软件所有模块的重要接口与属性、数据结构和算法,产生《模块设计报告》。 5.2、 角色与职责 l 项目经理指定若干名开发人员从事模块的设计(以下称为模块设计人员),模块设计人员将在实现阶段编写这些模块的代码。 5.3、 启动准则 l 需求文档已经完毕。 l 体系结构设计已经完毕。 5.4、 输入 l 需求文档 l 体系结构设计文档 5.5、 重要环节 模块设计流程如图所示。 Step2. 模块设计 2.1接口与属性设计 Step4. 设计 评审 Step3. 撰写 文档 Step1. 设计 准备 迭代 2.2数据结构 与算法设计 模块设计流程 5.5.1、 设计准备 l 模块设计人员阅读需求文档和体系结构设计文档,明确模块设计任务。 l 模块设计人员准备相关的设计工具和资料。 l 模块设计人员拟定本软件的编程规范,保证模块设计文档的风格与代码的风格保持一致。 5.5.2、 模块设计 模块设计一般要经历“接口与属性设计—>数据结构与算法设计”等环节,并且通常需要反复迭代。 建议:由于现代的软件开发工具越来越先进,模块的具体设计和编程可以很好地融合一起,并且效率相称高,有些工具甚至具有代码自动生成功能。所以在系统设计阶段,模块设计究竟要具体到什么地步,应当视问题复杂性以及所采用的开发工具而定。一般地,只要拟定了每个模块的重要接口、数据结构与算法,可以清楚地指导模块编程即可。总之,不必花太多时间用于设计模块的细节。 l 接口与属性设计 ² 模块设计人员设计每个模块的重要接口与属性。假如采用面向对象方法(OOAD),相称于设计类的函数和成员变量。 l 数据结构与算法设计 ² 模块设计人员设计每个模块的数据结构与算法(假如存在的话)。 5.5.3、 撰写模块设计文档 l 模块设计人员根据指定的模板撰写《模块设计报告》,重要内容涉及: ² 模块汇总 ² 每个模块的重要接口与属性 ² 每个模块的数据结构与算法(假如存在的话) 5.5.4、 模块设计评审 l 模块设计人员邀请同行们对模块设计文档进行正式技术评审或者非正式技术评审(由技术负责人决定采用何种评审方式)。 l 模块的重要评审要素涉及: ² 信息隐藏(独立性) ² 强内聚、低耦合 ² 数据结构与算法的效率 5.5.5、 [后续活动] l 模块的代码实现可以与模块设计同步进行,也可以在模块设计完毕之后进行。 5.6、 输出 l 《模块设计报告》 5.7、 结束准则 l 《模块设计报告》已经完毕,并且通过了技术评审。 5.8、 度量 l 模块设计人员记录工作量以及文档的规模,报告给项目经理。 六、 实行建议 l 先对系统设计人员进行“专题”培训,让他们掌握必要的系统设计技能。 l 由于国内绝大多数的大学不开设“用户界面设计课程”,这导致大部分软件开发人员不善于设计用户界面。项目开发小组应当设法邀请用户界面设计专家参与(或指导)本软件的界面设计。 l 系统设计人员可以根据产品的特性,适本地修改《体系结构设计报告》、《用户界面设计报告》、《数据库设计报告》和《模块设计报告》的模板。 l 对系统设计过程中产生的所有有价值的文档进行配置管理。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服