体系结构设计风格

一、常用的软件体系结构风格

数据流风格:批处理和管道/过滤器
调用/返回风格:主程序/子程序、层次结构,客户机/服务器,面向对象风格
独立部件风格:进程通讯、事件驱动
虚拟机风格:解释器、基于规则的系统
数据共享风格:数据库系统、黑板系统

空间效率:存储库>管道-过滤器>隐式调用

二、管道-过滤器风格(Pipe-Filter Style)

风格项描述
设计决策与约束保证过滤器的独立性,不能共享任何状态、数据,运行
模块描述每个过滤器部件实现为一个单独的模块, 简单的管道连接件建立通用模块 , 复杂的管道连接件建立一个单独的模块
优点可复用性、内部可修改性、可扩展性、高性能、支持特定分析(吞吐量、死锁检测)
缺点弱控制性、弱交互性;空间效率差;性能浪费、错误处理能力弱
应用传统的编译器、Unix shell编程、信号处理、批处理 (ATM机、汽车牌照识别系统等流水线系统)
不适用于不能容忍错误的系统,不允许重新启动的系统,交互式应用系统
变体流水线

三、主程序/子程序风格(Main Program/Subroutine Style)

风格项描述
设计决策与约束不允许逆方向调用、单线程执行、从上层获得控制权,执行完成后控制权还给上层,执行中控制权可以下传
模块描述每个子程序实现为一个模块,主程序为起始模块
优点流程清晰,易于理解;强控制性
缺点程序调用的强耦合使得系统难以修改和复用, 限制了部件之间的数据交互,可能会产生公共耦合
应用功能分解多个顺序执行的系统, 编程语言没有模块化支持的系统, 结构化方法建立的系统

四、面向对象式风格

风格项描述
设计决策与约束用信息内聚标准建立对象部件、 基于方法调用建立连接件、不同对象之间平等,没有主从、从属、层次关系
模块描述每个对象部件实现为一个模块
优点内部实现的可修改性。易开发、易理解、易复用的结构组织
缺点接口的耦合性、标识的耦合性、 面向对象的副作用
应用能够基于数据信息分解和组织的软件系统,基于抽象数据类型建立的软件系统

五、分层

风格项描述
设计决策与约束基于程序调用建立连接件,禁止跨层次连接、禁止逆向连接
模块描述每个层次部件表示为一个包,内部还有所有实现模块
优点设计清晰、易于理解,支持并行开发,可复用性、内部可修改性
缺点交互协议难以修改、性能损失(禁止跨层)、难以确定层次数量和粒度
应用并行开发的系统,不同抽象层次上进行任务分解的系统,能够容许延迟的系统,网络通信、交互系统、硬件控制系统、系统平台
变体松散分层系统(系统性能比可修改性更重要,例如:Unix操作系统)

六、隐式调用(发布-订阅,基于事件、选择性)

风格项描述
设计决策与约束使用事件路由建立连接件; 多个部件可以声明同一个事件类型,事件广播有相同调用效果;多个部件可以注册同一事件,事件发生后同时被调用;不能假设事件对部件的影响;部件不能假设对事件的处理顺序,也不能假设事件的处理结果
模块描述部件实例实现为模块,事件路由借助程序运行环境提供的支撑模块
优点可复用性、可修改性、高性能(多进程并发执行)
缺点弱控制性,难以测试和验证(不知道调用程序的上下文)
应用以松散耦合部件为基础建立的软件系统,编译环境中的工具集成,数据管理系统中的一致性检查,图形化用户界面
变体使用程序调用机制作为补充

七、存储库(数据为中心、共享数据风格)

风格项描述
设计决策与约束对系统的功能处理为一系列的知识源部件;对存储区的直接访问建立为连接件; 所有知识源相互独立,活动没有预先确定顺序; 知识源依赖于共享数据;知识源实时检查共享数据的状态,并在必要时做出合理的反应
模块描述共享数据部件建立一个存储区、访问机制模块;每个知识源建立一个实现模块
优点很好的空间效率,具有潜能的性能优势(进程实现时可多进程并发),知识源的可修改性、容错性和健壮性
缺点共享数据的难修改性、共享数据的瓶颈性、弱控制性
应用以建立、增强和维护一个复杂信息中心为主要问题的应用系统;数据库系统、现代的编译器
变体黑板风格:由共享数据监控状态变化、并在需要时通知知识源、由知识源决定下一步行动(部件类型:知识源、共享数据、控制,连接件类型:数据访问、监控、事件通知)
应用专家系统、集成开发环境、聊天室

八、MVC

风格项描述
设计决策与约束以程序调用为连接件; 视图只能使用数据查询,只有控制部件可以调用可能修改模型状态的程序
模块描述为模型、师徒、控制的每个部件建立模块实现
优点易开发性、视图和控制的可修改性、适宜于网络系统开发的特征
缺点复杂性、模型修改困难、
应用网络系统

九、客户端/服务器(C/S)

风格项描述
设计决策与约束服务器端有更高的资源要求、客户端有更多的用户交互;服务器端固定、客户端动态增减,各个客户端之间相互独立
模块描述server、client、连接件被实现为socket连接或tcp/ip连接
优点易开发、客户端的动态性
缺点服务器难以调整、服务器瓶颈、不易更新
应用网络系统
变体1.浏览器/服务器(B/S) 2.三层 3. 端到端(P2P)每个参与者既是客户端又是服务器,网络交互机制比较复杂
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页