1、什么是体系结构
程序或计算系统的软件体系结构是系统的结构或结构,其中包括软件组件、这些组件的外部可见属性以及它们之间的关系。
2、为什么架构非常重要?(理解)
- 软件体系结构的表示是对基于计算机的系统的开发感兴趣的所有各方(利益相关者)之间通信的一个推动器。
- 体系结构突出了早期的设计决策,这将对随后的所有软件工程工作产生深远的影响,同样重要的是,对系统作为一个操作实体的最终成功。
- 体系结构“构成了一个相对较小的、智力可理解的模式,用来说明系统的结构及其组件如何一起工作”[BAS03]。“全貌”
3、敏捷和体系结构
人们普遍认为,敏结过程的早期就断是设计整体系统架构。重构系统体系结构代价很昂贵,因为它影响系统中的很多构件。
4、体系结构和系统特点
- 性能:本地化关键操作,并最小化通信。使用大的而不是细粒度的组件。
- 软件防范:在内部层中使用具有关键资产的分层体系结构(隐私)
- 安全:在少数子系统中本地化安全关键特性。(坚固)
- 可用性:包括冗余的零部件和容错机制。
- 可维护性:使用细粒度的、可更换(独立)的部件。(包)
5、体系结构的表示方法(灵活运用)
- 显示实体和关系的非正式方框图是记录软件架构最常用的方法。
- 可以用作描述其应用程序域和流程概念的业务概念流程图。盒和线
6、一种包装机器人控制系统的体系结构
7、ADL
- 体系结构描述语言(ADL)提供了一种用于描述软件体系结构的语义和语法
- 为设计者提供以下能力:将组成各个组件的架构组件分解为更大的架构块,并表示组件之间的接口(连接机制)。
8、体系结构风格
每个风格描述了一个系统类别,包括:
- 一组构件(例如,数据库、计算模块)执行系统所需的功能
- 一组连接件,使组件之间的“通信、协调和合作”
- 约束定义组件如何集成形成系统
- 语义模型,(内涵、用例)使设计者通过分析系统组成部分的已知属性来理解系统的整体属性
要求:根据特定的场景,知道适用的体系结构风格
- 以数据为中心的架构
- 数据流架构
- 调用和返回架构
- 面向对象的架构
- 分层架构
- MVC
9、以数据为中心的体系结构(存储库体系结构)
10、一个以数据为中心的体系结构的示例
11、数据流架构(管道和过滤器架构)
13、调用和返回体系结构
14、面向对象体系结构
系统的构件封装了数据和必须用于控制该数据的操作,构件间通过信息传递进行通信与合作。
15、分层体系结构
16、模型-视图-控制器(MVC)体系结构
17、移动机器人系统的案例研究设计
- 卡内基梅隆大学研究所的移动机器人实验室
- 移动机器人实验室正在对在复杂的室内和室外空间中导航的机器人进行感知(见感知环境)控制规划的长期基础研究。
- 自1981年以来,根据现有的工作和1973年以来的工作,该实验室已经建造了三种不同的移动机器人。
- 基于分层架构•级别1的解决方案:最低级别,驻留在机器人控制例程(电机、接头等)中。•级别2:传感器解释,分析的数据从一个传感器•级别3:传感器集成,结合不同的传感器输入的分析•级别4:关心维护机器人的模型世界•级别5:管理机器人的导航水平•级别6、7:计划和计划机器人的行动。处理问题和重新规划也是第7级职责的一部分。
- 问题:分层体系结构不适合实际数据和控制流模式层•建议服务和请求在相邻组件之间传递。实际上,信息的传递并不那么简单:•需要快速响应的示例数据可以直接从传感器发送到7级,以处理这个问题。•相应的命令可能必须跳过级别,以及时到达电机
18、构件级设计
要求:针对构建设计,可以识别构建设计的问题并可以给出修正方案(OSP/LSP/DIP/ISP)
实施构件设计的步骤(理解)了解构件设计的步骤要求,可以采用的建模方案
四个构件级原则 :
1.开闭原则(OCP):模块(构件)应该对外延具有开放性,对修改具有封闭性。
2.里氏替换原则(LSP):子类可以替换它们的基类。
3.依赖倒置原则(DPI):依赖于抽象,而非具体实现。
高级模块不应该依赖于低级模块,都应该依赖于抽象。
抽象不能依赖于细节,细节应该依赖于抽象。
4.接口分离原则(ISP):多个用户专用接口比一个通用接口要好。
三个包级原则:
1.
发布复用等价性原则:复用的粒度就是发布的粒度。
2.
共同封装原则:一同变更的类应该合在一起。
3.
共同复用原则:不能一起复用的类不能被分到一组。
- 软件必须放在体系结构中,设计应该定义与软件交互的外部实体(其他系统、设备、人员)以及交互的性质
- 应该确定一组架构原型。原型是表示系统行为的一个元素的抽象(类似于类)
- 设计者通过定义和细化实现每个原型的软件组件来指定系统的结构
19、体系结构语境
在体系结构中表示系统
- 体系结构语境图(ACD):对目标系统与其边界外部的实体交互的方式进行建模。
- 上级系统—这些系统使用目标系统作为一些更高层次的处理方案的一部分
- 下属系统—这些系统使用的目标系统和提供完成目标系统所必需的数据或处理
- 同行系统—这些系统交互在点对点的基础上(即,信息产生或消耗的同行和目标系统)
- 参与者—通过产生或消耗必要处理所必需的信息而与目标系统交互的实体(人员、设备)
20、原型
定义原型:表示对目标系统的体系结构设计至关重要的核心抽象的类或模式