架构设计就是需求分配,将满足需求的职责分配到组件上。
软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。
软件架构不仅指定了系统的组织结构和拓扑结构,并显示了系统需求和构件之间的对应关系。
研究架构的目的是?解决软件架构级别的复用。
软件架构设计与生命周期
需求分析阶段、设计阶段、实现阶段、构件组装阶段、部署阶段、后开发阶段。
- 需求分析阶段
需求分析和架构阶段关注两个问题,如何根据需求转换为架构模型,如何保证模型转换的可追踪性。
- 设计阶段
是架构研究关注最早和最多的的阶段,这一阶段主要包括:架构模型的描述、架构模型的设计与分析方法、以及对架构设计经验的总结与复用。(体系结构描述语言ADL)
- 实现阶段
为了保证 软件架构设计向实现转换。开发过程的支持->从SA向实现的过度->基于SA的测试技术。
- 构件组装阶段
在SA架构指导下,可复用构件组装可以在较高层次上实现架构,架构设计起到了系统蓝图的作用。包括以下两个方面:
1)如何支持可复用软件的互联。
2)组装过程中,如何检测并消除体系结构失配问题。
5、部署阶段
可以分析部署方案的质量属性。提供高层体系结构图
6、后开发阶段
部署安装后的阶段。针对软件架构不断 演化、维护、复用。
动态软件体系结构,体系结构的恢复和重建。
构件
构件是一个 独立可交付的功能单元,外界通过接口访问其提供的服务。
构件由一组可部署的原子构件组成。一个原子构件是一个模块和一组资源。原子构件是部署、版本控制和替换的基本单位。
大多数原子构件都属于一个构件家族,一次部署往往涉及整个家族。
一个模块是不带单独资源的原子构件。
模块是一组类和可能的非面相对象结构体,比如过程或者函数。
构件的特性:
1独立部署单元
2作为第三方组装单元
3没有外部可见状态。
4一个构件可以包含多个类,但一个类只属于一个构件。
对象特征:
1一个实例单元。
2具有外部可见状态。
3封装了自己的行为。
EJB是java的一种bean,分别有会话bean,实体bean和消息驱动bean。
CORBA标准分为三个层次,对象请求代理,公共对象服务和公共设施。
最底层是对象请求代理,规定了分布对象的定义和语言映射,实现对象的通讯和互操作,是分布对象系统中的“软总线”。
在RBA上定义了许多公共服务,可以提供并发服务,名字服务、事务服务、安全服务等。
最上公共设施层定义了组件框架,提供可直接为业务对象使用的服务。