目录:

一、RoseRT理论知识

二、一个完整模型的建立

三、TD-SCDMA(UE侧)RRC层建模的学习

四、LTE的RRC层建模(1.自主完成‘2.也可以是L2)

五、参考文献

一、RoseRT理论知识

个model中包括4个部分:

1.Use Case  视图

在该部分包括:包,Actor,Use case、对象、消息和关系。

2.逻辑视图Logic

在该部分包括,包,View RTC Class(类)、状态和关系。

3、组件视图(Component View)

在该部分内包括包,组件和依附关系。

4、Deployment View 拓扑视图

节点和关系

详细学习:

1.Use Case View

它主要是用来描述一个系统(或者子系统,类和接口)做了什么,但是并不具体描述系统内部如何执行。该View中还含有Use case 图和相互作用图。

Use case图中包括包、actors(外部系统)、use case和关系;也就是说,描述了存在的外部系统,该系统应该做什么(use case),以及他们的关系。它可以描述全部的或者部分的系统的use case。

相互作用图,主要有两种:序列图和协同图,里面包括对象和消息。

相互作用图也被称为交互图,它可以代表系统中对象的结构。序列图是按时间顺序排列对象交互操作;协同图是围绕对象及其间的链接关系组陈对象的交互操作。

2.Logical View

它主要是描述整个model的建模流程,从分析,到整个设计,最后到具体实施。

主要包括类图和状态图。类图主要是包和类,以及他们之间的关系,主要是讲静态;状态图主要是状态、事件和转换关系,主要是指动态。

3.组件视图Component View

它是对系统具体的描述。组件包含激活和数据的类(active ,data),并且为build一个可执行模型提供组件。

直白得说,组件视图描述了在系统物理设计中组件中类和对象的分配情况。

4.拓扑视图 Deployment View

该部分主要显示了该系统是如何分布的,它定义了进程处理的分配情况,并且包含系统中节点的图标。简单说,就是描述了节点和连接。

