SA描述语言和UML_第1页
SA描述语言和UML_第2页
SA描述语言和UML_第3页
SA描述语言和UML_第4页
SA描述语言和UML_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SA描述语言和UML 陕西师范大学 计算机科学学院 本章主要内容 n常见的体系结构描述语言ADL n用UML来描述软件体系构架 ADL简表 nUniCon(Universal Connector) l由CMU的SEI设计开发 l目前发展到UniCon-2 nDarwin (Magee,1995) l着眼于分布式系统 nC2 (Taylor,1996) lUCI(University of California Irvine )设计的,基于构 件和消息传递的体系构架描述语言,主要应用于带图形用 户接口的系统 nWright(Allen,1997) l精确描述系统结构与抽象行为、描述体系结构风格、

2、完整 性的验证 ADL简表 nAcme(Garlan,1997) lCMU的Acme项目的产物,是一种交互式ADL nxADL(Dashofy, 2005) lUCI设计的一种基于XML的ADL,最新xADL2.0 n-ADL (Oquendo,2004) l用于解决动态与移动体系构架说明的一种用于解决动态与移动体系构架说明的一种ADLADL nKDL l基于本体论的电子商务知识表示语言基于本体论的电子商务知识表示语言 IEEE 1471的定义 nAn architecture description lis a collection of products to document an ar

3、chitecture. nIEEE 1471 is intended to encompass all the products or artifacts of system development that capture architectural information nThe IEEE 1471 can be used effectively on projects of any size. nThe IEEE 1471 specifies a minimum amount of information that an architectural description must c

4、ontain in order to conform to the standard. 根据IEEE建议,创建一个体系架构,需要采用如下 一些步骤 1、确定(文档)总体结构的说明,包括版本、概览信息等. 2、确定涉众,以及这些涉众所承担的角色、他们关心系统架构 的哪些内容。 3、选择需要的各种视角ViewPoint。 4、对这些视角进行说明。 5、具体建立不同的(体系结构)视图.(这步最关键) 6、记录各种视图已知的不一致性(竞争资源?)。 7、确定该体系构架的基本原理rationale. 牢记:体系架构的建立是一个连续的、迭代的牢记:体系架构的建立是一个连续的、迭代的 过程,我们可能需要反复

5、地重复上述基本步骤过程,我们可能需要反复地重复上述基本步骤 IEEE 1471 A Brief History of the UML (0) 面向对象技术 面向对象语言面向对象语言 面向对象技术的发展历史 A Brief History of the UML (1) n第一个面向对象语言 lSimula-67, Dahl and Nygaard , 1967 l没有广泛应用,但对后来者有很大鼓舞 n早期广泛应用的面向对象语言 lSmalltalk, 1980, n紧接着出现了 lObjective C, C+,Effiel n分析和设计工具,从1989年的10多个,发展到1994年 超过50多

6、,但很难完全满足需求 A Brief History of the UML (2) n出现了三个突出的成果 lBoochs method, -特别适合项目的设计具体构建 lJacobsons OOSE (Object-Oriented Software Engineering), -用例支持非常好, 特别适合需求分析高层设计 lRumbaughs OMT (Object Modeling Technique). -特别适合数据密集的信息系统 A Brief History of the UML (3) n各种方法间展开了竞争,互相取长补短 nGrady Booch, James Rumbaug

7、h, Ivar Jacobson 等人开始合作,希望建立一种统一通用高效的建模语言 l使用面向对象技术,对系统建模(概念和实施) l对人和机器来说,都有用的语言 l n1995年发布了UML0.8,获得良好反馈 A Brief History of the UML (4) Booch methodOMT Unified Method 0.8OOPSLA 95 OOSEOther methods UML 0.9 Web - June 96 public feedback Final submission to OMG, Sep 97 First submission to OMG, Jan 97

