UNIVERSITÄT PADERBORN. ComponentTools

Size: px
Start display at page:

Download "UNIVERSITÄT PADERBORN. ComponentTools"

Transcription

1 UNIVERSITÄT PADERBORN ComponentTools Component Library Concept Project Group ComponentTools Alexander Gepting, Joel Greenyer, Andreas Maas, Sebastian Munkelt, Csaba Pales, Thorsten Pivl, Oliver Rohe, Markus Sanders, Andreas Scholand, and Christian Wagner Paderborn, October 7, 2005

2 Contents 1 Introduction The Library - Describing a Type of Component Based System 3 3 Formal Models and Specications The Project - Modelling a System Advanced Library and Project Model Details Compound Components Parameter Concept Assuring the Semantic Correctness of the Model Views Views and Editors Views in the Library/Project Model Working on a Project in dierent Views Tasks Summary and Outlook ii

3 List of Figures 1 Simple Library Model Extended Library Model ComponentType with Underlying Petri Net Model Including Models in the Library Including Model and Specications in the Library A project based on a Library Extended diagram of the Project and Library model Conceptual Compound Component Two ComponentTypes: Atomic- and CompoundComponent- Type Details of the CompoundComponentType Design Abstraction of Library and Project Elements ParameterDelcaration and ParameterValue Classes Project- and Geo-Editor working on the same project A View based on a Library Details of the View Design of the Library Dening View Parameters with the Library Editor Dening a Task in a Library iii

4 1 Introduction As ComponentTools is tool infrastructure that allows to model virtually any type of component based system, we need, as a basis, an application model that is generic and exible enough to describe component based systems in general. This application model will be presented in this paper. The model that will be described in this paper can be roughly devided in two conceptual parts. Firstly, there is the component library that will be introduced in section 2. The library describes a certain type of system by dening the types of components and connections that can exist in a system. Along with the component type denitions, the component library also includes formal models (see section 3) that will be used by ComponentTools later on. Secondly, when editors are used to design a specic system based on a library, a so called project is created that consists of the placed instances of the components the instances of the connections between them. The project will be introduced in section 4. The component library does not only declare a list of component and connection types that appear in a certain type of system. Furthermore, a component library can dene so called views that specify how system components will be graphically displayed in an editor. And, at last, a component library also denes tasks that describe which further actions can be performed on a designed component system model. For example, a task might invoke a model transformation and the starting of a simulation software based on the current project. Before, ComponentTools was referred to as a basis for tools. While the ComponentTools infrastructure can be seen as a generic application with a number of integrated editor- and task-plugins, the component library is actually the place where it is determined which kind of tool ComponentTools will be. So, the component library is rather a tool denition that denes which kind of system will be modelled, which kinds of editors will be displayed and which kinds of tasks will be available to perform. Technically, as ComponentTools is based on Eclipse ([3]), the library/project model were designed as EMF models (Editor Modelling Framework). EMF oers, among other things, the automated generation of viable Java code 1

5 from class diagrams. The class diagrams shown in this paper are thus EMF class diagrams drawn with the Omondo EMF class diagram editor The diagram that is the actual basis for the comonent library can be found in the plug-in de.upb.swt.componenttools.editor.core, in the package de.upb.swt.componenttools.editor.core.model. 2

6 2 The Library - Describing a Type of Component Based System As said in the introduction, the main purpose of the component library is to describe a certain type of component based system. A type of system could be our toy train system that we use as an example throughout this documentation ([6]). In a system, there are a number of dierent component types which can be connected in a certain way. Therefore, a starting point for a generic component library model could be the following class diagram (Fig. 1). Figure 1: Simple Library Model The main class in this diagram is the Library itself that can contain 0..n ComponentTypes and 0..n possible ConnectionTypes between them. But, for example, looking at the toy train system or any other complex component based system, there are a few more details that have to be considered. Component types dier from each other in the way they can be interconnected. Thinking about, for example, a switch component, there are a number of dierent connection points that can be identied. Firstly, there are the connection points where other tracks can be attached. A switch component, for example, has one incoming and two outgoing tracks and therefore specic corresponding incoming and outgoing connection points. Furthermore, to control a switch, maybe by electrical signals, it is necessary to consider connection points for signals of a controller component. So, a certain arrangement of connection points or ports, as we will call them, can be seen as the typical interface of a component type. The following class diagram (Fig. 2) shows how we introduced the PortType 3

7 class to the library model. Due to this, every port that appears in the interface of a ComponentType, a ComponentPortType, references a certain PortType. So, the ComponentPortType could be seen as an instance of a PortType that makes up the ComponentType's interface. Figure 2: Extended Library Model Furthermore, to be able to correctly connect the existing PortTypes that can appear in the ComponentType's interfaces, it is also necessary to specify the ConnectionTypes in more detail. There are only certain combinations of port types that can be connected. For example, it should not be possible to connect a signal port to a port representing an incoming track. To express these specics for a ConnectionType, each ConnectionType references ConnectablePortTypePairs. One ConnectablePortTypePair represents a possible directed connection between one source PortType and one target PortType. The class diagrams explained so far did not show how it is possbile to describe further attributes of elements like the ComponentType or ConnectionType. It is possible to do this with generic parameters. Detailed explaination of this parameter concept will be given in section 5. The following section (section 3) will explain how to include formal models in the component library. 4

8 3 Formal Models and Specications So far, we are able to describe a type of component based system by dening the component types, their interfaces and possible connections between them. But, the library does not yet allow to include formal models to the component type's description. This is illustrated in Figure 3. Figure 3: ComponentType with Underlying Petri Net Model In a library, it should be possible to include one or more kinds of formal models to the component type denition. Therefore, as the following class diagram (Fig. 4) shows, the Library denes a number of ModelTypes that can exist and the ComponentTypes can have 0..n Models corresponding to a dened ModelType. Figure 4: Including Models in the Library Now, the way that a Model is included in a ComponentType denition is very abstract. To this point, there is not even information about what exactly the model is. In fact, the way a model is technically included is left open for now. 5

9 For example, a Model object might contain a reference to a le containing a formal model in some notation. Actually, the detailed methods to include such models is still subject of further research, because the mechanism of how these models will be retrieved and transformed later on, inuences the way that models need to be stored. For example, in the scope of the ComponentTools project so far, we want to transform models like Petri nets with a transformer that interprets rules of Triple Graph Grammars (see [4] for further details). In order to use an underlying Petri net of a component type, it would be necessary to store the model along with mappings between the places and transitions on one hand and the component and its ports on the other hand. In addition to models, we also introduce specications to the library model. These specications can be included to the component types in the same way that models can be included. The conceptual dierence between models and specications is, thought, that a model is rather a formal model describing the entire component and that a specication can be used to express additional properties or contraints that apply to the component. For example, in further analysis tasks like modelchecking, the task could utilize the underlying model for modelchecking and apply contraints from the underlying specications. The following gure show the extended class diagram (Fig. 5). Figure 5: Including Model and Specications in the Library 6

