当前位置:文档之家› 软件体系结构描述语言讲义

软件体系结构描述语言讲义

❖ 该层次的非形式化是严重的问题吗?
❖ 体体系结系构结是降构低描开发述成本语的言关键的必要性 开发焦点转移到粗粒度系统成分
❖ 形式化的体系结构模型是需要的
❖ 体系结构描述语言(ADLs)作为一种可能的解决方 案被提出
ACME
MetaH
Aesop
Rapide
ArTek
SADL
C2
UniCon
Darwin
与顾问交流
❖ 体系结构的必要需求(driving requirement)是什么 (如,performance, availability, security, modifiability, interoperability)?
❖ 各种体系结构视图是如何描述的?
抽象出来什么? 功能怎样分解? 功能怎样分配? 使用什么硬件以及软件怎样布置在硬件上?
带时间特性的 流程图
测试结果库
布图算法
函数调用关系 图
时间分析器 缓冲
复杂度计算 程序复杂度
测试结果打印
❖ 模块内连接语言
采用将一种或几种传统程序设计语言的模块连接起来 的模块内连接语言。由于程序设计语言和模块内连接 语言具有严格的语义基础,因此它们能支持对较大的 软件单元进行描述,诸如定义/使用和扇入/扇出等操作。 例如,Ada语言采用use实现包的复用,Pascal语言采 用过程(函数)模块的交互等。
❖ 软件体系结构描述语言
❖ 采用了哪些体系结构风格?
这是什么?
上图的毛病
❖ 很多事情没有说:
组件类型 连接件类型 圆圈和箭头代表什么? 这种布局的意义是什么? 为什么CP要放在上层?
❖ 只画出方框和线条不是体系结构,只是体系 结构的开始
好的体系结构文档的必要元素
❖ 需求陈述
商业环境、产品的背景、领域
❖ 描述环境
必须和什么系统交互、外部接口
❖ 让别人理解系统的第一手资料
❖ 基本与想法M是o什d么u?le Designer交流
❖ 我该做什么 (如,实现哪些需求) ? ❖ 我该在哪做 (如,这项功能实现在哪里) ? ❖ 我和谁交互?接口是什么?
❖ 有什么可以复用的代码?
❖ 必须遵从什么约定(质量目标、旧体系/接口、预 算等)?
❖ 有哪些硬性规定(设计、接口、约束等)?
❖ 你会询问什么样的信息?
假定你是Consultant(顾问)
❖ 面对这样的图,你会有什么反应?
假定你是Consultant(顾问)
❖ 面对这样的图,你会有什么反应?
体系结构文档的用处
❖ 软件开发过程中各种角色之间交流设计思想 的媒介
❖ 进行上层分析的基础。此基础上可以验证体 系结构设计方案,精炼或改变必要的方案
❖ 管理问题
暗含开发团队的组织结构 体系结构评审情况
❖ 其他设计问题
代码复用、标准的运用 风险分析 运作、管理和维护
❖ 体系结构软的件理解体停系留在结直构觉、的逸事现和状传说层面
❖ 非形式化描述
框线图 非形式化的陈述
❖ 惯用的词汇传递了丰富的语义
RPC Client-Server Pipe and Filter Layered Distributed OO
例如,一种多变配置语言就可以用来在一个较高的抽象层次上对 系统的体系结构建模,最初用作设计和构造复杂分布式系统的配 置说明语言,因具有动态特性,也可用来描述动态体系结构。
这种表达和描述方式虽然也是较好的一种以构件为单位的软件系 统描述方法,但是他们所面向和针对的系统元素仍然是一些层次 较低的以程序设计为基础的通信协作软件实体单元,而且这些语 言所描述和表达的系统一般而言都是面向特定应用的特殊系统, 这些特性使得基于构件的系统描述仍然不是十分适合软件体系结 构的描述和表达。
Weaves
LILEANNA
Wright
❖ 若干原型ADLs被开发出来
→ADL及其扮演的角色仍是一个开放的问题
❖ 提具供了描述A构D件L及扮其交演互的的模角型、色符号体系和工
❖ 支持大规模、高层设计 ❖ 支持体系结构风格的理性选择和应用 ❖ 支持抽象
用户定义 应用特定(application-specific)
❖ 支持设计的实现
系统化的 (可能)自动化的
→语言和环境之间相互作用
语言使能精确的规约 环境使得规约被复用
❖ 图形4.表1体达工系具结构描述方法分类
❖ 模块内连接语言 ❖ 基于构件的系统描述语言 ❖ 软件体系结构描述语言
❖ 图形表达工具
项目管理
静态分析器
测试配置
最 优 /最 劣 时 间 计算
MIL方式对模块化的程序设计和分段编译等程序设计 与开发技术确实发挥了很大的作用。但是由于这些语 言处理和描述的软件设计开发层次过于依赖程序设计 语言,因此限制了它们处理和描述比程序设计语言元 素更为抽象的高层次软件体系结构元素的能力。
❖ 基于构件的系统描述语言
基于软构件的系统描述语言将软件系统描述成一种是由许多以特 定形式相互作用的特殊软件实体构造组成的组织或系统。
❖ 使用体系结构图
用恰当的线框 简洁的说明
好的体系结构文档的必要元素
❖ 考虑实现时的限制
但是仅在它们能影响体系结构设计的范围内
❖被限定的下层结构、处理器需求
通常包含其他结构图
❖ 体系结构设计的原理
它怎样去符合需求与约束 其他的设计
❖ 风格/产品线问题其他方面 设计可变的尺度 体系结构的那个方面必须不被改变?
❖ 你的老板(项目经理)让你预计你将要完成 的几个模块的开发时间。
❖ 你怎么办?
假定你是Module Designer
❖ 你来开发A2和A3,怎么开始?
假定你是Consultant(顾问)
❖ 你是一个请来的顾问,对一个体系结构设计 进行评估。Modifibility和Performance是重要 的体系结构质量因素。
软件体系结构
(Soft描述语言
标书
❖ 吹嘘自己(不温不火地贬低对手) ❖ 提出自己的设计方案(体系结构) ❖ 吹嘘自己的方案(不温不火地贬低对手的方
案)
描述和讲解体系结构设计方案是非常重 要的技术
假定你是Module Designer
❖ 你最近加盟一家公司,并被安排在一个新项 目的开发组中。虽然你富有经验,但是对此 项目所涉及的领域还是一个新手。系统的高 层体系结构设计已经完成。
相关主题