-系统设计综述

上传人:最**** 文档编号:117490671 上传时间:2019-12-05 格式:PPT 页数:87 大小:1.39MB
返回 下载 相关 举报
-系统设计综述_第1页
第1页 / 共87页
-系统设计综述_第2页
第2页 / 共87页
-系统设计综述_第3页
第3页 / 共87页
-系统设计综述_第4页
第4页 / 共87页
-系统设计综述_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《-系统设计综述》由会员分享,可在线阅读,更多相关《-系统设计综述(87页珍藏版)》请在金锄头文库上搜索。

1、1 系统设计 系统设计是把分析模型转变成系统设计模型 系统设计不能用一个算法来解决, 但对常见的问题已有典型的解 决方案(模式, pattern) 系统设计包括: 1.设计目标的定义 2.分解系统为子系统 3.现有和遗留组件的选择 4.子系统到硬件的映射 5.持续数据管理基础设施的选择 6.访问控制策略的选择 7.全局控制流机制的选择 8.边界条件的处理 2 1 介绍: 一个楼层设计的例子 需求提出和分析集中在系统的目标和功能上 系统设计集中在将系统分解成便于管理和实现的部分 系统设计的主要挑战在于分解系统时有许多需要考虑的相互冲突 的标准和限制 例: 楼层平面图设计 约束条件: 1.这栋房子

2、应该有两个卧室, 一个书房, 一个厨房和一个客厅 2.居住者每天所走的全部路程应该最少 3.要最大可能的利用阳光 楼层平面图设计与软件系统设计的类比 非功能性需求:客厅面积响应时间 功能性需求:卧室间数用例 整体分成部分:房间子系统 接口:门服务 设计对实现的影响:厨房布置子系统代码复杂度 后期修改的代价:移动门改变子系统接口 3 N Bedroom2 Master Bedroom Dining Hallway Stairs Bath Kitchen Study Bath Kitchen Master Bedroom Dining Hallway Stairs Entrance door Ma

3、ster Bedroom Bedroom2 Dining Hallway Stairs Entrance door Study Study Bath Kitchen Bedroom2 Entrance door Version 1Version 2 Version 3 Example of iterative floor plan design. Three successive versions show how we minimize walking distance and take advantage of sunlight. 4 2 系统设计概况 从分析产生的需求模型包括 非功能性需

4、求和约束条件 用例模型 对象模型 时序图模型 分析模型从执行者的角度完整地描述了系统, 但分析模型不包括系统的 内部结构信息 系统设计是为解决系统应如何实现而迈出的第一步 系统设计可得到如下结果 一系列设计目标- 应优化的系统属性 (来自非功能性需求) 软件体系结构- 子系统的分解 软硬件的映射- 硬件节点, 软件功能分布 数据管理- 持久数据的存储及性能问题 访问控制- 解决谁可访问哪个数据的问题 控制流- 事件驱动, 多线程 边界条件- 初始化, 关闭, 和异常处理 5 3 系统设计的概念 子系统的分解和它们的属性 3.1 子系统和类 为了减少求解域的复杂性, 系统将被分成称之为子系统的较

5、小的 部分 一个子系统由许多求解域的类组成 Subsystem decomposition (UML class diagram). 6 例: 子系统分解 1.调度员接口子系统- 实现调度员的用户接口 2.现场工作人员子系统- 实现现场工作人员的用户接口 3.事件管理子系统- 实现时间的创建, 修改和存储 4.通知子系统- 实现现场终端和调度站间的通信 Notification IncidentManagement FieldOfficerInterface DispatcherInterface Subsystem decomposition for an accident manageme

6、nt system (UML class diagram, collapsed view). Subsystems are shown as UML packages. Dashed arrows indicate dependencies between subsystems. 7 编程语言对子系统建模的支持 Java- Package Modula-2- MODULE C/C+- 将一个子系统的代码放在同一子目录下 3.2 服务和子系统接口 一个子系统是通过它为其它子系统提供的服务而确定其特点的 一个服务是一组有着共同目标的相关操作 子系统提供的服务 在系统设计中定义: 子系统提供的操作,

7、 操作的参数和其高层行为 子系统接口: 该子系统提供给其它子系统的一组操作 (API) 在对象设计中定义 确定参数的类型和操作的返回值 一个好的子系统接口应提供尽可能少的实现信息 8 3.3 偶合度与相关性 偶合度是指两个子系统之间依赖的程度 松散偶合的子系统, 一个子系统的变化对另一个子系统的影响很小 子系统分解的一个目标是让子系统之间尽可能是松散偶合的, 使得错 误或潜在的变化对系统的正常操作影响尽可能的小 例: 编译器中语法分析子系统和语义分析子系统之间的偶合 两个子系统通过语法分析树共享数据 两种共享方式 通过属性共享 通过操作共享 语法分析树内部数据结构变化对系统的影响 从二叉树结构