10 Also, the methods to technically include specications are left open. 7

11 4 The Project - Modelling a System So far, the introduced models allow us to describe a type of system in a component library. But now, an application that uses this library information to design a specic system needs ways to store this system. A specic system in ComponentTools is called a project, which primarily stores instances of components and connections that have been dened in the library. The following gure (Fig. 6) shows basically how a Project is based on one Library and how ComponentInstances and ConnectionInstances in this Project correspond to a certain Component- and ConnectionType in the Library. Figure 6: A project based on a Library Also, this is a slightly simplied diagram that leaves out the details of how ConnectionInstances are connecting the ComponentInstances. This is shown in the next diagram (Fig. 7) which introduces the ports on both the Library and the Project level. As shown in this diagram, to describe the ComponentInstance's interface, the ComponentInstance furthermore has a number of ComponentPortInstances that correspond to the ComponentPortTypes in the Library. This model design might give the impression that the information about the component 8

12 Figure 7: Extended diagram of the Project and Library model instances' interface is modelled redundantly. Why should the information about the component's interface be copied from the type-level of the library into the instance-level in the project? Firstly, this design oers a nice way for the ConnectionInstances to just reference the ComponentPortInstances. So the ComponentType does not have to be accessed to retrieve the ports in the interface. And, secondly, the ports in the interface of the ComponentInstance might have additional parameters. For example, a signal port might be congurable to a certain electrical current. 9

13 5 Advanced Library and Project Model Details In addition to the library and project model concepts introduced so far, there are two more design details that we will present in this section. This is, rstly, the concept of compound components and, secondly, the way that arbitrary parameters can be saved along with almost all library and project classes. 5.1 Compound Components In many tools that support the design component based systems, it is possible to group a typical arrangement of components to one new unit that can be handled like one single component. In the toy train example, it might be a common practice to place a signal component in front of a switch and therefore it would be nice to group these two components into a new - compound - component. The idea is to have a component type like shown in gure 8. Figure 8: Conceptual Compound Component In the ComponentTools library, it is possbile to dene a CompoundComponentType, as the following class diagram shows (Fig. 9). What was left out for simplication in the previous sections is that there are two classes that inherit from the ComponentType class. One is the AtomicComponent- Type that is actually the class for a single component, as introduced so far. For example, the AtomicComponentType holds the formal models and specications. The other class inheriting from ComponentType is the CompoundComponentType. 10

14 Figure 9: Two ComponentTypes: Atomic- and CompoundComponentType But now, what is a CompoundComponentType compound of? It should be compound of something like a subsystem formed by instances of components and connections. So, the approach in the ComponentTools library model is to say that a CompoundComponentType consists of a project. This project would then contain the inner component and connection instances. The corresponding class diagram is shown below in gure 10. Figure 10: Details of the CompoundComponentType Design Furthermore, as the CompoundComponentType inherits the association to 11

15 the ComponentPortTypes from the general ComponentType superclass, it also denes an interface. And now, the inside ComponentInstances, or rather empty ComponentPortInstances get connected to the outside by dening a mapping: The CompoundComponentType denes a number of PortMappings that can map ComponentPortInstances of the inside ComponentInstances to its own ComponentPortTypes. These mappings are actually the dotted lines to the outside ports in gure Parameter Concept Before explaining the way that generic parameters are realized in our model, it is important to understand that, in the philosophy of the Component- Tools model, we mainly distinguish library elements and project elements. The library declares types of components, connections and ports whereas we nd instances of these declared types in a project. This philosophy is now abstracted in the superclasses as shown in the following class diagram (Fig. 11). Figure 11: Abstraction of Library and Project Elements Now, all the elements in the library as well as the Library class itself inherit from the abstract class AbstractParameterDeclarationElement. In the same way all elements in the project and the Project class inherit from the abstract class AbstractParameterValueElement. Note that these superclasses are now in charge to express the type/instance relation between library and project elements with the typeelement association. This means that the prior, more specic type/instance associations, for example, between the ComponentInstance and ComponentType or ConnectionInstance and ConnectionType (as shown in Fig. 6) are now absolete 12

16 because they are expressed by the associations between their superclasses. The following section (section 5.3) points out how these ways of modelling make it more complicated to maintain the semantic correctness of the model. With this type/instance philiosophy, the idea of parameters is such that type elements declare parameters and instance elements ll these declarations with a value. The naming of the superclasses in gure 11 already hints to this idea. For example, a toy train track component can have a variable length. Then, the component type Track declares a parameter length and each instance of a Track must provide a value for this parameter declaration. The following class diagram shows how the parameter declarations and values are modelled (Fig. 12). Figure 12: ParameterDelcaration and ParameterValue Classes This class diagram needs a little more explanation. Firstly, the Parameter- Declaration and ParameterValue classes also inherit from AbstractParameterDeclarationElement and AbstractParameterValueElement. This means on one hand, that the declaration/value relation is also expressed by the typeelement association of the superclasses (see Fig. 11). And, on the other hand, this means that each ParameterDeclaration class can have further ParameterDeclarations and every ParameterValue can have further Parameter- 13

17 Values. This is how parameters can have nested subparameters and so on. Secondly, the ParameterDeclaration class denes three attributes, the defaultvalue and two boolean attributes changeable and required. The idea of how this model is to be interpreted and, especially, how the Component- Tools software then deals with these attributes is the following: The required attribute expresses if a AbstractParameterValueElement must supply a ParameterValue for this ParameterDeclaration. Then, if a ParameterDeclaration has a defaultvalue and some AbstractParameterValueElement is created in the project, for example an instance of a track component, the Parameter- Values are initialized with the defaultvalue in the corresponding Parameter- Declaration. If the changeable attribute is set to false, it means that the instance element cannot have a parametervalue dierent from the default- Value. Especially this conguration of a ParameterDeclaration, to have an unchangeable default value, is used to express parameters that are declared and dened in the same time on the type (library) level. For example, a toy train track component might declare two parameters: A width and a length. Then, if the width is xed, the width parameter declaration is set to an unchangeable default value, whereas a variable length would be set to a changeable value. At last, the class diagram shows a StringToParameterValueMapEntry class that is located between the AbstractParameterValueElement and the ParameterValue. Behind this lies a little EMF modelling trick that allows to model qualied associations, so that ParameterValues can be retrieved by a key, instead of having to run through the whole parameter list in a while-loop every time. 5.3 Assuring the Semantic Correctness of the Model In the preceeding sections and subsections, the ComponentTools model and the corresponding conceptual ideas were introduced. The main concern when deciding between one way and another to design the model, is to keep the model as simple, general and extendable as possible. But then, in the one or other part of the model, this makes it hard to assure its semantic correctness, because some of the conceptual principles simply cannot be expressed by the EMF class diagram. 14

