《面向对象分析与设计(UML[1].2.0版第8章设计系统体系结构课件》由会员分享,可在线阅读,更多相关《面向对象分析与设计(UML[1].2.0版第8章设计系统体系结构课件(26页珍藏版)》请在金锄头文库上搜索。
1、2020/9/7,1,第8章 设计系统体系结构,学习目标: 理解系统设计的步骤和系统如何分解为物理和逻辑组件 在UML部署图上演示体系结构决策 理解联网系统中产生的并发和安全问题 理解如何分解系统,在UML部署图中添加分解决策,2020/9/7,3,8.1 引言,分析是调查问题,设计是解决问题 设计过程由开发完整系统的需求、小组的经验、重用机会和个人喜好驱动 在设计阶段,要确定技术选择(如编程语言、协议和数据库管理系统),2020/9/7,4,8.2 设计优先级,面向对象的软件开发是递增的,不可能一次就设计出完整的系统 通过优先级规划系统的设计,2020/9/7,5,8.3 系统设计中的步骤,
2、设计分为两部分: 系统设计:(概要设计)注重从较高的层次来考察任务 子系统设计:(详细设计)位于系统设计之后,2020/9/7,6,系统设计的内容,选择系统拓扑:硬件和过程如何在网络上分布 选择技术:选择编程语言、数据库、协议等 设计并发策略:并发意味着事情同时发生多个过程、用户、机器;软件必须能协调这些事情,以免混乱,2020/9/7,7,系统设计的内容,设计安全策略 选择子系统部分:开发一个解决所有问题的系统常常是不切实际的,需要开发若干个软件,确保这些软件有效通信 把子系统分解为层或其它子系统:每个子系统一般都需要进一步分解为可管理的模块,然后进行详细设计,2020/9/7,8,系统设计
3、的内容,决定机器、子系统和层的通信问题,2020/9/7,9,8.4 选择联网的系统拓扑,系统拓扑是指系统如何分解为几个物理和逻辑组件,2020/9/7,10,8.4.1 网络体系结构的简史,大多数现代的联网系统都有三层体系结构,2020/9/7,11,一层体系结构,优点:部署简单 缺点:只能通过购买新大型机或升级已有的大型机,来提高计算能力,2020/9/7,12,两层体系结构,2020/9/7,13,8.4.2 三层体系结构,2020/9/7,14,三层体系结构的优点,分解重要的部分:业务逻辑、用户界面和数据安全 使用正确的机器完成工作 改进性能,便于负载均衡 改进安全性,保护内部机器、程
4、序和数据 保护投资 部署灵活 支持容纳不同类型的客户,2020/9/7,15,8.4.8 客户机服务器与分布式体系结构,只要连接多台机器或多个软件系统,就必须在客户机服务器与分布式体系结构中选择 客户机服务器:大量小型的简单客户机给几个大型多线程的服务器发送请求,服务器处理并将结果返回给客户机 分布式(或对等peer-to-peer):一组独立的对等机器根据需要在任意方向上实现通信,2020/9/7,16,客户机服务器与分布式体系结构,客户机服务器结构,分布式体系结构,2020/9/7,17,客户机服务器与分布式体系结构,术语“客户机服务器”和“分布式”用于描述软件体系结构,独立于软件部署到物
5、理机器和网络上的方式 客户机服务器体系结构易于开发,2020/9/7,18,8.4.9 用UML描述网络拓扑,体系结构可以使用UML的部署图进行描述,2020/9/7,19,8.5 并发设计,大多数系统,尤其是联网系统,会在同一时刻发生许多事件,即它们是并发系统 在设计上,系统应作为一个整体,各个过程运行为系统的一部分,2020/9/7,20,并发所导致的问题.,如何确保在他人访问之前,完全更新信息 如何确保信息在读取的同时不被更新,2020/9/7,21,并发采用的技术,在低层次上,数据库事务和线程监视器用于保护各个过程内部的数据 在较高层次上,需要使用系统规则和业务规则控制并发活动,202
6、0/9/7,22,并发的一些注意事项,设计优秀的并发系统的外观和操作方式与单用户版本没有区别 业务服务对并发用户和单用户是相同的 为了确保业务对象的并发操作的安全,只需添加消息和支持对象;因此,业务消息(和相关的属性)可以单独设计,2020/9/7,23,8.6 安全设计,作用:安全系统可以阻止无意或恶意的误用,2020/9/7,24,安全所包含的方面.,私密性:必须隐藏信息,只有授权的人才能读取它 验证:需要知道信息从何而来,以便决定信任或不信任它 不能反驳的信息:这是验证附带的一个功能,确保信息的初始提供者不能否认它们是信息的来源,如果事情出错,这将有所帮助,2020/9/7,25,安全所包含的方面.,完整性:必须确保信息在从其来源传送给我们的过程中,不受到无意或恶意的破坏 安全性:必须控制对资源(例如机器、过程、数据库和文件)的访问。安全性也称为授权(authorization),2020/9/7,26,安全设计,注意:信息不仅表示数据,例如业务文档和用户密码,还表示可执行的代码。代码是一个问题,因为它可以通过网络动态加载。,