软件体系结构

软件体系结构笔记

L1.pdf

  • 课程简介
  • 源起...
    • 现状
    • 系统分析员遇到的困境
    • 解决之道
  • 基于软件体系结构的开发
    • 示意图
    • 软件体系结构的生命周期
      1. 体系结构的非形式化描述
        • 通常使用自然语言描述概念和原则
        • 该阶段是创造性和开拓性
        • 需要与软件用户进行不断地交互
      2. 体系结构的规范描述和分析
        • 运用合适的形式化理论对上一阶段的非形式化描述进行规范定义
        • 要求做到:无歧义、无思索、安全性、灵活性等
      3. 体系结构的求精及验证
        • 大型复杂软件的体系结构设计总是从抽象到具体的过程,需要逐步细化、求精
        • 求精过程中需要不断的验证,以判断所的具体体系结构与求精前的体系结构是否语义一致
      4. 体系结构的实施
        • 求精后的体系结构用于系统的设计中,将软件中的构件component与连接件connector有机的结合,获得系统设计的总体框架
      5. 体系结构的演化和扩展
        • 软件在使用过程中,用户可能提出新的非功能性需求,如性能、容错、安全性、互操作性、自适应性等
        • 由于软件的需求的增加和改变而导致的软件体系结构的改变,称为演化和扩展。
      6. 体系结构的提供、评价和度量
        • 在软件体系结构用于系统设计之后,根据系统实际的运行情况,对软件体系结构展开的定性的评价和定量的度量;有利于软件体系结构的重用(包括设计重用和构件重用)和知识积累
      7. 体系结构的终结
        • 经过多次演化和修改后的体系结构,容易变得难以维护和理解,难以达到系统设计的要求。此时该体系结构就应该被抛弃,重新构造新的体系结构,这一过程称为体系结构的终结。
    • 软件体系结构的发展阶段
      1. "无体系结构"设计阶段
        • 软件开发以汇编为主,编程是少数科学家的游戏
        • 软件应用以军用和科学计算为主
        • 软件规模下,很少明确考虑体系结构
      2. 萌芽阶段
        • 提出了结构化的变成思想
        • 软件工程的思想被广泛应用
        • 出现了一批结构化程序设计语言,包括pascal,ada语言等
        • 软件体系结构已经称为系统开发中的一个明确概念
      3. 初级阶段
        • 面向对象技术的提出,出现数十种支持软件开发的面向对象方法,如Booch,Coad/Yourdon等
        • 各种面向对象语言如C++的出现
        • 软件已对象为基本元素,系统由离散的对象构成
        • 统一建模语言URL提出
      4. 高级阶段
        • 软件开发强调构件化技术和体系结构技术
        • COM、CORBA、EJB、WEbservice的提出
        • 软件=构件+基于体系结构的构件组装
        • 体系结构作为开发文档和中间产品,开始出现在软件开过程中。
      5. 四个阶段总结

    L2.pdf

    • 课程简介-----软件体系结构的定义、研究内容及意义
    • 软件体系结构定义
      • 众说纷纭的定义
      • 软件体系结构定义:Bonch define 软件体系结构={ 组织、元素、子系统、风格}
      • 不同定义总结
        • 软件体系结构定义了构件componet
        • 任何实际系统都可以看作由构件及其相互关系组成
        • 构件可以是对象、进程、库、商品软件、数据库或者其他更广泛的模块
        • 构件的基本特性是:独立、封装、重用
    • 软件体系结构的主要研究内容
      • 体系结构理论模型的研究
      • 体系结构描述的研究
      • 体系结构设计研究
      • 体系结构分析与验证
      • 基于体系结构的软件开发过程
      • 特定领域的体系结构框架
      • 体系结构的评价方法
    • 软件体系结构的意义
      • 有利于系统分析
      • 有利于软件开发
      • 有利于软件复用
      • 有利于软件系统的演化

    L3.pdf

    • 课程简介------构件相相关概念
    • 构件定义,特征信息
      • 定义:构件时具有一定功能、可明确辨识的数据单位或计算单元
    • 常见构件、构件的分类$1模块、对象、过滤器、过程、数据文件、数据库、文档   $2:独立而成熟的构件、有限制的构件、适应性构件、装配的构件、可修改的构件
    • 构件的开发
      • 从现有构件库中获取符合要求的构件,直接使用或者经过简单修改,得到可重用的构件
      • 通过遗产工程,将具有潜在重用价值的构件提取出来
      • 从市场购买现成的商品软件或者第三方厂商开发的中间件
      • 基于COM、CORBA、WebService等技术规范,自行开发所需的构件
    • 构件的组织和检索
      • 关键字组织法
      • 刻面facet组织法
      • 超文本组织法
    • 构件的组装
      • 基于功能的组装技术
      • 基于数据的组装技术
      • 基于对象的组装技术

    L4.pdf

    • 课程简介
    • 4+1模型概述
    • 逻辑视图
    • 进程视图
    • 开发视图
    • 物理视图
    • 场景视图
    • 4+1模型文档
    • 小结

    L4a.ppt

    • 课程简介
    • 4+1实例:一个简单ATM系统
      • 场景视图
      • 逻辑视图
      • 开发视图
      • 进程视图
      • 物理视图
    • 4+1模型开发迭代方法

    L4b.ppt

    • 课程简介
    • 用例模型
    • 参与者
    • 用例
    • 用例-参与者关系
    • 用例描述
    • 一个简单的用例文档

    L5.ppt

    • 课程简介-------体系结构风格(一)
    • 概述
      • 定义:一些特定的元素按照特定方式组成的结构,它有利于解决上下文环境里的问题
      •  程序设计样式设计模式体系结构风格
        重点开发原则、可实现性重用、概念完整性重用、概念完整性
        抽象层次程序构件体系结构
        使用直接可用直接可用有约束和指导作用
      • 体系结构风格作用:1.促进设计重用;2.带来代码重用;3.使系统易于理解;4.有利于系统的互操作性;
    • 管道过滤器风格

      • 优点:
      • 允许构造松散结构的系统
      • 过滤器的重用很方便
      • 易于扩展和修改

      • 缺点:
      • 导致批处理风格的系统设计
      • 交互性不强
      • 同步比较困难
      • 应用方位比较狭隘
    • 仓库风格和黑板风格: a.知识源;b.黑板数据结构;c.控制器;
      • 优点:
      • 便于多客户共享大量数据,它们不用关心数据何时有的、谁提供的、怎样提供的;
      • 既便于添加新的作为知识源代理的应用程序,也便于扩展共享的黑板数据结构;
      • 缺点:
      • 不同的知识源代理对于共享数据结构要达成一致,而且,这也造成对黑板数据结构的修改较为困难——要考虑到各个代理的调用
      • 需要一定的同步/加锁机制保证数据结构的完整性和一致性,增大了系统复杂度
    • 分层系统风格
      • 优点:
      • 由于对层次的邻接层数目进行了限制,所以系统易于改进和扩展;
      • 每一层的软件都易于重用,并可为某一层次提供多种可互换的具体实现
      • 分层系统所支持的设计体现了不断增加的抽象层次,这样,一个复杂问题的求解被分解为一系列递增的步骤
      • 缺点:
      • 系统的分层可能会带来效率方面的问题;
      • 应当如何界定层次间的划分是一个较为复杂的问题。
    • 客户端服务器风格
      • 优点:
      • 有利于分布式的数据组织;
      • 构件间是位置透明的,客户和服务器都不用考虑对方的运行位置;
      • 便于异质平台间的融合与匹配,客户和服务器可以运行不同操作系统;
      • 具有良好的可扩展性,易于对服务器进行修改、扩展或增加服务器;
      • 缺点:
      • 客户必须知道服务器的访问标识,否则很难知道有哪些可用服务。

    L6.ppt

    • 课程简介-------体系结构风格(二)
    • 分层系统风格实例
    • 数据抽象和面向对象风格
      • 优点:
      • 隐藏实现细节
      • 继承性,有利于重用
      • 缺点:
      • 过程调用依赖于对象标识的确定
      • 不同对象的操作关联性差
    • 基于事件的风格
      • 优点:
      • 事件广播者不必知道哪些部件会被事件影响
      • 有利于软件复用,任何构件均可以注册其相关事件
      • 系统演化、升级比较简单
      • 缺点:
      • 构件的调用不是主动的
      • 系统正确性难以推理
    • 模型-视图-控制器风格
      • 优点:
      • 简化系统设计
      • 界面友好
      • 缺点:
      • 使用范围比较狭隘,局限在用户界面软件开发领域
    • 解释器风格(虚拟机风格)
      • 优点:
      • 应用程序的可移植性和程序设计语言的跨平台能力
      • 对硬件进行仿真
      • 缺点:
      • 效率比较低
    • 信息系统的参考模型
    • 体系结构风格的选择

    L7.ppt

    • 课程简介-------P2P结构
    • 传统CS结构的问题
    • P2P介绍
    • 对等网络的基本知识
    • 混合P2P结构
    • 纯P2P结构
    • 纯P2P结构:Gnutella
    • 每个节点的结构
    • 节点间数据的传输的原理
    • P2P进一步演化的问题
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值