软件体系结构期末复习

软件体系结构期末复习

标签(空格分隔): 未分类


回顾课本和TTP课件

内容总概

在这里插入图片描述

章节回顾

第1章、软件体系结构概论

0.软件体系结构的发展过程经历了四个阶段:

(1)无体系结构阶段、(2)萌芽阶段、(3)初期阶段、(4)高级阶段

1.软件重用
  1. 软件重用:也称为软件复用,就是利用已开发的且对应用有贡献的软件元素来构建新软件系统。
  2. 软件重用的基本过程:软件对象的开发、软件对象的理解和软件对象的重用。
  3. 软件重用的过程可归纳为:抽象、选取、实例化和集成。
  4. 广义的三个层次:知识重用、方法和标准重用、软件成分重用。
  5. 软件成分的重用:
  6. 源代码的重用;
    1. 目标代码级重用(以函数库方式体现);
    2. 设计和分析结果重用(易于移植);
    3. 类的重用;
    4. 构件重用
2.构件
  1. 软件构件是将大而复杂的应用软件分解为一系列可先行实现、易于开发、理解、重用和调整的软件单元。
  2. 构件的分类方式:
    信息科学方法主要包括:枚举、层次、关键词、属性值、刻面(Facet)和本体等。
  3. 构件根据功能用途可分为系统构件支撑构件领域构件
  4. 识别技术包括领域分析法、聚类分析法、CRUD分析法、基于稳定性方法等。
  5. 构件获取的主要四种方式
    1. 构件库中,按照适合新系统的原则选取,并作适应性修改以获得可重用的构件。
    2. 根据新功能模块进行自行开发,以获取新构件。
    3. 遗留系统进行功能分析,将具有潜在应用价值的模块提取出来,使其接口进行标准化以获得可重用性构件。
    4. 通过商业方式购买合适的构件,利用互联网资源进行共享或免费获取。
  6. 构建模型
    在这里插入图片描述
3.习题
  1. ( 软件危机 )主要包含两方面的问题:如何开发软件以满足对软件日益增长的需求;如何维护数量不断高速增长的已有软件。

  2. 软件体系结构的核心模型主要包括:(构件、连接件、配置约束)。

  3. (软件重用技术)有助于提高软件开发的生产率,提高软件系统的可靠性,减少软件维护的负担。

  4. (软件构件技术)是软件重用的核心与基础。

  5. 基于构件的软件开发的基本思想是?
    将用户需求分解为一系列的子功能构件,在开发过程中不必重新设计这些基本功能模块,只需从现有构件库中寻找合适的构件来组装应用系统。

第2章 、软件体系结构建模

1.建模概述

软件体系结构应该以模型的形式具体化。

2.建模语言
  1. 实践派风格:使用通用的建模符号,强调实践可行性。

    1. 图形表示方法。
    2. 模块内连接语言。
    3. 基于构件的系统描述语言。
    4. UML描述方法。
  2. 学院派风格:使用了体系结构描述语言(ADL),侧重于软件体系结构形式化理论的研究。

    1. ADL集中描述了整个系统的高层结构。
    2. 有无工具的支持是ADL是否可用的重要标志。
    3. 软件体系结构模型的三个基本组成成分:构件连接件配置关系
      1. 构件描述规范:(1)接口。(2)类型。(3)语义。(4)约束。(5)演化。(6)非功能特性。
      2. 连接件描述规范:考虑的内容与构件相似
      3. 配置关系描述规范:可理解性。组合能力。对异构的支持。可伸缩能力。进化能力。动态支持。
  3. 体系结构描述语言有

    1. ACME的基本特征:
      1. 提供了基本的体系结构元素来描述系统的体系结构,并提供了相应的扩展机制
      2. 提供了灵活的注解机制来描述系统的非结构性信息。
      3. 提供了可对软件体系结构风格进行重用的模板机制
      4. 提供了一种开放的语义框架,可以对体系结构描述进行形式化推理。
    2. Rapide 的五种子语言:
      1. 类型(Types)语言——定义接口类型和函数类型,支持通过继承已有的接口来构造新的接口类型;
      2. 模式(Pattern)语言——定义具有因果、独立和时序等关系的事件所构成的事件模式;
      3. 可执行(Executable)语言——包含描述构件行为的控制结构;
      4. 体系结构(Architecture)语言——通过定义同步和通信连接来描述构件之间的事件流;
      5. 约束(Constraint)语言——定义构件行为和体系结构所满足的形式化约束,其中约束为需要的或禁止的偏序集模式。
    3. Unicon的设计紧紧围绕着构件和连接件这两个基本概念。
    4. Wright的主要思想是把连接件定义为明确的、用协议的集合来表示语义实体,协议代表了交互的各个参与角色及其相互作用。
    5. Darwin使用接口来定义构件类型。
    6. Aesop的目标是建立一个工具包,为特定领域的体系结构快速构建提供设计支持环境。
    7. SADL语言提供了软件体系结构的文本化表示方法,同时保留了直观的线框图模型。
    8. MetaH主要支持实时、容错、安全、多处理和嵌入式软件系统的分析、验证以及开发。
  4. UML与ADL之间的关系

    1. 体系结构描述语言ADL是一种描述体系结构模型的形式化工具。
    2. ADL是研究软件体系结构规范的出发点。
    3. 统一建模语言(Unified Modeling Language,UML)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。
  5. 基于UML的软件体系结构描述

    1. UML应用于用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程。

    2. Kruchten提出了“4+1”视图模型“。

      1. 逻辑视图,也称概念视图。主要支持系统功能需求的抽象描述。
      2. 开发视图,也称模块视图。主要侧重于描述系统的组织。
      3. 过程视图。主要侧重于描述系统的动态属性。
      4. 物理视图。主要描述如何把软件映射到硬件上。
      5. 场景视图。场景是用户需求和系统功能实例的抽象。
        在这里插入图片描述

      逻辑视图定义了系统的目标;开发视图和过程视图提供了详细的系统设计实现方案;物理视图解决了系统的拓扑结构、安装和通信问题;场景反映了完成上述任务的组织结构。

    3. UML视图和图

    主要的域 视图 主要概念
    结构 静态视图 类图 类、关联、泛化、依赖关系、实现、接口
    用例视图 用例图 用例、参与者、关联、扩展、包括、用例泛化
    实现视图 构件图 构件、接口、依赖关系、实现
    部署视图 部署图 节点、构件、依赖关系、位置
    动态 状态视图 状态图 状态、事件、转换、动作、
    活动视图 活动图 状态、活动、完成转换、分叉、结合
    交互视图 顺序图 交互、对象、消息、激活
    协作图 协作、交互、协作角色、消息
    模型管理 模型管理视图 类图 报、子系统、模型
    可扩展性 所有 所有 约束、构造型、标记值
