综述:
1 软硬件
1. 计算机硬件
控制器:控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依据的是机器指令
运算器:运算器也称为算术逻辑单元(ArithmeticandLogicUnit,ALU),其主要功能是在控制器的控制下完成各种算术运算和逻辑运算。
存储器
按照与处理器的物理距离可分为4个层次:
片上缓存:在处理器核心中直接集成的缓存,一般为 SRAM结构
片外缓存:在处理器核心外的缓存,一般为 SRAM结构
主存(内存):通常采用 DRAM结构, DRAM依赖不断充电维持其中的数据
外存:可以是磁带、磁盘、光盘和各类Flash等介质器件,这类设备访问速度慢,但容量大,且在掉电后能够保持其数据。
输入设备、输出设备
2. 计算机软件
操作系统的特征
并发性、共享性、虚拟性、不确定性
中间件
中间件处在操作系统、网络和数据库之上, 网络、数据库应用软件的下层
分类:
通信处理(消息)中间件、事务处理(交易)中间件、数据存取管理中间件、web服务器中间件、安全中间件、跨平台和架构的中间件、专用平台中间件、网络中间件
UML 中有 4 种关系:依赖、关联、泛化和实现
2. 系统架构
软件架构设计与生命周期
需求分析阶段 -> 设计阶段 -> 实现阶段 -> 构建组装阶段 -> 部署阶段 -> 后开发阶段
从软件需求模型向 S A模型的转换主要关注两个问题:1. 如何根据需求模型构建SA模型;2. 如何保证模型转换的可追踪性。
设计阶段主要研究:
S A 模型的描述、 S A模型的设计与分析方法,以及对 S A 设计经验的总结与复用等
工业界也提出了若干多视图描述S A模型的标准,统一建模语言 (UML)
后开发阶段
这一阶段的 S A 研究主要围绕维护、演化、复用等方面来进行。
基于体系结构的软件设计 (Architecture-Based Software Design,ABSD) 方法
ABSD方法有3个基础。第1个基础是功能的分解。在功能分解中, ABSD方法使用已有的基于模块的内聚和耦合技术。
第2个基础是通过选择体系结构风格来实现质量和商业需求。
第3个基础是软件模板的使用,软件模板利用了一些软件系统的结构。
软件架构风格
数据流体系结构风格 主要包括批处理风格和管道-过滤器风格。
批处理风格:每个处理步骤是一个单独的程序,每一步必须在前一步结束后才能开始,并且数据必须是完整的,以整体的方式传递。它的基本构件是独立的应用程序,连接件是某种类型的媒介。
管道-过滤器风格:把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入。每个处理步骤由一个过滤器 (Filter) 实现,处理步骤之间的数据传输由管道 (Pipe) 负责。每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。因此,管道-过滤器风格的基本构件是过滤器,连接件是数据流传输管道,将一个过滤器的输出传到另一过滤器的输入。
调用/返回体系结构风格
主程序/子程序风格、面向对象风格、层次性风格、客户端/服务器风格
主程序/子程序风格一般采用单线程控制,把问题划分为若干处理步骤,构件即为主程序和子程序。子程序通常可合成为模块。过程调用作为交互机制,即充当连接件。调用关系具有层次性,其语义逻辑表现为子程序的正确性取决于它调用的子程序的正确性。
数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例
层次性风格:连接件由通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,这同样为软件重用提供了强大的支持。
C/S (客户端/服务器)软件体系结构 两层 C/S 体系结构有3个主要组成部分:数据库服务器、客户应用程序和网络。服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务,称为“胖客户机,瘦服务器”。
3曾C/S 结构: 表示层(存在客户机和用户交互);功能层(存在于应用服务器上,实现具体的业务处理逻辑);数据层是数据库管理系统 – “瘦客户机”
以数据为中心的体系结构风格 主要包括仓库体系结构风格和黑板体系结构风格
仓库风格 有两种不同的构件:中央数据结构说明当前数据的状态以及一组对中央数据进行操作的独立构件,仓库与独立构件间的相互作用在系统中会有大的变化。这种风格的连接件即为仓库与独立构件之间的交互。
黑板风格 对于特定应用问题,黑板系统可通过选取各种黑板、知识源和控制模块的构件来设计,也可以利用预先定制的黑板体系结构的编程环境。黑板系统的传统应用是信号处理领域,如语音识别和模式识别。另一应用是松耦合代理数据共享存取。
虚拟机体系结构风格 主要包括 解释器风格和规则系统风格
解释器风格 解释器通常被用来建立一种虚拟机以弥合程序语义与硬件语义之间的差异。其缺点是执行效率较低。典型的例子是专家系统。
基于规则的系统包括规则集、规则解释器、规则/数据选择器及工作内存。
独立构件体系结构风格 主要包括 进程通信和事件系统风格
进程通信风格 构件是独立的过程,连接件是消息传递。这种风格的特点是构件通常是命名过程,消息传递的方式可以是点到点、异步或同步方式及远程过程调用等。
事件系统风格 从架构上说,这种风格的构件是一些模块,这些模块既可以是一些过程,又可以是一些事件的集合。过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。
软件架构复用
复用的基本过程主要包括3个阶段:首先构造/获取可复用的软件资产,其次管理这些资产,最后针对特定的需求,从这些资产中选择可复用的部分,以开发满足需求的应用系统
系统质量属性与架构评估
为了精确、定量地表达系统的质量属性,通常会采用质量属性场景的方式进行描述。
可将影响软件质量的主要因素划分为6种维度特性:功能性、可靠性、易用性、效率、维护性与可移植性。
基于软件系统的生命周期,可以将软件系统的质量属性分为开发期质量属性和运行期质量属性2个部分
开发期质量属性:易理解性、可扩展性、可重用性、可测试性、可维护性、可移植性
运行期质量属性:性能、安全性、可伸缩性、互操作性、可靠性、可用性、鲁棒性
质量属性场景
由6部分组成:刺激源、刺激、环境、制品、响应、响应度量
质量属性场景主要关注可用性、可修改性、性能、可测试性、易用性和安全性等6类质量属性