版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 外文標(biāo)題:Automated Model Transformations Using the C.C Language</p><p> 外文作者:Vojtech Merunka, Oldrich Nouza, and Jiri Brozek</p><p> 文獻(xiàn)出處:Advances in Enterprise Engineering,2008 :137-15
2、1</p><p> 英文3098單詞, 18089字符,中文5478漢字。</p><p> 此文檔是外文翻譯成品,無需調(diào)整復(fù)雜的格式哦!下載之后直接可用,方便快捷!只需二十多元。</p><p> Automated Model Transformations Using the C.C Language</p><p> Voj
3、tech Merunka, Oldrich Nouza, and Jiri Brozek</p><p> Abstract. </p><p> This paper introduces the C.C programming language, which is designed for automated model transformations. The C.C langu
4、age is outcome of our research and has been implemented in the CASE tool of a British software company. This technology started to be used by companies in the Central Europe and for business and software engineering cour
5、ses at several Czech and Slovak universities, Loughborough University in the UK and Lehigh University in Pennsylvania. An interesting side-effect of this techno</p><p><b> Keywords</b></p>
6、<p> C.C language, model transformations, modelling and simulation, BORM.</p><p> Introduction</p><p> Modern CASE tools solve issues of business modeling and software modeling integra
7、tion. This convergence requires strong support of the model-driven approach (MDA), where requirement modeling and business model simulation are used for subsequent information system design.</p><p> There
8、are numerous modeling problems related to this matter. They concern interconnection of business models and software models, business process simulations, step-by-step transformations, domain-specific capabilities, flexi
9、bility, consistency and integrity checking etc. It remains questionable how these complex requirements should be implemented in CASE tools. We think that hard coding of these features is not the effective way. Hence we
10、report our original experience with the C.C language,</p><p> The C.C language design is an outcome of our research [11]. Interpreter of this language has been recently included into the Craft.CASE modelin
11、g tool developed by the British Company CRAFT.CASE Limited. This company thus takes all activities which were connected with the Craft.CASE and the BORM method in the past, including their future advancements.</p>
12、<p> Model Transformation Techniques</p><p> There are several ways how to classify model transformation techniques. For example, Jean-Marc Jezequel [14] presents the following classification:</p&
13、gt;<p> General purpose programming languages - Java, VB, C++, C#, etc. Rules and model behavior are implemented from scratch using the programming language.</p><p> Generic transformation tools - X
14、SLT (XML transformation) and graph transformation tools.</p><p> CASE tools scripting languages - for example Arcstyler, Objecteering, Op- timalJ, or Fujaba.</p><p> Dedicated model transform
15、ation tools - for example OMG QVT, which uses language OCL.</p><p> Meta Metamodeling tools - for example MetaEdit+, XMF-Mosaic, or Ker- Meta.</p><p> The Craft.CASE modeling tool provides mod
16、el transformation via the C.C interpreter. This approach combines features from categories 1 to 4. In addition, the C.C interpreter is able to perform all operations on the model (including simulations, refactoring, new
17、 diagram creation, user-interactive procedures, manipulation with values of concrete object instances etc.), that are executed manually by users from graphical user interface. On the other hand, the language is not yet
18、 standardized on th</p><p> Craft.CASE and BORM</p><p> Craft.CASE is a tool primarily targeted for modelling, testing and simulation of business processes and conceptual modelling of informat
19、ion systems using one coherent approach based in MDA and UML [3].</p><p> Craft.CASE and its C.C interpreter are developed in the VisualWorks for Smalltalk programming environment, which is an enterprise-cl
20、ass application development and delivery platform based on pure object-oriented programming[19].</p><p> The Craft.CASE implements the BORM method (Business Object Relation Modeling). BORM is the result of
21、our previous work and has been described in [11,9,12]. BORM is based on the idea of object-oriented paradigm in conjunction with the process-based approach. As other MDA-based methodologies, BORM starts with a business-o
22、riented specification of the problem area. Then it is step- by-step transformed to the correct software solution.</p><p> Craft.CASE supports these concepts transformations via business process simulators,
23、instance-level modeling and set of transformation rules describing how to derive subsequent concepts from previous ones. Moreover, in each step of the method, Craft.CASE keeps consistency between two layers of a model; s
24、ubjects and behaviors. Thanks to metamodel background and system internal C.C procedures, there is rigidly checked, whether all subjects from the first layer (e.g. classes, object states, packages</p><p> B
25、usiness Process Modeling in Craft.CASE</p><p> Craft.CASE respects UML and MDA, but uses an original diagram for business process modeling. It conveys together information from three separate UML diagrams:
26、state, communication and sequence. The BORM group have found that it is clearly understood by business stakeholders.</p><p> Each subject participating in a process is displayed in its states and transitio
27、ns.</p><p> This diagram expresses all the possible process interactions between process partcipants. The business process itself consists of a sequence of particular communications and data flows among par
28、ticipating subjects.</p><p> More formally, BORM process diagrams are graphical representations of interconnected Mealy-type finite state machines [17] of particular subjects. Visual simulation of a busine
29、ss process is based on market-graph Petri net [18]. (This approach is described in [2].) Therefore we can show states, transitions and operations for all subjects playing a role in a business process. This is a very pow
30、erful, yet simple diagram.</p><p> There is an example of BORM business process diagram at figure 1. It shows an invoice processing. There are six participating subjects in this process: Supplier, Invoice
31、Registration Department, Store Department, Account Payable Department, SAP and Bank. Small rectangles within these subjects are their states. Ovals within subjects are their activities, which are conceiveable as transit
32、ions between states as well. Big arrows between subjects are subject communications, small arrows are data fl</p><p> Software Systems Modeling in Craft.CASE</p><p> Craft.CASE uses the UML st
33、andard for software systems modeling activities. The differences from other CASE tools are as follows:</p><p> Both business model and software model share common metamodel. This metamodel is described in s
34、ection 4.1.</p><p> The content of UML software models is dependent on the content of business models. For example, each conceptual class from UML class diagram must have its predecessor in some business su
35、bject. This information is kept in the project database.</p><p> Craft.CASE stresses pre-implementation stages of system development and is not primarily appointed for software code generation. The main pur
36、pose is business and software modeling. This is the reason for strong demand on consistency, simulation, cross-reference checking and other features. However, various source codes generated from the project database are
37、 feasible through user-written modules in the C.C language.</p><p> The C.C language</p><p> The C.C language is a functional programming language with PASCAL-like syntax with several imperat
38、ive constructs and some features coming from languages PROLOG, Erlang, Ruby, Python and Smalltalk. It has an interpreted programming environment. C.C is used for following purposes:</p><p> As a scripting
39、language. Procedures in C.C are able to pass through project database and compose miscellaneous documentation reports.</p><p> Precise process simulation. Procedures in C.C can compute various simulation d
40、ata, control simulation flow, etc.</p><p> Automated manipulations with the model (e.g. applying design patterns, refactoring and class normalization).</p><p> Consistency and integrity check
41、of project database. This feature covers the same functionality as the OCL [4].</p><p> Data export in different formats (namely XMI and binary formats of other CASE tools).</p><p> Data impor
42、t from different data sources (e.g. ODBC, CSV etc.).</p><p> Inspiration - Pascal and LISP</p><p> The Pascal programming language as a simplified ALGOL was so successful that there were and s
43、till are attempts to use its ideas in many application areas. These include miscellaneous languages for data manipulations, scripting or object-oriented programming. Pascal is still frequently used as a first programmi
44、ng language. Its syntax dominates in theoretical publications oriented at algorithmization, theory of programming, new algorithm description etc.</p><p> The LISP programming language has been developed out
45、 of the needs of artificial intelligence programming. LISP (and its modern successor Scheme) smoothly implemented the concepts of lambda-calculus and functional programming introduced by Alonzo Church in 1930s [8].</
46、p><p> Motivation</p><p> As stated in section 1.1, the C.C language covers features of miscellaneous existing tools. We required these features to have in one modeling environment. First of all
47、, these are</p><p> —interactive model transformations,</p><p> prototyping and instance-level testing (e.g. querying and manipulation with concrete values of particular object instances emerg
48、ing in the model) and</p><p> simulation.</p><p> Recently we have decided to use C.C as the same language for algorithmization and software engineering courses.</p><p> Basic Co
49、ncepts</p><p> The C.C architecture consists of modules having functions. Modules are both system built-in and user-written.</p><p> Variables must begin with capital letters.</p><p
50、> Built-in values are true, false, nil, e (Euler’s number), i (purely imaginary number), pi (Ludolf’s number), infinity, tiny (infinitesimal zero) and a lot of functions in miscellaneous modules.</p><p>
51、 The only types are:</p><p> Symbol (atomic textual values beginning with non-capital letters).</p><p> String of characters written in double quotation marks.</p><p><b>
52、Number.</b></p><p> Date in format DD-MMM-YYYY.</p><p> Time in format HH:MM:SS.</p><p> Logical value as predefined symbols true and false.</p><p><b>
53、nil .</b></p><p> Collection of elements. There are three types of collections: list, set and dictionary.</p><p> Function, which implements lambda-expression and is written in curly bra
54、ckets. To illustrate, lambda-expression {XxXy | x2 十 y) is written as {:X,:Y|X^2+Y>.</p><p> Following line of the C.C code implementsahelloworldprogram(shown</p><p> in the figure 2).
55、 This code is written inthesystemworkspaceandtheresult</p><p> appears in the system console.</p><p> console:print(”Hello world!").</p><p><b> Functions</b&g
56、t;</p><p> Each function must be a member of a certain module. Therefore example of a hello world program working with the module named the function named print can be written as follows.</p><p&g
57、t; User-defined functions are represented by function expressions stored in variables. For example function F(x, y) = 10x 十 y can be implemented as</p><p> The F function can be applied on arguments via r
58、ound brackets as for example F(3,4). However, this function call can be used directly without the need to store this function in any variable, like {:X, :Y|10*X+Y}(3,4).</p><p> (Additionally, there are yet
59、 some advanced features related to default values of lambda-variables, order of parameters in function call and possibility to call function with incomplete set of parameters.)</p><p> Programming Environme
60、nt, C.C Data Modeler</p><p> Programming environment of the C.C implementation consists of module browser and traceable debugger (figure 3) and time profiler (figure 4).</p><p> The tool also
61、has a lite-version called C.C Data Modeler supporting the C.C language and only selected subset of UML models. This version is aimed for software engineering and introductory programming courses</p><p> Cod
62、e Examples</p><p> The C.C language is a universal programming language. It is used at several universities as an introductory programming language. Here are two small examples of well-known algorithms.<
63、;/p><p> Craft.CASE Modeling</p><p> Craft.CASE Metamodel</p><p> Craft.CASE works with a simple metamodel, which is common for both business and software modeling. This model share
64、s the same ideas as other metamodels used in CASE tools implementations. (For example GOPRR metamodel [10] by Steven Kelly made for MetaEdit+ CASE tool [13].)</p><p> In the Craft.CASE metamodel we work wit
65、h only two types of elements: nodes and links. Each link is one-way oriented and has one source and one target. Content of source or target can be both node or link (See figure 5). Each type of link knows which are its p
66、ossible types of sources and targets to be connected</p><p> The whole project is a node as well. If this project consists of diagrams, they are nodes linked to this project. If a diagram consist of element
67、s, they are nodes linked to this diagram. Of course, miscellaneous relations between the elements in particular diagrams are links between corresponding nodes too.</p><p> Figure 6 shows the Craft.CASE meta
68、model on the example of business process from figure 1. Subject SAP is a node connected to other five nodes. These five nodes are states and activities of this subject SAP and are connected by links.</p><p>
69、; Another example of the metamodel can be the UML class-diagram. Class symbols are nodes, relations (e.g. inheritance, association, composition, etc.) are links between classes. If a class has methods (or attributes, of
70、 course), these methods are nodes connected to this class. Additional information like cardinalities or link attributes are nodes connected to corresponding association, which is a link as well, because it connects clas
71、ses.</p><p> C.C Constructs for Craft.CASE Metamodel</p><p> The Craft.CASE metamodel is supported by several system modules. There is also one special operator (internal function) called ”pat
72、h expression” in the metamodel structure. This operator complements functionality of selection and projection. Semantics of selection operator is also extended.</p><p> element-or-collection-of-elements -&g
73、t; function-or-typename .</p><p> collection-of-elements // function-or-typename.</p><p> Path expression is an implementation of the graph traversing algorithm. It contrives to collect neigh
74、bors of an element or a collection of elements in the project database with respect to the metamodel. For example, if there is an element Supplier from figure 1, then we are able to collect all interrelated data-flows of
75、 this element. This is a path expression traversing from this element to its activities, then from these activities to their communications and finally to their data-flows.</p><p> Another example shows the
76、 selection of only the data flow elements from a set of all selected elements in a diagram editor.</p><p> C.C Modules</p><p> The interpreter of the C.C language made for Craft.CASE has sever
77、al built-in modules with a certain amount of built-in functions. These functions are implemented directly in the system byte-code [19]. Hence their execution is much faster. These functions cover general programming fea
78、tures (this segment of C.C can be used separately from Craft.CASE), support for precise simulations and support for the Craft.CASE metamodel and user interface (e.g. dialogues, console output, file access, ODBC dat</
79、p><p> —math: Support for mathematical processing such as work with complex numbers, vectors, matrices, infinitezimal numbers, numerical derivation and numerical integration etc. For example, math:integral({
80、:X|X"2+X},3,5) denotes(x2 十 x) dx.</p><p> —list: Functions specific to lists of values as head, tail, cons, sort, etc.</p><p> —project: Basic processing with the project database. Her
81、e are functions as new-node, new-link, remove-element, for example.</p><p> —element: Functions specific to project elements. Here are functions as nodes, links, source, target, get-property, set-property,
82、for example.</p><p> —diagram: Functions specific to diagram elements. For example, here are functions as add-element and remove-elements. (If an element is removed from a diagram, still it can persist in t
83、he project database.)</p><p> —editor: Functions specific to an actively opened diagram editor. Here are functions as selection, add-into-selection, remove-from-selection, etc.</p><p> —simula
84、tion: Functions specific to business process simulation. Here are functions as activate, start, step, terminate, raise-exception etc.</p><p> —report: Functions for generation of Craft.CASE reports in forma
85、ts HTML and PDF.</p><p> Modeling Examples</p><p> Our experience denotes the fact that the design pattern technique, the object normalization technique and refactoring technique share the com
86、mon principle of model transformation. Hence all these techniques can be automated through the C.C code with a project database. In this chapter we demonstrate practical examples of this idea. These examples are taken fr
87、om our software engineering courses.</p><p> In the following piece of code we present an interactive algorithm for creating a new super-class to selected classes from a conceptual class-diagram.</p>
88、<p> Design Patterns</p><p> Design patterns are proven solutions to design problems. A design pattern is a template for how to solve a particular problem. It is mature, proven and widely accepted so
89、ftware development technique. More information on design patterns for software systems development and their classification is in the book [6].</p><p> Following piece of code shows the implementation of Ad
90、apter pattern, which is demonstrated in pictures 7 and 8.</p><p> (It is obvious that ”standard” relational normal forms are implementable by a C.C code as well.)</p><p> Following user-intera
91、ctive function shows our implementation of the third normal form. Figures 9 and 10 show a concrete example of extracting new class Customer from class Contract.</p><p> Conclusion</p><p> In t
92、his paper, we presented the C.C language concepts and demonstrated the C.C modeling on real examples.</p><p> The C.C language is an instrument we use to support our research in the area of business and sof
93、tware systems modeling. The combination of the language C.C, the Craft.CASE metamodel and BORM methodology makes us a flexible technology, which allows to model business and software systems in one coherent paradigm. It
94、 solves the interconnection of business models and software models, business process simulations, step-by-step model transformations, domain-specific capabilities, model checking an r</p><p> Our next work
95、 will concentrate on elaboration of the C.C language, connectivity to other tools and research in the area of business process patterns.</p><p> References</p><p> Ambler S.: Building Object
96、Applications That Work, Your Step-By-Step Handbook for Developing Robust Systems Using Object Technology. Cambridge University Press/SIGS Books (1997)</p><p> Barjis J.: Developing Executable Models of Busi
97、ness Systems. In: Proceedings of the ICEIS - International Conference on Enterprice Information Systems, pp. 5-13. INSTICC Press (2007)</p><p> Craft.CASE home page, http://www.craftcase.com</p><
98、p> Pollet D., Vojtisek D., and Jezequel J-M.: OCL as a core UML transformation language. WITUML 2002 Position paper, http://ctp.di.fct.unl.pt/ja/wituml02.htm. Malaga, Spain (2002)</p><p> Fowler M.: Re
99、factoring. Addison-Wesley (1999)</p><p> Gamma E., Helm R., Johnson R., Vlissides J.M.: Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley (1994)</p><p> Hall J. e
100、t al.: Accounting information systems - Part 4, System development activities, 4th edition. Thomson South-Western New York (2004)</p><p> Hankin C.: Lambda Calculi - A Guide for Computer Scientists. Claren
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 02計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品c編程語言在增強(qiáng)故障檢測方面的擴(kuò)展
- 18計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品高校大學(xué)宿舍管理系統(tǒng)研究
- 04計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品tmn網(wǎng)絡(luò)管理平臺的設(shè)計(jì)與實(shí)現(xiàn)
- 114計(jì)算機(jī)專業(yè)相關(guān)有關(guān)畢業(yè)設(shè)計(jì)外文文獻(xiàn)翻譯成品集成spring mvc框架
- 06計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品安卓andriod移動設(shè)備上醫(yī)療信息服務(wù)的實(shí)現(xiàn)
- 130計(jì)算機(jī)專業(yè)相關(guān)有關(guān)畢業(yè)設(shè)計(jì)外文文獻(xiàn)翻譯成品介紹java web開發(fā)
- 116計(jì)算機(jī)專業(yè)相關(guān)有關(guān)畢業(yè)設(shè)計(jì)外文文獻(xiàn)翻譯成品安裝和配置mysql (最新)
- 94計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品分析java ee應(yīng)用程序中的程序依賴性
- 26計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品基于消費(fèi)者行為建模的網(wǎng)頁內(nèi)容推薦系統(tǒng)
- 108計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品從信息門戶到數(shù)字圖書館管理系統(tǒng)案例分析
- 117計(jì)算機(jī)專業(yè)相關(guān)有關(guān)畢業(yè)設(shè)計(jì)外文文獻(xiàn)翻譯成品 對java及其歷史的介紹(最新)
- 137市場營銷策略專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品營銷策略研究(最新2019)
- 112計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品基于android安卓操作系統(tǒng)的增強(qiáng)現(xiàn)實(shí)應(yīng)用程序開發(fā)
- 126有關(guān)計(jì)算機(jī)專業(yè)相關(guān)畢業(yè)設(shè)計(jì)外文文獻(xiàn)翻譯成品對delphi的概述
- 109計(jì)算機(jī)專業(yè)安卓系統(tǒng)應(yīng)用相關(guān)有關(guān)外文文獻(xiàn)翻譯成品了解安卓android應(yīng)用程序編程和安全性_動態(tài)研究
- 128計(jì)算機(jī)專業(yè)相關(guān)有關(guān)畢業(yè)設(shè)計(jì)外文文獻(xiàn)翻譯成品web網(wǎng)站開發(fā)方法 4萬字符
- 134計(jì)算機(jī)專業(yè)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品為移動學(xué)習(xí)環(huán)境設(shè)計(jì)安全的考試管理系統(tǒng)(sems) 4萬字符
- 88計(jì)算機(jī)專業(yè)應(yīng)用程序app設(shè)計(jì)相關(guān)有關(guān)外文文獻(xiàn)翻譯成品智能手機(jī)上的即時(shí)消息(im)應(yīng)用程序(app)的表征
- 計(jì)算機(jī)c語言專業(yè)外文翻譯
- 【中英雙語】118有關(guān)計(jì)算機(jī)專業(yè)相關(guān)畢業(yè)設(shè)計(jì)外文文獻(xiàn)翻譯成品:對 asp.net core的介紹(最新)
評論
0/150
提交評論