软考-13.1软件架构概述-构件技术
前言
内容:
- 软件架构概述
- 构件技术
中论
软件架构概述
软件架构:从需求分析到软件设计之间的过渡过程。
架构设计:需求分配,将满足需求的职责分配到组件上。
软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。
软件架构不仅指定了系统的组织结构和拓扑结构,并显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。
研究软件架构的根本目的:解决好软件的复用、质量和维护问题。
软件架构设计:包括提出架构模型、产生架构设计和进行设计评审等活动。
架构设计主要关注:软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
软件建构能够在设计变更相关容易的阶段考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互,能够展现软件的结构、属性和内部交互关系。
软件架构是项目干系人进行交流的手段,明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。
软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。
软件架构是可传递和可复用的模型,通过研究软件架构可以预测软件的质量。
软件架构生命周期
-
需求分析阶段
需求分析和SA设计面临的是不同对象,一个是问题空间,一个是解空间。从软件需求模型向SA模型的转换主要关注两个问题:如何根据需求模型构建SA模型;如何保证模型转换的可追踪性。
-
设计阶段
SA研究关注的最早和最多的阶段。这一阶段的SA主要研究:SA模型的描述、SA模型的设计与分析方法、对SA设计经验的总结和复用。(有关SA模型描述的研究主要分为三个层次:SA的基本概念;体系结构描述语言ADL、SA模型的多视图表示)
-
实现阶段
为了有效实现SA设计向实现的转换,实现阶段的研究主要表现在以下方面:
- 研究基于SA的开发过程支持
- 寻求从SA向实现过渡的途径
- 研究基于SA的测试技术
-
构件组装阶段
在SA设计模型的指导下,可复用构建的组装可以在较高层次上实现系统,并能够提高系统实现的效率。研究内容主要包括两方面
- 如何支持可复用构件的互联
- 在组装过程中,如何检测并消除体系结构适配的问题。
-
部署阶段
- 提供高层的体系结构视图来描述部署阶段的软硬件模型
- 基于SA模型可以分析部署方案的质量属性,从而选择合理的部署方案
-
后开发阶段
软件部署安装之后的阶段。这一阶段SA研究主要围绕维、演化、复用等方面。
- 动态软件体系结构。
- 体系结构恢复与重建。
构件
基本概念:
- 构件是一个独立可交付的功能单元,外界通过接口访问其提供的服务
- 构件由一组通常需要同时部署的原子构件组成。
- 一个原子构件就是一个模块儿和一组资源。
- 原子构件是部署、版本控制和替换的基本单位。
- 构件和原子构件的区别:大多数原子构件永远都不会被单独部署,尽管可以被单独部署。大多数原子构件都属于一个构件家族,一次部署往往涉及到整个家族。
- 一个模块是不带单独资源的原子构件
- 一个单独的包被编译成多个单独的类的文件
- 模块是一组类和可能的非面向对象的结构体
特点:
- 独立部署单元
- 可作为第三方的组装单元
- 没有(外部的)可见状态
一个构件可以包含多个类元素,但是一个类元素只能属于一个构件。
构件接口:
接口标准化是对接口中的消息的格式、模式和协议的标准化。不是将接口格式化为参数化操作的集合,而是关注输入输出的消息的标准化。
面向构件的编程(COP)
- 多态性(可替代性)
- 模块封装性(高层次信息的隐藏)
- 后期的绑定和装载(部署的独立性)
- 安全性(类型和模块安全性)
构件技术
利用某种编程手段,将人们关心的但又不便于让最终用户直接操作的细节进行封装,同时对各种业务逻辑规则进行了实现。国际上常用构件标准的三大流派:
-
EJB:实现应用中关键的业务逻辑,创建基于构件的企业级应用程序。
分别是:
- 会话Bean
- 实体Bean
- 消息驱动Bean
-
COM、DCOM、COM+
-
CORBA标准:主要分成三个层次
- 对象请求代理:最底层的对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现了对象间的通信和互操作,是分布对象系统中的“软总线”。
- 公共对象服务:在ORB之上定义了很多公共服务。
- 公共设施:最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。
后记
俱怀逸兴壮思飞,欲上青天揽明月。