系统设计和概要设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5)数据库的逻辑设计 详细的内容请见文 其它----如可靠性、 ----如可靠性 (6)其它----如可靠性、安全性设计等 档 5、概要设计中所涉及的系统设计的一些基本的原则
(1)先进性和实用性 (2)可靠性和开放性 (3)可维护性和可伸缩性 (4)可移植性
7、概要设计的重要输出 (1)概要设计说明书
子曰: 三人行,必有我师焉” 3、子曰:“三人行,必有我师焉” 子曰: 我非生而知之者,好古,敏以求之者也” 4、子曰:“我非生而知之者,好古,敏以求之者也”
5、在进行系统设计时所应该注意的要点 核心问题---------能否使用重复的体系结构模式 (1)核心问题-----能否使用重复的体系结构模式
也就是能否达到结构级的软件重用---即能否在不同的软 也就是能否达到结构级的软件重用---即能否在不同的软 --件体系中,使用同一体系结构。 件体系中,使用同一体系结构。 比如我们经常说的C/S B/S体系结构等问题 C/S和 体系结构等问题。 比如我们经常说的C/S和B/S体系结构等问题。
2、概要设计阶段的工作重点 设计中所需要的各种信息,主要来自于需求分析。 (1)设计中所需要的各种信息,主要来自于需求分析。 工作的重点内容:是设计软件的体系结构。 (2)工作的重点内容:是设计软件的体系结构。 (3)架构设计工作的基本流程如下 这个阶段是系统架构师发挥作用的主要阶段。 这个阶段是系统架构师发挥作用的主要阶段。
这也是“学习”和 这也是“学习” 开发” “开发”的不同思 路
系统设计中的概要设计(结构设计) 二、系统设计中的概要设计(结构设计)
1、在什么时期进行概要设计
在需求“明确”并对需求进行域建模之后, 在需求“明确”并对需求进行域建模之后,要做概要设计 概要设计对后面的开发、测试、实施、 概要设计对后面的开发、测试、实施、维护工作起到关键 性的影响。 性的影响。
那就让我们共同 讨论和学习吧! 讨论和学习吧
系统设计和概要设计 系统设计和概要设计 概要
在本讲您能了解如下内容 系统设计?主要内容? 系统设计?主要内容? 系统设计的目的?目标? 系统设计的目的?目标? 系统设计中的“3W”原则 系统设计中的“3W 原则 系统设计中的概要设计 概要设计中所涉及的主要内容
(3)软件设计的“3W 原则 软件设计的“3W”原则
Who(为谁设计,用户是谁) Who(为谁设计,用户是谁) What(要解决用户的哪些问题----功能方面、性能方面) ----功能方面 What(要解决用户的哪些问题----功能方面、性能方面) Why(为什么要解决这些问题----为用户带来价值、 ----为用户带来价值 Why(为什么要解决这些问题----为用户带来价值、降低开 发方的成本等) 发方的成本等)
系统设计时的基本要求-------分析和设计应该是合作的 (3)系统设计时的基本要求----分析和设计应该是合作的
分析面向问题,是明确动力的过程,重在理解和翻译, 分析面向问题,是明确动力的过程,重在理解和翻译,灵 活性高 设计面向方案,是排除阻力的过程,重在精化和适应, 设计面向方案,是排除阻力的过程,重在精化和适应,受 约束大 从整体上看,分析和设计的对立是保障问题和方案趋 从整体上看, 于一致的基本动力。就像两个相反方向的张力, 于一致的基本动力。就像两个相反方向的张力,使软件朝 着正确的方向前进。 着正确的方向前进。
我们不要幻想直接 把分析类图画好后, 把分析类图画好后,就 直接按照其去编码。 直接按照其去编码。
(2)设计的目的----指明一种易转化成代码的工作方案,是对 ----指明一种易转化成代码的工作方案, 指明一种易转化成代码的工作方案
分析工作的细化 即进一步细化分析阶段所提取的类(包括其操作和属性) 即进一步细化分析阶段所提取的类(包括其操作和属性), 并且增加新类以处理诸如数据库、用户接口、通信、 并且增加新类以处理诸如数据库、用户接口、通信、设备等技 术领域的问题。 术领域的问题。
1、系统需求 我们但现在为止,已经收集、整理并且描述出系统的 我们但现在为止,已经收集、 需求 另外, 另外,我们也对需求中所涉及的一些主要的业务用例的 实现过程进行了模型的分析和建立 因此,我们对“做什么”应该是比较明确和清楚了--因此,我们对“做什么”应该是比较明确和清楚了--但我们对“如何做”还没有一个清晰的方案?! 但我们对“如何做”还没有一个清晰的方案?! 2、系统设计则是我们现 在所要考虑的问题 (1)所涉及的内容 设计中的UML UML图 (2)设计中的UML图 设计思想、 (3)设计思想、方法和 原则、 原则、乃至技巧 ?
3、详细设计阶段的重点 用户界面设计、和各个模块组件的设计、 (1)主要的内容:用户界面设计、和各个模块组件的设计、
实现技术等内容
基本要求:一般是做到类的方法和属性的描述, (2)基本要求:一般是做到类的方法和属性的描述,但这些
方法的实现就不必做了。 方法的实现就不必做了。
4、为什么要进行系统设计 (1)主要的原因
体系结构从更高的层面上考虑问题---------关注的问题 (2)体系结构从更高的层面上考虑问题-----关注的问题 就体现在“不变”因素上 就体现在“不变”
体系结构一般关心应用程序的模式, 体系结构一般关心应用程序的模式,更加体现在通过技术 去解决这些业务差异带来的影响。 去解决这些业务差异带来的影响。 比如,关心是否是分布式应用程序, 比如,关心是否是分布式应用程序,关心系统分层是如何 设计,也关心性能和安全----因此在这样的情况之下, ----因此在这样的情况之下 设计,也关心性能和安全----因此在这样的情况之下,会 考虑集群,负载平衡,故障迁移等等一系列技术的使用。 考虑集群,负载平衡,故障迁移等等一系列技术的使用。
统的最重要的环节, 统的最重要的环节,并且系统设计的优劣在根本上决定了软件 系统的质量。 系统的质量。
4、概要设计中所涉及的主要内容 (1)制定规范
代码体系、接口规约、 代码体系、接口规约、命名个风格等规则 规定设计文档的编制标准。 规定设计文档的编制标准。 规定与硬件、操作系统的接口规约, 规定与硬件、操作系统的接口规约,命名规则 因为,这些是项目小组今后共同开发的基础。 因为,这些是项目小组今后共同开发的基础。并且使整个软 件开发工作可以协调有序地进行。 件开发工作可以协调有序地进行。
(2)体系结构设计(架构设计) 体系结构设计(架构设计)
体系结构是对复杂事物的一种抽象, C/S和B/W/S结构。 体系结构是对复杂事物的一种抽象,如C/S和B/W/S结构。 结构
(3)划分系统中的各个模块及组件类的设计
根据用户的需求实现从功能上来划分各个功能模块, 根据用户的需求实现从功能上来划分各个功能模块,在模 块设计中保持“功能独立---单一职责原则SRP ---单一职责原则SRP”是模块化设 块设计中保持“功能独立---单一职责原则SRP 是模块化设 计的基本原则。 计的基本原则。 因为, 功能独立”的模块可以降低开发、测试、 因为,“功能独立”的模块可以降低开发、测试、维护等 阶段的代价。 阶段的代价。
一、系统设计
系统设计-----什么是系统设计 1、系统设计---什么是系统设计
所谓系统设计就是通过某种特定的平台, 所谓系统设计就是通过某种特定的平台,而达到完成项目 的整体软件的功能和性能。 的整体软件的功能和性能。 从工程管理的角度来看,软件设计分两步完成。 从工程管理的角度来看,软件设计分两步完成。
而对于用例的分析我们可以产生一个分析模型, 而对于用例的分析我们可以产生一个分析模型,但是我们 很少有直接根据这个分析模型去完成程序的实现。为什么? 很少有直接根据这个分析模型去完成程序的实现。为什么? 首先我们应该了解用例得到的分析模型 分析模型, 首先我们应该了解用例得到的分析模型,只是表达了系统 中的一些关键性的概念, 中的一些关键性的概念,而不能表达系统中的性能和系统的 外观。 外观。 同时分析模型往往对于系统的结构设计来说又往往过于简 同时分析模型往往对于系统的结构设计来说又往往过于简 复用和调试等等都不能在这个模型中被考虑完成。 单,复用和调试等等都不能在这个模型中被考虑完成。 因此,我们有必要对前面的分析模型再进一步地进行设计, 因此,我们有必要对前面的分析模型再进一步地进行设计, 以最终产生出我们系统的设计模型
完成设计阶段中 的基础性工作
编码规范:信息形式、接口规约、命名规则; 编码规范:信息形式、接口规约、命名规则; 物理模型:组件图、配置图; 物理模型:组件图、配置图; 不同角度的构架视图:用例视图、逻辑视图、进程视图、 不同角度的构架视图:用例视图、逻辑视图、进程视图、 部署视图、实施视图、数据视图(可选); 部署视图、实施视图、数据视图(可选); 系统总体布局:哪些部分组成、各部分在物理上、 系统总体布局:哪些部分组成、各部分在物理上、逻辑上 的相互关系; 的相互关系;
(4)数据结构与算法设计
设计高效率的程序是基于良好的数据结构与算法, 设计高效率的程序是基于良好的数据结构与算法,而不是 基于编程小技巧的。一般说来, 基于编程小技巧的。一般说来,数据结构与算法就是一类数 据的表示及其相关的操作。 据的表示及其相关的操作。 确定软件涉及的文件系统的结构以及数据库的模式、 确定软件涉及的文件系统的结构以及数据库的模式、子模 进行数据完整性和安全性的设计,并确定输入, 式,进行数据完整性和安全性的设计,并确定输入,输出文 件的详细的数据结构
(2)数据库设计说明书 (3)用户手册 (4)制定初步的测试计划和方案 8、概要设计的文档范例
请参考“BBS论坛概要设计说明书” 请参考“BBS论坛概要设计说明书”。 论坛概要设计说明书
概要设计评审(测试) 9、概要设计评审(测试)
本讲的简要回顾
1、子曰:“学而不思则罔,思而不学则殆。” 子曰: 学而不思则罔,思而不学则殆。 学而时习之” “学而时习之” 2、子曰:“知之者不如好之者,好之者不如乐之者” 子曰: 知之者不如好之者,好之者不如乐之者”
概要设计(静态结构) (1)概要设计(静态结构)
将软件需求转化为数据结构和软件的系统结构。 将软件需求转化为数据结构和软件的系统结构。划分出组 成系统的物理元素:程序、数据库、过程、文件等。 成系统的物理元素:程序、数据库、过程、文件等。
详细设计(动态结构) (2)详细设计(动态结构)
通过对结构表示进行细化, 通过对结构表示进行细化,得到软件的详细的数据结构 和算法、关键性问题的解决等。 和算法、关键性问题的解决等。
பைடு நூலகம்
2、工作的重点
如何适应特定的实施环境和部属环境。 如何适应特定的实施环境和部属环境。工作的核心是规划 方案的构造, 方案的构造,在揭示实施细节的基础上得到方案的详细对象模 型。
3、概要设计的重要性 (1)分析和设计模型应该是交错并且还应该是迭代的 (2)概要设计的重要性主要体现在它是把需求转化为软件系