18 What this means and how ComponentTools faces this problem will be explained in this section with a list of examples: As explained in section 2, the ComponentTypes dene their interface by referencing a number of ComponentPortTypes. Then, on creation of a ComponentInstance object, the model does not express that the set of ComponentPortInstances has to be a congruent copy of the set of ComponentPortTypes in the type denition (see Fig. 2). Another problem is that the connection paradigm in the library expresses which types of ports may be connected with a certain type of connection. If this connection paradigm is regarded correctly has to be assured by the project editor application. The type/instance relation betweeen library and project elements is expressed on the level of the superclasses AbstractParameterDeclarationElement and AbstractParameterValueElement. They dene the typeelement association which results in a more exible way to assign type/instance relations. This was pointed out before in section 5.2. Now, according to the EMF model, it would be possible to have a ComponentType as a typeelement for a ConnectionInstance. Also, the project editor will have to take care of this. The parameter concept as explained in section 5.2 also needs extra care to be kept semantically correct. Firstly, there is the concept of having ParameterDeclarations with a default value that can be either changeable or unchangeable. Then, secondly, there can be a conguration of nested ParameterDeclarations. To these declarations, the corresponding ParameterValues need to be created accordingly by the project editor application. These are just some examples that explain why the applications working on this model need to take extra care of its semantic correctness. The paper [3] explains the architecture of the ComponentTools project editor core components that also implement a ProjectController. This controller component is used whenever an editor needs to perform operation in the model that could result in a semantic inconsistency. Also, a library editor, which has not been thoroughly implemented in the scope of the project so far, would need to implement something like a LibraryController to ensure semantically correct component libraries. 15

19 6 Views The preceeding sections presented the core concepts of the Component- Tools application model, the library and the project. Editors were mentioned at places which can use the type declarations in the library to design a certain system, a project. But, the library is so generic that we can virtually describe any component based system, we might describe a production system, a toy train system, electric circuits or even other types of systems. The question now is, how can we achieve to have specic editors for a specic type of component system? We need editors that have an adequate graphical representation of a system and editors that can support all the required editing features. For example, for electric circuits, it might be sucient to just place and connect the electrial components somewhere on a virtual canvas. But, for production systems in a factory, it would be necessary to place components on an exact physical position, so that also the oor plan of the factory can be considered. 6.1 Views and Editors So, how can we achieve to have editors with a system specic graphical representation and editing behavior? Can we describe all this in the library? Or should we implement specic editors where we can integrate exactly the editing behaviour that we need? The answer in ComponentTools is that there's a exible way to describe the graphical represenation of components, connections and ports as well as editing behavior. These views will be presented in this section. But, furthermore, ComponentTools comes with an editor framework that allows to implement and integrate other project editors (see [3] for architecture details). In fact, every editor works together with a specic view on the library/project. In the scope of our work so far, we have implemented two editors. One is a basic schematic editor, the other is a more specialized editor that allows to physically place and snap components in a certain position (see Fig 13). There are already a lot of possibilities to adapt the library, actually the views, to achieve the right editing behaviour and look with the two existing editors. If this will not be sucient, another editor can be integrated to work on yet another type of view. 16

20 Figure 13: Project- and Geo-Editor working on the same project When saying to have an editor working on a view, this means that a view will maintain the specic information needed for the graphical representation and editing behaviour in arbitrary parameters. Thus, an editor for this view will need to interpret and put to use these parameters in a right way. The rest of this section will now show how views are designed in the library/project model and how a library can dene several views so that actually several editors can work on the same project alongside. 6.2 Views in the Library/Project Model The general idea is that the Library can declare 0..n Views that represent dierent graphical views on the library elements. Furthermore, on the project level, there is a ProjectView that holds the view information for project (instance) elements. So, every project has a ProjectView for each View declared in the library. When having a closer look at the view design of the library, as illustrated in Figure 15, it can be seen that a View contains 0..n ComponentTypeView as well as ConnectionTypeView elements which both reference their equivalent 17

21 Figure 14: A View based on a Library model types, namely ComponentType and ConnectionType. A view also contains a PortTypeView which references the model type PortType, but again it has been left out due to simplication. A project primarily stores instances of components and connections that have been dened in the library. As an extension of that, a project also stores the view related information of each ComponentInstance and ConnectionInstance. ComponentInstanceView and ConnectionInstanceView itself reference a certain Component- and ConnectionTypeView in the library. Figure 15: Details of the View Design of the Library It is important to note that in a view, there does not have to be a view type element for every element in the library. They can be left out, if there's no need to see this component type, connection type or port type in this view. In the toy train example, we have a schematic view that allows to see and 18

22 edit everything, but in the Geo-View, for example, signal connections and signal ports are not important, so they can be left out in the declaration of Geo-View elements. To dene the graphical appearance of components, port and connections within a view, we make use of the formerly introduced Parameter Concept (see section 5.2). Since this concept has been implemented very generically any kind of parameter can be added. Furthermore, it is even possible to create a nested structure. In Figure 16 this has been used to dene the shape of the selected track component. Figure 16: Dening View Parameters with the Library Editor The Figure shows the library tree editor where currently the Component- TypeView object in the Geo-View for the Track-50 component type is edited (see the nodes highlighted in red). This ComponentTypeView holds a ParameterDeclaration called Polygon in which further nested ParameterDeclarations exist that have integer coordinates as defaultvalues. This is an example of how the graphical representation of a Component in the Geo- View is stored. The polygon represents the gure as that the component is painted in the editor. In the left part of Figure 16, the grey polygon of a switch component is displayed. 19

