软件架构风格
软件架构风格包含数据流风格,调用返回风格,独立构件风格,虚拟机风格,仓库风格,c2风格,过程控制/闭环风格。
目录
软件架构风格包含数据流风格,调用返回风格,独立构件风格,虚拟机风格,仓库风格,c2风格,过程控制/闭环风格。
1.数据流风格
数据流风格包含批处理序列,管道过滤器,在早期的编译和dos命令就会用到数据流风格。
1.批处理序列
批处理序列强调数据是整体处理,数据作为一个整体一个步骤处理完了再进行下一个步骤的处理。
2.管道过滤器
流处理,可以一条一条的处理。例如客户端请求处理软件,先解析http报文,然后在解析soap协议,这种逐步分解的我们就可以考虑管道过滤器风格。
2.调用返回风格
调用返回风格包含主程序子程序,面向对象,层次结构。
1.主程序子程序
构建分为主程序和子程序,子程序可以构成模块,主程序的正确性决定于调用子程序的正确性
2.面向对象
显示调用,构建是对象,连接件是对象交互的方式,对象是通过函数和过程调用来实现交互的,在这种结构风格中包含有封装,集成,多态,重用等特征。
3.层次结构
构件组织成一个层次结构,连接件通过决定层间如何交互的协议来定义,每层为上一层提供服务,使用下一层服务。它是一种常见的架构设计方法,能够有效简化设计,使设计的系统结构清晰,便于提高复用能力和产品维护能力。
例如网络中的7层协议,企业应用系统的架构,一般就分为表现层,业务层,持久层三个层次。
3.独立构建风格
独立构建风格包含进程通信,事件驱动系统
1.进程通信
强调构件是独立的过程,连接件是消息传递。
2.事件驱动系统
构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中其他构建的过程在一个事件中注册,当这个事件被触发,系统自动调用这个事件中所注册的所有过程。一个事件的触发导致另一个模块中过程的调用。
其是一种隐式调用,用事件的方式来完成任务,事件触发的结果本身是不知道的。
优点:
1.可重用性好。当构建加入到现有系统中时,只需要将其注册到系统的事件当中去
2.为改进系统提供了方便。当构建需要替换的时候可以直接替换而不用担心影响其他构建。
缺点:
1.放弃了对系统的直接控制。事件触发时不能确定其他构建是否会响应。
2.数据交换的问题。有时候数据需要在事件中传递,有时候需要依赖共享的仓库,管理起来比较麻烦。
4.虚拟机风格
虚拟机风格就是构建一个平台,允许其他功能运行在这个平台上,例如java在的虚拟机系统,其包含解释器和基于规则的系统。
代表词:灵活组合,自定义,某某专家系统
1.解释器风格
解释器风格通常包含完成解释工作的引擎。具有解释器风格的软件中含义一个虚拟机,可以仿真硬件执行过程和一些关键应用。题目出现灵活,自定义等词就可以考虑用解释器风格,如自定义地图,灵活组合等。
2.基于规则的系统
基于规则的系统包含规则集,规则解释器,一般用于人工智能领域,例如动物识别专家系统
5.仓库系统
仓库系统是以数据为中心的风格,其包含数据库系统,黑板系统,超文本系统
1.数据库系统
仓库最重要的形式,有2大类。一类是中央共享数据源,另一个是多个独立处理元素。
2.黑板系统
黑板系统包含知识源,黑板,控制三部分,黑板是一个全局的数据库,知识源响应黑板的变化。其通常应用在解决问题没有确定性算法的软件当中。
例如信号处理,问题规划,编译器优化。
以前的编译器用的管道过滤器风格较多,如果题目强调一步一步处理那选管道过滤器风格,如果强调一个集成编译平台,这个平台有多个内容,其他部分围绕数据,那我们就选择数据共享风格,没有数据共享就选黑板风格。
6.c2风格
通过连接件绑定在一起,按照一组规则运作的并行构件网络
7.过程控制/闭环风格
通过设置参数,并不断测量现有数据,将设定参数与现有值进行比较,以便接下来的动作。例如定速巡航。
更多推荐
所有评论(0)