
软件体系结构重点.docx
14页1. 软件理论包括:-计算模型与可计算理论、算法理论基础、算法设计与分析、程序设计语言理论基础、程序 设计语言设计及其编译技术、数理逻辑、数据抽象与基本数据类型的实现技术等对软件工程而言,充满了方法论的内容:-如何分析、如何设计、如何编程、如何测试、如何维护、…;-软件模型与软件系统的“质量,,在很大程度上依赖于开发者本身的经验与水平因为缺乏对软件开发过程的理论层面的刻画,没有将数目众多的方法论总结提升为理论,故而只能是“工程”2. 体系结构”的共性一组基本的构成要素一一构件-这些要素之间的连接关系一一连接件-这些要素连接之后形成的拓扑结构一一物理分布-作用于这些要素或连接关系上的限制条件一一约束-质量——性能3. 软件体系结构(SA):-提供了一个结构、行为和属性的高级抽象-从一个较高的层次来考虑组成系统的构件、构件之间的连接,以及由构件与构件交互形成 的拓扑结构-这些要素应该满足一定的限制,遵循一定的设计规则,能够在一定的环境下进行演化反映系统开发中具有重要影响的设计决策,便于各种人员的交流,反映多种关注,据此开 发的系统能完成系统既定的功能和性能需求4. 体系结构=构件+连接件+拓扑结构+约束+质量5. 目标:提高软件质量-功能属性(functional properties):能够完成用户功能性需求;-非功能性属性(nonfunctional properties):能够以用户要求的性能标准,合理、高效的实现 各类功能性需求。
6. 软件体系结构关注的是:如何将复杂的软件系统划分为模块、如何规范模块的构成和性能、 以及如何将这些模块组织为完整的系统■主要目标:建立一个一致的系统及其视图集,并表达为最终用户和软件设计者需要 的结构形式,支持用户和设计者之间的交流与理解■分为两方面:-外向目标:建立满足最终用户要求的系统需求;-内向目标:建立满足系统设计者需要以及易于系统实现、维护和扩展的系统构件构成7.SA的作用:■交流的手段:在软件设计者、最终用户之间方便的交流;■可传递的、可复用的模型:对一些经过实现证明的体系结构进行复用,从而提高设 计的效率和可靠性,降低设计的复杂度■关键决策的体现:-全面表达和深刻理解系统的高层次关系,使设计者在复杂的、矛盾的需求面前作出正 确的选择;-正确的体系结构是系统成功的关键,错误选择会造成灾难性后果;-明确了对系统实现的约束条件;-决定了开发和维护组织的组织结构;-制约着系统的质量属性;-在设计完成尚未开发之前,预测软件质量;-在SA全局指导下进行系统设计的修改和扩展,使推理和控制更简单,局部的修改不会破 坏整体的完整与一致性8.软件体系结构的观点:■全局观(global viewpoint)-在软件开发过程中,应有一种从全局的角度对软件进行设计的“视图”,而非仅仅关注底 层的算法细节;■折中观(tradeoff viewpoint)-用户提出的各类功能与非功能需求之间存在着大量的“矛盾”,无法同时“完美”的满足,必须要在彼此之间做出权衡;■交流观(communication viewpoint)-参与软件研发的各成员需要有一个公共的“媒介”进行沟通,以应对需求的不明确、频繁 变更、复杂度增加;■复用观(reuse viewpoint)-不同的软件系统之间是否存在整体风格上的相似性,通过利用已存在的“软件资产”,提 高效率、降低成本;8. 构件:构件是具有某种功能的可复用的软件结构单元,表示了系统中主要的计算元素和数 据存储。
O任何在系统运行中承担一定功能、发挥一定作用的软件体都可看作是构件程序函数、模块—对象、类—数据库—文件9. 连接(Connection):构件间建立和维护行为关联与信息传递的途径;O连接需要两方面的支持:—连接发生和维持的机制一一实现连接的物质基础(连接的机制);—连接能够正确、无二义、无冲突进行的保i-—连接正确有效的进行信息交 换的规则(连接的协议)—简称“机制”(mechanism)和“协议”(protocol)10. 连接的协议:O 协议(Protocol)是连接的规约(Specification);O连接的规约是建立在物理层之上的有意义信息形式的表达规定—对过程调用来说:参数的个数和类型、参数排列次序;—对消息传送来说:消息的格式;— 对ODBC数据库连接来说:SQL语言;— 对 Web Service连接而言:SOAP或REST协议;O目的:使双方能够互相理解对方所发来的信息的语义11. 连接的种类:同步和异步12. 连接件:连接件(Connector):表示构件之间的交互并实现构件之间的连接,如:—管道(pipe)— 过程调用(procedure call)—事件广播(event broadcast)—客户机-服务器(client-server)-数据库连接(SQL)—连接件也可看作一类特殊的构件,区别在于:-一般构件是软件功能设计和实现的承载体;—连接件是负责完成构件之间信息交换和行为联系的专用构件。
13:SA建模的三个层次O 图形化模型:SA模型的多视图表示(Multi-view graphical model)O -从不同的视角描述特定系统的体系结构,从而得到多个视图,并将这些视 图组织起来以描述整体的SA模型;O 形式化模型:SA 描述语言(Formal architecture description language, ADL)O -在SA基本概念的基础上,选取适当的形式化或半形式化的方法来描述一 个特定的体系结构;O文档化模型:SA文档化(Documentation)O -记录和整理软件体系结构设计方案的各类细节14. SA的视图观O (Kruchten) 4+1 模型O统一建模语言UMLO (Hofmesiter) 4 视图模型O (CMU-SEI) Views and Beyond 模型O (ZIFA)Zachman 框架O开放分布式处理参考模型(RM-ODP)15.4+1 视图:O逻辑视图:描述系统的抽象概念与功能(类、对象、接口、模式等),主要图形包括class diagrams, sequence diagrams, and collaboration diagrams 等;O开发视图:描述系统中的子系统、模块、文件、资源及其之间的关系,主要图形包 括 component diagrams 等;O进程视图:描述系统的进程及其之间的通信协作关系,主要图形包括activity diagram, interaction diagram 等;O物理视图:描述系统如何被安装、部署与配置在分布式的物理环境下,主要图形包 括 deployment diagram 等。
O用例视图:描述系统的典型场景与功能,主要图形包括use case diagram等16: SA生命周期模型:O Phase 1: informal description (SA 的非形式化描述)O Phase 2: specification and analysis (SA 的规范描述与分析)O Phase 3: refinement and verification (SA 的求精及其验证)O Phase 4: enactment (SA 的实施)O Phase 5: evolution and extension (SA 的演化和扩展)O Phase 6: provision, evaluation and metrics (SA 的评价与度量)O Phase 7: termination (SA 的终结)17. 软件体系结构风格的组成■ A set of component types (e.g., data repository, process, object) 一组构件类型)■ A set of connector types/interaction mechanisms (e.g., subroutine call, event, pipe)( —— 组连接件类型/交互机制)■ A topological layout of these components (这些构件的拓扑分布)■ A set of constraints on topology and behavior (e.g., a data repository is not allowed to change stored values, pipelines are acyclic)(— 组对拓扑和行为的约束)■ An informal description of the costs and benefits of the style, e.g.: “Use the pipe andfilter style when reuse is desired and performance is not a top priority” (一些对风格的 成本和收益的描述)18. 数据流风格的基本构建:■ Components: data processing components(基 本构件:数据处理)-Interfaces are input ports and output ports 构件接口:输入端口和输出端口)-Input ports read data; output ports write data (从输入端口读取数据,向输出端口写 入数据)- Computational model: read data from input ports, compute, write data to output ports (计算模型:从输入端口读数,经过计算/处理,然后写到输出端口)19. 管道过滤器的基本定义■语境:数据源源不断的产生,系统需要对这些数据进行若干处理分析、计算、转换 等)。
■解决方案:-把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另 一个步骤的输入;-每个处理步骤由一个过滤器构件(Filter)实现;-处理步骤之间的数据传输由管道(Pipe)负责■每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经 过内部处理,然后产生输出数据流并写入管道中20. 基本构成■ Components: Filters — process data streams (构件:过滤器,处理数据流)- A filter encapsulates a processing step (algorithm or computation)( 一个过滤器封装了一个 处理步骤)-Data source and data sink are particular filters (数据源点和数据终止点可以看作是特殊的 过滤器)■ Connectors: A pipe connects a source and a sink filter (连接件:管道,连接一个源和一 个目的过滤器)- Pipes move data from a filter output to a filter input 转发数据流)-Data is a stream of “objects”(数据是特定类型的“对象”流)■ Topology: Connectors define data flow graph连接器定。