8、 UML 1.1 OMG Acceptance, Nov 1997 UML 1.3 UML 1.0 UML partners UML2.0, 2003 Unified Modeling Language nUML is a language for lVisualizing可视化: 交流,一幅图胜过千言语 lSpecifying规格说明: 准确,无歧义,完备 lConstructing构造:正向和逆向 lDocumenting编档:从需求分析直至测试发布 the artifacts of a software-intensive system UML is a language nUML提供了

9、词汇和规则, 我们可以用它来达到交流的 目的 nUML是一个标准化了的软件蓝图描述语言 n通过UML,我们可以从不同的视角来描述一个软件系统 UML包括三个基本块 nThings事物 l是一个模型的基本构成要素(国家-公民) nRelationships l将各种各样Things有机联系在一起(上下级) nDiagrams Things事物 n共分四类 lStructural things 结构性事物 lBehavioral things 行为性事物 lGrouping things 群组性事物 lAnnotational things 注记性事物 结构性事物UML的名词 n共包含以下7种 l

10、Classes 类 lInterfaces 接口 lCollaborations 协作 lUse cases 用例 lActive classes 主动类 lComponents 构件/组件 lNodes 节点 类:描述一个集合内对象所共有的属性、操作、关系、 语义 类名称类名称 属性属性 操作操作 修饰修饰 +publlic -private #protected package 接口:是一组操作,用来描述类或构件提供的服务 n接口描述元素的外部可见行为 接口接口 Window IWindow 实现接口的类实现接口的类 协作:是一个交互,这个交互包含一系列角色和元素,它们合作对外 提供某种行

11、为,这个行为的功能大于角色及元素功能的简单加和 由一个虚线椭圆边界来表示其由一个虚线椭圆边界来表示其 内部元素的协作关系内部元素的协作关系 用例:描述对于系统参与者Actor来说,可以观测到的结果;这个 结果是系统经过一系列的动作来完成的 borrow books reader return books Actor Use case 主动类:是一个类,这个类包含一个或多个进程/线程,可 以主动进行某些控制 n现实世界非常繁忙 l进程: 一个重量级的流程,可以和其他进程并发 l线程: 一个轻量级的流程,可以和其他线程并发,这些线程都位 于一个进程内. l过多的并发流程 l过少的并发流程 主动类是

12、一种特殊的类 n黑板的控制器 黑板对象间的通信 主动类对象主动类对象 组件:是一个系统的模块,这个模块把自己的内部行为隐藏 在对外接口之后 n组件可以由一些更小的子组件构成 n电脑:主板、显卡等 component 节点:是系统运行时刻存在的一个物理实体。 一个节点可包含多个组件一个节点可包含多个组件 组件可以从一个节点迁移到另一个节点组件可以从一个节点迁移到另一个节点 行为性事物UML的动词 n在某时间、空间内的发生的动作 n有三类主要的行为性事物 lInteraction -一系列的信息交互。 lState machine -一个对象或一个交互在其生命期内所处状态,及其对外部事件 的反应

13、lActivity -一个计算过程所进行的一系列步骤action 由具由具 体的体的 上下上下 文来文来 区分区分 群组性事物UML的组织 n主要的群组事物: 包 n各种结构性、行为性事务都可放入一个包内。 n一个包构成一个命名空间 n包仅是一个概念,存在于开发阶段;而组件于运行时 真实存在 n包的几种变形:frameworks, models, and subsystems Name and/or Contents 注记性事物UML的说明性部分 dog-eared corner Notes Note依附于某个或多个依附于某个或多个UML元素,元素, 对它们进行解释和说明对它们进行解释和说明

14、事物小结 结构事物结构事物行为事物行为事物群组事物群组事物 注记事注记事 物物 1、class 2、Interface 3、Collaboration 4、use case 5、active class 6、component 7、node 1、interaction 2、state machine packagenote Relationships关系 nUML中有四种关系 lDependency 依赖 lAssociation 关联 lGeneralization 泛化 lRealization 实现 常用常用 依赖关系某被依赖UML元素的改变会导致依赖者 的改变 n某事物使用另一事物的服

