




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、郑州大学软件学院 赵哲,1,软件体系结构,软件体系结构描述,郑州大学软件学院 赵哲,2,主要内容,软件体系结构描述方法 框架标准 描述语言 典型的软件体系结构描述语言 软件体系结构与UML 可扩展标记语言 基于XML的描述语言,郑州大学软件学院 赵哲,3,这是什么?,郑州大学软件学院 赵哲,4,上图的问题,很多事情没有说: 构件的类型 连接件的类型 圈是什么 箭头是什么 层次的意义 为什么CP要放第一层 只画出方框和线条不是体系结构,而是体系结构的开始,郑州大学软件学院 赵哲,5,体系结构描述的必要性,在软件开发中,各种角色交流思想的媒介 进行上层分析的基础 让别人理解系统的第一手资料,郑州大
2、学软件学院 赵哲,6,体系结构的描述方法,使用体系结构描述语言 Architecture Description Language ADLs 专门针对软件体系结构的特点而设定 目前已经有十几种常见的ADL,郑州大学软件学院 赵哲,7,体系结构描述框架标准,鉴于体系结构描述的概念和实践的不统一,IEEE与1995年8越成立了体系结构工作组 IEEE P1471 体系结构描述框架,并与2000年9月21日通过IEEE-SA标准委员会评审。,郑州大学软件学院 赵哲,8,IEEE P1471,IEEE P1471适用于软件密集的系统,其目标在于: 便于体系结构的表达与交流 奠定质量与成本的基础 IEE
3、E P1471介绍了如何大概的描述体系结构,对详细还有所欠缺,郑州大学软件学院 赵哲,9,Rational,Rational根据P1471提出了自己的标准 相比之下,该建议标准涉及面较窄,所注重的层次比较低,因而更具体。 该建议标准结合了4+1模型提出了7个体系结构视图 将体系结构基于RUP,用UML来描述,具有一定的局限性,但该建议标准结合了业界已经广泛采用的建模语言和开发过程,因而易于推广。,郑州大学软件学院 赵哲,10,软件体系结构描述语言,软件开发的重点已从程序代码转移到了可重用颗粒(构件和连接件)的体系结构元素,以及它们整体的互连结构 为了支持体系结构开发,需要建立应用于体系结构规格
4、说明的形式化建模符号和分析开发工具 ADL (Architecture Description Language)和对应的工具包就能够解决这一问题。,郑州大学软件学院 赵哲,11,ADL,ADL的三个基本元素是: 构件 连接件 体系结构配置,郑州大学软件学院 赵哲,12,典型的软件体系结构描述语言,ADL研发组织 UniconCarnegie Mellon大学 WrightCarnegie Mellon大学 C2Southern California大学 RapideStanford大学 SADLSRI AesopCarnegie Mellon 大学 ACMECarnegie Mellon 大
5、学,郑州大学软件学院 赵哲,13,ADLs和其他语言的比较,构造能力:ADL能够使用较小的体系结构元素来建造大型软件系统 抽象能力:ADL使得软件体系结构中的构件和连接件描述可以只关注抽象特征,而不管具体实现。 复用能力:ADL使得组成软件系统的构件、连接件甚至是软件体系结构都成为软件系统开发和设计的可复用部件; 组合能力:ADL使得其描述每一个系统元素都有自己的局部结构,这种特点使得ADL支持软件系统的动态变化组合; 异构能力:ADL允许不同的体系结构描述有关联; 分析和推理能力:ADL允许对体系结构进行多种不同的性能和功能上的推理分析。,郑州大学软件学院 赵哲,14,典型元素含义比较,郑州
6、大学软件学院 赵哲,15,常见的软件体系结构元素,郑州大学软件学院 赵哲,16,ADL的构成要素-构件,在体系结构中,构件可以小到只有一个过程、大到整个应用程序。 构件中有一些重要的属性 构件作为一个封装的实体,只能通过其接口与外部环境交互 接口由一组端口组成 构件的演化能力,郑州大学软件学院 赵哲,17,ADL的构成要素-连接件,连接件用来连接构件,它们可以是消息器、共享变量、缓冲区、协议、管道、数据库、应用程序中的SQL语句等。 连接件同样有接口,接口由一组角色组成。有2角色,也有多角色。,郑州大学软件学院 赵哲,18,ADL的构成元素-体系结构配置,体系结构配置提供信息来确定: 构件是否
7、正确连接 接口是否匹配 连接件构成的通信是否正确 说明语义 利用配置来支持系统的变化,使不同技术人员都能理解并熟悉系统,郑州大学软件学院 赵哲,19,典型的软件体系结构描述语言,UniCon语法-描述构件: component (构件名) (接口) (构件实施) end ,郑州大学软件学院 赵哲,20,UniCon语法-描述构件,描述接口-语法: interface is type (属性,用于更进一步的说明) (参与者,用于更进一步的说明) end interface component_type:Module|Computation|SharedData|SeqFile|Filter|Pr
8、ocess|SchedProcess|General,郑州大学软件学院 赵哲,21,UniCon语法-描述构件,描述构件实施-语法: implementation is end implementation,郑州大学软件学院 赵哲,22,UniCon语法-描述连接件,描述连接件-语法: connector (连接件名字) (协议) (连接件的实现) end ,郑州大学软件学院 赵哲,23,UniCon语法-描述连接件,描述协议-语法: protocol is type (角色) end protocol :DataAccess|FileIO|Pipe|PLBundler|PocedureCal
9、l|RemoteProcCall|RTScheduler,郑州大学软件学院 赵哲,24,UniCon语法-描述连接件,描述连接件的实现-语法 implementation is builtin end implementation,郑州大学软件学院 赵哲,25,练习,用UniCon语言来描述最简单的管道-过滤器 过滤器名:GuoLvQi 管道名:GuanDao,郑州大学软件学院 赵哲,26,Wright,郑州大学软件学院 赵哲,27,Wright,上图介绍了一个简单的客户服务器系统的体系结构 分为3个部分 第一部分定义构件和连接件类型。一个构件类型用端口(ports)和构件规格(compone
10、nt-spec)来说明 连接件类型用所定义的角色和粘剂(glue)的集合来说明。 粘剂用来说明客户服务和服务器角色是怎样协作的。比如,客户端请求,服务器响应,郑州大学软件学院 赵哲,28,Wright,第二部分是构件和连接件的实例集合 有一个服务器s,一个客户端c,一个连接件cs,郑州大学软件学院 赵哲,29,Wright,第三部分描述端口和连接件的关系。 比如服务器端的provide端口与连接件中的server角色相对应。 客户端的request端口与连接件中的client角色相对应。,郑州大学软件学院 赵哲,30,Wright-进程符号的说明,连接件的角色说明了交互方每一方的行为,粘剂说明
11、了这些行为是如何结合在一起的。 但是,如何描述行为特点以及可能发生的行为范围? 进程代数的方法来描述,郑州大学软件学院 赵哲,31,Wright,符号的含义 对号表示成功 方框表示确定性选择 箭头表示事件变迁 。 优先级问题等 不做重点,郑州大学软件学院 赵哲,32,C2,C2是一种常见(有图形化用户界面)的软件体系结构风格 C2SADL(Software Architecture Description Language)是用于描述C2风格的体系结构的ADL。 常常用C2这一简称来指代C2风格和C2 SADL的结合 C2语言可以用Argo设计环境编写,郑州大学软件学院 赵哲,33,C2描述语
12、法,component is (构件名) interface top_domain is(面向top的接口) bottom_domain is(面向bottom的接口) out /请求、输出方法体 in /内部、输入方法体 behavior context component_context end ,郑州大学软件学院 赵哲,34,C2风格,C2底层向上层索取数据,递交请求 C2上层为下层提供数据、反馈结果,不能递交请求 2个构件: comUI ,comUser 1个连接件: comInput,郑州大学软件学院 赵哲,35,C2风格实例-用户验证,comUser 验证,comUI 输入 显示结
13、果,comInput,郑州大学软件学院 赵哲,36,C2描述,comUI向comUser发出验证请求userRequest(user,pw),获取验证结果getVerity()后,显示信息.,郑州大学软件学院 赵哲,37,C2描述,根据以上,comUI的out事件和in事件分别为: Out: userRequest(user,pw) In: getVerity(),郑州大学软件学院 赵哲,38,comUI描述,component comUI is interface top_domain is out userRequest(user,pw) in getVerity() behavior/此
14、处省略 end comUI,郑州大学软件学院 赵哲,39,comUser,收到comUI的信息userRequest(user,pw),进行判断,之后将结果result()发回给UI,郑州大学软件学院 赵哲,40,comUser描述,component comUser is interface bottom_domain is out result() in userRequest(user,pw) behavior/此处省略 end comUser,郑州大学软件学院 赵哲,41,C2对连接件的描述,语法: connector conections top_ports top_componen
15、t1; top_component2 bottom_ports bottom_component,郑州大学软件学院 赵哲,42,comInput连接件的描述,connector comInput conections top_ports comUser bottom_ports comUI,郑州大学软件学院 赵哲,43,C2对体系结构的描述,语法: system 系统名_1 is architecture 系统名 with instance (实例) instance end 系统名_1,郑州大学软件学院 赵哲,44,C2对体系结构的描述,比如有2个用户信息的验证,分别是user1和user2
16、,两个验证结果,分别是R1和R2 system 用户验证_1 is architecture 用户验证 with comUI instance user1,user2; comUser instance R1,R2; end 用户验证_1,郑州大学软件学院 赵哲,45,C2对体系结构的描述,P117,郑州大学软件学院 赵哲,46,看C2描述,画C2风格图,component Daddy is interface bottom_domain is end Daddy component Mom is interface bottom_domain is end Mom,component Son
17、 is interface top_domain is end Son,郑州大学软件学院 赵哲,47,看C2描述,画C2风格图,connector B conections top_ports A;C bottom_ports Son,connector A conections top_ports Daddy bottom_ports B connector C conections top_ports Mom bottom_ports B,郑州大学软件学院 赵哲,48,答案,Daddy,Mom,Son,A,C,B,郑州大学软件学院 赵哲,49,复习,P111 表格4-5 P114 表格4-
18、9 P116 表格4-12后几段 P117 表格4-13,郑州大学软件学院 赵哲,50,本节内容,郑州大学软件学院 赵哲,51,ACME描述,可以使用AcmeStudio工具来实现ACME描述 ACME从4个不同的方面对软件体系结构进行描述,分别是:结构、属性、设计约束和风格,郑州大学软件学院 赵哲,52,系统举例-Shopping,家,家乐福,send,receive,郑州大学软件学院 赵哲,53,系统举例- Shopping,上图中,黄色方框为构件,分别是家和家乐福,分别有自己的端口为send和receive 中间件为bus,有两个角色,分别是sender和receiver。,郑州大学软件
19、学院 赵哲,54,ACME对结构的描述,System = Component 名 = Port 端口名 Connector 名= Roles角色1,角色2 Attachments: 构件.端口 to 连接件角色 ,郑州大学软件学院 赵哲,55,ACME对结构的描述,System Shopping = Component 家 = Port send Component 家乐福 = Port receive Connector Bus= Rolessender,receiver Attachments: 家.send to Bus.sender; 家乐福.receive to Bus.receiv
20、er ,郑州大学软件学院 赵哲,56,ACME对结构的描述,P120 表格4-17,郑州大学软件学院 赵哲,57,ACME对属性的描述-系统,家的属性:郑州、自己盖2层楼以上 家乐福的属性:容纳最多10个人,允许多个收银员并行 Bus的属性:最多有3个角色,不开空调,郑州大学软件学院 赵哲,58,ACME对属性的描述-语法,System = Component 名 = Port 端口名 Properties属性名:类型 = 值; Connector 名= Roles 角色1; Roles 角色2 Properties属性名:类型 = 值; Attachments: 构件.端口 to 连接件角色
21、 ,郑州大学软件学院 赵哲,59,ACME对属性的描述,System Shopping = Component 家 = Port send Properties city: string = ”郑州”; floorsNum:interger =2 自己补充 ,郑州大学软件学院 赵哲,60,ACME例子,Keyboard,Screen,颜色=黑色 键盘num=108,屏幕size=19,属性,属性,I/O,input端口,output端口,并发num=3,属性,角色:getter shower,郑州大学软件学院 赵哲,61,软件体系结构与UML,UML( Unified Modeling Lan
22、guage)统一建模语言,可视化建模语言 UML百搭 支持面向对象开发过程而设计的,郑州大学软件学院 赵哲,62,UML历史,郑州大学软件学院 赵哲,63,UML的主要内容,用例图 类图 对象图 顺序图 通信图 状态图 活动图 构件图 部署图,郑州大学软件学院 赵哲,64,UML-用例图,Use-case Diagram 是从用户的观点对系统进行描述 常用于需求分析阶段,用来描述人们希望系统如何运行 站在外部看系统,不描述系统内部的具体操作方式,郑州大学软件学院 赵哲,65,用例图的表达, ,关系,郑州大学软件学院 赵哲,66,用例图的表达,小人儿:角色、参与者、另一个系统 椭圆:用例(对系统
23、的某个功能的描述) 例子:你洗衣服,你,洗衣服,郑州大学软件学院 赵哲,67,用例图中的各类箭头,泛化,包含,扩展,郑州大学软件学院 赵哲,68,用例图-泛化,郑州大学软件学院 赵哲,69,泛化,一个用例可以被特别列举为一个或多个子用例,这被称作用例泛化。 当父用例能够被使用时,任何子用例也可以被使用。 子用例从父用例处继承行为和属性,还可以添加、覆盖或改变继承的行为。 。,郑州大学软件学院 赵哲,70,用例关系-包含,郑州大学软件学院 赵哲,71,用例关系-包含,郑州大学软件学院 赵哲,72,用例关系-包含,包含关系把几个用例的公共步骤分离成一个单独的被包含用例。,郑州大学软件学院 赵哲,7
24、3,包含/使用,被包含用例称作提供者用例,包含用例称作客户用例,提供者用例提供功能给客户使用。,郑州大学软件学院 赵哲,74,用例关系-扩展,郑州大学软件学院 赵哲,75,用例关系-扩展,扩展关系是把新的行为插入到已有用例中的方法。一个用例也可以被定义为基础用例的增量扩展,这称作扩展关系;,郑州大学软件学院 赵哲,76,用例关系总结,泛化:父亲 儿子 包含(使用):多个用例 公因式 扩展:用例 插队者,郑州大学软件学院 赵哲,77,用例图实例,被女生欺负,打卡,看电影,郑州大学软件学院 赵哲,78,UML-类图,Class Diagram 用来描述类的内部结构 用来描述系统中类和类的关系 关联 依赖 聚合 ,郑州大学软件学院 赵哲,79,类图-描述类的内部结构,3个部分组成 类名、类的属性、方法或操作 描述:女朋友,郑州大学软件学院 赵哲,80,类图-描述类的内部结构,girlFriend,发脾气() 揍你() 保护你(),girlFriend,相貌 性格 ,类名,属性,操作,郑州大学软件学院 赵哲,81,类图-描述类和类的关系,关联 依赖 聚合 泛化 实现,郑州
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医学伦理与法律医患纠纷案例分析答案及解析
- 钢结构厂房施工难点与解决方案
- 企业品牌推广方案设计模板
- 冷库建设劳务合同范本及管理
- 中小学普法教育工作总结报告
- 六年级英语期末测试卷详解与复习策略
- 技术支持服务满意度调查
- 2025年体育医学运动损伤诊疗方案评估答案及解析
- 一元一次方程教学课件与练习题
- 综合性调查问卷表格设计技巧
- 慢性粒细胞白血病汇报课件
- 智慧民航数据治理典型实践案例2023
- 2025年重点信访人员稳控实施方案重点信访人稳控
- 六年级上册 道德与法治 全册公开课一等奖创新教案
- (完整)蜘蛛人安全技术交底
- 建筑工程三级安全教育内容
- 2025年新高考数学命题趋势及二轮复习备考策略(深度课件)
- 2025年职工职业技能竞赛(泵站运行工赛项)参考试指导题库(含答案)
- 创建安全质量标准化示范工地实施方案
- 一例使用胰岛素泵治疗2型糖尿病患者的护理
- 铁路动车组运用维修规程(运规)
评论
0/150
提交评论