3.基于UML体系结构描述方式的案例分析

图书管理系统实验

4.软件体系结构的生命周期

具体的软件体系结构的设计包括非形式化描述、规范描述、求精及验证、实施、改革或扩展、评估和度量以及终结等七个阶段
在这里插入图片描述

5.基于体系结构的软件开发过程
6.习题
  1. 软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是(A)。
    A. 根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程
    B. 软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等
    C. 软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动
    D.软件架构能够指导设计人员和实现人员的工作
  2. 下面哪种视图不属于软件体系结构中定义的“4+1”视图?(B)
    A) 物理视图
    B) 设计视图
    C) 场景视图
    D) 开发视图
  3. 在RUP (Rational Unified Process,统一软件开发过程)中采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(C),系统工程师侧重于(D)。
    A. 实现视图
    B. 进程视图
    C. 逻辑视图
    D. 部署视图
  4. 在基于构件的软件开发中,( A)描述系统设计蓝图以保证系统提供适当的功能;(B )用来了解系统的性能、吞吐率等非功能性属性。
    A. 逻辑构件模型
    B. 物理构件模型
    C. 组件接口模型
    D. 系统交互模型

第3章 、软件体系结构风格

1.软件体系结构风格概述
  1. 软件体系结构的核心模型:(构件、连接件、配置约束
  2. 软件框架设计的核心问题是:能否达到成型的体系结构方案级别的重用。(架构级别的重用)
2.常用的软件体系结构风格
  1. 软件体系结构风格的定义:由组织规则及结构构成,是描述领域中系统组织方式的惯用模式。是对某一特定领域中系统所共有的结构和语义特性的反映。

  2. 体系结构风格的分类:

    1. 数据流风格:

      1. 批处理序列
      2. 管道/过滤器(传统的编译器)
        1. 包括过滤器和管道两种元素。基本单元如图:在这里插入图片描述
        2. 管道/过滤器风格的系统架构图如下图所示:在这里插入图片描述
        3. 优点:
          1. 设计人员将整个系统的输入输出行为理解为单个过滤器行为的叠加与组合。
          2. 任何两个过滤器,只要它们之间传送的数据遵守共同的规约就可以相连接。
          3. 整个系统易于维护和升级
          4. 支持并发执行。
        4. 缺点:
          1. 通常导致进程成为批处理的结构;
          2. 不适合处理交互的应用;
          3. 每个过滤器都增加了解析和合成数据的工作,导致系统功能下降
          4. 其固有结构,决定了很难制定错误处理的一般性策略。
        5. 传统的编译器
          1. 编译器由词法分析、语法分析、语义分析、中间代码生成、中间代码优化和目标代码生成组成,如图:在这里插入图片描述
    2. 调用/返回风格:

      1. 主程序/子程序

      2. 面向对象风格

        在这里插入图片描述

        1. 将系统组织为多个独立的对象,每个对象封装其内部的数据,并基于数据对外提供服务。不同对象之间通过协作机制共同完成系统任务。面向对象
  • 37
    点赞
  • 219
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值