软件设计与体系结构知识总结——第二章 What is software architecture

本文探讨了软件体系结构的基本概念,包括其定义、作用以及各类结构如模块、组件、分配等。重点介绍了架构模式如分层、共享数据、客户端-服务器和多层模式。文章还提出了评判好体系结构的关键因素,如流程建议和产品推荐。
摘要由CSDN通过智能技术生成

目录

0.前言

1.软件体系结构的概念

2.系统、企业和软件体系结构

3.体系结构和视图

4.体系结构模式Architectural Pattern

5.怎样才是好的体系结构


0.前言

        本系列文章旨在软件设计与体系结构的知识点,资料来源四川大学授课内容,可用于期末复习,笔者理解尚浅,文中不正之处静待批正。加粗部分为重点。

第二章整体框架

1.软件体系结构的概念

软件体系结构(software architecture)的定义:系统的软件架构是对系统进行推理所需的一系列结构,包括软件元素、它们之间的关系以及两者的属性。

software architecture的作用:架构是业务目标与最终系统之间的桥梁

架构的解释:

①架构是一套软件结构

结构(structures)是通过某种关系连接在一起的一组元素

三类体系结构(architecture structures):

1)模块结构(Module structure)

模块结构将系统划分为多个执行单元;静态结构;支持可修改性

2)组件和连接器(C&C)结构(Component-and-connector(C&C) structure)

侧重于各元素在运行时相互作用以执行系统功能的方式;动态结构;支持性能、安全性和可扩展性。

3)分配结构(Allocation structure)

将软件结构映射到系统环境中;支持性能

②架构是一种抽象(abstraction)

接口将元素的细节划分为公共部分和私有部分,而架构则关注接口的公共部分

③每个软件都有一个软件架构

每个系统都由元素及其之间的关系组成。架构可以独立于其描述description(源代码)或规范specification(文档)而存在

④架构包括行为

⑤并非所有架构都是好的架构

一个架构可以允许或阻止系统实现其行为、质量属性和要求

2.系统、企业和软件体系结构

①系统体系结构System architecture(比如数据采集和分析系统)

系统架构将功能映射到硬件和软件上

系统架构涉及整个系统,包括硬件、软件和人

②企业体系结构Enterprise architecture

企业架构是对一个组织的流程、信息流、人员和子单位的结构和行为的描述

③The relationship of three architectures

系统和企业架构为软件架构提供了环境和限制;软件架构必须融入系统和企业

3.体系结构和视图

①对于架构为什么我们需要这么多结构

现代系统往往过于复杂,难以同时掌握

我们在任何时刻都只关注软件系统的一个结构

②视图view

定义一个视图是一组连贯的架构元素的表示,由系统利益相关者编写,也由系统利益相关者阅读。

视图与结构的关系:架构设计结构;架构记录这些结构的视图;视图是结构的一种表示方法

