`

系统详细设计说明书编写指导

阅读更多
第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 目的
 分析与设计软件的体系结构。通过系统分解,确定子系统的功能和子系统之间的关系,以及模块的功能和模块之间的关系,产生《体系结构设计报告》。
11.2.2 角色与职责
 项目经理指定若干名开发人员从事体系结构设计(以下称为体系结构设计人员)。
11.2.3 启动准则
 体系结构设计人员已经确定。
11.2.4 输入
 需求文档如《产品需求规格说明书》
11.2.5 主要步骤
体系结构设计流程如图11-2所示。

图11-2 体系结构设计流程
[Step1] 设计准备
 项目经理或者技术负责人分配系统设计任务,包括体系结构设计、模块设计、用户界面设计、数据库设计等。本活动可能产生一份阶段性的开发计划,如《系统设计计划》,视工作量而定。
 体系结构设计人员阅读需求文档,明确设计任务。
 体系结构设计人员准备相关的设计工具(如Rational Rose)和资料。
[Step2] 确定影响系统设计的约束因素
 需求约束。体系结构设计人员从需求文档如《软件需求规格说明书》中提取需求约束,例如:
 本系统应当遵循的标准或规范
 软件、硬件环境(包括运行环境和开发环境)的约束
 接口/协议的约束
 用户界面的约束
 软件质量的约束,如正确性、健壮性、可靠性、效率(性能)、易用性、清晰性、安全性、可扩展性、兼容性、可移植性等等。
 隐含约束。有一些假设或依赖并没有在需求文档中明确指出,但可能会对系统设计产生影响,设计人员应当尽可能地在此处说明。例如对用户教育程度、计算机技能的一些假设或依赖,对支撑本系统的软件硬件的假设或依赖等。
[Step3] 确定设计策略
 体系结构设计人员根据产品的需求与发展战略,确定设计策略(Design Strategy)。例如:
 扩展策略。说明为了方便本系统在将来扩展功能,现在有什么措施。
 复用策略。说明本系统在当前以及将来的复用策略。
 折衷策略。说明当两个目标难以同时优化时如何折衷,例如“时-空”效率折衷,复杂性与实用性折衷。
[Step4] 系统分解与设计
 体系结构设计人员:
 将系统分解为若干子系统,确定每个子系统的功能以及子系统之间的关系。
 将子系统分解为若干模块,确定每个模块的功能以及模块之间的关系。
 确定系统开发、测试、运行所需的软硬件环境。
[Step5] 撰写体系结构设计文档
 体系结构设计人员根据指定的模板撰写《体系结构设计报告》,主要内容包括:
 软件系统概述
 影响设计的约束因素
 设计策略
 系统总体结构
 子系统的结构与模块功能
 开发、测试、运行所需的软硬件环境
[Step6] 体系结构设计评审
 体系结构设计人员邀请同行专家、开发人员对体系结构进行正式技术评审,评审流程请参考 [SPP-PROC-TR-FTR]。
 体系结构评审的重点不是“对还是错”,而是“好还是差”。主要评审要素包括:
 合适性。考察该体系结构是否适合于产品需求,是否可在预定计划内实现。
 系统的综合能力(Capability)。例如“时-空”效率(性能,容量等),可扩展性,可管理性(可维护性),可复用性,安全性等等,视产品特征而定。
[后续活动]
 体系结构设计完成后进入详细设计阶段(用户界面设计、数据库设计、模块设计等)。
11.2.6 输出
 《体系结构设计报告》
11.2.7 结束准则
 《体系结构设计报告》已经完成,并且通过了技术评审。
11.2.8 度量
 体系结构设计人员统计工作量以及文档的规模,汇报给项目经理。
11.3 用户界面设计
11.3.1 目的
 设计软件的用户界面,产生《用户界面设计报告》。
 制作用户界面的资源如图像、图标或者界面专用组件等。
11.3.2 角色与职责
 项目经理指定若干名开发人员从事用户界面设计(以下称为界面设计人员)。
 如果可能的话,邀请用户或美工人员协助设计用户界面。
11.3.3 启动准则
 需求文档已经完成。
 体系结构设计已经完成。
11.3.4 输入
 需求文档
 体系结构设计文档
11.3.5 主要步骤
用户界面设计流程如图11-3所示。


图11-3 体系结构设计流程
[Step1] 设计准备
 界面设计人员阅读需求文档和体系结构设计文档,明确界面设计任务。
 界面设计人员与用户交流,了解用户的工作习惯和他们对界面的看法。
 界面设计人员准备相关的设计工具和资料,收集或创作基本的界面资源如图像、图标以及通用的组件。
 界面设计人员确定本软件的用户界面设计规则(或指南),主要包括:
 优秀界面的特征或通用的设计原则;
 软件主界面(如主窗口、主页面)的设计规则;
 软件子界面(如子窗口、子页面)的设计规则;
 标准控件的使用规则;
 美学设计规则。
[Step2] 用户界面设计
用户界面设计一般要经历“原型创作—>原型评估->细化”等步骤,通常迭代进行。
 [Step2.1] 原型创作
界面设计人员创作界面原型:
 先徒手画,或者用Visio 等工具绘制界面的视图;
 再用软件开发工具实现可以运行的原型。
 [Step2.2] 原型评估
 界面设计人员邀请用户和同行们评估界面的原型,汇集意见,及时改进。
 [Step2.3] 细化
 界面设计人员细化界面原型,例如美工处理,添加细节等。
补充说明:开发人员在本阶段不必关心界面原型的代码质量,因为界面原型可能不断地被修改甚至被抛弃。
[Step3] 撰写用户界面设计文档
 用户界面定型之后,界面设计人员根据指定的模板撰写《用户界面设计报告》,主要内容包括:
 应当遵循的界面设计规范;
 界面的关系图和工作流程图;
 主界面的视图、功能说明、操作方式;
 子界面的视图、功能说明、操作方式;
 美学设计说明。
[Step4] 用户界面设计评审
 界面设计人员邀请用户和同行们对定型后的界面进行正式技术评审,尽最大努力使界面变得更加美观、易用。评审流程请参考 [SPP-PROC-TR-FTR]。
 用户界面的主要评审要素包括:
 合适性
 简洁易用
 一致性
 美观
 动态反馈
 功能屏蔽和出错处理
 用户控制
 国际化(兼容性和可移植性)
 适应性(针对各种用户)
[后续活动]
 在系统设计工作结束之后,开发人员编写界面的代码,并和用户一起通过各种途径测试界面,从而不断地完善用户界面。(请参考有关测试的文档)
 界面设计人员总结经验教训,不断地完善适用于本机构的“用户界面设计指南”。
11.3.6 输出
 《用户界面设计报告》
11.3.7 结束准则
 《用户界面设计报告》已经完成,界面原型已经通过评审。
11.3.8 度量
 界面设计人员统计工作量以及文档的规模,汇报给项目经理。
11.4 数据库设计
11.4.1 目的
 设计软件的数据库,产生《数据库设计报告》。
11.4.2 角色与职责
 项目经理指定若干名开发人员从事数据库设计(以下称为数据库设计人员)。
11.4.3 启动准则
 需求文档已经完成。
 体系结构设计已经完成。
11.4.4 输入
 需求文档
 体系结构设计文档
11.4.5 主要步骤
数据库设计流程如图11-4所示。


图11-4 数据库设计流程
[Step1] 设计准备
 数据库设计人员阅读需求文档和体系结构设计文档,明确数据库设计任务。
 数据库设计人员准备相关的设计工具和资料。
 数据库设计人员确定本软件的数据库设计规则(或指南),主要包括:
 数据库命名规则
 逻辑设计规则(或指南)
 物理设计规则(或指南)
 安全性设计规则(或指南)
 优化规则(或指南)
 数据库管理与维护规则(或指南)
[Step2] 数据库设计
数据库设计一般要经历“逻辑设计—>物理设计->安全性设计->优化”等步骤,通常要迭代进行。
 [Step2.1] 逻辑设计
 数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象方法(OOAD),这里实体相当于类(class)。
 [Step2.2] 物理设计
 设计表结构。一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。数据库表的参考格式如表11-1所示。
 对表结构进行规范化处理(第三范式)。

表名
功能说明
列名 数据类型(精度范围) 空/非空 约束条件



补充说明
表11-1 数据库表的参考格式
 [Step2.3] 安全性设计
提高软件系统的安全性应当从“管理”和“设计”两方面着手。这里仅考虑数据库的安全性设计。
 用户只能用帐号登陆到应用软件,通过应用软件访问数据库,而没有其它途径可以操作数据库。
 对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。
 确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。
 [Step2.4] 优化
分析并优化数据库的“时-空”效率,尽可能地“提高处理速度”并且“降低数据占用的空间”。
 分析“时-空”效率的瓶颈,找出优化对象(目标),并确定优先级。
 当优化对象(目标)之间存在对抗时,给出折衷方案。
 给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。
[Step3] 撰写数据库设计文档
 数据库设计人员根据指定的模板撰写《数据库设计报告》,主要内容包括:
 数据库环境说明
 数据库的命名规则
 逻辑设计
 物理设计
 安全性设计
 优化
 数据库管理与维护说明
[Step4] 数据库设计评审
 数据库设计人员邀请同行们对数据库进行正式技术评审,评审流程请参考 [SPP-PROC-TR-FTR]。
 数据库的主要评审要素包括:
 正确性、完整性、一致性
 安全性
 “时-空”效率
[后续活动]
 在系统设计工作结束之后,开发人员将编写与数据库相关的代码,并和用户一起通过各种途径测试数据库,从而不断地完善数据库。(请参考有关测试的文档)
 数据库设计人员总结经验教训,不断地完善适用于本机构的《数据库设计指南》。
 软件交付给用户后,由用户管理与维护数据库。
11.4.6 输出
 《数据库设计报告》
11.4.7 结束准则
 《数据库设计报告》已经完成,并且通过了技术评审。
11.4.8 度量
 数据库设计人员统计工作量以及文档的规模,汇报给项目经理。
11.5 模块设计
11.5.1 目的
 设计软件所有模块的主要接口与属性、数据结构和算法,产生《模块设计报告》。
11.5.2 角色与职责
 项目经理指定若干名开发人员从事模块的设计(以下称为模块设计人员),模块设计人员将在实现阶段编写这些模块的代码。
11.5.3 启动准则
 需求文档已经完成。
 体系结构设计已经完成。
11.5.4 输入
 需求文档
 体系结构设计文档
11.5.5 主要步骤
模块设计流程如图11-5所示。


图11-5 模块设计流程
[Step1] 设计准备
 模块设计人员阅读需求文档和体系结构设计文档,明确模块设计任务。
 模块设计人员准备相关的设计工具和资料。
 模块设计人员确定本软件的编程规范,确保模块设计文档的风格与代码的风格保持一致。
[Step2] 模块设计
模块设计一般要经历“接口与属性设计—>数据结构与算法设计”等步骤,并且通常需要反复迭代。
建议:由于现代的软件开发工具越来越先进,模块的详细设计和编程可以很好地融合一起,而且效率相当高,有些工具甚至具有代码自动生成功能。所以在系统设计阶段,模块设计究竟要详细到什么地步,应当视问题复杂性以及所采用的开发工具而定。一般地,只要确定了每个模块的主要接口、数据结构与算法,能够清楚地指导模块编程即可。总之,不必花太多时间用于设计模块的细节。
 [Step2.1] 接口与属性设计
 模块设计人员设计每个模块的主要接口与属性。如果采用面向对象方法(OOAD),相当于设计类的函数和成员变量。
 [Step2.2] 数据结构与算法设计
 模块设计人员设计每个模块的数据结构与算法(如果存在的话)。
[Step3] 撰写模块设计文档
 模块设计人员根据指定的模板撰写《模块设计报告》,主要内容包括:
 模块汇总
 每个模块的主要接口与属性
 每个模块的数据结构与算法(如果存在的话)
[Step4] 模块设计评审
 模块设计人员邀请同行们对模块设计文档进行正式技术评审或者非正式技术评审(由技术负责人决定采用何种评审方式),评审流程请参考 [SPP-PROC-TR]。
 模块的主要评审要素包括:
 信息隐藏(独立性)
 强内聚、低耦合
 数据结构与算法的效率
[后续活动]
 模块的代码实现可以与模块设计同步进行,也可以在模块设计完成之后进行。
11.5.6 输出
 《模块设计报告》
11.5.7 结束准则
 《模块设计报告》已经完成,并且通过了技术评审。
11.5.8 度量
 模块设计人员统计工作量以及文档的规模,汇报给项目经理。
11.6 实施建议
 先对系统设计人员进行“专题”培训,让他们掌握必要的系统设计技能。
 由于国内绝大多数的大学不开设“用户界面设计课程”,这导致大部分软件开发人员不善于设计用户界面。项目开发小组应当设法邀请用户界面设计专家参与(或指导)本软件的界面设计。
 系统设计人员可以根据产品的特征,适当地修改《体系结构设计报告》、《用户界面设计报告》、《数据库设计报告》和《模块设计报告》的模板。
 对系统设计过程中产生的所有有价值的文档进行配置管理。
分享到:
评论

相关推荐

    大学期末软件工程课程设计:电影信息管理系统软件需求说明书

    本需求说明书旨在使需求者明确系统的要求和细节,给开发人员了解需求实现的难度和困难,最终给审核员与管理者讨论和审核,达到沟通效果。 1.2背景 1.2.1 项目概况 本文旨在说明电影管理系统各子模块的功能需求和非...

    MC9S12XS128驱动工具箱详细设计说明书-部分

    又名底层驱动工具箱详细设计说明书; 本文档注意描述了如何进行底层驱动的开发,步骤详细,需要注意的是文档只有前半部分,主要描述了如何搭建系统环境,编写主程序tlc的内容,后面的功能驱动TLC还需参考其他资料。

    从零开始:学习如何编写高效的软件设计说明书

    软件设计说明书是一种用于详细描述软件系统结构、功能、接口、性能等关键特性的技术文档,它在软件开发过程中起着至关重要的作用。文章将详细介绍软件设计说明书的组成部分、使用方法以及实际应用场景。 适应人群: ...

    班级管理信息系统数据库设计说明书.doc

    班级管理信息系统数据库设计说明书 1. 引言 1.编写目的 本文档说明了班级信息管理的数据库设计,用于指导该系统数据库存储各方面的内容 。 2.背景 a.软件系统的名字:班级管理信息系统 b.本系统将使用SQL Server ...

    图书馆管理系统Web程序设计课程设计报告.doc

    完成图书馆管理系统的软件可行性分析、项目开发计" "划、需求规格说明、概要设计和详细设计(结构化设计方法和面向对象设计方" "法可任选一种); " "(6)做好答辩工作 " " " "指导教师: 刁文广 " "2014年 6 月 19...

    系统设计说明书1

    1引言1.1 编写目的本概要说明书的编写目的在于明确说明该系统各功能的实现方法,以指导开发人员进行编码。本文档的预期读者:系统设计人员、系统开发人员1.2 范围

    网上书店系统需求规格说明书(教学用例)

    在编写“网上书店系统”软件前,对网上购物系统做了大致的调查,与各个层次的用户进行了探讨分析等,之后由软件项目小组向系统分析人员与软件设计人员提出规格说明书。该说明书对网上图书系统软件进行了全面细致的...

    学校学生宿舍管理系统需求规格说明书(教学用例)

    软件工程试验与课程设计指导.电子工业出版社,2008年6月. 2任务概述 2.1目标 学校学生宿舍管理系统:即用于实现对学生及宿舍信息资料进行编辑,添加,删除,统计,打印显示等功能的软件系统。通过该系统,用户可以...

    橙汁_系统设计说明书1

    第一章引言1.1 编写目的本设计说明书文档包括该项目的背景、目标、建设内容、系统架构、接口、功能模块、部署环境、功能设计等的描述,用于指导该项目的开发与部署,同

    学生宿舍管理系统数据库设计说明书.pdf

    1 学生宿舍管理系统数据库设计说明书 1 引言 1.1编写目的 可以为编码人员、测试人员和维护人员提供关于后台数据库的专门指导,同 时也为本软件的使用者提供该数据库架构的详细情况、 数据输入输出的要求和规 格。...

    学生宿舍管理系统数据库设计说明书.doc

    学生宿舍管理系统数据库设计说明书 1 引言 1.1编写目的 可以为编码人员、测试人员和维护人员提供关于后台数据库的专门指导,同时也为 本软件的使用者提供该数据库架构的详细情况、数据输入输出的要求和规格。...

    电子商城管理系统需求规格说明书.doc

    本说明书定义了网上商城管理系统的详细需求,明确了网上 商城管理 系统的功能内容、功能边界、开发途径,是整个软件开 发的依据,它对以 后阶段的工作起指导作用。本文也是项目完成 后系统验收的依据。

    网上购物系统说明书

    设计说明书是为了开发网上购物管理系统而编写,主要面向系统分析员、程序测试员、实施人员和最终用户。 本说明书是整个软件开发的收据,它对以后阶段的工作起指导。本文也是项目完成后系统验收的依据。

    管理信息系统系统设计.docx

    3、系统实施进度与计划地制定 4、系统设计说明书的编写 四、系统设计的成果与文档内容 系统设计说明书是系统设计阶段的成果,它从系统设计的主要方面说明系统设计的指导思想、采用的技术方法和设计结果,是新系统的...

    C语言图书借阅管理系统课程设计报告.doc

    课 程 设 计 报 告 课程名称 C语言程序设计 课题名称图书借阅管理系统 专 业机械设计 班 级 15机械二班 学 号2015030220 姓 名 指导教师 2016年 6 月 14日 理工大学高科学院 课 程 设 计 任 务 书 课程名称 C语言...

    《智能家居系统》用户需求说明书.docx

    以及其他软件的接口,是整个系统开发的依据,它对以后阶段的工作起指导作用,使系统分析人员及系统开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。 本说明书仅给...

    学生信息管理系统

    3. 总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。 4. 考核阶段。 七、撰写课程设计报告或课程设计总结 总结报告包括需求分析、总体设计、...

    连连看游戏--软件需求说明书

    本需求说明书是为了本小组开发连连看游戏需要而编写的。在具体开发的过程中,根据这个文档完成整个项目,并指导后续的概要设计、详细设计和数据结构设计。因此,作为总的指导文稿,本说明书总是贯穿于整个项目开发的...

    机械设计课程设计 CAD图纸 说明书

    1.编写设计计算说明书一份,其内容通常包括下列几个方面:(1)传动系统方案的分析和拟定以及减速器类型的选择;(2)电动机的选择与传动装置运动和动力参数的计算;(3)传动零件的设计计算(如除了传动,蜗杆传动...

    学生管理系统需求分析_总体设计_详细设计

    本说明书是整个软件开发的依据,它对以后阶段的工作起指导作用,也是项目完成后系统验收的依据。 1. 2 项目背景 开发软件的名称:学生信息管理系统 项目的任务提出者:江汉大学文理学院 开发者:袁俊 用户:江汉大学...

Global site tag (gtag.js) - Google Analytics