首先C2风格是最常用的一种软件体系结构风格。(下图为一个C2风格的架构图)

C2是一种基于构件和消息的架构风格,可用于创建灵活的、可伸缩的软件系统。一个C2构架可以看成是按照一定规则由连接件连接的许多组件组成的层次网络:系统中的构件和连接件都有一个“顶部”和“底部”;一个构件的“顶部”或“底部”可以连接到一个连接件的“底部”或“顶部”;对于一个连接件,和其相连的构件或连接件的数量没有限制,但是构件和构件之间不能直接相连。

C2风格具有以下特点: (1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;  (3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设

C2架构风格最重要的特性就是“底层无关性”,这在构件的可替代性和可重用性方面具有显著的作用;另外,C2架构引入了“事件转化”的概念,域解释器把构件的请求转化为接收方能够接收的特定形式,同时也把通知转化为该构件能够理解的形式。

我们要设计的是一个教务点名软件,其中分为3方,学生、教师、以及教务。每方之前可以互相通信,比如学生可以给教师留言、教务可以给学生通知等等。每一方又有不同的功能。根据我们的设计,C2架构风格对我们的软件并不适用。C2架构风格可以概括为:通过连接件绑定在一起的并行构件网络。系统中必须要有构件和连接件。对我们的系统来说,构件和连接件不好确定。我觉得C2更适合那种分工明确的软件,每个构件有具体的分工。而且我们设计的系统3方之间可以相互通信,如果我们把教师、学生、教务封装成3个构件 按照C2的风格,这3方之间无法直接连接,必须通过连接件,所以有多少互动的功能就要设计多少连接件,造成系统复杂度提升。所以我觉得我们的软件不太适合C2风格。

转载于:https://www.cnblogs.com/lym0816/p/5423123.html

软件体系结构C2风格相关推荐

  1. 软件体系结构的风格(转载)

    在上两篇文章中,我们介绍了软件体系结构的概念.现状及发展方向,读者可能会觉得"软件体系结构太抽象.太理论化,没有什么实际的东西".然而,任何实践都必须接受理论的指导,如果抛弃理论基 ...

  2. 282.软件体系结构的风格与模式

    建筑模式 Christopher Alexander, The Timeless Way of Building, p247, 1979 每个模式是一个由三部分组成的规则,表达了特定环境.问题和解(s ...

  3. 软件体系结构——层次风格

    一个层次风格的系统按照层次结构组织,每一层为上层服务,并作为下层的用户. 在层次风格的系统中,内部的层只对相邻的层可见,交互只在相邻的层次之间发生,同时这些交互按照一定的协议进行. 程序示例如下: [ ...

  4. 对软件体系结构的认识

    一 . 软件体系结构(架构) 软件体系结构的定义 通常,软件体系结构通常被称为架构,指能够预制和可重构的软件框架结构.架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度 的视点也会 ...

  5. 软件体系结构期末考试复习题(题中页码 与软件体系结构原理、方法与实践第2版 张友生编著 匹配)

    软件体系结构期末考试复习题(题中页码 与软件体系结构原理.方法与实践第2版 张友生编著 匹配) 一.选择题← 不属于软件体系结构的核心模型的最基本的元素是 A构件   B连接件   C配置   D角色 ...

  6. 软件体系结构期末--广东外语外贸大学

    前言: 所有题目的答案,均来自老师上课的ppt.⚠老师上课的提问和强调就是平时记笔记的关键.平时上课要多理解,考前才不至于死背.名词解释部分当初我背了20个,也就对了4个,不过其实也还好.(建议背重点 ...

  7. 【软件体系结构】考点总结 第三章 软件体系结构风格 XJU

    软件体系结构 第三章 软件体系结构风格 前言   本文为XJU本科期间博主根据 <软件体系结构原理.方法与实践>第二版所作的期末考点总结,因为是课堂重点总结,所以有些重要知识点没有涵盖还请 ...

  8. 三、软件体系结构风格

    软件体系结构风格 一.概述 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式. 体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束.词汇表中包含一些构件和连接件类型, ...

  9. 软件体系结构风格之C/S,三层C/S,与BS

    C/S的物理结构,其发展历程为(1)->(3)->(2),本文接下来要介绍的C/S为(3),即胖客户端瘦服务器,服务器只管数据库,接下来要介绍的三层C/S为(2),即客户端不胖不瘦. C/ ...

最新文章

  1. zookeeper图形工具——zkui
  2. linux下修改主机名
  3. Eclipse(javaweb)刚换工作空间之后,应该做哪几件事
  4. java ceilingentry_java.util.TreeMap.ceilingKey()
  5. 12款响应式的 jQuery 旋转木马(传送带)插件
  6. 电脑复制粘贴_手机扫一扫,现实物体隔空复制粘贴进电脑!北大校友的AI新研究,现在变成AR酷炫应用...
  7. mysql的分页怎么不对_jsp+mysql分页显示我的怎么不对啊?显示始终不对!
  8. 欧几里得算法和扩展欧几里得算法的简单例子
  9. C#如何将两个List集合合并
  10. 手机归属地查询演示代码
  11. Video Matting:AI视频抠图
  12. 和利时dcs系统服务器设置,和利时DCS控制系统组态流程
  13. 华为鸿蒙备胎计划,重磅!华为启动“备胎”计划,神秘项目曝光代号
  14. 2021-08-06
  15. x1 php168,新手快速入门教程
  16. 社交网络分析方法以及基本图例
  17. NYOJ 32 组合数
  18. 小波变换(wavelet transform)的通俗解释(一)
  19. weblogic打补丁详细步骤(linux)
  20. 国内技术创新型公司的一个问题

热门文章

  1. Boost:compute::copy的复制数据测试程序
  2. VTK:可视化之TensorGlyph
  3. VTK:Utilities之PiecewiseFunction
  4. VTK:PolyData之ThresholdCells
  5. VTK:InfoVis之WordCloud
  6. VTK:几何对象之PolyLine
  7. VTK:Disk用法实战
  8. C语言判断树是否为求和树(附完整源码)
  9. C语言求网格的最大不重复路径数的算法(附完整源码)
  10. OpenGL Drawing Commands绘图命令的实例