体系结构设计与常用的体系结构模型中法计141第三组成员:陈晓雅程茜茜崔雪邓祎迪杜思琦范珊珊主要内容123第一部分体系结构设计第二部分体系结构模型第三部分详例应用1ONE体系结构设计软件设计软件设计是将软件需求转换为软件表示的过程,也是一个建模过程,以一系列迭代的步骤建立不同的视图来描述系统。软件系统设计的5个核心内容:体系结构设计,模块设计(对象或类设计),用户界面设计,数据库设计,数据结构和算法设计(详细设计)。体系结构设计软件初始设计过程的任务是要识别出组成大型系统的多个子系统,并建立子系统的控制和通信框架,这个过程叫做体系结构设计。它包括识别出系统的主要组件以及它们之间的通信。体系结构设计是设计过程的初始阶段。表现为设计和需求工程过程之间的桥梁。通常是与一些系统描述活动同时进行的。体系结构设计的输出的一个描述就是软件体系结构。软件体系结构的相关概念软件体系结构是一个软件系统的基本组织,它体现在构件、构件间的相互关系以及构件与环境的关系中;它还包括指导系统设计和进化的原则。软件体系结构并非是可执行的软件,它是一种设计表示,通过该表示使得软件体系结构师能够分析其所完成的设计是否满足软件需求,以减少软件构造过程中存在的风险。1.设计准备2.确定影响系统设计的约束因素3.确定设计策略4.系统分解与设计5.撰写体系结构设计文档6.设计评审体系结构设计步骤在大规模软件开发的过程中,软件体系结构设计起着举足轻重的作用,用它来指导整个开发过程,可以准确满足需求并充分提高软件系统的重用性和可维护性.一个软件系统的体系结构设计的好不好,可以用合适性、结构稳定性、可扩展性和可复用性等特征来评估。软件体系结构设计原则进行体系结构设计的好处1.有利于利益相关者之间的沟通体系结构是系统的一个高层表示,可以作为不同的项目相关人员之间讨论的焦点,有利于设计决策。2.有利于系统分析在系统开发的早期阶段给出系统的体系结构,实际上就是对系统的分析过程。对体系结构的设计决策,对系统能否满足关键性需求具有深远的影响。3.有利于大规模复用体系结构能在具有相似需求的系统之间互用,由此来支持大规模的软件复用。体系结构表示1.常用非形式化的方块图来描述体系结构2.非形式化的方块图既没有给出系统组件之间的关系类型,也没有显示出组件可见的外部特性,非常抽象。3.有利于不同层次的系统参与人员进行交流与沟通。每个子系统在图中用一个矩形表示,子系统间的关系用带箭头的连线表示,关系可能包含数据流,“使用”和“被使用”关系,或一些其他类型的依赖关系。软件工程师可以在给定的体系结构类型中使用许多种不同的体系结构风格和模式,每个模式描述了一个系统类别,它包含:一组完成系统所需功能的构件,一组使构件间通信、协调及合作的连接件,定义如何集成构件以构成系统的约束条件,使设计者能够理解系统整体特性的语义模型。体系结构的模式系统特性与体系结构1性能方面2信息安全性方面3系统安全性方面4可用性方面5可维护性方面体系结构设计决策体系结构设计决策包括对应用类型的决策、系统分布的决策、所使用的体系结构类型的决策以及对体系结构应该如何记录和评估的决策体系结构设计决策1对于要开发的系统,是否存在一个一般性的应用体系结构可以拿来当模板?2系统将如何分配到多个处理器上?3有哪个或哪几个体系结构模式或者风格适合本系统?4有哪些基本方法可以用来构成该系统?5如何将系统中的结构单元分解为模块?6应该使用什么样的策略来控制系统中单元的操作?7如何评估体系结构设计?8如何记录系统体系结构?体系结构模型对这些模型的掌握可以简化定义系统体系结构的问题绝大多数的大型系统的体系结构都包括不同的体系结构类型,并不属于一个单一的类型软件系统的体系结构要给予特定的体系结构模型软件系统的体系结构要给予特定的体系结构模型对这些模型的掌握可以简化定义系统体系结构的问题绝大多数的大型系统的体系结构都包括不同的体系结构类型,并不属于一个单一的类型2TWO体系结构模型体系结构模型一个软件系统是由若干个组成部分,按照一定的组织结构形式构成的.这个组织结构形式从概念上就是一个总体性框架,它表达了软件系统各个组成部分之间的关联关系以及控制系统设计和进化的一组原则.软件体系结构技术中研究的首要问题是:部件的规格定义和体系结构的建模.1.容器体系结构模型组成部分:(1)数据中心:用于表示当前状态的中心数据结构。(2)客户软件:用于在数据存储中心存储的数据上进行操作的一些独立的部件组合特点:容器体系结构模型是基于一个共享数据库的系统模型,该模型适合于数据由一个组件产生而有其他组件使用的情形。体系结构为该类型的系统例子如管理信息系统(MIS)、CAD系统、CASE工具集、可服用组件库等。容器体系结构模型的优缺点•能高效的共享数据,无需在组件之间进行数据交换。•组件一定要与容器的数据模型一致。大量信息都按照一致的数据模型生成。•生产数据的组件不需要关心数据如何被其他组件使用。•备份、保密性、访问控制、错误回复等活动都是容器管理员的职责,客户程序主要集中在自己的功能上。不同的组件对这些活动的要求不同,而容器模型迫使所有的组件使用相同的策略。•容器中出现问题会影响整个系统。•是系统的静态结构,不能展现系统运行时的组织。实例-某管理系统的容器体系结构模型管理模式——中心数据存储具体项目的管理模式——客户软件2分层体系结构模型组成部分:(1)数据服务层:存储数据和提供基本数据服务。(2)应用接口层:对应存储过程接口,用来维护服务器中数据的一致性和完整性。(3)应用层:把用户需求转化为针对特定服务器的基本功能。(4)用户界面层:唯一与用户的交互点。特点:1)层与层之间的相对独立性相对独立,每一层只与其上面的层打交道,无需了解其他层的语义模型在分层模型中,用户界面层、应用层、应用接口层和数据服务层。2)适用于Internet/Intranet环境应用层完成客户端管理、维持与多个服务器的链接,负责与数据服务层建立稳定的链接,完成复杂的管理。3)便于集成管理在模型中,分布式应用管理程序通过数据传输层与分层模型集成在一起,成为系统不可分割的一部分。4)通用性层分布式模型不仅为开发分布式GIS提供了一个框架,而且有助于更清楚地理解分布式系统体系结构的本质。1)层与层之间的相对独立性相对独立,每一层只与其上面的层打交道,无需了解其他层的语义模型在分层模型中,用户界面层、应用层、应用接口层和数据服务层。2)适用于Internet/Intranet环境应用层完成客户端管理、维持与多个服务器的链接,负责与数据服务层建立稳定的链接,完成复杂的管理。3)便于集成管理在模型中,分布式应用管理程序通过数据传输层与分层模型集成在一起,成为系统不可分割的一部分。4)通用性4层分布式模型不仅为开发分布式GIS提供了一个框架,而且有助于更清楚地理解分布式系统体系结构的本质。分层体系结构模型的优缺点实例-云计算分层体系架构(1)云客户端——用户界面层是直接面向客户的人机接口。(2)云应用——应用接口层在软件结构上服务器端采用云计算。(3)云平台——应用层基于云基础设施,将计算平台或解决方案作为一项服务。(4)云基础设施——应用层计算机基础设施的交付使用,典型的表现为一个平台虚拟化环境。(5)服务器层——数据服务层由针对云服务的交付而特别设计的计算机硬件和计算机软件组成的。3软件系统结构模型*使用自然语言或图形等较直观的方式来描述和阐明问题。*结构模型描述系统结构形态,即系统各部分间及其与环境间的关系*对于理清思路、明确问题,与利益相关者进行沟通,都极为有用4管道--过滤器体系结构系统运行时组织的模型,看作是对相继输入数据的一系列变换。一批数据进入系统,流经一个个组件最后到达终点(输出或数据库)。组件被称为过滤器,能够对数据进行渐进式的转换(一种流变成另一种流)。数据流的通路称为管道优缺点优点:1、没有复杂的组件交互。2、支持软件重用:由管道连接起来的过滤器的组合又可以看成一个过滤器,可应用到其他系统中。3、易于维护:过滤器替换方便4、支持并行执行过滤器,但要考虑并行执行时数据流之间的同步问题缺点:1、适用批量处理方式,不适合构建交互式应用的系统。如对图形化的用户界面,有复杂的输入输出格式、基于事件的鼠标点击或菜单选择的控制信息,将其转换成与数据流模型兼容的格式是困难的。实例应用:典型的应用就是UNIX系统,连接进程时用到管道,从一个进程到另一个进程传送文本流。还有的应用实例:如传统的数据处理系统(如票据处理)、传统的编译器(词法分析、语法分析、语义分析、代码生成)、数字通信(传递文字、语音、图片、图像等)系统。5控制模型控制模型:考虑子系统之间的控制流1、集中式模型:一个组件被指定为系统控制器,负责管理它组的执行。调用-返回模型(顺序执行)、管理者模型(并行执行)2、基于事件的控制:广播模型、中断驱动模型自上而下的调用,控制始于控制层次的顶层,往往只有一个控制线程集中式模型--调用-返回模型组成系统的部件是各个功能模块、层次或对象,连接器是各个部件之间的调用关系。该模型体现的是部件之间调用与被调用的关系,系统有各个部件通过他们之间的调用与返回方式传递信息构成一个有机的整体,从而实现系统的功能。调用与返回模型通常有3种形式:主、子调用模型、面向对象模型和层次模型。优点:1、通过按照一定的方式(自顶向下、对象描述、层次分解等)对问题进行分解,有利于复杂问题的分析和解决2、支持基于增量式抽象设计,这就允许把一个复杂问题分成一系列增量的步骤来完成3、系统功能容易增强。系统可以通过增加或修改模块、对象、层次的功能来实现系统功能的增强。4、支持部件的重用。缺点:1、主调部件需要预先明秋知道被调用部件的接口标识2、部件接口标识的更改会导致必须修改显示调用它的所有部件,而且这种现象还会进行传递,从而可能导致不可预知的负面影响。3、主、子调用系统的正确性依赖于构成系统的子系统的正确性,从而子系统的正确性有依赖它所调用的子程序的正确性。优缺点实例应用:主、子调用结构模型:早期采用结构化设计方法实现的面向问题的系统是主、子调用模型的应用,系统由主程序、子程序构成,并且子程序集合成模块,这种系统主要体现为由一个主控过程控制着系统的运行。用于美国军方的A-7E机载系统就采用了主、子调用结构模型。面向对象模型:飞行模拟器系统的设计层次模型:典型应用有分层的通信协议,例如:TCP协议6、基于事件驱动模型--广播模型在集中式控制模型中,控制决策通常取决于系统的状态变量值。事件驱动模型是通过外部产生的事件来驱动系统。子系统在事件处理器中注册器感兴趣的事件。当事件处理器检测到事件,查阅事件记录,然后将命令传送给所有与此事件有关的子系统,子系统收到命令做相应处理。优点:进化较为简单。新的子系统通过在事件处理器中注册事件来达到集成。一个子系统可以在不知道其他子系统的名字和位置的情况下激活其他子系统。(隐式调用)缺点:子系统不知道是否或什么时候事件将会被处理。当一个子系统产生一个事件,它不知道哪个子系统与改事件有关。若多个不同的子系统注册了相同的事件,就会发生冲突优缺点实例应用网络管理系统一般有一个事件服务器,处理被管理网络和网管系统内部发生的所有事件。其他的管理工具如故障管理、性能管理和配置管理等工具,作为事件服务器的客户,在服务器上注册与自己有关的事件。当相关事件发生时,相应管理工具的过程自动被调用。3THREE详例应用仓库管理系统的软件体系结构模型随着企业的规模的扩大,信息管理对企业的发展起到越来越重要的作用。某家电零售商为了提高仓库管理的效率,避免花费大量时间手工进行库存的盘点、统计,所以要实现信息化管理仓库库存。所以这就需要开发一款仓库管理软件来实现商家库存管理功能需求:系统分析与设计首先,针对不同人员(如:商场管理员、采购(入库)员、出库员、和仓库管理员)应在不同的权限下完成指定的操作,并能控制库存业务的流程;再次,针对库存管理涉及用户较多的特点,为保证系统的安全性,系统应提供灵活的人员权限设置最后,系统的设计应在满足库