Transformation in Model Driven Architecture 模型驱动的架构转换
摘要
本文重点介绍顶级模型驱动架构 (MDA) 建模的使用,以及如何在信息系统开发中完成向较低级别的自动转换。 这项工作的主要目的是设计一种在 MDA 中进行计算机独立模型 (CIM)-平台独立模型 (PIM) 转换的系统方法。 这些 CIM-PIM 转换方法专为代表 CIM 和 PIM 抽象级别的选定模型而设计。 我们展示的最终自动化 CIM 到 PIM 转换基于通过业务流程模型和表示法 (BPMN) 进行的业务流程建模。 BPMN 中的业务流程模型以可扩展标记语言流程定义语言 (XMLPDL/XPDL) 格式存储,用于自动转换为选定的统一建模语言 (UML) 设计模型,使用可扩展样式表语言转换 (XSLT) 中生成的转换算法 ) 语言。
关键字
模型驱动架构
计算机独立模型
平台无关模型
自动转换
业务流程模型和符号
统一建模语言
导论
不断创新和开发新的信息系统(information systems IS)旨在将信息系统的开发提升到更高的抽象层次。 因此,从实施的角度来看,信息系统的开发不仅是软件设计人员关注的问题,也是非 IT 专业人员关注的问题。 从信息系统实施的角度来 ...
django项目搭建
安装 Django
1pip install Django
新建项目
1django-admin startproject 项目名称
创建完成后的项目结构
12345678910111213141516.├── 项目名称│ ├── asgi.py│ ├── __init__.py│ ├── __pycache__│ │ ├── __init__.cpython-310.pyc│ │ ├── settings.cpython-310.pyc│ │ ├── urls.cpython-310.pyc│ │ └── wsgi.cpython-310.pyc│ ├── settings.py│ ├── urls.py│ └── wsgi.py├── db.sqlite3└── manage.py2 directories, 11 files
运行项目
1python3 manage.py runserver 0.0.0.0:8000
可能需要在 settings.py 里面设置一下 ALLOWED_HOSTS 选项。
创建 app
1dja ...
java随笔
equals 和 ==
对于值类型,== 判断两个值是否相等,而对于引用类型,== 则判断是否引用的同一个对象。
至于 equals 方法,值类型没有 equals 方法,对于引用类型,默认情况也是判断是否引用同一个对象,可以重写该方法以判断两个对象是否相等。
如果两个对象 equals 返回结果为 true,那么 hashcode 返回的结果也应该相等。但是 hashcode 相等,两个对象却不一定相等(指 equals 返回true)。
在 javascript 中也有 == 、 === 以及 is 这三种比较方法,=== 是严格的相等判断,不会进行类型转换,is 和 === 类似,== 会进行类型转换然后判断相等。但是这三个比较方法对于引用类型来说,都只会比较两个引用是否指向同一个对象。(注意,JavaScript 的值类型包括 string )
如果要比较类对象的值是否相等,可以为类添加一个 hash 函数,然后比较 hash 函数的返回值。
在 ruby 中,相等性判断可以使用 ===、==、eql?、equal?。
由于 ruby 中一切皆对象,所以不需要考虑值类型的判断 ...
stringtemplate4简介
首先,要了解有关 StringTemplate 理念的更多信息,您可以查看可读性很强的学术论文在模板引擎中执行严格的模型-视图分离
大多数发出源代码或其他文本输出的程序都是散布着打印语句的非结构化生成逻辑块。 主要原因是缺乏合适的工具和形式主义。 正确的形式主义是输出语法,因为你不是在生成随机字符——你是在用输出语言生成句子。 这类似于使用语法来描述输入句子的结构。 大多数程序员不会手动构建解析器,而是使用解析器生成器。 同样,我们需要某种形式的解析器生成器来生成文本。 输出语法最方便的体现是模板引擎,例如StringTemplate。
模板引擎只是一个使用模板发出文本的代码生成器,模板实际上只是带有“孔”的文档,您可以在其中粘贴称为属性的值。 属性可以是一个程序对象,例如字符串或 VarSymbol 对象、一个模板实例,或者是一个包含其他序列的属性序列。 模板引擎是用于生成结构化文本的特定领域语言。 StringTemplate 将您的模板分解为文本块和属性表达式,它们默认包含在尖括号中(但您可以使用任何您想要的单个字符开始和结束分隔符)。 StringTemplate 忽略属性表达 ...
安装stringtemplate4
在 Java 中使用 StringTemplate
安装
您需要做的就是将 StringTemplate jar 及其依赖的 ANTLR jar 放入您的 CLASSPATH 中。 下载 Java StringTemplate 4.3.4 binary jar 并放入您喜欢的 lib 目录,例如 UNIX 上的 /usr/local/lib。 添加到您的 CLASSPATH。 在 UNIX 上看起来像
1$ export CLASSPATH="/usr/local/lib/ST-4.3.4.jar:$CLASSPATH"
Java 现在将看到执行 ST 所需的所有库。 参考 StringTemplate 存储库。
hello world
这里有一个简单、完整的程序来测试您的安装。
123456789import org.stringtemplate.v4.*; public class Hello { public static void main(String[] args) { ST hello = new ST(&quo ...
vscode扩展开发
首先安装脚手架
1npm install -g yo generator-code
创建项目
1yo code
vsode-plugin-provider
获取设置
vscode 工作区目录下有 .vscode 目录,目录下有 settings.json 文件,可以通过以下代码来获取设置。
1const settings = vscode.workspace.getConfiguration('要获取的配置项');
语言配置
在 package.json 文件中,添加语言相关的配置。
12345678910111213141516171819202122232425262728{ ... "activationEvents": [ "onLanguage:语言名称" ], ... "contributes": { "languages": [ { "id": "语言名称", "aliases": [ "语言别名" ], "extensions": [ ...
vscode插件开发
script
npm run watch 启用监视模式,当修改 TypeScript 文件后,会自动重新编译成 JavaScript 文件。
npm run lint 使用 eslint 对代码进行静态分析。
npm run compile 将 TypeScript 编译为 JavaScript 。
npm run test 运行测试。
Launch
一个 Launch.json 的示例如下:
1234567891011121314151617{ "version": "0.2.0", "configurations": [{ "name": "Run Extension", "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath ...
欧拉路径
题目描述
求有向图字典序最小的欧拉路径。
输入格式
第一行两个整数 nnn,mmm 表示有向图的点数和边数。
接下来 mmm 行每行两个整数 uuu,vvv 表示存在一条 u→vu \to vu→v 的有向边。
输出格式
如果不存在欧拉路径,输出一行 No。
否则输出一行 m+1m+1m+1 个数字,表示字典序最小的欧拉路径。
样例
输入
4 6
1 3
2 1
4 2
3 3
1 2
3 4
输出
1 2 1 3 3 4 2
输入
5 5
1 2
3 5
4 3
3 4
2 3
输出
1 2 3 4 3 5
输入
4 3
1 2
1 3
1 4
输出
No
说明/提示
对于 50%50\%50% 的数据,n,m≤103n,m\leq 10^3n,m≤103 。
对于 100%100\%100% 的数据,1≤u,v≤n≤1051\leq u,v\leq n\leq 10^51≤u,v≤n≤105,m≤2×105m\leq 2\times 10^5m≤2×105。
保证将有向边视为无向边后图连通。
分析
这里以样例一为例进行分析。样例一的有向图如下所示:
...
hexo-graphviz-tag插件
一个hexo插件,使用标签在hexo博客中添加graphviz图。
在写博客的过程中,有时候会需要画图。比如说在写图论相关的博客的时候,需要画有向图或者无向图。使用 graphviz 是一个不错的选择。
该插件使得用户可以直接在博客中编写 dot 语言,而无需在本地编写然后生成图片。
使用方法
安装方法:
1npm i hexo-graphviz-tag
本来取名叫 hexo-tag-graphviz,发布时发现 hexo-tag-graphviz 已经存在,遂改名为 hexo-graphviz-tag,因此 github 上的名称和 npm 上的名称不同。
安装完成后,就可以和使用一般的hexo标签插件一样来使用它。该标签插件有三个参数,分别是title、align 和 maxWidth 。
如果仅提供一个匿名参数,则默认为图像标题 title,如下所示,定义了一个名为 mygraph 的有向图。
12345678910{% graphviz mygraph %}digraph { rankdir = LR; node [shape=circle] ...