8、变成链表结构 通过属性共享: 两个子系统都受影响 通过操作共享: 只有语法分析树子系统受影响 9 相关性是指子系统内部的依赖程度 子系统内的对象彼此相关, 并执行类似的任务, 则其相关性就比较 高 分解子系统希望得到的一个属性是子系统有较高的相关性 通常需要在相关性和偶合度之间找到一种平衡 将系统依次分成更小的子系统可增加分出的子系统的相关性 子系统数量的增加导致接口数量的增加, 因而提高了偶合度 推荐的指导方法: 一个子系统不要提供超过9种的服务 7 加减 2 原则 10 3.4 分层和分区 分而制之是管理系统复杂性的通用原则 两种经典的子系统分解方法是分层和分区 分层的方法 将系统分成若干

9、子系统 每一个子系统位于系统分解图的一个层次上 每一层只依赖于它的低层 封闭的分层系统: 每一层只依赖于它的直接低层 开放的分层系统:每一层可依赖于它的直接/间接低层 11 Subsystem decomposition of a system into three layers (UML object diagram). A subset from a layered decomposition that includes at least one subsystem from each layer is called a vertical slice. For example, the s

10、ubsystems A, B, and E constitute a vertical slice, whereas the subsystems D and G do not. 12 Application Presentation Session Transport Network DataLink Physical Frame Packet Bit Connection Format Message Level of abstraction An example of closed architecture: the OSI model (UML class diagram). The

11、OSI model decomposes network services into seven layers, each responsible for a different level of abstraction. 13 Xlib Xt Motif Application An example of open architecture: the OSF/Motif library (UML class diagram, packages collapsed). Xlib provides low-level drawing facilities. Xt provides basic u

12、ser interface widget management. Motif provides a large number of sophisticated widgets. The Application can access each of these layers independently. 14 分层的方法的特点 子系统间偶合度较低 可以用渐进的方式集成和测试 每一层都会引入额外的系统速度开销 后来的修改中, 不易增加系统的功能 分区的方法 将系统分成对等的子系统 每个子系统负责一种类型的服务 一般来说, 子系统分解是分区和分层的方法一起用 例: 分区: 将系统分割成负责特定功能或

13、运行在特定硬件节点上的子系统 分层: 将每个子系统再分成一个多层的子系统 (如果有必要) 15 3.5 软件体系结构 复杂系统的子系统分解相当关键 一个不好的分解很难在开发开始后进行纠正 软件体系结构 系统分解 全局控制流 错误处理策略 子系统间的通信协议 根据各子系统如何共享数据、如何分布、如何相互交互,可开发更加特定的模型。 1)数据仓库模型 2)客户机/ 服务器模型 3)抽象机模型 4.经典的软件系统结构的例子 16 4.1仓库体系结构 特点 子系统通过一个称为中心仓库的单一数据结构访问并修改数据 每个子系统保有各自的数据库,通过传送消息,可在子系统之间交换数据。 子系统相对独立且只通过

14、这个中心数据结构相互作用 易于处理子系统间的并发和完整性问题 适合仓库体系结构的例子 基于数据库的管理系统: 工资系统, 银行系统 现代编译器和软件开发环境: 中心语法分析树和符号表 (see next slide) 数据处理任务不断改变的复杂应用系统 (附加子系统的形式增加新服务) 控制系统,信息管理系统,CAD系统,CASE工具集。 缺点 逻辑上是一个星型结构, 中心仓库易于成为系统性能的瓶颈 子系统和仓库之间的偶合度高 (修改仓库对其它子系统影响很大) 17 集成的集成的CASECASE工具集的体系结构工具集的体系结构 以数据仓库为核心以数据仓库为核心 设计分析器报告生成器 项目数据仓库

15、 设计编辑器代码生成器 设计翻译器程序编辑器 18 这种体系结构包括数据库、超文本系统及数据黑板系统等。它包含两种成分 :一是共享的结构化数据;二是所有访问这些数据的操作。 如果是因为输入数据而引起对共享数据的操作,那么这种控制策略下的体系 结构就叫做数据库。 如果是由共享数据的当前状态触发相应的处理,那么这种体系结构就叫做数 据黑板。为此,需要存储特定知识。 数据仓库模型可共享大量数据,在子系统之间无须进行数据转换。 子系统的数据模型必须与数据仓库的数据模型保持一致。如果一个新子系统 的数据模型与数据仓库的数据模型冲突,很难将它集成到系统中来。 不同的子系统对保密性、恢复和备份有不同的要求,

16、而数据仓库模型将迫使 所有子系统采用相同的策略。 19 4.2模型/视图/控制器体系结构 特点 子系统分为三种不同类型 1. 模型 (Model) 子系统负责保持域的知识 2. 视图 (View) 子系统负责把域的知识显示给用户 3. 控制 (Control) 子系统负责管理与用户交互的顺序 20 模型子系统完全不依赖于任何视图或控制子系统 模型子系统的状态通过 subscription / notification 协议传输给 视图子系统 MVC 体系结构是仓库体系结构的特例 Controller Model subscriber notifier initiator * repository1 1 * View Model/View/Controller architecture (UML class diagram). The Controller g

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号