第四章-软件体系结构描述
comUser
收到comUI的信息 userRequest(user,pw),进行判断,之 后将结果result()发回给UI
郑州大学软件学院 赵哲
39
comUser描述
component comUser is interface bottom_domain is out result() in userRequest(user,pw) [behavior]//此处省略 end comUser
郑州大学软件学院 赵哲 31
C2
C2是一种常见(有图形化用户界面)的软 件体系结构风格 C2SADL(Software Architecture Description Language)是用于描述C2 风格的体系结构的ADL。 常常用C2这一简称来指代C2风格和C2 SADL的结合 C2语言可以用Argo设计环境编写
end interface component_type:Module|Computation| SharedData|SeqFile|Filter|Process|Sch edProcess|General
郑州大学软件学院 赵哲 20
UniCon语法-描述构件
描述构件实施-语法: implementation is
郑州大学软件学院 赵哲 10
ADL
ADL的三个基本元素是:
构件 连接件 体系结构配置
郑州大学软件学院 赵哲
11
典型的软件体系结构描述语言
ADL Unicon Wright C2 Rapide SADL Aesop ACME 研发组织 Carnegie Mellon大学 Carnegie Mellon大学 Southern California大学 Stanford大学 SRI Carnegie Mellon 大学 Carnegie Mellon 大学
end <identifier>
郑州大学软件学院 赵哲
22
UniCon语法-描述连接件
描述协议-语法: protocol is
type <connetor_type> <property_list> <role_list>(角色)
end protocol <connector_type>:DataAccess|FileIO| Pipe|PLBundler|PocedureCall|RemoteP rocCall|RTScheduler
<property_list> <variant_list>
end implementation
郑州大学软件学院 赵哲
21
UniCon语法-描述连接件
描述连接件-语法: connector <identifier>(连接件名字)
<protocol>(协议) <implementation>(连接件的实现)
connector comInput conections top_ports comUser bottom_ports comUI
郑州大学软件学院 赵哲
42
C2对体系结构的描述
语法: system 系统名_1 is architecture 系统名 with instance (实例) instance end 系统名_1
郑州大学软件学院 赵哲 9
软件体系结构描述语言
软件开发的重点已从程序代码转移到了可重用 颗粒(构件和连接件)的体系结构元素,以及它 们整体的互连结构 为了支持体系结构开发,需要建立应用于体系 结构规格说明的形式化建模符号和分析开发工 具 ADL (Architecture Description Language) 和对应的工具包就能够解决这一问题。
郑州大学软件学院 赵哲
29
Wright-进程符号的说明
连接件的角色说明了交互方每一方的行 为,粘剂说明了这些行为是如何结合在 一起的。 但是,如何描述行为特点以及可能发生 的行为范围? 进程代数的方法来描述
郑州大学软件学院 赵哲
30
Wright
符号的含义 对号表示成功 方框表示确定性选择 箭头表示事件变迁 。。。 优先级问题等 不做重点
郑州大学软件学院 赵哲
7
IEEE P1471
IEEE P1471适用于软件密集的系统, 其目标在于:
便于体系结构的表达与交流 奠定质量与成本的基础
IEEE P1471介绍了如何大概的描述体 系结构,对详细还有所欠缺
郑州大学软件学院 赵哲
8
Rational
Rational根据P1471提出了自己的标准 相比之下,该建议标准涉及面较窄,所注重的 层次比较低,因而更具体。 该建议标准结合了4+1模型提出了7个体系结 构视图 将体系结构基于RUP,用UML来描述,具有 一定的局限性,但该建议标准结合了业界已经 广泛采用的建模语言和开发过程,因而易于推 广。
end < identifier >
郑州大学软件学院 赵哲
19
UniCon语法-描述构件
描述接口-语法: interface is
type <component_type> <property_list>(属性,用于更进一步的说明) <player_list>(参与者,用于更进一步的说明)
郑州大学软件学院 赵哲 12
ADLs和其他语言的比较
构造能力:ADL能够使用较小的体系结构元素来建造大 型软件系统 抽象能力:ADL使得软件体系结构中的构件和连接件描 述可以只关注抽象特征,而不管具体实现。 复用能力:ADL使得组成软件系统的构件、连接件甚至 是软件体系结构都成为软件系统开发和设计的可复用部 件; 组合能力:ADL使得其描述每一个系统元素都有自己的 局部结构,这种特点使得ADL支持软件系统的动态变化 组合; 异构能力:ADL允许不同的体系结构描述有关联; 分析和推理能力:ADL允许对体系结构进行多种不同的 性能和功能上的推理分析。
输入 显示结果
郑州大学软件学院 赵哲 35
C2描述
comUI向comUser发出验证请求 userRequest(user,pw),获取验证结果 getVerity()后,显示信息.
郑州大学软件学院 赵哲
36
C2描述
根据以上,comUI的out事件和in事件 分别为: Out:
userRequest(user,pw)
软件体系结构
软件体系结构描述
郑州大学软件学院 赵哲
1
主要内容
软件体系结构描述方法 框架标准 描述语言 典型的软件体系结构描述语言 软件体系结构与UML 可扩展标记语言 基于XML的描述语言
郑州大学软件学院 赵哲 2
这是什么?
郑州大学软件学院 赵哲
3
上图的问题
很多事情没有说:
郑州大学软件学院 赵哲 32
C2描述语法
component <identifier> is (构件名) interface top_domain is(面向top的接口) bottom_domain is(面向bottom的接口) out …//请求、输出方法体 in …//内部、输入方法体 [behavior] [context component_context] end <identifier>
In:
getVerity()
郑州大学软件学院 赵哲
37
comUI描述
component comUI is interface top_domain is out userRequest(user,pw) in getVerity() [behavior]//此处省略 end comUI
郑州大学软件学院 赵哲 38
郑州大学软件学院 赵哲 33
C2风格
C2底层向上层索取数据,递交请求 C2上层为下层提供数据、反馈结果,不 能递交请求 2个构件:
comUI ,comUser comInput
郑州大学软件学院 赵哲 34
1个连接件:
C2风格实例-用户验证
comUser
验证
comInput comUILeabharlann 郑州大学软件学院 赵哲 43
C2对体系结构的描述
比如有2个用户信息的验证,分别是user1和 user2,两个验证结果,分别是R1和R2
system 用户验证_1 is architecture 用户验证 with comUI instance user1,user2; comUser instance R1,R2; end 用户验证_1
郑州大学软件学院 赵哲
25
Wright
郑州大学软件学院 赵哲
26
Wright
上图介绍了一个简单的客户服务器系统的体系 结构 分为3个部分 第一部分定义构件和连接件类型。一个构件类 型用端口(ports)和构件规格(componentspec)来说明 连接件类型用所定义的角色和粘剂(glue)的集 合来说明。 粘剂用来说明客户服务和服务器角色是怎样协 作的。比如,客户端请求,服务器响应
郑州大学软件学院 赵哲 16
ADL的构成要素-连接件
连接件用来连接构件,它们可以是消息 器、共享变量、缓冲区、协议、管道、 数据库、应用程序中的SQL语句等。 连接件同样有接口,接口由一组角色组 成。有2角色,也有多角色。