《软件工程软件体系结构.pptx》由会员分享,可在线阅读,更多相关《软件工程软件体系结构.pptx(49页珍藏版)》请在优知文库上搜索。
1、第四章第四章 软件设计软件设计主要内容:主要内容:软件体系结构的概念软件体系结构的概念软件设计思想软件设计思想结构化设计方法结构化设计方法面向对象设计方法面向对象设计方法讨论要点(1)(1)什么是软件结构?什么是软件结构?(2)(2)如何建立设计模型?如何建立设计模型?软件设计的目标和目的软件设计的目标和目的 软件需求:解决软件需求:解决“做什么做什么” 软件设计:解决软件设计:解决“怎么做怎么做” 软件设计的任务软件设计的任务 问题结构问题结构( (软件需求软件需求) ) 软件结构软件结构 从软件需求规格说明书出发,形成软从软件需求规格说明书出发,形成软件的具体设计方案。件的具体设计方案。映
2、射映射软件的总体结构主要回答的问题软件的总体结构主要回答的问题软件的组成部分软件的组成部分软件的层次关系软件的层次关系模块的内部处理逻辑模块的内部处理逻辑模块之间的界面模块之间的界面软件体系结构软件体系结构软件体系结构包括两部分软件体系结构包括两部分: :(1)(1)过程构件过程构件( (模块模块) )的层次结构的层次结构(2)(2)数据构件数据构件4.1 4.1 软件体系结构软件体系结构软件体系结构的有关概念软件体系结构的有关概念软件体系结构的层次性软件体系结构的层次性软件体系结构的设计原理软件体系结构的设计原理软件体系结构的有关概念软件体系结构的有关概念什么是软件体系结构什么是软件体系结构
3、软件体系结构的发展软件体系结构的发展软件体系结构的研究范畴软件体系结构的研究范畴软件设计的目标软件设计的目标设计应该是便于维护和升级的,因而应设计应该是便于维护和升级的,因而应该是模块化的该是模块化的设计应该是便于移植的设计应该是便于移植的设计应该具有适应性设计应该具有适应性设计过程应该受到理性化的控制设计过程应该受到理性化的控制设计应该表现出概念的完整性设计应该表现出概念的完整性软件设计思想软件设计思想强调信息隐蔽的单元概念强调信息隐蔽的单元概念应用基于操作和数据封装构成的单元设计应用基于操作和数据封装构成的单元设计技术技术应用专门的机制可靠地处理并发控制和分应用专门的机制可靠地处理并发控制
4、和分布系统问题布系统问题提出基于模型的系统结构和设计方法提出基于模型的系统结构和设计方法明确提出软件体系结构的设计思想明确提出软件体系结构的设计思想什么是软件体系结构什么是软件体系结构 软件体系结构定义了软件局部和软件体系结构定义了软件局部和总体计算部件的构成总体计算部件的构成, ,以及这些部件之以及这些部件之间的相互作用关系。间的相互作用关系。 从整体看,软件体系结构是由结构和从整体看,软件体系结构是由结构和功能各异、相互作用的部件集合,按照层功能各异、相互作用的部件集合,按照层次构成的。它包括了系统基础构成单元、次构成的。它包括了系统基础构成单元、它们之间的作用关系、在构成系统时它们它们之
5、间的作用关系、在构成系统时它们的合成方法以及对合成约束的描述。的合成方法以及对合成约束的描述。普通部件及其支持的相互作用普通部件及其支持的相互作用序序号号部件类型部件类型部件支持的相互作用类型部件支持的相互作用类型1模块模块(Module)过程调用、数据共享过程调用、数据共享2对象对象(Object)方法调用方法调用3过滤器过滤器(Filter)数据流数据流4过程过程(Process)消息传递、远程调用、消息传递、远程调用、通讯协议、同步通讯协议、同步5数据文件数据文件(Data file) 读写读写6数据库数据库(Database)模式、查询语言模式、查询语言7文档文档(Document)共
6、享表示假设共享表示假设软件体系结构可分为四种不同的体系:软件体系结构可分为四种不同的体系:概念结构概念结构 包括部件、互连、原则和性能等包括部件、互连、原则和性能等代码结构代码结构 包括软件的配置管理、系统建造等包括软件的配置管理、系统建造等模块结构模块结构 包括模块界面、模块管理、模块控制和一致性等包括模块界面、模块管理、模块控制和一致性等执行结构执行结构 包括性能分析、调度分析、动态配置和不同的包括性能分析、调度分析、动态配置和不同的执行系统之间的接口等执行系统之间的接口等 与软件体系结构有关的研究:与软件体系结构有关的研究:体系结构风格体系结构风格(Architecture Styles
7、)(Architecture Styles) 表示软件系统的一种特别的基本结构,以及相表示软件系统的一种特别的基本结构,以及相关的构造方法关的构造方法设计模式设计模式(Design Patterns)(Design Patterns) 构造型模式、结构型模式、行为型模式构造型模式、结构型模式、行为型模式框架框架(Framework)(Framework) 另一种研究和构造软件体系结构的方法,更多另一种研究和构造软件体系结构的方法,更多的是关于应用领域问题的已建立的系统结构。的是关于应用领域问题的已建立的系统结构。软件体系结构的层次结构软件体系结构的层次结构软件的构成软件的构成软件的物质基础软件
8、的物质基础软件的结构基础软件的结构基础软件的层次结构模型软件的层次结构模型软件体系结构的层次结构模型软件体系结构的层次结构模型软件体系结构的体系软件体系结构的体系软件的构成软件的构成软件体系结构需要基础软件体系结构需要基础软件体系结构需要层次软件体系结构需要层次软件体系结构需要模式软件体系结构需要模式软件的物质基础软件的物质基础 软件设计的物质基础是计算软件设计的物质基础是计算机硬件,当前的计算机硬件决定机硬件,当前的计算机硬件决定了软件设计和实现的出发点,计了软件设计和实现的出发点,计算机硬件的发展影响着软件体系算机硬件的发展影响着软件体系结构。结构。计算机硬件体系结构分类计算机硬件体系结构
9、分类SISD单指令流单数据流计算机单指令流单数据流计算机指令指令数据数据指令指令计算机硬件体系结构分类计算机硬件体系结构分类SIMD单指令流多数据流计算机单指令流多数据流计算机指令指令数据数据2数据数据1数据数据n计算机硬件体系结构分类计算机硬件体系结构分类MISD多指令流单数据流计算机多指令流单数据流计算机指令指令1数据数据数据数据指令指令2指令指令n指令指令1指令指令2指令指令n计算机硬件体系结构分类计算机硬件体系结构分类MIMD多指令流多数据流计算机多指令流多数据流计算机指令指令1指令指令2指令指令n指令指令1指令指令2指令指令n数据数据2数据数据1数据数据n多处理机系统多处理机系统具有
10、共享存储结构的多处理机具有共享存储结构的多处理机多处理机系统多处理机系统具有分布存储结构的多处理机具有分布存储结构的多处理机分布计算系统分布计算系统分布计算网络分布计算网络交换机交换机交换机交换机电信网络电信网络网络网络软件的结构基础软件的结构基础结构控制流结构控制流部件连接方式部件连接方式结构化连接模式结构化连接模式基本数据类型基本数据类型抽象数据类型抽象数据类型进程及运行环境进程及运行环境分时并发计算分时并发计算资源共享资源共享/ /并行同步并行同步实时系统实时系统软件结构的四视图观软件结构的四视图观软件体系结构的四视图软件体系结构的四视图概念视图概念视图模块视图模块视图代码视图代码视图运
11、运行行视视图图部件部件连接器连接器配置配置模块模块子系统子系统层层模块限制模块限制新模块分割新模块分割部件部件连接器连接器配置配置运行限制运行限制新模块分割新模块分割模块模块变化成运行实体变化成运行实体运行实体运行实体源代码源代码硬硬件件和和操操作作系系统统体体系系结结构构软件的层次结构模型软件的层次结构模型计算机网络的体系结构计算机网络的体系结构计算机操作系统的体系结构计算机操作系统的体系结构软件体系结构的层次结构模型软件体系结构的层次结构模型客户机客户机/ /服务器体系结构服务器体系结构应用系统的组成:应用系统的组成:显示逻辑部分显示逻辑部分(表示层表示层):实现与用户交互实现与用户交互应
12、用处理部分应用处理部分(功能层功能层):进行具体运算和数据处理进行具体运算和数据处理数据管理部分数据管理部分(数据层数据层):对数据库中数据进行查询、对数据库中数据进行查询、 修改、更新等任务修改、更新等任务应用分层应用分层表示层表示层功能层功能层数据层数据层三层明确分割三层明确分割, 逻辑上独立逻辑上独立 瘦客户机和胖客户机瘦客户机和胖客户机客户机客户机“胖胖” 客户机客户机应用应用处理处理逻辑逻辑显显示示逻逻辑辑服务器服务器数据数据管理管理逻辑逻辑数据库数据库“瘦瘦”客户机客户机表示表示显显示示逻逻辑辑数据数据管理管理逻辑逻辑数据库数据库表示表示应用处理应用处理应用应用处理处理逻辑逻辑客户
13、机客户机服务器服务器三层三层C/S的基本硬件结构的基本硬件结构 将三层功能装载到硬件的三种基本方法将三层功能装载到硬件的三种基本方法表示层表示层表示层表示层表示层表示层功能层功能层数据层数据层数据层数据层功能层功能层功能层功能层数据层数据层客客户户机机服服务务器器(1)(1)将数据层和将数据层和 功能层放在功能层放在 一台服务器上一台服务器上(2)(2)将数据层和将数据层和 功能层放在功能层放在 不同服务器上不同服务器上服服务务器器(3)(3)将功能层放将功能层放 在客户机上在客户机上层次模型的结构关系层次模型的结构关系客户客户层层N层层N-1层层1使用使用抽象的最高层抽象的最高层抽象的最低层
14、抽象的最低层2. 2. 软件设计的问题软件设计的问题 工具工具 如何描述软件的总体结构如何描述软件的总体结构方法方法 用什么方法有问题结构导出用什么方法有问题结构导出 软件结构软件结构评估准则评估准则 什么样的软件结构是什么样的软件结构是 “ “最优的最优的”公认的、被多次使用的公认的、被多次使用的系统结构系统结构被称为结被称为结构风格、设计模式、构风格、设计模式、( (设计设计) )框架。框架。如果说一门工程技术的成熟表现在其基本如果说一门工程技术的成熟表现在其基本设计构件的提出和系统化,那么体系结构设计构件的提出和系统化,那么体系结构的风格、模式、框架就是的风格、模式、框架就是软件工程中的
15、基软件工程中的基本构件本构件。体系结构概念能否成熟到使软件设计发生体系结构概念能否成熟到使软件设计发生根本革命的水平?根本革命的水平?广泛提及的体系结构风格:广泛提及的体系结构风格:v管道和过滤器管道和过滤器 ( (Pipe and Filters) )v数据抽象或对象数据抽象或对象( (Data Abstraction and Object Orientted) )v隐式调用隐式调用/ /消息消息( (Event-Based/Implicit Invocation) )v层次层次( (Layered System) )v仓库仓库( (Repositories) )v解释器解释器( (Inte
16、rpreters) )v过程控制过程控制( (Process Control) )v分布式系统分布式系统( (Distributed System) )v客户客户/ /服务器服务器( (Client/Server) )v主程序主程序/ /子程序子程序( (Main/Sub Programs) )v状态转换状态转换( (State Transition) )v专用领域专用领域( (Domain Specific Styles) )对体系结构风格的理解对体系结构风格的理解v结构风格以结构风格以结构组织为特性结构组织为特性定义了一个软件系统定义了一个软件系统族,表达了部件以及部件之间的关系。族,表达了部件以及部件之间的关系。v体系结构风格通过组件应用的限制及其与构建有体系结构风格通过组件应用的限制及其与构建有关的组成和设计规则来关的组成和设计规则来表现组件和组件之间的关表现组件和组件之间的关系系。v体系结构风格表示了软件系统的一种体系结构风格表示了软件系统的一种特别的基本特别的基本结构结构,以及相关的构造方法。,以及相关的构造方法。v体系结构风格应该使一些对软件体系结构风格应该使一些对软件构