系统架构设计-架构师之路(八)

  • 软件架构概述

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

需求分析人员整理成文档,但是开发人员对业务并不熟悉,这时候中间就需要一个即懂软件又懂业务的人,架构师来把文档整理成系统里的各个开发模块,布置开发任务。

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

软件架构指定了系统的组织结构 和 拓扑结构。需求和构建之间对应关系。

解决软件复用、质量和维护问题,是架构根本问题

  • 软件架构设计和生命周期
  1. 需求阶段分析

Software Architecture(SA)软件架构

需求分析和SA面临的是不同对象:一个 问题空间,一个是 解空间。需求是问题空间,SA是解空间。

主要关注两个问题,如何根据需求模型建立SA模型,如何保证架构模型转换后可追踪性。

  1. 设计阶段

是SA验证研究关注最早和最多的阶段。主要包括 SA模型的描述、SA模型的设计与分析方法,以及对SA设计经验的总结和复用 等。

主要三个层次 SA的基本概念(构建和连接子)、体系结构描述语言ADL、SA模型多视图表示。

  1. 实施阶段

最初SA只关注较高层次系统设计,为了实现有效转换,

  1. 研究基于SA的开发过程支持,如项目组织结构、配置管理。
  2. 寻求从SA实现过度的途径,如设计语言引入如何实现。
  3. 研究基于SA的测试技术。

  1. 构建组装阶段

在SA设计模型指导下,起到整个系统蓝图的作用。研究主要包括两点:

  1. 可复用构建的互联。
  2. 在组装模型中,如何检测并消除体系结构失配问题。

  1. 部署阶段

SA软件部署作用

  1. 提供 高层体系结构视图 来描述部署阶段软硬件模型。
  2. 基于SA模型 分析部署方案质量。

  1. 后开发阶段

指软件 部署安装之后的阶段。主要维护、演化、复用等方面进行。包括两个方面。

  1. 动态软件系统结构:会在运行时候发生改变,软件 内部执行 体系结构发生改变,软件外部请求 对软件进行重配置。
  2. 体系结构恢复与重建:如果现有的系统没考虑SA,从系统中恢复和重建SA体系。

  • 构件

构件是可独立交付的功能单元,支持复用。

构件通常 由一组可单独部署的原子构件组成。一个原子构件是一个模块和一组资源。原子构件是 部署、版本控制替换的基本单位。

原子构件可以单独部署,但往往是组成部署。

一个模块是不带单独资源的原子构件。(对象、模块、构件、服务。都可以相互交互,粒度越来越大。)

一个单独的包被编译成多个单独的类文件---每个公共类都有一个。

模块是一组类和可能的非面向对象的结构体,比如过程或者函数。

构件特性:

1、独立部署单元。

2、作为第三方组装单元。

3、没有(外部)可见状态。

4、一个构件 可以包含多个类,但一个类只能属于一个构件

对象的特征:

  1. 一个实例单元,具有唯一标志。
  2. 可能具有的状态,此状态外部可见。(比如对象new被创建 和销毁,是可见的)
  3. 封装自己的状态和行为。

构件接口

接口标准化是对 消息的格式、模式和协议的标准化。关注消息输入输出标注。

面向构件的编程(COP)

如何支持建立面向构件的解决方案。需要基本支持:

  1. 多态性(可替代)
  2. 模块封装性
  3. 后期的绑定和装载
  4. 安全性

(注意,面向对象是要写很多对象,比如java和c++)

EJB(enterprise java bean)规范由sun制定。

  1. 会话Bean(Session bean):比如发送邮件。
  2. 实体Bean(entity bean):持久化存储。
  3. 消息驱动Bean(message-drive bean):分布式构件的bean。(异步

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

COM是微软公司的。

CORBA标准主要分为三个层次。

  1. 对象请求代理ORB:最底层服务,规定了分布式对象的定义(接口)和语言映射,实现对象通讯交互,是 分布对象系统中的“软总线”。
  2. ORB之上公共服务,比如并发服务,名字服务,事务服务,安全服务等。
  3. 最上层的公共设施则定义了组件框架,直接为业务实现提供的框架。

猜你喜欢

转载自blog.csdn.net/ke1ying/article/details/132389294