23 A more detailed introduction on how to customize components, ports, and connections of a view for dierent editors is given in [5]. 6.3 Working on a Project in dierent Views Now, we have presented the concepts to describe library and project elements and also how certain views on these elements can be dened. One question that arises from this is how dierent editors for dierent views can work on the same project simultaneously without causing inconsistencies. For example, the implemented Geo-Editor places components on an exact positions and other components can be snapped on them. But, in the schematic Project-Editor, the alignment of the components is not so obvious - what happens if components are moved or rotated in the schematic editor? Will this aect the positions in the Geo-Editor? We have seen, that elements in the views make use of the generic parameters as well as the core library elements. Therefore, we can separate parameters into core parameters and view parameters. In our concepts so far, we need to put all information needed for the designed project in the core parameters. This is all the information that futher applications like simulators, verier, modelcheckers and other analysis tools need to perform their task on the designed project. The view parameters will then only contain the information needed for the view itself. Thus, in the above example the position of the components in the Geo-Editor is something that will need to be stored in the core parameters. Because this is, for example, the relevant position information needed in a visual simulation of the system. On the contrary, the position in the schematic project editor, is only relevant inside the view and will be stored in the view parameters. Nevertheless, there are use cases where one parameter might imply the value of another. Maybe, we would like to let the physical position of the components in the Geo-View inuence the position of the components in the schematic Project-View, but not the other way around. This could be solved by introducing dependencies or implications between parameters. But, this is subject to further research. For now, the editor applications working on 20

24 the views will need to take care of implying their view parameter values based on core parameters values if needed. 21

25 7 Tasks We have mentioned ComponentTools to be a basis for tools to design component based systems. Actually it is the component library that tells the whole ComponentTools infrastructure what kind of tool it should be. The library rstly denes the type of system being worked on by dening component, port and connection types. Then it denes views on this system and, thus, which integrated editors should be opened on a project. So, the library holds more that just a list of component types, it is actually a tool description. And now, we also want the component library to specify which kind of analysis tasks can be performed on a designed system - on a project. The following class diagram (Fig. 17) shows how a Library can have 0..n Tasks. Figure 17: Dening a Task in a Library In the editor infrastructure, there can be applications integrated as Task- Plugins [3]. So, like editors correspond to views, Task-Plugins correspond to Tasks dened in the library. As a Task is actually an AbstractParameterDeclarationElement (see section 5.2), it can thus declare parameters and furtherly describe what the task should do when it is carried out. During the work of our project group we implemented two dierent example tasks. One task starts a transformation process where the model created in the project is being transformed into a Petri net using the concept of triple graph grammars (see [4] for more details). The second task provides a visual 3D simulation of the created model (see [1] for more details). These tasks that we implemented still have the most application logic in the Task-Plugin class itself and there was little use made of the possibility to describe the task behaviour in the library. This is actually still subject to further research and development. The goal would be to congure everything a task should do in the library. For example, if there's an analysis to be 22

26 carried out on a project, the following information should be in the library task denition: 1. Into which model does the project need to be transformed? 2. Which transformation mechanism should be used? 3. Based on which rules should the transformation be carried out? 4. What should be done with the transformation output? Held in the memory, written to a le? 5. Which kind of analysis tool should be stared on the output model? 6. What needs to be done to transform analysis results back to the project? A detailed description on how to create and add new tasks to your library model can be found in [5] and [2]. 23

27 8 Summary and Outlook In this paper, the generic and extendable ComponentTools application model was introduced. We have shown how a type of component based system can be described in a component library by dening the component types and possible connections between their ports. Furthermore, we have seen that the component library does more than just describe a type of system. The library is rather a tool denition that, when loaded, tells ComponentTools with which dierent editors, in which views the user can work on a component system and which futher tasks can be performed on the system model. But still, there are some open topics in the library model where further research is needed. Primarily, it has to be investigated in which way formal models can be included in the component type denition in regard to support model transformation based on Triple Graph Grammar rule interpretation [4], [7]. 24

28 Bibliography [1] Ekkart Kindler and Csaba Páles. 3D-visualization of Petri net models : Concept and realization. In Application an Theory of Petri Nets 2004, 25 th International Conference, volume 3099 of LNCS, J. Cortadella and W. Reisig, Eds., pages , June [2] A. Gepting, J. Greenyer, A. Maas, S. Munkelt, C. Páles, T. Pivl, O. Rohe, M. Sanders, A. Scholand, and C. Wagner. ComponentTools - Component Editor User Guide, [3] A. Gepting, J. Greenyer, A. Maas, S. Munkelt, C. Páles, T. Pivl, O. Rohe, M. Sanders, A. Scholand, and C. Wagner. ComponentTools - Component Project Editor Architecture, , 5.3, 6.1, 7 [4] A. Gepting, J. Greenyer, A. Maas, S. Munkelt, C. Páles, T. Pivl, O. Rohe, M. Sanders, A. Scholand, and C. Wagner. ComponentTools - Concept of Graph Transformation using Triple Graph Grammars TGG, , 7, 8 [5] A. Gepting, J. Greenyer, A. Maas, S. Munkelt, C. Páles, T. Pivl, O. Rohe, M. Sanders, A. Scholand, and C. Wagner. ComponentTools - Create your own Component Tool using the ComponentTools Infrastructure, , 7 [6] A. Gepting, J. Greenyer, A. Maas, S. Munkelt, C. Páles, T. Pivl, O. Rohe, M. Sanders, A. Scholand, and C. Wagner. ComponentTools - Project Group ComponentTools - Main Paper, [7] A. Gepting, J. Greenyer, A. Maas, S. Munkelt, C. Páles, T. Pivl, O. Rohe, M. Sanders, A. Scholand, and C. Wagner. ComponentTools - Triple Graph Grammar Interpreter Architecture,

Reconciling TGGs with QVT

Reconciling TGGs with QVT Faculty for Computer Science Software Engineering Group Warburger Straße 100 33098 Paderborn Germany A Study of Model Transformation Technologies: Reconciling TGGs with QVT Diploma Thesis by Joel Greenyer

More information

TGGs for Transforming UML to CSP: Contribution to the ACTIVE 2007 Graph Transformation Tools Contest. Technical Report tr-ri

TGGs for Transforming UML to CSP: Contribution to the ACTIVE 2007 Graph Transformation Tools Contest. Technical Report tr-ri TGGs for Transforming UML to CSP: Contribution to the ACTIVE 2007 Graph Transformation Tools Contest Technical Report tr-ri-08-287 Joel Greenyer, Jan Rieke, and Oleg Travkin Department of Computer Science

More information

Comparing Relational Model Transformation Technologies Implementing QVT with Triple Graph Grammars

Comparing Relational Model Transformation Technologies Implementing QVT with Triple Graph Grammars Noname manuscript No. (will be inserted by the editor) Comparing Relational Model Transformation Technologies Implementing QVT with Triple Graph Grammars Joel Greenyer 1, Ekkart Kindler 2 1 Software Engineering

More information

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios Technical Report tr-ri-07-284 Ekkart Kindler and Robert Wagner Department of Computer Science University of Paderborn

More information

Generating Continuation Passing Style Code for the Co-op Language

Generating Continuation Passing Style Code for the Co-op Language Generating Continuation Passing Style Code for the Co-op Language Mark Laarakkers University of Twente Faculty: Computer Science Chair: Software engineering Graduation committee: dr.ing. C.M. Bockisch