③模块结构Module structures(Elements:module of some kinds,Relation:is a...or use

模块结构是一个系统的组成结构;用UML图来表示:类图、对象图和包图等

模块结构的作用:每个模块的主要功能是什么;允许使用哪些其他元素;使用和依赖哪些软件;通过通用化或专业化与其他模块相关联

Decomposition structure

Element: Module

Relation: Is a submodule of

Quality Attributes affected: Modifiability可修改性

Uses structure:

Element: Module

Relation: Uses( i.e., requires the correct presence of)

Quality Attributes affected: Subsetability, extensibility子集性、可扩展性

Layer structure

Element: Layer

Relation: Uses the services of

Quality Attributes affected: Portability便携性

Class structure

Element: Class, object

Relation: Is an instance, shares access methods of是一个实例,可共享访问

Quality Attributes affected: Reusability,extensibility可重用性,可扩展性

Data model structure

Element: Data entity

Relation: Data generalizes, specializes

Quality Attributes affected: Modifiability

④C&C structures(Elements: runtime component,Relation: connector)

由 UML 图表表示:顺序图、活动图和状态图等

C&C结构的作用:有哪些主要执行组件;有哪些主要共享数据存储;系统的哪些部分被复制;数据如何在系统中传输;系统的哪些部分可以并行运行

Service structure(动态结构)

Element: Service, registry

Relation: Runs concurrently with, excludes, precedes同时运行\排除运行\先于运行

Quality Attributes affected: Interoperability, modifiability互操作性、可修改性

Concurrency structure(动态结构)

Element: Processes, threads

Relation: Can run in parallel

Quality Attributes affected: Performance, availability性能、可用性

⑤Allocation structures(Elements: module, environmental elements,Relation: map)

由 UML 图表表示:部署图和组件图等

作用:每个软件元素在什么处理器上执行;在开发、测试和系统构建过程中,每个元素都存储在哪些文件目录中?各软件要素在开发团队中的分配情况如何?

Deployment structure

Element: Components, hardware element

Relation: Allocated to, migrates to分配到,迁移到

Quality Attributes affected: Performance, security, availability

Implementation structure

Element: Modules, file structure

Relation: Store in

Quality Attributes affected: Development efficiency发展效率

Work assignment structure

Element: Modules, organizational units模块、组织单位

Relation: Assigned to

Quality Attributes affected: Development efficiency

⑥The relationship among different structures

每种结构都为系统提供了不同的视角和设计方法

这些结构相互依存,一个结构的元素与其他结构的元素相关联

个别项目有时会认为一种结构占主导地位,而忽略其他结构

4.体系结构模式Architectural Pattern

架构模式是一种通用架构

①Layered pattern分层模式

层layer是一组连贯的相关功能

分层模式使用的软件元素之间的关系是严格单向的

层的设计通常是为了隐藏彼此的实现

②Shared-data pattern共享数据模式

共享数据模式包括创建、存储和访问持久数据的组件和连接器

The elements is a repository存储库usually takes the form of a database

The connectors are protocols for managing the data管理数据的协议, such as SQL

③Client-server pattern客户端-服务器模式

客户端-服务器模式是最常用的实用模式

The components are the clients and servers

The connectors are protocols and messages that share among each other to carry out the system’s work

④Multi-tier pattern多层模式

多层模式描述了如何在不同的硬件和软件子集中分配系统的组件

该模式将通用部署结构(generic deployment structure)特殊化

⑤Competence center and platform pattern能力中心和平台模式

该模式专门用于软件系统的工作分配结构

5.怎样才是好的体系结构

①流程建议Process recommendations

单个建筑师或小组被确定为领导者

必须有系统技术要求和明确、优先的定性属性

必须使用所有人都能理解的约定符号,对架构进行详细记录

应评估架构提供系统重要质量属性的能力

架构应允许创建一个骨架系统,并在此基础上逐步增加功能

②产品建议Product (or structural) recommendations

使用信息隐藏、关注点分离和定义明确的接口实现定义明确的功能模块

质量属性应使用众所周知的架构模式和针对每种属性的特定策略

切勿依赖于特定版本的商业产品或工具

将数据生产者与数据消费者分开

不要期望模块与组件之间是一一对应的

每个进程的编写都应使其对特定处理器的分配可以轻松更改,甚至可以在运行时更改

体系结构应以少量的组件交互方式为特征。系统应以相同的方式做相同的事情,这将有助于理解、缩短开发时间、提高可靠性

架构应包含一组特定的资源争用区域,并明确规定和维护其解决方法

上篇:软件设计模式例子代码  【例2.2】简单工厂方法模式-汽车保险  【例2.3】工厂方法模式-汽车保险  【例2.4】抽象工厂模式-房屋信息  【例2.5】生成器模式-房屋信息  【例2.6】单例模式-互联网连接  【例3.2】组合模式-五子棋代码  【例3.3】组合模式-空军指挥系统  【例3.4】组合模式-世界问候语  【例3.7】类适配器模式-客户信息验证  【例3.8】对象适配器模式-字符串排序  【例3.10】外观模式-安全系统  【例3.11】外观模式-椭圆功能  【例3.13】桥接模式-茶水机系统  【例3.14】桥接模式-几何立体体积  【例4.1】迭代器模式-矩阵搜索  【例4.2】迭代器模式-产品搜索  【例4.4】访问者模式-名牌鞋销售软件  【例4.5】访问者模式-计算机部件销售软件  【例4.6】命令模式-室内温度控制  【例4.7】命令模式-室内温度控制-2个GUI  【例4.8】命令模式-室内温度控制-3个GUI  【例4.10】中介者模式-旅游信息共享  【例4.11】中介者模式-海岛机场  【例4.13】策略模式-整数排序  【例4.14】策略模式-中国属相  【例4.16】状态模式-交通信号灯-设计1  【例4.16】状态模式-交通灯信号灯-设计2  【例4.16】状态模式-交通灯信号灯-设计3 下篇:软件体系结构例子代码  【例6.4】结构化设计-文件更新-C源代码  【例6.5】面向对象设计架构-文件更新  【例6.7】顺序批处理架构-文件更新  【例6.8】顺序批处理架构-图像处理  【例6.9】管道过滤器架构-主动过滤器  【例6.10】管道过滤器架构-被动过滤器  【例6.11】管道-过滤器架构-文件更新  【例6.12】管道-过滤器架构-图像处理程  【例6.14】事件体系结构-鼠标响应  【例6.17】事件体系结构-观察者模式-大草原1  【例6.18】事件体系结构-观察者模式-大草原2  【例6.19】事件体系结构-观察者模式-温度显示  【例6.21】层次架构-软件测试  【例6.22】层次架构-银行- Access数据库  【例6.23】MVC架构-二手车拍卖-无观察者  【例6.24】MVC架构-二手车拍卖-观察者-3个图形界面  【例6.25】MVC架构-二手车拍卖-观察者-1个图形界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五倍子的代码空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值