1. 软件架构设计

[toc]

1.1. JavaEE系统构建的基础知识[16]

基于JavaEE平台的基础功能服务构建应用系统时,JDBCJCAJava IDL 可用来集成遗产系统。

1.2. 软件体系结构风格的基础知识[16]

  • 管道和过滤器:每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。数据内容的逐步分解和分阶段处理。管道-过滤器风格常常用于实现编译器。
  • C2:通过连接件绑定在一起的按照一组规则运作的并行构件网络。
  • 客户/服务器风格:
  • 三层C/S结构风格:
  • 规则系统:一个使用模式匹配搜索来寻找规则并在正确的时候应用正确的逻辑知识的虚拟机,其支持把频繁变化的业务逻辑抽取出来,形成独立的规则库。机器人接受任务后,需要响应外界环境中触发的一些突发事件,根据自身状态进行动态调整,最终自动完成任务,使用的是规则系统架构风格。以规则为中心的虚拟机系统适合于实现专家系统。
  • 解释器:解释器是一个用来执行其他程序的程序。解释器可针对不同的硬件平台实现一个虚拟机,将高抽象层次的程序翻译为低抽象层次所能理解的指令,以消除在程序语言与硬件之间存在的语义差异。针对业务灵活组合这一要求,采用解释器体系结构风格最为合适。可以通过部分解释代码预先编译的方式提高系统性能。
  • 黑板:黑板体系结构风格主要由三部分组成。知识源:知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进行通信,它们之间的交互只通过黑板来完成;黑板数据结构:黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题;控制:控制完全由黑板的状态驱动,黑板状态的改变决定使用的特定知识。黑板风格的传统应用是信号处理领域,如语音和模式识别。对于语音识别、知识推理等问题复杂、解空间很大、求解过程不确定的这一类软件系统,通常会采用黑板架构风格,以知识为中心进行分析与推理。
  • 过程控制:其特点是不断采集系统当前状态,与系统中的设定状态进行对比,并通过将当前状态与设定状态进行对比从而进行控制。
  • 数据仓储:特点是以软件代码为中心进行对应的编译处理与辅助操作。
  • 过程:
  • 层次化:划分的层次越多,系统的性能越差。
  • 隐式调用:可以通过处理函数的并发调用提高系统处理性能。(基于图像用户界面的调试器)。在题目中提到IDE环境是一种交互式编程,用户在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现。在做一件事情时,同时触发一系列的行为,这是典型的隐式调用风格(事件驱动系统)。
  • 面向对象:对象是通过函数和过程的调用来交互的。可以通过减少功能调用层次提高系统性能。
  • 顺序批处理:
  • 独立进程:
  • 数据共享:可以针对程序的各种形态构建数据库,通过中心数据库进行转换与处理。根据上述分析,选项中列举的架构风格中,数据共享风格最符合要求。IDE是一种集成式的开发环境,在这种环境中,多种工具是围绕同一数据进行处理,这种情况适合用数据共享架构风格。
  • 虚拟机:“模拟新操作系统的运行环境”是典型的虚拟机架构风格的特长。

1.3. 软件架构风格定义[16、13]

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。一个体系结构定义了一个词汇表和一组约束

架构风格反映领域中众多系统所共有的结构语义特征,强调对架构设计的重用。

架构风格定义了一类架构所共有的特征,主要包括架构定义、架构词汇表和架构架构约束

1.4. 软件体系结构质量属性的基础知识

质量属性分为 6 种:可用性、可修改性、性能、安全性、可测试性、易用性。

可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。包括可维护性可扩展性结构重组可移植性4个方面。 软件架构是降低成本、改进质量、按时和按需交付产品的关键因素,软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等。

1.5. 实现属性的架构策略[16]

可用性:主动冗余、心跳、Ping/Echo、

性能:资源调度、优先级队列、队列调度

安全性:追踪审计、限制访问

可修改性:接口-实现分离、信息隐藏

1.6. 特定领域体系结构的基础知识DSSA[16]

DSSA是在一个特定应用领域中为一组应用提供组织结构参考的软件体系结构,参与DSSA的人员可以划分为4种角色,包括领域专家、领域设计人员、领域实现人员和领域分析师,其基本活动包括领域分析、领域设计和领域实现。

领域分析者:控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中。

领域设计者:根据领域模型和现有系统开发出DSSA,并对DSSA的准确性和一致性进行验证。

DSSA通常是一个具有三个层次的系统模型,包括领域开发环境、领域特定应用开发环境和应用执行环境,其中应用工程师主要在领域特定应用开发环境中工作。

特定领域软件架构(Domain Specific SoftwareArchitecture,DSSA)以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,其目标是支持一个特定领域中多个应用的生成。DSSA的基本活动包括领域分析、领域设计和领域实现。

领域分析:主要目的是获得领域模型,领域模型描述领域中系统之间共同的需求,即领域需求;

领域设计:主要目标是获得特定领域软件架构DSSA,DSSA描述领域模型中表示需求的解决方案;

领域实现:主要目标是依据领域模型和DSSA开发和组织可重用信息,并对基础软件架构进行实现。

1.7. 架构描述语言[15]

架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。

1.8. 软件架构设计[15]

软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。

1.9. 软件架构评估方法-基于场景的架构方法SAAM[15、13、09]

基于场景的架构方法SAAM的主要输入是问题描述、 需求说明 和架构描述文档,其分析过程主要包括场景开发、 架构描述 、单个场景评估、场景交互和总体评估。

  1. 架构权衡分析方法ATAM:ATAM是在基于场景的架构分析方法(Scenarios-based Architecture Analysis Method,SAAM)基础之上发展起来的,主要包括场景和需求收集、架构视图和场景实现、属性模型构造和分析、属性模型折中等4个阶段。ATAM方法要求在系统开发之前,首先对这些质量属性进行评价和折中。该框架主要关注系统的需求说明,针对性能、 架构描述 、安全性和可修改性,在系统开发之前进行分析、评价与折中。ATAM可以分为4个主要的活动阶段,包括需求收集、 架构风格描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。ATAM不是一种精确的评估工具,该方法表现的主要形式是评审会议。

  2. 软件架构分析方法SAAM:

