软件架构风格
软件架构风格是指描述某一特定领域中系统组织方式的惯用模式。系统架构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束则表示组件和连接件如何组合起来。
软件架构为软件系统提供了一个结构、行为、属性的高级抽象,有构成系统的元素的描述,这些元素的相互作用,指导元素集成的模式以及这些模式的约束组成。
软件架构的作用:
软件架构是项目干系人进行交流的手段,明确了系统实现的约束条件,决定了开发与维护的组织结构,制约着系统的质量属性。
软件架构使推理和控制的更改更加简单,有助于循序渐进的原型开发,可以作为培训的基础。
软件架构是可传递和可复用的模型,通过研究软件架构可以预测软件的质量。
分类 |
子类 |
数据流风格 |
批处理、管道-过滤器 |
调用/返回风格 |
主程序/子程序、面向对象、层级结构 |
独立构件服务器托管网风格 |
进程通信、事件驱动系统(隐式调用) |
虚拟机风格 |
规则系统、解释器 |
仓库风格 |
数据库系统、黑板系统、超文本系统 |
数据流风格
(1)批处理序列
构件为一系列固定顺序的计算单元,构件之间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在其前一步结束后才能开始,数据必须是完整的,以整体的方式传递。
(2)管道过滤器
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常是通过对输入数据流的变换或计算来完成的,包括通过计算和增加信息以丰富数据、通过浓缩和删除以精简数据、通过改变记录方式以转化数据和递增地转化数据等。这里的构件称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
优点 |
缺点 |
典型应用 |
1、松耦合[高内聚-低耦合] ; 2、良好的重用性/可维护性; 3、可扩展性[标准接口适配] ; 1、良好的隐蔽性 5、支持并行。 |
1、交互性较差; 2、复杂性较高 3、性能较差 (每个过滤服务器托管网器都需要解析与合成数据) |
传统编译器 网络报文处理 |
调用/返回风格
(1)主程序/子程序
单线程控制,把问题划分为若干个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。
(2)面向对象
构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的相应操作被封装起来,对象的行为体现在其接受和请求的动作。连接件即是对象间交互的方式,对象是通过函数和过程的调用来交互的
(3)层次结构
概念: 构件组织成一个层次结构,连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层。通过层次结构,可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度。修改某一层,最多影响其相邻的两层 (通常只能影响上层)
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
大家好,很高兴又和大家见面啦!在上一篇内容中,我们详细介绍了三子棋的编写思路,相信大家在阅读完上一篇后对相关的知识点及其运用也有了相应的提升。下面我们就来开始介绍今天的内容——扫雷。 扫雷 游戏介绍 游戏规则 扫雷的游戏规则很简单。盘面上有许多方格,方格中随机…