15、务或信息 nPackage4的改变导致package3必须作出适应性的变 化 Package3Package4 关联关系表明UML元素间的结构关系 n例如某类的操作可以做为另外一个类的属性 employeeemployer Node1node2 List Node1Node2 List 组组 合合 聚聚 合合身体身体-器官:组合器官:组合 身体身体-衣服:聚合衣服:聚合 employs 关联的名称关联的名称 导航导航 角色名角色名role 数量数量 多重多重 Multiplicity 关联关系的导航 n给定一个User对象容易确定其password对象( 例如引用) 给定给定User,想确定其

16、,想确定其password;给定;给定password,通常不,通常不 需要知道其需要知道其User,password经常会改变,不应专属某经常会改变,不应专属某User。 UserGroup和和User则互相应该知道对方存在则互相应该知道对方存在 关联类association class 泛化关系表明子元素建立在父元素基础之上 animal elephant fish shark dolphin 子元素子元素 共享父共享父 元素的元素的 结构和结构和 行为行为 特殊特殊 一般一般 实现关系表明某元素要实现另一个元素所规定的 功能 IWindow Window relationships例 r

17、elationships例 Diagrams图 n是对一系列元素的图形化表示 n从不同视角,可视化地描述一个系统 n图形化表示省略了其所代表元素的具体细节 nUML包含13种图: UML的13种图 nUML2.0的13种图 lClass diagram 类图 lObject diagram 对象图 lComponent diagram 构件图(组件图) lComposite structure diagram 组合结构图 lUse case diagram 用例图 lSequence diagram 顺序图(序列图) lCommunication diagram 交流图(collaborati

18、on diagram协作) lState diagram 状态图 lActivity diagram 活动图 lDeployment diagram 部署图 lPackage diagram 包图 lTiming diagram 时序图 lInteraction overview diagram 交互概览图 图的层次结构 n用例图 n类图 n行为图 l状态图 l活动图 l交互图 -顺序图 -交流图 n实现图 l组件图 l部署图 类图 n类图表示一系列的类、接 口、协作、它们之间的关 系 n类图是属于静态图 n组件图是类图的一种变形 对象图现实一系列对象,及对象之间的关系 实例化实例化 的类图的

19、类图 具体某具体某 时刻的时刻的 系统对系统对 象、以象、以 及对象及对象 间关系间关系 构件图显示封装类、及接口 实际中,组件图不太关心其内部封装的到底是实际中,组件图不太关心其内部封装的到底是 什么,可以是类,也可以是其它构件、子系统什么,可以是类,也可以是其它构件、子系统 用例图显示一系列的用例、参与者、以及它们之间的关系 n描 述 系 统 的 功 能 交互图显示对象或角色之间的交互,包括交换信息 n交互图有两类:顺序图、交流图 l顺序图:描绘对象间信息交互顺序 l交流图/协作图:显示多个对象在消息交互时的组织结构 l顺序图和交流图是等价的,可以通过算法进行转换。 顺序图 c : cli

20、ent : transaction : ODBDProxy 1: 2: 3: 4: 5: 6: c : client : ODBDProxy : transaction 1: 2: 3: 4: 5: 6: 协作图协作图 (合作图合作图) 注:应该是注:应该是 ODBC Proxy 状态图显示状态机,包括状态、变迁、事件、活动 活动图 描述活动、及 约束关系 属于动态图属于动态图 适于描述系适于描述系 统数据流统数据流 描述类的描述类的 操作所完操作所完 成的动作成的动作 或用例对或用例对 象的内部象的内部 工作过程工作过程 部署图用于描述系统在运行时的节点配置,也 包括节点上运行的构件的配置