More information

CPSC 320 Sample Solution, Playing with Graphs!

CPSC 320 Sample Solution, Playing with Graphs! CPSC 320 Sample Solution, Playing with Graphs! September 23, 2017 Today we practice reasoning about graphs by playing with two new terms. These terms/concepts are useful in themselves but not tremendously

More information

Helper Agents as a Means of Structuring Multi-Agent Applications

Helper Agents as a Means of Structuring Multi-Agent Applications Helper Agents as a Means of Structuring Multi-Agent Applications Kolja Markwardt and Daniel Moldt University of Hamburg, Department of Informatics, Vogt-Kölln-Str. 30, D-22527 Hamburg http://www.informatik.uni-hamburg.de/tgi

More information

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and

More information

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type

Annex A (Informative) Collected syntax The nonterminal symbols pointer-type, program, signed-number, simple-type, special-symbol, and structured-type Pascal ISO 7185:1990 This online copy of the unextended Pascal standard is provided only as an aid to standardization. In the case of dierences between this online version and the printed version, the

More information

Meta-Model Guided Error Correction for UML Models

Meta-Model Guided Error Correction for UML Models Final Thesis Meta-Model Guided Error Correction for UML Models by Fredrik Bäckström and Anders Ivarsson LITH-IDA-EX--06/079--SE 2006-12-13 Final Thesis Meta-Model Guided Error Correction for UML Models

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Documentation Open Graph Markup Language (OGML)

Documentation Open Graph Markup Language (OGML) Documentation Open Graph Markup Language (OGML) Version: July 10, 2012 Fakultät für Informatik Algorithm Engineering (Ls11) Technische Universität Dortmund 2 Contents 1 Introduction 5 2 Design and Design

More information

3D-Visualization of Petri Net Models: Concept and Realization

3D-Visualization of Petri Net Models: Concept and Realization 3D-Visualization of Petri Net Models: Concept and Realization Ekkart Kindler and Csaba Páles Department of Computer Science, University of Paderborn {kindler,cpales}@upb.de Abstract. We present a simple

More information

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework Enrico Biermann, Claudia Ermel, Frank Hermann and Tony Modica Technische Universität Berlin, Germany {enrico,lieske,frank,modica}@cs.tu-berlin.de

More information

Dierencegraph - A ProM Plugin for Calculating and Visualizing Dierences between Processes

Dierencegraph - A ProM Plugin for Calculating and Visualizing Dierences between Processes Dierencegraph - A ProM Plugin for Calculating and Visualizing Dierences between Processes Manuel Gall 1, Günter Wallner 2, Simone Kriglstein 3, Stefanie Rinderle-Ma 1 1 University of Vienna, Faculty of

More information

MathML Editor: The Basics *

MathML Editor: The Basics * OpenStax-CNX module: m26312 1 MathML Editor: The Basics * Natalie Weber This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract This module provides

More information

Consolidation of Interacting BPEL Process Models with Fault Handlers

Consolidation of Interacting BPEL Process Models with Fault Handlers Consolidation of Interacting BPEL Process Models with Fault Handlers Sebastian Wagner, Oliver Kopp, and Frank Leymann Institute of Architecture of Application Systems, University of Stuttgart, Germany

More information

such internal data dependencies can be formally specied. A possible approach to specify

such internal data dependencies can be formally specied. A possible approach to specify Chapter 6 Specication and generation of valid data unit instantiations In this chapter, we discuss the problem of generating valid data unit instantiations. As valid data unit instantiations must adhere

More information

Describing Computer Languages

Describing Computer Languages Markus Scheidgen Describing Computer Languages Meta-languages to describe languages, and meta-tools to automatically create language tools Doctoral Thesis August 10, 2008 Humboldt-Universität zu Berlin

More information

Symbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is

More information

Achilles: A High-Level Synthesis System. for Asynchronous Circuits. Jordi Cortadella, Rosa M. Badia, Enric Pastor, and Abelardo Pardo y

Achilles: A High-Level Synthesis System. for Asynchronous Circuits. Jordi Cortadella, Rosa M. Badia, Enric Pastor, and Abelardo Pardo y Achilles: A High-Level Synthesis System for Asynchronous Circuits Jordi Cortadella, Rosa M. Badia, Enric Pastor, and Abelardo Pardo y Dept. of Computer Architecture Universitat Politecnica de Catalunya

More information

.Math 0450 Honors intro to analysis Spring, 2009 Notes #4 corrected (as of Monday evening, 1/12) some changes on page 6, as in .

.Math 0450 Honors intro to analysis Spring, 2009 Notes #4 corrected (as of Monday evening, 1/12) some changes on page 6, as in  . 0.1 More on innity.math 0450 Honors intro to analysis Spring, 2009 Notes #4 corrected (as of Monday evening, 1/12) some changes on page 6, as in email. 0.1.1 If you haven't read 1.3, do so now! In notes#1

More information

information is saved on a history stack, and Reverse, which runs back through a previous conservative execution and undoes its eect. We extend Forth's

information is saved on a history stack, and Reverse, which runs back through a previous conservative execution and undoes its eect. We extend Forth's A Virtual Machine Architecture for Constraint Based Programming Bill Stoddart October 25, 2000 Abstract We present a Forth style virtual machine architecture designed to provide for constriant based programming.

More information

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems

Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Formal specification of semantics of UML 2.0 activity diagrams by using Graph Transformation Systems Somayeh Azizi 1, Vahid Panahi 2 Computer science department, Sama Technical and vocational, Training

More information

SCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015

SCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015 SCHEME 7 COMPUTER SCIENCE 61A October 29, 2015 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 24 page 1 out of 5 [talking head] This lecture we study theory design and implementation. Programmers have two roles to play here. In one role, they

More information

BMVC 1996 doi: /c.10.41

BMVC 1996 doi: /c.10.41 On the use of the 1D Boolean model for the description of binary textures M Petrou, M Arrigo and J A Vons Dept. of Electronic and Electrical Engineering, University of Surrey, Guildford GU2 5XH, United

More information

Abstract formula. Net formula

