软件工程 |建筑设计
简介:软件需要架构设计来代表软件的设计。 IEEE 将架构设计定义为“定义一组硬件和软件组件及其接口以建立计算机系统开发框架的过程”。为基于计算机的系统构建的软件可以表现出众多架构风格中的一种。
每种样式都将描述一个系统类别,其中包括:
- 将执行系统所需函数的一组组件(例如:数据库、计算模块)。
- 这组连接器将有助于组件之间的协调、通信和合作。
- 组件如何集成以形成系统的条件。
- 帮助设计者理解系统整体属性的语义模型。
架构风格的使用是为系统的所有组件建立一个结构。
建筑风格分类:
- 以数据为中心的架构:
- 数据存储将驻留在此架构的中心,并由更新、添加、删除或修改存储中存在的数据的其他组件频繁访问。
- 该图说明了典型的以数据为中心的风格。客户端软件访问中央存储库。当与客户端相关的数据或客户端感兴趣的数据更改对客户端软件的通知时,此方法的变体用于将存储库转换为黑板。
- 这种以数据为中心的架构将促进可集成性。这意味着可以更改现有组件并将新的客户端组件添加到架构中,而无需其他客户端的许可或关注。
- 数据可以使用黑板机制在客户端之间传递。
- 数据流架构:
- 当输入数据通过一系列计算操作组件转换为输出数据时,就会使用这种架构。
- 该图表示管道和过滤器架构,因为它同时使用管道和过滤器,并且它具有一组称为过滤器的组件,这些组件通过管道连接。
- 管道用于将数据从一个组件传输到下一个组件。
- 每个过滤器将独立工作,旨在获取某种形式的数据输入,并将数据输出到指定形式的下一个过滤器。过滤器不需要任何有关相邻过滤器工作的知识。
- 如果数据流退化为单行转换,则称为批处理顺序。此结构接受这批数据,然后应用一系列顺序组件对其进行转换。
- 调用和返回架构:用于创建易于扩展和修改的程序。此类别中存在许多子样式。下面解释其中的两个。
- 远程过程调用架构:该组件用于呈现分布在网络上多台计算机之间的主程序或子程序架构。
- 主程序或子程序体系结构:主程序结构分解为多个子程序或函数到一个控制层次结构。主程序包含许多可以调用其他组件的子程序。
- 面向对象的体系结构:系统的组件封装了数据以及必须应用于操作数据的操作。组件之间的协调和通信是通过消息传递建立的。
- 分层架构:
- 定义了许多不同的层,每个层执行一组定义明确的操作。每一层都会做一些逐渐接近机器指令集的操作。
- 在外层,组件将接收用户界面操作,在内层,组件将执行操作系统接口(与操作系统的通信和协调)
- 实用服务和应用软件功能的中间层。