基本的理论知识差不多也就这些,如下就是指导(是我自己学习的过程中,写的,主要是可能遇到的问题,大多数是我遇到的或者我想到的问题。

二、一个简单完整模型的创建

步骤:

1.新建一个model,选择RTC++

说明:Rose RT通常有七个框架(framework),Empty, RTC, RTC++, RTJava, StartupC, StartupCPP, StartupJ。

它们分别针对不同的编程语言。Empty可以用来创建use case,但不能用来开发实时系统。例子中选择C++代码(爱立信的RRC和L2都用Rose RT开发,语言选择C++)。

2.创建逻辑视图Logical View

1.创建一个容器,capsule。

很重要的一个步骤,在RoseRT中很重要。一个model至少创建一个顶层(top-level)的capsule。因为代码的执行operation需要被激发,不能自动激活,所以需要把代码放到capsule中,这样代码就可以被RoseRT中的main函数执行。main函数在你模型中创建了capsule,启动状态机。你自己可以描述capsule,并定义状态机。他们会自动被创建,然后服务库会执行它们(services library)。

2.把一个状态加入到所创建的容器中。

对于capsule classees,一个状态表会生成完整的代码实现。该状态图为容器提供了异步消息的处理能力。

在刚创建的名字为hello的capsule上,右击选择open state diagram,会弹出一个对话框,随后添加一个state。

状态图包含一个初始圆点,还有一个初始状态(就是刚才你命名的state)。一个初始状态是用来表示状态机开始的特殊点,你需要连接该点和开始状态。一个状态图中只能有一个初始状态,是所有transition的开始。从初始点输出的也只能有一个transition,就是到初始状态的。

可以有多个输入transition到初始状态。初始状态就像一个连接点,可以强制行为返回。

3.画出初始transition

首先,画出初始transition。利用state transition按钮,然后画出。

将特殊点连接到的状态就是初始状态,也就是它是第一个接受具体的event。

4.把一个端口加入到容器中(当使用的是C语言时,不用该步骤)

端口其实很像我们通常所说的计算机之间通信的端口,随着容器实例的创建而创建,随着实例的消失而消失。

默认的新端口是公共的,就是随便用,你可以创建保护性端口,该类端口可以阻止外部的容器的连接。

在End Port中选择添加新port,然后选择一个新protocol。最后切换到structure tab,该图被激活。

5.保存model

6.把代码添加到一个状态机中。

点击初始点和初始状态的连接线,然后在RoseRT右下角的code tab中,你想添加的代码。

3.创建组件视图 Component View。

组件视图描述了如何编译model的不同部分。组件视图的初始元素需要自己创建,该组件描述需要编辑的容器和类,如何编译哪些元素,并把包含文件和数据库整合到build中。

必须要为顶层容器创建一个组件,以便能够build并执行你的model。当可能会有很多有关联的组件或者组件的包,可以画组件图。

在component View中选择新建,然后出现新组件,双击新建组件,将逻辑视图中的capsule拖入,单击select,选择,并点击ok,就将其设定为顶层capsule。

单击C++ compilation,选择编译器。组成形式:<operating system>.<processor and compiler>

build组件

为了build一个可执行的model,要创建一个组件,它用来管理build配置参数,你需要build或者编译该组件。

步骤:首先将创建的component设定为active(选定set Active)

单击 build component按钮

4.创建拓扑视图

1.创建一个组件实例

2.run 组件实例 (我的之前的build就失败了,所以这个就不能run,可能之前我的配置有问题)

如果成功,会跳出runtime 视图以及控制台窗口。

观察产生的代码:在你存储你的model的文件夹中,打开在component(你自己创建的)的src文件中,有源代码。

三、

四、

五、参考文献

【1】Rose RT软件附带的tutorial,主要是QuickStart Tutorial部分。

【2】Rose RT培训培训ppt

【3】Ericsson TD-SCDMA Source Code

【4】3GPP协议TS25.331  TS26.331

【5】C++ Primer

RoseRT 建模学习的更多相关文章

  1. UML建模学习1:UML统一建模语言简单介绍

    一什么是UML? Unified Modeling Language(UML又称为统一建模语言或标准建模语言)是国际对象管理组织OMG制定的一个通 用的.可视化建模语言标准.能够用来描写叙述(spec ...

  2. 建筑建模学习笔记2——3DMax房屋框架建模

    以下这幅图是用3DMax做出的大体的框架 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I ...

  3. 数学建模学习笔记 | matlab基本命令及用法

    前言 数学建模对matlab水平的要求 了解matlab的基本用法,如常用命令.脚本结构.矩阵的基本操作.绘图等: 熟悉matlab的程序结构,能创建和引用函数: 熟悉常见模型的求解算法和套路: 自主 ...

  4. UML建模学习3:UML基本构造块之关系

    今天我们来看UML基本构造块的还有一个要素--关系. UML中有表示基本图示符号之间的关系,它们是:依赖(dependency).泛化(generalization,也有的称继承).实 现(reali ...

  5. 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂

    Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...

  6. 「3D建模」ZBrush如何雕刻头部

    加载项目开始 1. 如果未显示灯箱,请按逗号(,)或灯箱按钮. 2. 单击项目选项卡,然后双击DefaultSphere项目.它将被加载到ZBrush中. 3. 在工具>几何子选项板中,将SDi ...

  7. 为什么要学3D建模呢?你看中的肯定是这几点

    游戏行业的大环境 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的5年时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.虚拟社区.网络游戏.电子 ...

  8. Python数学建模-01.新手必读

    Python 完全可以满足数学建模的需要. Python 是数学建模的最佳选择之一,而且在其它工作中也无所不能. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数学 ...

  9. Python小白的数学建模课-04.整数规划

    整数规划与线性规划的差别只是变量的整数约束. 问题区别一点点,难度相差千万里. 选择简单通用的编程方案,让求解器去处理吧. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达 ...

随机推荐

  1. 体验极速Android SDK的更新与下载

    首先:国内明确一点,国内由于天朝限制了google,更新和下载Android相关资料都比较吃力,因此,本文正式宣告,此问题不再是问题-------别说话,吻我 先给点福利: 关于java(Androi ...

  2. 【转】PowerShell入门(三):如何快速地掌握PowerShell?

    转至:http://www.cnblogs.com/ceachy/archive/2013/02/01/HowToLearnPowerShell.html 如何快速地掌握PowerShell呢?总的来 ...

  3. Hadoop之hive的drop table恢复

    一.引言: 快下班的时候我开发同事问能不能将hive中drop掉的数据恢复过来,我记得是有开回收站的,当时我回答说可以恢复的. 二.恢复过程: 在之前我有对hadoop的回收站有过了解,就是将hdfs ...

  4. Java虚拟机学习(2):垃圾收集算法

    跟踪收集器 跟踪收集器采用的为集中式的管理方式,全局记录对象之间的引用状态,执行时从一些列GC  Roots的对象做为起点,从这些节点向下开始进行搜索所有的引用链,当一个对象到GC  Roots 没有 ...

  5. POJ 2876 Cantoring Along

    Description The Cantor set was discovered by Georg Cantor. It is one of the simpler fractals. It is ...

  6. java list倒序输出及复制list集合

    如原来有一个集合list,list里面是有数据的,现在如果把list中的集合倒序过来,加这代码 Collections.reverse(list);此代码中传入原来的list数据 有这代码后list在 ...

  7. [问题2014A05] 解答

    [问题2014A05]  解答 (1) 将矩阵 \(A\) 分解为两个矩阵的乘积: \[A=\begin{bmatrix} 1 & 1 & \cdots & 1 & 1 ...

  8. Hibernate不能自动建数据表解决办法

    首先自己要注意自己的MYSQL版本,然后设置对应的方言 兼容性模式 <property name="hibernate.dialect">org.hibernate.d ...

  9. Happy Number - LeetCode

    examination questions Write an algorithm to determine if a number is "happy". A happy numb ...

  10. springMVC简单示例

    1.新建web工程 2.引入springframework架包 3.配置文件 web.xml <?xml version="1.0" encoding="UTF-8 ...