Abstract formula. Net formula { PEP { More than a Petri Net Tool ABSTRACT Bernd Grahlmann and Eike Best The PEP system (Programming Environment based on Petri Nets) supports the most important tasks of a good net tool, including HL

More information

Inter-Project Dependencies in Java Software Ecosystems

Inter-Project Dependencies in Java Software Ecosystems Inter-Project Dependencies Inter-Project Dependencies in Java Software Ecosystems in Java Software Ecosystems Antonín Procházka 1, Mircea Lungu 2, Karel Richta 3 Antonín Procházka 1, Mircea Lungu 2, Karel

More information

A Contribution to User Interface Modelling Based on Graph Transformations Approach

A Contribution to User Interface Modelling Based on Graph Transformations Approach A Contribution to User Interface Modelling Based on Graph Transformations Approach Martin Molhanec Department of e-technology, Faculty of Electrical Engineering Czech Technical University in Prague Technická

More information

Recursively Enumerable Languages, Turing Machines, and Decidability

Recursively Enumerable Languages, Turing Machines, and Decidability Recursively Enumerable Languages, Turing Machines, and Decidability 1 Problem Reduction: Basic Concepts and Analogies The concept of problem reduction is simple at a high level. You simply take an algorithm

More information

Fall 2018 Discussion 8: October 24, 2018 Solutions. 1 Introduction. 2 Primitives

Fall 2018 Discussion 8: October 24, 2018 Solutions. 1 Introduction. 2 Primitives CS 6A Scheme Fall 208 Discussion 8: October 24, 208 Solutions Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write

More information

Programming with Mathematica

Programming with Mathematica 1 Programming with Mathematica Introductiontoprogramming Gettingstarted Gettinghelp Notesandfurtherreading Mathematica is a large system used across an astonishing array of disciplines physics, bioinformatics,

More information

Enumeration of Full Graphs: Onset of the Asymptotic Region. Department of Mathematics. Massachusetts Institute of Technology. Cambridge, MA 02139

Enumeration of Full Graphs: Onset of the Asymptotic Region. Department of Mathematics. Massachusetts Institute of Technology. Cambridge, MA 02139 Enumeration of Full Graphs: Onset of the Asymptotic Region L. J. Cowen D. J. Kleitman y F. Lasaga D. E. Sussman Department of Mathematics Massachusetts Institute of Technology Cambridge, MA 02139 Abstract

More information

Storage System. Distributor. Network. Drive. Drive. Storage System. Controller. Controller. Disk. Disk

Storage System. Distributor. Network. Drive. Drive. Storage System. Controller. Controller. Disk. Disk HRaid: a Flexible Storage-system Simulator Toni Cortes Jesus Labarta Universitat Politecnica de Catalunya - Barcelona ftoni, jesusg@ac.upc.es - http://www.ac.upc.es/hpc Abstract Clusters of workstations

More information

User's Manual for the Gumbix Algorithm Suite

User's Manual for the Gumbix Algorithm Suite User's Manual for the Gumbix Algorithm Suite Markus Gumbel 2008-2011 Abstract This paper describes the features of the Gumbix Algorithm Suite (GAS). This suite contains tools for the visualiziation of

More information

Debugging Abstract State Machine Specifications: An Extension of CoreASM

Debugging Abstract State Machine Specifications: An Extension of CoreASM Debugging Abstract State Machine Specifications: An Extension of CoreASM Marcel Dausend, Michael Stegmaier and Alexander Raschke Institute of Software Engineering and Compiler Construction, University

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

Type Checking and Type Equality

Type Checking and Type Equality Type Checking and Type Equality Type systems are the biggest point of variation across programming languages. Even languages that look similar are often greatly different when it comes to their type systems.

More information

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics

The Compositional C++ Language. Denition. Abstract. This document gives a concise denition of the syntax and semantics The Compositional C++ Language Denition Peter Carlin Mani Chandy Carl Kesselman March 12, 1993 Revision 0.95 3/12/93, Comments welcome. Abstract This document gives a concise denition of the syntax and

More information

COP 3330 Final Exam Review

COP 3330 Final Exam Review COP 3330 Final Exam Review I. The Basics (Chapters 2, 5, 6) a. comments b. identifiers, reserved words c. white space d. compilers vs. interpreters e. syntax, semantics f. errors i. syntax ii. run-time

More information

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations

The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations The TTC 2011 Reengineering Challenge Using MOLA and Higher-Order Transformations Agris Sostaks, Elina Kalnina, Audris Kalnins, Edgars Celms, and Janis Iraids Institute of Computer Science and Mathematics,

More information

Requirements document for an automated teller machine. network

Requirements document for an automated teller machine. network Requirements document for an automated teller machine network August 5, 1996 Contents 1 Introduction 2 1.1 Purpose : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 1.2 Scope

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

1 A Tale of Two Lovers

1 A Tale of Two Lovers CS 120/ E-177: Introduction to Cryptography Salil Vadhan and Alon Rosen Dec. 12, 2006 Lecture Notes 19 (expanded): Secure Two-Party Computation Recommended Reading. Goldreich Volume II 7.2.2, 7.3.2, 7.3.3.

More information

UNIT-IV BASIC BEHAVIORAL MODELING-I

UNIT-IV BASIC BEHAVIORAL MODELING-I UNIT-IV BASIC BEHAVIORAL MODELING-I CONTENTS 1. Interactions Terms and Concepts Modeling Techniques 2. Interaction Diagrams Terms and Concepts Modeling Techniques Interactions: Terms and Concepts: An interaction

More information

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen Formal semantics of loosely typed languages Joep Verkoelen Vincent Driessen June, 2004 ii Contents 1 Introduction 3 2 Syntax 5 2.1 Formalities.............................. 5 2.2 Example language LooselyWhile.................

More information

Types and Static Type Checking (Introducing Micro-Haskell)

Types and Static Type Checking (Introducing Micro-Haskell) Types and Static (Introducing Micro-Haskell) Informatics 2A: Lecture 14 John Longley School of Informatics University of Edinburgh jrl@inf.ed.ac.uk 17 October 2017 1 / 21 1 Types 2 3 4 2 / 21 So far in

More information

Informal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility

Informal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility Informal Semantics of Data semantic specification names (identifiers) attributes binding declarations scope rules visibility 1 Ways to Specify Semantics Standards Documents (Language Definition) Language

More information

Improving the Quality of Test Suites for Conformance. Tests by Using Message Sequence Charts. Abstract

Improving the Quality of Test Suites for Conformance. Tests by Using Message Sequence Charts. Abstract 1 Improving the Quality of Test Suites for Conformance Tests by Using Message Sequence Charts Jens Grabowski a ; Dieter Hogrefe a, Iwan Nussbaumer b, and Andreas Spichiger a Abstract The test of a communication

More information

Analysis of Aspect-Oriented Models using Graph Transformation Systems

Analysis of Aspect-Oriented Models using Graph Transformation Systems Analysis of Aspect-Oriented Models using Graph Transformation Systems Katharina Mehner-Heindl 1, Mattia Monga 2, and Gabriele Taentzer 3 1 Dep. of Media and Information Engineering, University of Applied

More information

BPMN2BPEL transformation with Fujaba - a Case Study

BPMN2BPEL transformation with Fujaba - a Case Study BPMN2BPEL transformation with Fujaba - a Case Study Ruben Jubeh SE, Kassel University Wilhelmshöher Allee 73 34121 Kassel ruben.jubeh@uni-kassel.de ABSTRACT We have modeled a BPMN to BPEL synthesis transformation

More information

Computer Science 21b: Structure and Interpretation of Computer Programs (Spring Term, 2004)

Computer Science 21b: Structure and Interpretation of Computer Programs (Spring Term, 2004) Computer Science 21b: Structure and Interpretation of Computer Programs (Spring Term, 2004) There are only 5 ideas in Computer Science, and by the end of this course, you ll know 3 of them --Harry Mairson

More information

6.001 Notes: Section 1.1

6.001 Notes: Section 1.1 6.001 Notes: Section 1.1 Slide 1.1.1 This first thing we need to do is discuss the focus of 6.001. What is this course all about? This seems quite obvious -- this is a course about computer science. But

More information

UNICORN: A Tool for Modeling and Reasoning on the Uncertainty of Requirements Evolution

UNICORN: A Tool for Modeling and Reasoning on the Uncertainty of Requirements Evolution UNICORN: A Tool for Modeling and Reasoning on the Uncertainty of Requirements Evolution Le Minh Sang Tran and Fabio Massacci University of Trento, Italy {tran, fabio.massacci}@disi.unitn.it Abstract. Long-living

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

Generating Diagram Editors Providing Free-Hand Editing as well as Syntax-Directed Editing

Generating Diagram Editors Providing Free-Hand Editing as well as Syntax-Directed Editing Generating Diagram Editors Providing Free-Hand Editing as well as Syntax-Directed Editing Oliver Köth and Mark Minas Lehrstuhl für Programmiersprachen Universität Erlangen-Nürnberg Martensstr. 3, 91058

More information

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract

Modeling Cooperative Behavior Using Cooperation Contracts. Peter Lang. Abstract Modeling Cooperative Behavior Using Cooperation Contracts Michael Schre Department of Data & Knowledge Engineering University of Linz Altenbergerstr. 69, A-4040 Linz, Austria schre@dke.uni-linz.ac.at Gerti

More information

CSC148, Lab #4. General rules. Overview. Tracing recursion. Greatest Common Denominator GCD

CSC148, Lab #4. General rules. Overview. Tracing recursion. Greatest Common Denominator GCD CSC148, Lab #4 This document contains the instructions for lab number 4 in CSC148H. To earn your lab mark, you must actively participate in the lab. We mark you in order to ensure a serious attempt at

More information

The Object Model Overview. Contents. Section Title

The Object Model Overview. Contents. Section Title The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group

More information

SCHEME 8. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. March 23, 2017

SCHEME 8. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. March 23, 2017 SCHEME 8 COMPUTER SCIENCE 61A March 2, 2017 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism

M301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze

More information

TMQL issues. October 14, slide 1

TMQL issues. October 14, slide 1 TMQL issues October 14, 2007 http://www.isotopicmaps.org slide 1 Support for transitive closures We think TMQL needs to support transitive closures on query expressions Something like root-node (

More information

Physics 364, Fall 2012, reading due your answers to before the end of Wednesday s lab.

Physics 364, Fall 2012, reading due your answers to before the end of Wednesday s lab. Physics 364, Fall 2012, reading due 2012-11-28. Email your answers to ashmansk@hep.upenn.edu before the end of Wednesday s lab. Course materials and schedule are at http://positron.hep.upenn.edu/p364 Assignment:

More information

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations

More information

Building a safe and secure embedded world. Testing State Machines. and Other Test Objects Maintaining a State. > TESSY Tutorial Author: Frank Büchner

Building a safe and secure embedded world. Testing State Machines. and Other Test Objects Maintaining a State. > TESSY Tutorial Author: Frank Büchner Building a safe and secure embedded world Testing State Machines and Other Test Objects Maintaining a State > TESSY Tutorial Author: Frank Büchner Topic: TESSY is especially well-suited for testing state

More information

Lesson 6A Loops. By John B. Owen All rights reserved 2011, revised 2014

Lesson 6A Loops. By John B. Owen All rights reserved 2011, revised 2014 Lesson 6A Loops By John B. Owen All rights reserved 2011, revised 2014 Topic List Objectives Loop structure 4 parts Three loop styles Example of a while loop Example of a do while loop Comparison while

More information

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture

More information

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract

Reverse Engineering with a CASE Tool. Bret Johnson. Research advisors: Spencer Rugaber and Rich LeBlanc. October 6, Abstract Reverse Engineering with a CASE Tool Bret Johnson Research advisors: Spencer Rugaber and Rich LeBlanc October 6, 994 Abstract We examine using a CASE tool, Interactive Development Environment's Software

More information

A Hierarchical Approach to Workload. M. Calzarossa 1, G. Haring 2, G. Kotsis 2,A.Merlo 1,D.Tessera 1

A Hierarchical Approach to Workload. M. Calzarossa 1, G. Haring 2, G. Kotsis 2,A.Merlo 1,D.Tessera 1 A Hierarchical Approach to Workload Characterization for Parallel Systems? M. Calzarossa 1, G. Haring 2, G. Kotsis 2,A.Merlo 1,D.Tessera 1 1 Dipartimento di Informatica e Sistemistica, Universita dipavia,

More information

with openarchitectureware

with openarchitectureware Model-Driven Development with openarchitectureware Markus Völter voelter@acm.orgorg www.voelter.de Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de 2006-7 Völter,

More information

Acknowledgments 2

Acknowledgments 2 Program Slicing: An Application of Object-oriented Program Dependency Graphs Anand Krishnaswamy Dept. of Computer Science Clemson University Clemson, SC 29634-1906 anandk@cs.clemson.edu Abstract A considerable

More information

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA

More information

CSE 12 Abstract Syntax Trees

CSE 12 Abstract Syntax Trees CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures

More information

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group

SAMOS: an Active Object{Oriented Database System. Stella Gatziu, Klaus R. Dittrich. Database Technology Research Group SAMOS: an Active Object{Oriented Database System Stella Gatziu, Klaus R. Dittrich Database Technology Research Group Institut fur Informatik, Universitat Zurich fgatziu, dittrichg@ifi.unizh.ch to appear

More information

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Technische Universitat Munchen. Institut fur Informatik. D Munchen. Developing Applications for Multicomputer Systems on Workstation Clusters Georg Stellner, Arndt Bode, Stefan Lamberts and Thomas Ludwig? Technische Universitat Munchen Institut fur Informatik Lehrstuhl

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: , Q.1 What is Object Orientation? Explain the concept of class, objects, instance, generalization, and associations. Ans :-- In the past, information systems used to be defined primarily by their functionality:

More information

Operational Semantics

Operational Semantics Operational Semantics #1 One-Slide Summary Operational semantics is a precise way of specifying how to evaluate a program. A formal semantics tells you what each expression means. Meaning depends on context:

More information

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n*

Server 1 Server 2 CPU. mem I/O. allocate rec n read elem. n*47.0. n*20.0. select. n*1.0. write elem. n*26.5 send. n* Information Needs in Performance Analysis of Telecommunication Software a Case Study Vesa Hirvisalo Esko Nuutila Helsinki University of Technology Laboratory of Information Processing Science Otakaari

More information

Institut fur Informatik, Universitat Klagenfurt. Institut fur Informatik, Universitat Linz. Institut fur Witschaftsinformatik, Universitat Linz

Institut fur Informatik, Universitat Klagenfurt. Institut fur Informatik, Universitat Linz. Institut fur Witschaftsinformatik, Universitat Linz Coupling and Cohesion in Object-Oriented Systems Johann Eder (1) Gerti Kappel (2) Michael Schre (3) (1) Institut fur Informatik, Universitat Klagenfurt Universitatsstr. 65, A-9020 Klagenfurt, Austria,

More information

Generation Chain. Benoît Langlois Thales/EPM. EGF Tutorial Generation Chain by Thales; made available under the EPL v1.

Generation Chain. Benoît Langlois Thales/EPM. EGF Tutorial Generation Chain by Thales; made available under the EPL v1. EGF Tutorial Generation Chain Benoît Langlois Thales/EPM Agenda Principles Generation Customization lipse Generation Fac ctories Thales Corp porate Services/EPM Generation Chain Extensibility 2 Agenda

More information

A Modelling and Analysis Environment for LARES

A Modelling and Analysis Environment for LARES A Modelling and Analysis Environment for LARES Alexander Gouberman, Martin Riedl, Johann Schuster, and Markus Siegle Institut für Technische Informatik, Universität der Bundeswehr München, {firstname.lastname@unibw.de

More information

These notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without

These notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without These notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without previous written authorization. 1 2 The simplest way to create

More information

Parallel Rewriting of Graphs through the. Pullback Approach. Michel Bauderon 1. Laboratoire Bordelais de Recherche en Informatique

Parallel Rewriting of Graphs through the. Pullback Approach. Michel Bauderon 1. Laboratoire Bordelais de Recherche en Informatique URL: http://www.elsevier.nl/locate/entcs/volume.html 8 pages Parallel Rewriting of Graphs through the Pullback Approach Michel Bauderon Laboratoire Bordelais de Recherche en Informatique Universite Bordeaux

More information

Inherence and Nonsubstantial Particulars: An Object-Oriented View Samuel H. Kenyon

Inherence and Nonsubstantial Particulars: An Object-Oriented View Samuel H. Kenyon Inherence and Nonsubstantial Particulars: An Object-Oriented View Samuel H. Kenyon 09/29/04 Kenyon 2 Introduction In order to tackle the meanings, assumptions, and inconsistencies in Aristotle s Categories[1],

More information

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic Exercise Unit 2: Modeling Paradigms - RT-UML UML: The Unified Modeling Language Statecharts RT-UML in AnyLogic Simulation and Modeling I Modeling with RT-UML 1 RT-UML: UML Unified Modeling Language a mix

More information

Forward declaration of enumerations

Forward declaration of enumerations Doc. no.: N2499=08-0009 Date: 2008-01-09 Project: Programming Language C++ Reply to: Alberto Ganesh Barbati Forward declaration of enumerations 1 Introduction In C++03 every declaration

More information

Applying UML Modeling and MDA to Real-Time Software Development

Applying UML Modeling and MDA to Real-Time Software Development Michael Benkel Aonix GmbH www.aonix.de michael.benkel@aonix.de Applying UML Modeling and MDA to Real-Time Software Development The growing complexity of embedded real-time applications requires presentation

More information

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t Data Reduction - an Adaptation Technique for Mobile Environments A. Heuer, A. Lubinski Computer Science Dept., University of Rostock, Germany Keywords. Reduction. Mobile Database Systems, Data Abstract.

More information

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

2 nd UML 2 Semantics Symposium: Formal Semantics for UML 2 nd UML 2 Semantics Symposium: Formal Semantics for UML Manfred Broy 1, Michelle L. Crane 2, Juergen Dingel 2, Alan Hartman 3, Bernhard Rumpe 4, and Bran Selic 5 1 Technische Universität München, Germany

More information

Model-Independent Differences

Model-Independent Differences Model-Independent Differences Patrick Könemann Technical University of Denmark, Informatics and Mathematical Modelling Richard Petersens Plads, DK-2800 Kgs. Lyngby, Denmark pk@imm.dtu.dk Abstract Computing

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

First Java Program - Output to the Screen

First Java Program - Output to the Screen First Java Program - Output to the Screen These notes are written assuming that the reader has never programmed in Java, but has programmed in another language in the past. In any language, one of the

More information

Lua - Instruction Manual

Lua - Instruction Manual Table of Contents: General information...... 2 Embedding in "X Train"...... 2 Syntax of Lua... 4 What commands are available...... 5 General Lua commands... 5 "Train X" specific commands...... 6 Functions...

More information

Application Programmer. Vienna Fortran Out-of-Core Program

Application Programmer. Vienna Fortran Out-of-Core Program Mass Storage Support for a Parallelizing Compilation System b a Peter Brezany a, Thomas A. Mueck b, Erich Schikuta c Institute for Software Technology and Parallel Systems, University of Vienna, Liechtensteinstrasse

More information

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Computer Science Journal of Moldova, vol.13, no.3(39), 2005 Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Alexandr Savinov Abstract In the paper we describe a

More information

Requirements Specication

Requirements Specication University of Groningen Faculty of Mathematics and Natural Sciences Department of Mathematics and Computing Science Software Engineering and Architecture group Requirements Specication Open Pattern Repository

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #44. Multidimensional Array and pointers

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #44. Multidimensional Array and pointers Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #44 Multidimensional Array and pointers In this video, we will look at the relation between Multi-dimensional

More information

WEEK 5 - APPLICATION OF PETRI NETS. 4.4 Producers-consumers problem with priority

WEEK 5 - APPLICATION OF PETRI NETS. 4.4 Producers-consumers problem with priority 4.4 Producers-consumers problem with priority The net shown in Fig. 27 represents a producers-consumers system with priority, i.e., consumer A has priority over consumer B in the sense that A can consume

More information