21、UML的规则:不能把UML元素简单地堆砌在一起, UML有自己的一些规则 n语义语法规则(良性原则) lName: 给所用的事物、关系、图命名 lScope: 名称都有一个有效的作用域(命名空间) lVisibility: 名称对其它部分的可见、可用性 lIntegrity: 维持事物间关系的正确和一致性 lExecution: 所选用的名称或事物,对于系统运行或模拟运 行,意味着什么? UML规则:非良性原则 n软件系统在不断地演化,涉众需要从不同的角度、在 不同的时间来审视系统。因此,除了遵守上面的规则 定义一个有良好规则的系统外,UML也允许下面一些 做法: lElided(简略):一些

22、特定的元素可以隐藏起来,使视图简化 lIncomplete:某些UML元素可以空缺 lInconsistent:系统的完整一致性可以打折扣 UML的4种公共机制 nSpecifications 规格说明 nAdornments 修饰 nCommon Division 通用划分 nExtensibility mechanisms 扩展机制 规格说明 nUML不仅是一种图形语言,每一个图形模块之后都包 含一个规格说明,以提供关于模块语法语义的文字性 描述 l用图形符号来可视化表示系统 l用规格说明来描述细节 -例:类的图标里面是名称、属性等的文字符号说明 l通过这种机制,可以增量式地构建系统模型

23、修饰 n一些图形化的标记,用来表达某种信息 每个每个UML元元 素都有一个素都有一个 基本图符,基本图符, 在此基础上在此基础上 可以增加一可以增加一 些修饰,对些修饰,对 其加以说明其加以说明 通用划分1 n一些通常被接受或应用的分类原则、方法 n类对象 l面向对象建模时,类是一个抽象、对象是类的一个实例 通用划分2 n接口interface实现implementation n接口是一个“承诺”,“实现”具体实现这个承诺 通用划分3 n类别type角色role l类别表示一个实体的种类,角色表示实体在其上下文中的含 义; -例如,孙悟空的类别是Monkey,角色是King UML扩展机制 n

24、UML是一种开放的建模语言,可以使用一些可控 的方式对其语义进行扩展 nUML扩展机制包含三个要素 lStereotypes 构造型 -构造型扩充UML词汇表,以创建某些特定的元素或模块,满足 实际需求 lTagged values 标记值 -标记值扩充构造型的属性,允许我们在其规格说明中创建新的 信息知识 lConstraints 约束 -约束扩充了UML模块的语义属性,允许添加新的规则,或修改 已有规则 UML扩展机制 本课程的一些用法:UML的接口 A B C D A B C D 完全等价完全等价 本课程的一些用法: UML的模块 Class Package Class 类类 软件包软件

25、包 子系统子系统 本课程的一些用法: UML的关系 B A B A B A 是一部分是一部分依赖于依赖于是一个是一个 组合组合依赖依赖泛化泛化 本课程的一些用法 UML的模块嵌套、分解 BC A A C B 这里表示这里表示A消失,则消失,则BC消失。消失。 本课程的一些用法 UML的层 Transport Network 依赖于依赖于 常用的UML图 n描述用户需求,系统功能 l用例图 n系统静态结构 l类图 l对象图 l包图 l构件图 l部署图 n系统动态行为 l顺序图 l合作图 l活动图 l状态图 UML 的核的核 心就心就 是图是图 n需求需求 n用例图用例图 n系统架构设计系统架构设

26、计 n类图、包图、构件图、部署图等类图、包图、构件图、部署图等 来描述来描述 n细节分析细节分析 n类图描述静态结构类图描述静态结构 n顺序图、合作图、状态图、活动顺序图、合作图、状态图、活动 图,描述动态行为图,描述动态行为 n实现实现 n集成与交付集成与交付 n构件图、包图、部署图构件图、包图、部署图 n测试测试 n单元测试用用例图及规格说明单元测试用用例图及规格说明 n集成测试:类、包、构件、合作集成测试:类、包、构件、合作 n系统测试:用例图系统测试:用例图 例1:Hello World n一段Java代码 Applet从远方从远方 服务器上下载服务器上下载 到客户端运行到客户端运行 使接下来的代码可以使用使接下来的代码可以使用graphics类类 包:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论