前言

内容:

  • 软件架构概述
  • 构件技术

中论

软件架构概述

软件架构:从需求分析到软件设计之间的过渡过程。

架构设计:需求分配,将满足需求的职责分配到组件上。

软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。

软件架构不仅指定了系统的组织结构和拓扑结构,并显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。

研究软件架构的根本目的:解决好软件的复用、质量和维护问题。

软件架构设计:包括提出架构模型、产生架构设计和进行设计评审等活动。

架构设计主要关注:软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。

软件建构能够在设计变更相关容易的阶段考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互,能够展现软件的结构、属性和内部交互关系。

软件架构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。

软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。

软件架构是可传递和可复用的模型,通过研究软件架构可以预测软件的质量。

软件架构生命周期

  1. 需求分析阶段

    需求分析和SA设计面临的是不同对象,一个是问题空间,一个是解空间。从软件需求模型向SA模型的转换主要关注两个问题:如何根据需求模型构建SA模型;如何保证模型转换的可追踪性。

  2. 设计阶段

    SA研究关注的最早和最多的阶段。这一阶段的SA主要研究:SA模型的描述、SA模型的设计与分析方法、对SA设计经验的总结和复用。(有关SA模型描述的研究主要分为三个层次:SA的基本概念;体系结构描述语言ADL、SA模型的多视图表示)

  3. 实现阶段

    为了有效实现SA设计向实现的转换,实现阶段的研究主要表现在以下方面:

    • 研究基于SA的开发过程支持
    • 寻求从SA向实现过渡的途径
    • 研究基于SA的测试技术
  4. 构件组装阶段

    在SA设计模型的指导下,可复用构建的组装可以在较高层次上实现系统,并能够提高系统实现的效率。研究内容主要包括两方面

    • 如何支持可复用构件的互联
    • 在组装过程中,如何检测并消除体系结构适配的问题。
  5. 部署阶段

    • 提供高层的体系结构视图来描述部署阶段的软硬件模型
    • 基于SA模型可以分析部署方案的质量属性,从而选择合理的部署方案
  6. 后开发阶段

    软件部署安装之后的阶段。这一阶段SA研究主要围绕维、演化、复用等方面。

    • 动态软件体系结构。
    • 体系结构恢复与重建。

构件

基本概念:

  • 构件是一个独立可交付的功能单元,外界通过接口访问其提供的服务
  • 构件由一组通常需要同时部署的原子构件组成。
    • 一个原子构件就是一个模块儿和一组资源。
    • 原子构件是部署、版本控制和替换的基本单位。
  • 构件和原子构件的区别:大多数原子构件永远都不会被单独部署,尽管可以被单独部署。大多数原子构件都属于一个构件家族,一次部署往往涉及到整个家族。
  • 一个模块是不带单独资源的原子构件
  • 一个单独的包被编译成多个单独的类的文件
  • 模块是一组类和可能的非面向对象的结构体

特点:

  • 独立部署单元
  • 可作为第三方的组装单元
  • 没有(外部的)可见状态

一个构件可以包含多个类元素,但是一个类元素只能属于一个构件。

构件接口:

接口标准化是对接口中的消息的格式、模式和协议的标准化。不是将接口格式化为参数化操作的集合,而是关注输入输出的消息的标准化。

面向构件的编程(COP)

  • 多态性(可替代性)
  • 模块封装性(高层次信息的隐藏)
  • 后期的绑定和装载(部署的独立性)
  • 安全性(类型和模块安全性)

构件技术

利用某种编程手段,将人们关心的但又不便于让最终用户直接操作的细节进行封装,同时对各种业务逻辑规则进行了实现。国际上常用构件标准的三大流派:

  1. EJB:实现应用中关键的业务逻辑,创建基于构件的企业级应用程序。

    分别是:

    • 会话Bean
    • 实体Bean
    • 消息驱动Bean
  2. COM、DCOM、COM+

  3. CORBA标准:主要分成三个层次

    • 对象请求代理:最底层的对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现了对象间的通信和互操作,是分布对象系统中的“软总线”。
    • 公共对象服务:在ORB之上定义了很多公共服务。
    • 公共设施:最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。

后记

俱怀逸兴壮思飞,欲上青天揽明月。