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

2023-09-05 14:40:25 浏览数 (2)

一、软件架构概述

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

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

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

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

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

二、软件架构设计和生命周期

1、需求阶段分析

Software Architecture(SA)软件架构

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

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

2、设计阶段

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

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

3、实施阶段

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

A. 研究基于SA的开发过程支持,如项目组织结构、配置管理。

B. 寻求从SA实现过度的途径,如设计语言引入如何实现。

C. 研究基于SA的测试技术。

4、构建组装阶段

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

A. 可复用构建的互联。

B. 在组装模型中,如何检测并消除体系结构失配问题。

5、部署阶段

SA软件部署作用

A. 提供 高层体系结构视图 来描述部署阶段软硬件模型。

B. 基于SA模型 分析部署方案质量。

6、后开发阶段

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

a. 动态软件系统结构:会在运行时候发生改变,软件 内部执行 体系结构发生改变,软件外部请求 对软件进行重配置。

b. 体系结构恢复与重建:如果现有的系统没考虑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、最上层的公共设施则定义了组件框架,直接为业务实现提供的框架。

0 人点赞