软件架构师
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.2.1体系结构的设计方法概述
• 基于体系结构的软件设计(Architecture-Based Software Design, ABSD)方法。 • ABSD方法是体系结构驱动,即指构成体系结构的商业、质量和功能 需求的组合驱动的。 • 设计活动在需求抽取和分析还没有完成时就已经开始了,需求的抽取 和分析应该与设计活动并行。
5.3.2经典体系结构风格 ——数据抽象和面向对象组织
• 抽象数据类型概念对软件 系统有着重要的作用,目 前软件界已普遍转向使用 面向对象系统。这种风格 建立在数据抽象和面向对 象的基础上,数据的表示 方法和它们的响应操作封 装在一个抽象数据类型或 对象中。这种风格的构件 是对象,或者说是抽象数 据类型的实例
5.2.8体系结构的实现
• 所谓“实现”就是要 用实体来显示出一个 软件体系结构,既要 符合体系结构所描述 的结构性设计决策, 分割成规定的构建, 按规定方式互相交互。
5.2.9体系结构的演化
• 体系结构演化是使用 系统演化步骤去修改 应用,以满足新的需 求。
5.3软件架构风格
5.3.1软件架构风格概述
• 在仓库风格中,有两种不 同的构建:中央书记结构 说明当前状态,独立构件 在钟祥数据存储上执行。 • 一方面,若构建控制共享 数据,则仓库是一个传统 型数据库;另一方面,若 中央数据结构的当前窗台 触发进程执行的选择,则 仓库是一黑板系统。
5.3.2经典体系结构风格 ——C2风格
• C2体系结构风格可以概括 为通过连接件绑定在一起 按照一组规则运作的并行 构建网络, • 组织规则如下:
5.1.2软件架构设计与生命周期
6、后阶段开发
• 后开发阶段是指软件部署安装之后的阶段。 这一阶段的SA研究主要围绕维护、演化、 复用等方面来进行。典型的研究方向包括 动态软件体系结构、体系结构恢复与重建 等。
5.1.2软件架构设计与生命周期
• 生命周期
实现阶段
需求分析
设计阶段
构建组装阶段
后开发阶段
• 体系结构风格定义一个系统家族,即一个 体系结构定义一个词汇表和一组约束。词 汇表中包含一些构建和连接件类型,而这 组约束指出系统是如何将这些构件和连接 件组合起来的。
5.3.2经典体系结构风格 ——管道和过滤器
• 在管道/过滤器风格的软件体系结构中,每个构件都有一 组输入和输出,数据输入构件,经过内部处理,然后产生 数据输出。因此,这里的构件被称为过滤器,这种风格的 连接件就像是数据流传输的管道,将一个过滤器的输出传 到另一个过滤器的输入。
5.2.2概念与术语
• 视角与视图
– 考虑体系结构时,重要的是从不同的视角 (perspective)来检查,这促使软件设计师考 虑体系结构的不同属性。
• 用例和质量场景
– 在使用用例不活功能需求的同时,我们通过定 义特定场景来不活质量需求,并称这些场景为 质量场景。
5.2.3基于体系结构的开发模型
5.1.2软件架构设计与生命周期
5、部署阶段
• SA对软件部署作用如下:
– 提供高层的体系结构视图描述部署阶段的软硬 件模型 – 基于SA模型可以分析部署方案的质量属性,从 而选择合理的部署方案
• 现阶段,基于SA的软件部署研究更多地集 中在组织和展示部署阶段的SA、评估分析 部署方案等方面,部署方案的分析往往停 留在定性的层面,并需要部署人员的参与。
部署阶段
5.1.3软件架构的重要性
• • • • • • • • 软件架构能够满足系统的品质 架构设计使受益人达成一致的目标 架构设计能够支持计划编制过程 架构设计对系统开发的指导性 架构设计能够有效地管理复杂性 架构设计为复用奠定了基础 架构设计能够降低维护费用 架构设计能够支持冲突分析
5.2基于架构的软件开发方法
软件架构设计
系统架构设计教程学习笔记
5.1软件架构的概念
5.1.1软件架构的定义
• 一个程序和计算系统软件体系结构是指系统的一 个或多个结构。结构中包括软件的构建,构建的 外部可见属性以及它们之间的相互关系。
• 体系结构并非可运行软件。确切的说,它是一种 表达,使软件工程师能够:
– 分析设计在满足规定需求方面的有效性。 – 在设计变更相对容易的阶段,考虑体系结构可能的选 择方案。 – 降低与软件构造相关联的风险。
源自文库
5.2.6体系结构文档化
• 绝大多数的体系结构都是抽象的,由一些 概念上的构建组成。因此,要让系统分析 员和程序员去实现体系结构,还必须得把 体系结构进行文档化。 • 体系结构文档化过程的主要输出结果是体 系结构规格说明书和测试体系结构需求的 质量设计说明书两个文档。
5.2.7体系结构复审
• 复审的目的是标识潜在的风险,及早发现 体系结构设计中的缺陷和错误,包括体系 结构能否满足需求、质量需求是否在设计 中得到体现、层次是否清晰、构件的划分 是否合理、文档表达是否明确、构建的设 计是否满足功能与性能的要求。
5.3.2经典体系结构风格 ——事件驱动系统
• 事件驱动系统风格是构件不直接调用一个 过程,而是触发或广播一个或多个事件。 系统中的其他构件中的过程在一个或多个 事件中注册。当一个事件被触发,系统自 动调用在这个事件中注册的所有过程,这 样,一个事件的触发就导致了另一个模块 中的过程的调用
5.3.2经典体系结构风格 ——分层系统
5.3.4三层C/S结构风格
• 表示层是应用的用户 结构部分担负与应用 逻辑间的对话功能 • 功能层是应用的本体, 负责具体的业务处理 逻辑 • 数据层通常是数据库 管理系统,负责管理 对数据库数据的读写
5.3.5浏览器/服务器风格
• 浏览器/服务器风格 (B/S)就是上述三层 应用结构的一种实现。 器具体结构为浏览器 /web 服务器/数据库服 务器。
• 领域实现
– 这个阶段的主要目标是依据领域模型和DSSA开发和组 织可重用信息。这些可重用信息可能是从现有系统中 得到,也可能需要通过新的开发得到。
5.4.3参与DSSA的人员
• • • • 领域专家 领域分析师 领域设计人员 领域实现人员
5.4.4DSSA的建立过程
• 定义领域范围。 • 定义领域特定的元素 • 定义领域特定的设计 和实现需求约束 • 定义领域模型和体系 结构 • 产生,搜集可重用的 产品单元
通过表格或者Use Case Map等来维护
2. 如何保证模型转换的可追踪性
•
5.1.2软件架构设计与生命周期
2、设计阶段
• SA模型的描述、SA模型的设计和分析方法、 对SA设计经验的总结与复用。 • SA模型描述的研究分为三个层次:
– SA的基本概念
• 构建、连接子
– 体系结构描述语言 – SA模型的多视图表示
• 层次系统组成一个层次结 构;每一层为上层服务, 并作为下层客户。在一些 层次系统中,出了一些精 心挑选的输出函数外,内 部的层接口只对相邻的层 可见。这样的系统中构件 在层上实现了虚拟机。连 接件通过决定层间如何交 互的协议来定义,拓扑约 束包括对相邻层间交互的 约束。
5.3.2经典体系结构风格 ——仓库系统及知识库
• 4+1模型、UML
5.1.2软件架构设计与生命周期
3、实现阶段
• 实现阶段的体系结构研究在以下几个方面。
– 研究基于SA的开发过程支持,如项目组织结构、 配置管理等。 – 寻求从SA向实现过度的途径,如将程序设计语 言元素引入SA阶段、模型映射、构建组装、复 用中间件平台 – 研究基于SA的测试技术
• ABSD方法有三个基础。功能分解、体系结构风格的选择、软件模板 的使用
• ABSD方法是递归的,且迭代的每一个步骤都是清晰地定义的。
5.2.2概念与术语
• ABSD方法是一个自顶 向下,递归喜欢的方 法,软件系统的体系 结构通过该方法得到 细化,知道能产生软 件构件和类。 • ABSD方法中使用的设 计元素如右图
5.1.1软件架构的定义
• 软件体系结构的设计通常考虑了设计金字 塔中的两个层次——数据设计和体系结构 设计。 • 数据设计使我们表示出传统系统中体系结 构的数据构建和面向对象系统中类的定义 (封装了属性和操作),体系结构设计则 主要关注软件构建的结构、属性和交换作 用
5.1.2软件架构设计与生命周期
5.4特定领域软件体系结构
5.4.1DSSA的定义
• 简单的说,(Domain • DSSA的必备特征如下 Specific Software – 一个严格顶一个的问题 域。 Architecture,DSSA) – 具有普遍性。使其可以 就是在一个特定应用 用于领域中某个特定应 领域中为一组应用提 用的开发。 供组织结构参考的标 – 对整个领域的构建组织 准软件体系结构。
• C/S风格是通过一台物 理上与宿主机相连接 的非智能终端来实现 宿主机上的应用程序。 • C/S体系结构有三个主 要组成部分:数据库 • C/S缺点: 服务器、客户应用程 – 开发成本高 – 客户端程序设计服装 序和网络。
– – – – 信息内容和形式单一 用户界面风格不一 软件移植困难 软件维护和升级困难
– 系统中的构建和连接件都有 一个顶部和一个底部 – 构建的顶部应连接到某连接 件的底部,构建的底部则应 连接到某连接件的顶部。儿 构建之间的直接连接是不允 许的。 – 一个连接件可以和任意数目 的其他构建和连接件连接 – 当两个连接件进行直接连接 时,必须由其中一个的底部 到另一个的顶部
5.3.3客户/服务器风格
模型的恰当抽象。 – 具备该领域固定的、典 型的再开发过程中可重 用的元素。
5.4.2DSSA的基本活动
• 领域分析
– 这个阶段的主要目标是活的领域模型。领域模型描述 领域中系统之间的共同的需求,即领域模型所描述的 需求为领域需求。
• 领域设计
– 这个阶段的目标是活的DSSA。DSSA描述在领域模型 中表示的需求的解决方案,它不是单个系统的表示, 而是能够适应领域中多个系统的需求的一个高层次的 设计。
5.1.2软件架构设计与生命周期
4、构件组装阶段
• 在SA设计模型的指导下,可复用构件组装 可以在较高层次上实现系统,并能够提高 系统实现的效率。在构件组装的过程中, SA设计模型起到了系统蓝图的作用。 • 中间件遵循特定的构件标准,为构件互联 提供支持,并提供相应的公共服务,如安 全服务、命名服务等。
• 传统软件开发模型 (瀑布模型)存在开 发效率不高,不能很 好地支持软件重用等 缺点。
5.2.4体系结构需求
• 需求是指用户对目标 软件系统在功能、行 为、性能、设计约束 等方面的期望
– 需求获取 – 标识构建 – 需求评审
5.2.5体系结构设计
• 体系结构需求用来激 发和调整设计决策, 不同的视图呗用来表 达与质量目标有关的 信息。体系结构设计 时一个迭代过程,如 果要开发的系统能够 从已有的系统中到处 大部分,则可以使用 已有系统的设计过程
1、需求分析阶段
•
•
•
需求和SA设计面临的是不同的对象:一个是问 题空间;另一个是解空间。 保持二者的可追踪性和转换,一直是软件工程领 域追求的目标。 从软件需求模型向SA模型的转换主要关注两个 问题
1. 如何根据需求模型构建SA模型。
• 采用Use case图描述需求,从Use Case图向SA模型的转换 一般经过词性分析和一些经验规则来完成。