您好,欢迎访问三七文档
第11章系统设计系统设计(SytemDesign,SD)是指设计软件系统的体系结构,用户界面,数据库、模块等,从而在需求与代码之间建立1桥梁,指导开发人员去实现能满足用户需求的软件产品。系统设计过程是SPP模型的重要组成部分。本规范阐述了系统设计过程的4个主要过程:体系结构设计[SPP-PROC-SD-ARCHTTECTURE].用户界面设计[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]设计准备●项目经理或者技术负责人分配系统任务,包括体系结构设计、模块设计、摸板设计、用户界面设计、数据库设计等。本活动可能产生一份阶段性的开发计划,如《系统设Step1设计准备Step2确定约束因素Step3确定设计策略Step4系统分解设计Step5撰写文档Step6设计评审计计划,视工作量而定。●体系结构设计人员阅读需求文档,明确生产任务。●体系结构设计人员准备相关的设计工具〈如RationalRose〉和资料。[Step2]确定影响系统设计的约束因素●需求约束。体系结构设计人员从需求文档如《软件需求说明书》中提取需求约束,例如:本系统应当遵循的标准或规范软件、硬件环境(包括运行环境和开发环境)的约束接口/协议的约束用户界面的约束软件质量的约束,如正确性、健壮性、可靠性、效率(性能)、义勇性、清晰性、安全性、可扩展性、兼容性、可移植性等●隐含约束。有一些建设或依赖并没有在需求文档中明确指出,但可能会对系统设计产生依赖,对支撑本系统的软件硬件的假设或依赖等,隐含约束。有一些假设或依赖并没有在需求文档中明确指出,但可能会队系统设计产生影响,设计人员应当竟可能地在此处说明。例如队拥护教育程度,计算机技能的一些假设或依赖,队支撑本系统的软家硬件的假设或依赖等。[Step3]确定设计策略●体系结构设计人员根据产品的需求语法站战略,确定设计策略(DesignStrategy)。例如:扩展战略。说明为了方便本系统在将来快站功能,现在有什么措施。复用战略。说明本系统在当前以及将来饿复用策略。折中策略。说明当两个目标难以同时优化时如何折中。例如(时—空)效率折中,复杂性与实用性折中。[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所示。[step1]设计准备●界面设计人员阅读需求文档和体系结构设计文档,明确界面设计任务。●界面设计人员与用户交流,了解用户的工作习惯和他们对界面的看法。●界面设计人员准备相关的设计工具和资料,收集或创作基本的界面资源如图象、图标以及通用的组件。●界面设计人员确定本软件的用户界面设计规则(或指南),主要包括:优秀界面的特征或通用的设计原则;软件主界面(如主窗口、主界面)的设计规则;软件子界面(如子窗口、子页面)的设计规则;标准控件的使用规则;美学设计规则;[step2]用户界面设计用户界面设计一般要经历“原型创作原型评估细化”等步骤,通常迭代进行。●[step2.1]原型创作界面设计人员创作界面原型:先徒手画,或者用Visio等工具绘制界面的视图。再用软件开发工具实现可以运行的原型。●[step2.2]原型评估界面设计人员邀请用户和同行评估界面的原型,汇集意见,及时改进Step2.界面设计2.1原型创作2.2原型评估2.3细化Step1.设计准备Step3.撰写文档Step4.设计评审●[step2.3]细化界面设计人员细化界面原型,例如美工处理,添加细节等。▓说明:开发人员在本阶段不必关心界面原型的代码质量,因为界面原型可能不断地被修改甚至被抛弃。[step3]撰写用户界面设计文档●用户界面定型之后,界面设计人员根据指定的模板撰写《用户界面设计报告》,主要内容包括:应当遵循的界面设计规范。界面的关系图和工作流程图。主截面2的视图、功能说明、操作方式。子截面2的视图、功能说明、操作方式。美学设计说明。[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.4主要步骤数据库设计流程如图11-4所示图11-4数据库设计流程[Step1]设计准备●数据库设计人员阅读需求文档和体系结构设计文档,明确数据库设计任务。●数据库设计人员准备相关设备的设计工具和资料。●书籍库设计人员确定本软件的数据库设计规则(或指南),主要包括:数据库命名规则逻辑设计规则(或指南)物理设计规则(或指南)安全性设计规则(或指南)优化规则(或指南)数据库管理与维护规则(或指南)[Step2]数据库设计●数据库设计一般要经历“逻辑设计→物理设计→安全性设计→优化”等步骤,通常要迭代进行。[Step2.1]逻辑设计数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。如果采用面向对象的方法(OOAD),这里的实体相当于类(Class)。[Step2.2]物理设计设计表结构。一般的,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。逻辑设计中的实体大部分可以转换成物理设计中的表,但是他们并不一定是一一对应的。数据库表的参考格式如表11-1所示。对表结构进行规范化处理(第三范式)。表11-1数据库表的参考格式表名功能说明列名数据类型(精度范围)空/非空约束条件Step2.数据库设计2.1物理设计2.2逻辑设计2.3安全性设计Step1.设计准备Step3.撰写文档Step4.设计评审2.4优化迭代补充说明●[Step2.3]安全性设计提高软件系统的安全性应当从“管理”和“设计”两个方面着手。这里仅考虑数据库的安全性设计。用户只能用账号登录到应用软件,通过应用软件访问数据库,而没有其他途径可以操作数据库。多用户找好的密码进行加密处理,确保在任何地方都不会出现密码的明文。确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的全县,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于它所兼角色的权限之和。●[Step2.4]优化分析并优化数据库的“时-空”效率,尽可能的“提高处理速度”并且“降低数据占用的空间”。分析“时-空”效率的瓶颈,找出优化对象(目标),并确定优先级。当优化对象(目标)之间存在对抗时,给出折衷方案。给出优化的具体措施,例如优化数据库环境参数,对表格进行反规范化处理等。[Step3]撰写数据库设计文档●数据库设计人员更局制定的模版撰写《数据库设计报告》,主要内容包括:数据库环境说明数据库的命名规则逻辑设计物理设计安全性设计优化数据库管理与维护说明[Step4]数据库设计评审●数据库设计人员邀请同行们对数据库进行正式技术评审,评审流程参考[SPP-PROC-TR-FTR]。●数据库的主要评审要素包括“正确性、完整性、一致性安全性“时-空”效率[后续活动]●在系统设计工作结束后,开发人员将编写与数据库相关的代码。并和用户一起通过各种途径测试数据库,从而不断地完善数据库。(请参考有关测试的文档)●数据库设计人员总结经验教训,不断地完善适用于本机构的《数据库设计指南》。●软件交付给用户后,由用户管理与维护数据库。11.4.6输出●《数据库设计报告》11.4.7结束准则●《数据库设计报告》已经完成,并且通过了技术审核。11.4.7度量数据库设计人员统计工作量以及文档的规模,汇报给项目经理。11.5模块设计11.5.1
本文标题:第11章 系统设计
链接地址:https://www.777doc.com/doc-2242091 .html