1.10. 面向服务的架构SOA主要技术和标准:

  1. UDDI协议:服务注册信息通过UDDI(服务统一描述、发现和集成)框架实现
  2. WSDL协议:服务内容描述通过WSDL(Web服务描述语言)标准实现
  3. SOAP协议:服务提供者、服务使用者和服务注册器之间的远程交互通过SOAP(简单对象访问协议)消息实现
  4. BPEL/SPEIAWS:通过BPEL/BPEIAWS(业务过程执行语言)将分散的、功能单一的Web服务组织成一个复杂的有机应用

1.10.1. SOA例子:CORBA[16]

CORBA构件模型中,可移植对象适配器POA的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,伺服对象Servant是最终完成客户请求的服务对象实现。

CORBA构件模型中,对象适配器的主要作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,目前采用的对象适配器规范是POA(可移植对象适配器),它替代了传统的BOA(基本对象适配器)。

Servant(伺服对象)是最终完成客户请求的服务对象实现,伺服对象管理器(伺服对象激活器和伺服对象定位器)用来提供CORBA服务端的对象查找服务,活动对象映射表用来保存已注册的CORBA对象标识和伺服对象之间的映射关系。

对象管理组织(OMG)基于CORBA基础设施定义了4种构件标准。实体(Entity)构件需要长期持久化并主要用于事务性行为,由容器管理其持久化。加工(Process)构件同样需要容器管理其持久化,但没有客户端可访问的主键。会话(Session)构件不需要容器管理其持久化,其状态信息必须由构件自己管理。服务(Service)构件是无状态的。

1.11. 构件组装过程[14]

在构件组装过程中需要检测并解决架构失配问题。其中构件失配失配主要包括由于系统对构件基础设施、控制模型和数据模型的假设存在冲突引起的失配。 连接子失配包括由于系统对构件交互协议、构件连接时数据格式的假设存在冲突引起的失配。

1.12. “4+1”视图[14]

​ ①逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。用来描述设计的对象模型和对象之间的关系。

​ ②过程视图(Process View),捕捉设计的并发和同步特征。描述设计的并发和同步特征

​ ③物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。

​ ④开发视图(Development View),描述了在开发环境中软件的静态组织结构。用来描述设计的对象模型和对象之间的关系

​ ⑤架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(Use Cases)或场景(Scenarios)来说明,从而形成了第五个视图。

​ 当采用面向对象的设计方法描述对象模型时,通常使用类图表达类的内部属性和行为,以及类集合之间的交互关系;采用状态图定义对象的内部行为。

​ 在该模型中,最终用户侧重于逻辑视图 ,系统工程师侧重于部署视图

1.13. 软件系统架构[13]

软件系统架构是关于软件系统的结构、行为和属性的高级抽象。在描述阶段,主要描述直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组件的交互关系。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。软件系统架构不仅指定了软件系统的组织和拓扑结构,而且显示了系统需求和组件之间的对应关系,包括设计决策的基本方法和基本原理。

1.14. 中间件[13]

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。

软件中间件的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户开发和集成应用软件。它不仅仅要实现互连,还要实现应用之间的互操作。

1.15. 结构风格与系统性能[12]

对于采用层次化架构风格的系统,划分的层次越多,系统完成某项功能需要的中间调用操作越多,其性能越差。

对于采用管道.过滤器架构风格的系统,可以通过引入过滤器的数据并发处理可以有效提高系统性能。

对于采用面向对象架构风格的系统,可以通过减少功能调用层次提高系统性能。

对于采用过程调用架构风格的系统,将显式调用策略替换为隐式调用策略能够提高系统的灵活性,但会降低系统的性能

1.16. 体系结构权衡分析方法(Architecture Tradeoff Analysis Method,ATAM)

  1. 场景和需求收集
  2. 体系结构视图和场景实现、
  3. 属性模型构造和分析
  4. 折中

1.17. 基于架构的软件设计(ABSD)

基于架构的软件设计(ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。

使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,并且设计活动的开始并不意味着需求抽取和分析活动可以终止,而是应该与设计活动并行。ABSD方法有三个基础:第一个基础是功能分解,在功能分解中使用已有的基于模块的内聚和耦合技术。第二个基础是通过选择体系结构风格来实现质量和商业需求。第三个基础是软件模板的使用。ABSD方法是一个自顶向下,递归细化的过程,软件系统的架构通过该方法得到细化,直到能产生软件构件的类。

1.18. 网络架构数据流图

应用架构建模中要绘制的第一个物理数据流图(PDFD)是网络架构DFD,它们不显示单位时间的数据流量,需要显示的信息包括服务器及其物理位置;客户端及其物理位置;处理器说明;传输协议。

早期的编译器采用管道-过滤器架构风格,并且大多数编译器在词法分析时创造独立的符号表,在其后的阶段会不断修改符号表,因此符号表并不是程序数据的一部分。现代的编译器采用以数据共享为中心的架构风格,主要关心编译过程中程序的中间表示。现代的编译器采用以数据共享为中心的架构风格,分析树是在语法分析阶段结束后才产生作为语义分析的输入,分析树是数据中心中重要的共享数据,为后续的语义分析提供了帮助。

lisahust all right reserved,powered by Gitbook该文件最后修改时间: 2021-10-01 18:50:09

results matching ""

    No results matching ""