tag 标签: uml

相关博文
  • 热度 29
    2013-10-9 09:18
    1762 次阅读|
    0 个评论
    本文将关注模型化技术在远程通信领域的应用,以展示相对于其它的领域它是怎么的先进的。   一致性不是可选的 一个远程通信系统是一套能够相互通信的不均匀的设备。要做到这一点,这些设备必须遵从同样的协议。从技术上讲,这包含2个互补的方面: 一个静态界面——从一个设备到另一个的交换的报文格式。 一个动态界面——定义了交换的报文的正确的序列。 对一个远程通信系统协议,这两方面的一致性都很重要。此外,协议定义需要尽可能清楚不能有岐义。   标准化机构 标准化机构定义的协议公布了这两个方面的介绍。从历史上看,世界的每个地区都有自己的标准化机构,如欧洲的ETSI,日本的ARIB,美国的ATIS。当时,因为标准是不同的,这就意味着在一个区域的设备如手机,无法在另一个领域正常工作。多亏了全球化,不同的标准化组织现已携手发布全球标准,如3G或即将到来的LTE(Long Term Evolution),它是4G技术的可选方案之一。 为了产生清晰且易于理解的标准,欧洲标准化机构ETSI已经公布了一组介绍,通过一组技术如SDL(Specification and Description Language规范和描述语言),ASN.1(Abstract Syntax Notation One抽象语法记法一),ECN(Encoding Control Notation编码控制符号),TTCN-3(Testing and Test Control Notation测试和测试控制表示法)来“制作出更好的标准”。这些介绍可见于ETSI网站: http://www.etsi.org/WebSite/Technologies/ProtocolSpecification.aspx   本文将论述这些技术如何帮助远程通信行业生成更好的标准。   动态界面 一种协议描述了同级的从一层到另一远程层的报文交换。这样的界面称为Protocol Data Unit即PDU。   这实际上是一个协议的逻辑视图,因为实际中一层与上一层或下一层交换信息。这种“垂直”的界面被称为ASP(Abstract Service Primitive)。因此PDU通过ASP发送到远程层,但不发送描述交换的PDU的协议定义。 动态描述的协议逻辑视图由一堆情景组成。 ETSI建议使用MSC(消息序列图)。我们看下一个简单的例子,一层请求连接并在MSC中描述。   在上面的情景中,报文在终端机与网络间进行交换。一条报文可能包含参数如 例子中ConConf报文带有conId 参数。 大多时候,一个远程通信系统是一个分布式系统,终端是脱离网络的实体设备。它很可能有一个不同的处理器架构并运行不同的操作系统。因此,必须用一种方法来创建一个信息流,使该信息流独立于处理器和操作系统。   静态界面 为了定义一个硬件独立的信息流,要一起使用抽象的数据表示法与ASN.1表示法。ASN.1指的是Abstract Syntax Notation One ,由ITU-T标准化。它描述的是可理解的数据类型,包括基本类型如布尔型或实数,复杂类型如结构或数组。ASN.1描述了类型,但没有说明如何在一个给定的语言下操纵它们。主要关注的是ASN.1定义了编码和解码规则,以便为某一类型的信息数据流独立于给定的硬件结构的实施。除了标准化的编码规则,如BER(Basic Encoding Rule基本编码规则)或PER(Packet Encoding Rule分组编码规则),它们也有一个符号来描述具体的编码规则,它就是ECN:Encoding Control Notation编码控制符号。最后一点,ASN.1数据类型可以直接导入到SDL作规范,到TTCN进行测试。 An ASN.1 example structure: PersonRecord ::= SEQUENCE { name IA5String, age INTEGER, member BOOLEAN }   An example value: examplePerson PersonRecord ::= { name “Smith”, age 35, member true }   XML encoding of the value: Smith 35 true       协议详细的行为 MSC描述的协议行为只是几种可能的情景。即使它描述可替代,可循环,或可选的情景,MCS也无法描述发生在一个协议的所有可能的情况。要做到这点,它关乎要描述的该协议的详细和可执行的模型。以这种方式,它可能可以模拟和验证它的行为,这样该模型被认为是一个参考模型。为了这个目的,ETSI推荐一个正式的建模语言,它称为SDL规范和描述语言。 SDL已在80年代首先用来描述远程通信协议,无需说明语言是否符合我们的要求设计。但随着不同技术的革新,语言也自此跟着演变,如面向对象的介绍,UML概要文件的定义。 从技术上讲,SDL有4个互补的观点,我们以下将会简要介绍。   ●体系结构 一个系统由块组成,这些块可以分解为子块。       体系统结构的页就是一个进程,主要是一个带有关联的隐含消息队列的有限状态机。 ●通信 不同块间交换的信息流在体系结构中有描述,用来定义块的接口。     ●行为 详细的行为被完全生动地描述。根据规格想要的精确度,它可能忽略了实施细节。     上面的例子展示了一个基本的有限状态机:初始化时ConReq消息发送出去,ConReqTimer开始启动。状态机转到Connecting状态并等待连接确认消息ConConf,或者计时器关闭。之后,连接请求10次。如果仍然不成功,进程停止。   ●数据 为了使规格完整无岐义,SDL嵌入抽象数据类型和语法来操纵这些数据。如前所述,最好导入ASN.1数据类型。   协议一致性 现在的问题是确保实现的相同协议符合ETSI公布的标准。对于近代的标准如SIP协议,IP V6,3GPP IMS等,ETSI的已公布基于TTCN-3语言的一致性测试套件。为了确保它符合需求,ETSI还保持了由ITU-T标准化的TTCN-3语言。 TTCN代表测试和测试控制符号,它是国际标准化组织发起的一致性测试方法和框架文件(9646-3)的一部分。 TTCN-2专用于通信系统,TTCN-3适用于测试任何一种系统。 TTCN-3可视为一个经典文本的编程语言,但几个方面使用它成为了一种十分强大的测试语言。 ●抽象层 SDL, TTCN-3包含报文和计时器的概念,它们是一个远程通信系统的基本服务。这样就很容易发送或接收一条报文,启动或取消一个计时器。 ●模板 当测试一个远程通信系统时,大部分的工作是核实交换的报文是否包含正确的信息。TTCN-3定义了模板的概念,轻松地验证一组复杂参数的正确性。TTCN-3还可选择参数(参数可能不存在),可以忽略一些参数(参数是存在的,但与它的值无关)。 ●可选方案 测试描述可选方案并根据不同的可选方案设置结论。TTCN-3 嵌入可选方案的概念,无论它们是基于异步信息如报文的交换还是同步信息如修改的变量值。 cEnv.send(ConReq); ConReqTimer.start; alt { ConReqTimer.timeout{ setverdict(fail); } } 上面的例子显示了TTCN-3的一个基本可选方案:一个连接请求ConReq 通过cEnv 端口发送,计时器 ConReqTimer 开发启动。在这个可选方案中,或是接收到 ConConf 响应或是计时器ConReqTimer 关闭。   模型测试 由于SDL和TTCN-3有同样的抽象层,两种语言都可在实施前测试一个规范模型。由于两种语言都是正式的,意味着完整且没有岐义的,可以从SDL规范中生成协议实施的代码,从TTCN-3测试例中生成测试代码。一个早期的验证将最终节省大量的时间和精力。       最后一点,ETSI发布了TTCN-3的一致性测试套件,这样远程通信制造商可以确保其实施符合标准。   结论 由于远程通信系统本质要求符合一个共同的标准,该标准包括静态和动态接口,远程标准化机构以及远程通信设备制造商采用多年的先进技术如 MSC, ASN.1, SDL和 TTCN 。事实上,这些技术涵盖整个开发周期,从需求,规划到设计,测试。这就是为什么在开发通信系统时必须考虑清楚的原因。
  • 热度 20
    2013-6-20 10:09
    1034 次阅读|
    0 个评论
    UML 与全程建模培训                                                                 ◆ 培训目的 : 了解全程建模的操作过程;学习建模方法;掌握OO的基本原则和思想;了解模式的分级和应用;培训结束后可以在项目中采用全程建模方法进行开发工作。 课程内容 1、基于UML的全程建模方法论和过程论的结合讲授。 2、全过程中每个学员都将实地操作一个真实项目(项目在课堂上由学员自己提出)——完全实例化教学 培训案例来自于参加培训的学员提供的以前做过的或者正在进行的或者是将来要进行的真实项目。 对学员进行引导分析,让学员们实际动手,解决学员遇到的问题。 结合培训案例会从需求开始,一直做到代码导出为止,也就是说,培训结束的时候,所有的人都能看到自己导出的代码。 通过案例的全过程操作,每一个学员都可以看到自己在应用全程建模方法的各个阶段可以如何操作,遇到问题可以如何考虑,如何分析解决。(注意这里都是可以,而不是应该,对于一个完整的过程论来说,需要应对的是千变万化的用户需求和过程需求,因此并不是所有的步骤都是必须的,而任何操作都应该根据实际情况判断来选择可行的操作方式,所以这里是可以,而不是应该) 中国电子标准协会 http://www.ways.org.cn 3、学员将掌握全程建模的每一个环节的操作过程,同时会结合教学案例和实际项目案例来进行分析和举例。 4、培训中会增加软件开发心理学、软件度量和项目管理部分的内容。   课程目的 了解全程建模的操作过程;学习建模方法;掌握OO的基本原则和思想;了解模式的分级和应用;培训结束后可以在项目中采用全程建模方法进行开发工作。 学员基础 参加培训人员建议最少具有两年以上工作经验,半年以上Uml实际操作使用经验,最好有Uml工程应用经验。 课程安排 第一天 1、Uml基础知识 2、全程建模基本概念和内容背景介绍; 3、需求工程(讲); 3、业务调研(讲); 1、业务建模(讲); 2、用例的分包(讲); 3、建模技术讨论(讨); 4、案例讲述(需求调研部分) 第二天 1、用例模型的讨论(讨); 2、用例阐述(讲); 3、交互建模(讲); 1、界面设计(讲); 2、案例讨论(需求部分); 3、OO原则和思想(讲); 第三天 1、分析模型的开发(讲); 2、案例讨论(分析部分); 3、架构模式和设计模式; 1、设计模型的开发(讲); 2、设计类的开发(讲); 3、案例讨论(设计部分); 第四天 1、代码导出(讲); 2、代码模型的一致性问题(讲); 3、案例讨论(代码导出) 1、关于全程建模方法如何与开发过程想配合的问题; 2、规范化过程中的几个关键机制:配置管理、变更控制、需求管理、风险管理(讲); 3、一些相关问题的讨论(讨)。      
  • 热度 18
    2013-6-20 10:08
    1038 次阅读|
    0 个评论
    UML 与面向对象系统分析与设计培训                   课程简介    本课程主要向系统开发人员讲授如何使用UML(统一建模语言)建立系统模型,描述系统架构。包括了静态建模、动态建模、物理架构以及UML的扩展。学员 可以有效地通过用例表述的系统需求来开发稳定的分析模型、设计模型、实现模型、测试模型、部署模型。学员将了解如何把“统一建模语言 (UML)”应用到基本的面向对象分析和设计概念中,其中包括构架、对象、类、构件、构造型、关系和各个类型的图。 在本课程中,学员可以通过学习使用年度最佳UML工具Plato/Kant可视化建模工具来提高系统分析和设计能力。从理解团队开发基础到创建图并运行报表,再到观看正向和逆向工程演示,学员将练习Plato/Kant的所有基本内容,从而理解 Plato/Kant的功能和可视化建模的价值。 培训对象 该课程适用于希望在实际项目应用中系统性的应用UML的技术人员,以及那些希望获得在用例驱动、以构架为中心和迭代化开发过程中,应用该技术的高级项目开发人员。包括需求调研人员、构架设计师、分析人员、设计人员和软件开发人员、产品市场技术人员。 本培训课程适宜于想从事软件系统分析与设计的系统程序员,最好应精通一种OOP的语言(如:C++、C#或者Java等)和开发工具(PB、Delphi、VC++等)。   中国电子标准协会 http://www.ways.org.cn    培训时间:3天 必备条件   参加此课程之前,学员应当具有面向对象语言程序设计经验。为确保授课效果,学员应当具备基本的软件工程背景知识和能够阅读简单的计算机英文的能力。 培训目标 完成本课程之后,学员将具备以下能力: 能独立地进行系统分析与设计,并利用UML设计自己的业务模块。 如何把“统一建模语言 (UML)”应用到基本的面向对象分析和设计乃至整个软件过程中,其中包括使用UML建立业务模型、需求模型、分析模型、设计模型、实现模型、测试模型、部署模型。 培训内容 一.UML语言规范: UML语言基础:基本概念,模型元素,体系结构 用UML对系统结构建模技术:类,关系,高级关系,图,类图,对象图,公共机制,接口,包,实例等基本及高级技术 用UML对系统行为建模技术:用例图,序列图,协作图,活动图,状态机,状态图,事件,信号,进程,线程等基本及高级技术 对系统体系结构建模的技术:组件,协作,实施,模式,框架,组件图,实施图,系统体系结构等基本技术及高级技术 二.UML面向对象分析与设计 概述 面向对象基本概念 运用UML、设计模式和面向对象的分析与设计技术 开发过程导论 业务需求建模阶段: 业务角色的查找及建立 业务用例查找与分析 用例模型的建立 业务规则及其建模 用活动图表示用例结构 活动图泳道的划分及对象流的标识 业务实体的分析及提取 业务对象模型的建立 系统需求建模阶段: 需求的捕获与理解 系统功能的理解 系统角色的建立 系统用例的建立 用例对过程的描述 基本用例及其分类 用例的扩展、包含及泛化关系 用例规约及文档标准 SRS现代软件需求包的理解   分析阶段及分析模型的建立: 从用例建立概念模型 分析及分析机制 用例分析 用例的关联 概念的识别及提取 概念模型的细化 概念模型的扩展及润饰 系统行为的分析-系统顺序图及契约 用状态图对对象建模 分析类及实体、控制、边界类的理解及分析 建立分析类图 包的组织 系统分层及架构分析 设计阶段及设计模型的建立: 从分析模型到设计阶段的映射 描述真实用例 设计用例 对设计类的理解 设计阶段的协作图 对类的职责分配 类设计的原理及原则 设计模型中的关联、泛化及聚合关系 设计模型中的系统行为的表达 接口的设计 包及子系统的设计 系统构架设计的要点 设计类图的建立 软件架构文档及模板 三. Plato/Kant 工具及应用: 针对问题需求描述建立Use Cases视图,序列图及协作图 建立包和类图,建立关联和聚合关系以及建立关系,建立类的属性和操作 建立状态转换图及活动 建立构件图和布署图模型 Plato/Kant与开发工具代码的正向及逆向工程 四.应用案例分析:穿插到各个阶段讲解 可根据客户提供实际案例进行讲解  
  • 热度 20
    2013-6-20 10:01
    1065 次阅读|
    0 个评论
    Rhapsody 和 UML 实时系统开发培训                                                                                                训练介绍 随着时代的发展,嵌入式实时系统的应用越来越丰富,复杂度越来越高,而且嵌入式实时系统往往用于涉及人类生命安全的领域,对质量的要求远比企业应用要高,对系统做全方位的建模,就有了必要性;而且,嵌入式实时系统往往个头较小,全方位的建模也就有了可能性。Rational Rhapsody工具强大的模型驱动开发能力,能大大提高软件的质量以及减少开发人员的工作量。 本训练就是教授给开发团队如何使用Rhapsody工具以及UML2.x相关的需求和设计技能来全程实作一个实时系统的过程。 本训练秉行UMLChina一贯的“聚焦最后一公里”原则,【训练过程中,专家当场和团队一起讨论和研究团队的当前项目,一起把所授知识当场应用到团队的当前项目,得到团队当前项目的模型】,目标明确,效果明显。 训练目标 通过大量练习和项目实践,使开发团队真正理解如何结合用例、类图、结构图、序列图、状态图等UML要素以及Rhapsody建模工具来完成需求和设计工作,能在项目开发中灵活应用。 中国电子标准协会 http://www.ways.org.cn 训练时间: 4天,每天7小时(9:00-12:00,13:30-17:30)。 训练方式 针对每个工作流(需求、分析、设计)循环以下步骤1-5 1. 老师将先作知识和建模要点讲解。 2. 老师演示如何根据要点实作UMLChina案例项目 3. 老师演示如何根据要点实作客户的一个当前项目。 4 学员根据要点实作一个自己当前正在做的项目。 5 老师检查学员实作结果,和大家讨论,指出其中错误和改进要点,修改出正确结果。 *自训练结束开始,提供一年的免费Email、MSN、QQ答疑。 训练大纲   1. 概论 --利润=需求-设计 --软件开发核心工作流 --UML的意义 --UML图形概览 --实时系统的模型驱动开发 -- IBM Rational Rhapsody介绍 2. 需求 --系统的愿景 --系统的涉众利益 --示范和分组实作:愿景和涉众利益 --用例图元素讲解 --识别系统执行者 --识别系统用例 --示范和分组实作:绘制系统用例图 --识别用例包含的各种需求 --编写用例规约 --示范和分组实作:编写用例规约 --通过用例关系整理用例规约 --用例的分包 --通过业务建模来推导需求 --业务建模对嵌入式系统的意义 --需求的跟踪、变更和管理 3. 分析设计(1) --分析和设计的区别 --关键抽象和若即若离的思考力 --识别类及其属性 --识别泛化关系 --识别关联 --特殊关联:聚合和组合 --思考关联的方向 --关联和泛化的转换 --示范和分组实作:绘制类图 --类图和代码的映射 --彩色建模架构型 --彩色建模在类建模上的应用 --结构图元素讲解 --示范:绘制结构图 --结构图和代码的映射 4. 分析设计(2) --序列图元素讲解 --消息的各种特征 --用例、类图、序列图的互动 --分配用例规约的责任 --专家原则和单一责任原则 --老板原则和聚合根 --可视原则 --彩色建模的责任协作模式 --示范和分组实作:绘制序列图 --比较序列图 --序列图之间的引用 --序列图和代码的映射 --调试序列图 --协作图(通信图)元素讲解 --示范:绘制协作图 5. 分析设计(3) --状态图、类图、序列图的映射 --状态和转换 --正交状态 --进入和退出动作 --内部转换 --历史状态 --行为复用和层次嵌套状态 --分层设计思路 --转换执行序列 --示范和分组实作:绘制状态图 --状态机的各种实现模式 --状态图和代码的映射 --调试状态图 --活动图元素讲解 --示范:绘制活动图 6. 分析设计(4) --对象执行框架 (OXF) --OXF、OSAL和RTOS之间的机制 -- OXF的组织方式 --实现活动类、反应类 --实现事件处理(OMEvent、OMTimeout、OMThread...) --实现状态机 --实现并发控制和资源保护 --实现内存管理 --定制Rhapsody模型的代码生成 --代码的双向工程 --复用遗留代码 --组件图元素讲解 --示范:绘制组件图 --部署图元素讲解 --示范:绘制部署图 --面板图元素讲解 --示范:绘制面板图 7. 改进指南 --根据团队情况改进 --小步前进 --正确的改进心态   以上时间分配会根据项目特点和训练进程调整。(  
相关资源