A History Concept for Design Recovery Tools

Size: px
Start display at page:

Download "A History Concept for Design Recovery Tools"

Transcription

1 A History Concept for Design Recovery ools Jens H. Jahnke Department of Computer Science University of Victoria PO Box 3055, Victoria B.C. Canada V8W3P6 Jörg P. Wadsack Dept. of Mathematics and Computer Science University of Paderborn Warburger Str Paderborn, ermany Albert Zündorf Dept. of Mathematics and Computer Science University of Braunschweig Post box Braunschweig, ermany ABSRAC Many tools have been developed for recoverg the design of legacy software. Interactively voked abstraction operations and re-design transformations play a central role these tools. A limitation of most existg approaches is, however, that they assume a mostly lear transformation process. hey provide little support for iteration, recursion and cremental changes durg the recovery process. Nevertheless, empirical results suggest that real-world abstraction and reengeerg processes are fact highly iterative. A history mechanism that explicitly matas dependencies of all performed transformations can overcome this mismatch. Based on our experience with a specialized implementation of such a mechanism, we present a generalized history concept as an add-on to existg tools that support design recovery. Keywords: Software matenance, design recovery, reengeerg, reverse engeerg, history concept, software transformation. Introduction Over two thirds of today s expenditures formation technology are spent on the matenance of existg software systems. Re-documentation and reengeerg activities account for largest part of this budget. Many reengeerg tools have been developed dustry and academia order to support this task, e.g., [-7]. Such tools provide mechanisms for creatg conceptual abstractions of the analyzed software system. ypically, these abstractions are created semi-automatic, humancentered processes. Interactively voked abstraction and re-design transformations play a central role these tools. However, case studies with dustrial applications have shown that the applicability of current tools for human-centered design recovery is limited [8]. his is because they assume a relatively lear process with little support for process iteration, recursion and cremental changes durg the reengeerg process. he left-hand side of Figure illustrates that reengeers typically loose large parts of the transformations performed manually when process iterations occur, i.e., when new analysis knowledge ab the legacy system becomes available. Unfortunately, such iterations occur frequently real-world abstraction and recovery processes [8]. A history mechanism that explicitly matas dependencies among all performed transformations can tackle this problem. Such a history mechanism provides the tracability necessary for iterative reengeerg processes. he right-hand side of Figure illustrates this idea of an explicit dependency relation among all performed transformations. Let us assume that the black box represents knowledge ab a software artifact that has been updated durg the iteration. hen, the dependency formation stored the proposed history mechanism enables the selective removal of only those transformation operations that (transitively) depend on the changed formation. In [9], we presented a dedicated implementation of such a mechanism our database reverse engeerg environment. Based on our experience with this prototype, we now suggest a generalized history concept as an add-on to various kds of existg design recovery tools. Of course, different tools have different application domas (e.g., object-oriented design, database schema design) but the vast majority of tools have common that they are graph-based, i.e., they store model data abstract syntax graphs (AS). herefore, our approach makes use of the theoretical concept of graphtransformation systems [0] as a suitable abstraction for all of these tools. his theoretical basis allows us to uniformly describe various kds of design recovery processes terms of graph processes []. Furthermore, the tegration of our history mechanism with existg tools is facilitated by the current itiative for adoptg a common graph-based data terchange format [2]. he rest of this paper is structured as follows. In the next section, we give an overview on related work the area of document consistency preservation and history

2 Layer QOCA Resultg abstraction Layer QOCA Work package 3 (2 pers.) Work package 3 (2 pers.) lear (time-based) dependency actual (structural) dependency (History raph) ranformations Iterations Legacy Code model artifact Legacy Code Figure. Iteration support with and with a History Mechanism for matag transformation dependencies management. Section 3 troduces concepts that are fundamental for our approach, namely the concept of a graph and a graph grammar. Based on this defition, Section 4 les the proposed History Management mechanism. An application of this mechanism and its tegration with an existg design tool is presented Section 5. Fally, Section 6 closes with concludg remarks and future research directions. 2. Related work he described research is related to various existg approaches to matag ter-document consistency the software (forward) engeerg process. Perhaps the most proment technology this regard is mechanisms for version and configuration management like e.g., the concurrent versions system (CVS) [3]. In prciple, mechanisms like CVS can be used to create version histories of recovered design documents. However, such version histories do not consider the actual structural dependencies among the transformations performed the abstraction process. Instead, the version history merely reflects a time-oriented view on termediate stages reached the (last iteration of the) recovery process. Consequently, traditional version management systems can only provide limited support for iteration as illustrated on the left-hand side of Figure. Leferg and Schurr suggest a dedicated formalism called riple raph rammars for specifyg structure dependencies among Abstract Syntax raphs (ASs) [4]. his formalism is used the IPSEN project for generatg tegration tools that mata consistency and propagate changes from software design documents to the implementation code and vice versa [5]. Nowadays most commercially available development environments provide (limited) support for propagatg changes between software documents on different levels of abstraction. Unfortunately, very few reverse engeerg tools provide similar support for propagatg changes of the knowledge ab a legacy system to its reverse engeered abstraction. Current reverse engeerg tools assume a similar waterfall-like process that was imposed by forward engeerg tools two decades ago. ypical human-centered reverse engeerg tools (e.g., [, 2, 6, 7]) provide extractor programs for populatg the tool repository. he contents of the repository can then be visualized and transformed with various kds of viewers and editors. With most current tools, these two steps () legacy system analysis and formation extraction, and (2) formation transformation and abstraction cannot be iterated with losg the teractive work performed on abstractg and transformg the formation on the legacy system. One notable exception is the DB-MAIN database reverse engeerg environment developed by the University of Namur, Belgium [8]. DB-MAIN logs the history of all teractions durg teractive abstraction and refactorg sessions order to better support contuous evolution relational databases. his allows the reuse of the operational knowledge accumulated durg the different phases of a reengeerg process. he DB- MAIN history mechanism addresses issues of

3 consistency matenance durg evolution of the persistent data (schemas) durg the life cycle of a database application. Hick et al. have developed different evolution strategies dependg on whether the evolution takes place the physical, logical or conceptual schema. Each performed transformation is recorded precisely and completely to make its version possible. he history has to be monotone and lear, which implies no iteration and no branches. Concurrent work is not supported, i.e., only one person can modify the schema at the same time. he DB-MAIN consistency management strategies depend on the reversibility property of the transformations applied. his property makes it possible that changes can be propagated from one schema level to another. In case that a transformation recorded the history becomes valid, i.e., its precondition fails, the reengeer has to resolve the consistencies manually. In contrast to the History Mechanism proposed this paper, DB-MAIN does not allow the reengeer to get back (and modify) the itial state of the legacy system. he Varlet database-reengeerg environment is another tool that supports iterative analysis and abstraction processes [9]. In this approach, Varlet logs all database schema transformations voked by the user an automated logbook (cludg their pre- and postconditions and terdependencies). Moreover, the itial, low-level representation of the legacy schema remas available for the user. his enables the user to revisit the startg pot of his/her teractive modification at a later pot the reverse engeerg process order to modify existg or add new low-level formation on the legacy system. he new formation might stem from applyg additional extractor programs or from terviews conducted with developers or other human experts. Whenever the itial representation of the legacy system is changed, Varlet uses the logged transformation dependencies to determe which teractive operations are affected by the modifications. he pre-conditions of these transformations are then re-evaluated and only those transformations that fail this test are undone. After this propagation step, the consistency of the extracted formation on the legacy system and its teractively created abstraction has been reestablished. his paper describes a generalization of the Varlet consistency management mechanism as a reusable component to be tegrated with existg transformationbased reverse engeerg tool. Compared to the origal mechanism implemented Varlet, the functionality of the consistency management component described this paper is limited to determg and undog all teractive operations that are affected by a change of the legacy system. his means that the preconditions of operations are not re-evaluated. he rationale behd this limitation is to mimize the requirements on tools that can terface with our component. he re-evaluation of the performed operations would require tools to explicitly disclose all checks (preconditions) performed prior to the execution of each operation. his formation is normally not available. 3. raph ransformation Systems raphs are commonly used by reverse engeerg tools for ternal representation of software artifacts, e.g., [, 2, 6, 7]. Of course, the specific graph models used different tools might comprise variations with respect to their expressiveness. Nevertheless, most graph models have common that they support different node- and edge types, attributes and directed edges. Recently, the reverse engeerg research community has developed a standard graph model (called XL) to promote tool teroperability [2]. Sce the start of this itiative 998, an creasg number of tools have been extended with XL import / export functionality. In the followg, we will use the XL graph model as a basis for presentg our approach. Still, the reader should note that our technique does not depend on usg this particular model. he XL raph Model In the followg, we will use the UML for givg a brief, semi-formal troduction to the XL graph model. We refer to [0] for a complete formalization of attributed graph models. A more -depth discussion of XL can be found [2]. Figure 2 shows a UML specification of the XL graph model. refersdocument 0.. ype raph -directed XLDocument refers_type hasype N Node Default cardalities source of composition source of association 0..n ypedelement AttributedElement -id to 0..N raphelement Edge from Relation Figure 2. XL graph model Lk A graph can be directed or undirected. It contas graph elements form of nodes, edges, and relations. Relations conta a set of lks potg to one graph element each. All graph elements have unique identifiers. 0..n

4 XL also cludes the notion of hypergraphs, i.e., graph elements can themselves conta sub-graphs. Furthermore, XL supports typed graph elements (where the type of a graph element is itself a graph element of a type graph). We omit a more detailed discussion of the XL typg concept sce it is not a required this paper. Note that the actual exchange of XL graph stances is performed a canonical textual format based on XML [2]. raph productions raph transformation systems (or graph grammars) are typically defed as a start graph and a set of graph transformation rules (or graph productions). enerally, graph productions can be defed as a pair of graphs, a set of application conditions, and a set of attribute transfer clauses. he two graphs are called the left-hand side and the right-hand side of the production, respectively. raph elements of the left-hand side might also appear on the right-hand side. raph productions and their application semantics have been formalized based on algebra theory. A complete formalization of these concepts is of the scope of this paper and can be found [0]. he tuitive understandg provided by the followg semi-formal defitions is sufficient for the purpose of this paper. Deftion. raph production A graph production is a tuple r:(p, Q, C, ), where P(r)=P and Q(r)=Q are two graphs over the same sets of node and edge type labels; P(r) is called the left-hand side and Q(r) is called the right-hand side of r. C is a set of application conditions. is a set of attribute transfer clauses. Deftion 2. Application of a graph production A production r:(p,q,c,) is applied to a host graph the followg five steps: choose an occurrence of the left-hand side P. P has an occurrence graph if there is a morphism m:p which preserves source and target and labellg mappgs. check the application conditions C. If they hold the occurrence of P is called a match for P. remove all elements that have been matched to elements P that do not occur Q, addg all elements to that are new Q. he occurrence of Q the modified host graph is called comatch. transferg attribute values to nodes that match nodes Q(r) accordg to the attribute transfer clauses specified. We denote (r,m) for the graph that is produced by the application of a production r to a graph ( a match m). Note that graph productions are typically represented graphically, e.g., usg the notation proposed by Schurr et al. [9]. In the followg, we will discuss the sample graph production shown Figure 3. Operations viewed as graph productions In prciple, any tool for software design recovery can be viewed as specific graph transformation systems, where each modifyg operation offered to the user is represented by a graph production. For example, consider a refactorg operation generalize that creates an abstract super class for a selected class c and generalizes some members of c. Figure 3 shows a representation of this refactorg operation form of a graph production. Production generalize(c:class, a:members [0..n], name: strg); left-hand side 4 :Class c:class 2 contas contas 3 :Member a:member transfer 5.abstract=true; 5.name=name; 4 :Class :Member c:class contas 2 3 right-hand side 5 contas a:member Figure 3. raph production generalize :Class he unique identification number the upper left corner of each node allows identifyg identical nodes on both sides of the production. Node represents the class to be generalized. Node 3 represents the set of members that will move to the new abstract super class (Node 5). Node 2 represents the set of all remag class members. Node 4 considers the case that the class to be generalized might already have a super class 2. In this case, Node 4 will become the super class of the new generalization Note, that both nodes (2 and 3) are determed by the user s selection, parameter a. 2 he dashed border of Node 4 specifies that a match for this node is optional. We adopted this notation from [9]. his notation is merely an abbreviation sce productions with optional graph elements can always be presented by a set of productions with optional graph elements.

5 (Node 5). he transfer clause at the bottom of Figure 3 specifies that the new class is abstract by assigng the true value to the correspondg attribute of Node 5. Creatg Reengeerg Histories with raph Processes he overall goal of our research is the development of mechanisms that facilitate cremental and iterative reverse engeerg processes. racability is the most important prerequisite for such a mechanism, i.e., case of process iterations, we have to be able to trace and propagate modifications of the itial representation of the legacy system to its transformed representation, order to re-establish consistency. he requirement for tracability implies some sort of logbook ab the terdependencies of all operations voked by the user. We will now propose the realization of such a logbook based on the formal concept of graph processes []. Analogously to the treatment of operations as graph productions, we can view operation applications as applications of graph productions. In the previous section, we poted that the application of a graph production could be defed by its match and comatch. More precisely, the application of a production r:(p,q,c,) to a host graph is defed as a tuple of morphisms (m:p, m :Q (r,m) ) where m denotes the match and m denotes the comatch. As an example Figure 5 shows an application of production generalize to the sample host graph Figure 4. he left-hand side of Figure 5 shows the match while the right-hand side shows the comatch. Person:Class source worksfor:reference target mame:member contas operation application (called transformation for short). he bottom part of Figure 6 illustrates this representation for our example Figure 5. 3 generalize(:programmer, {:p_plan}, Employee ); 4 Person:Class programmer:class contas contas 2 3 log:member p_plan:member 4 Person:Class 5 programmer:class Employee:Class contas contas 2 3 log:member p_plan:member Figure 5. Application of production generalize raph Element raph Element ransfor mation raph Element Person: Class programmer: Class log: Member p_plan: Member (general form) generalize (example) raph Element Person: Class programmer: Class log: Member p_plan: Member Employee: Class programmer:class contas contas Company:Class contas Figure 6. raph representation of operation applications log:member pension_plan:member Figure 4. Sample host graph address:member Real-world reverse engeerg processes volve numerous such operation applications voked by the user, which might partly depend on results created by previous operation applications. A history mechanism has to keep track of these operation applications and their terdependencies. Aga, we propose a graph structure for this purpose. he top part of Figure 6 shows the general form of such a graph-based representation of an We call the graph that stores the dependencies among transformations the History raph. Figure 7 illustrates the structure of this graph, where -nodes represent transformations and -nodes represent elements of the Abstract Syntax raph (AS). Each transformation consumes certa AS elements and replaces them by other AS elements. In graph grammar terms, the consumed elements represent the match of the 3 For readability reasons, we only listed graph nodes as put and put of transformation generalize. However, the ternal representation of the History raph matas nodes and edges as put or put of transformations.

6 correspondg graph production, while the produced AS elements represent its comatch. From the above discussion follows that the History raph, which represents a particular software refactorg history, contas the current AS of the refactored SW systems as a subgraph. his subgraph can easily be determed by filterg all graph elements that have not been consumed by transformations, i.e., that are not sourced by an edge that pots to a transformation node (bold -nodes Figure 7). Figure 7. History raph Likewise, the History raph also subsumes all previous states of the AS durg the teractive refactorg process. hus, it is possible to trace back to any past state the editg history. he History raph is a specific implementation of the general concept of a graph process as troduced by Corradi et al. []. Corradi defes a graph process as a partially ordered structure, plus suitable mappgs which relate the elements of this structure to those of a given typed graph grammar. 4. Usg History raphs for consistency management reengeerg tools We have employed the concept of History raphs for consistency management durg iterations design recovery processes. For example, assume that midway durg a reverse engeerg process the reengeer learns ab additional dependencies the legacy system. Ideally, (s)he would like to add this new formation to the itially extracted representation of the legacy system and validate those refactorg transformations which might have to be undone due to the new knowledge. he History raph concept serves exactly this purpose. With its help the user can get back to the itial representation of the legacy system, make all desired changes, and determe which transformations might have lost their validity. In the Varlet project, we developed a prototype reverse engeerg tool that uses History raphs for this purpose [9]. In addition to their put/put dependencies, transformations the Varlet History raph also log their pre- and post-conditions. his enabled us to perform the validation of transformations fully automatically. On the downside, the History raph mechanism built Varlet requires tight tegration with the rest of the tool and cannot be reused other existg tools. herefore, we have developed a lightweight History raph mechanism that can loosely be tegrated with existg reverse engeerg tools. 4. ool tegration prerequisites A tool has to meet certa requirements to be able to terface with our History raph component. We have mimized these requirements as much as possible to enable the tegration with many different environments. Basically, a tool has to be able to. import and export its ternal AS structure (preferably XL format), and 2. for each design recovery transformation on the AS o report the graph elements that represent the put of the transformation 4 o report the graph elements that represent the put of the transformation XL format. An creasg number of current reengeerg tools fulfill Requirement, e.g., Rigi [2]. Others can easily be extended because they are end-user programmable. For example, we have extended UMLStudio 5 our sample application described the next section. Requirement 2 is easy to achieve if Requirement is satisfied because the put and put of a transformation can be represented as two XL graphs (i.e., the match and the comatch accordg to Defition 2). he sequence diagram Figure 8 illustrates a typical teraction scenario between a design recovery tool and the History Management component. Note that the diagram covers a sgle iteration the recovery process only. he process starts with the creation of the start graph by passg it to the XLHistory component, (addraph(s)). hen, a sequence of transformations is performed by the user. hese transformations (t to 4 Includg all graph elements that are checked checks of preconditions of the operation. 5

7 tn) are logged the History raph. his is done by callg function addransformation(l,r,t), where l and r denote - and put of transformation t, respectively. At any pot time, the user can spect the editg history. his is done by vokg the createhistory() operation. As result (s)he obtas the list of the transformation t to tn with the respective time stamps. ool addraph (s) XLHistory operation (s)he gets the current graph ((new)) with the undone transformation. 4.2 History Management algorithm Internally, we use an extended version of the XL graph model for matag the History raph: we have troduced transformation nodes that carry a timestamp and a name attribute (cf. Figure 9). ransformation nodes are created automatically by the History component for each call to addransformation. he timestamp is used to log the time when a transformation has occurred and the name logs the name of the correspondg operation. refers_type addransformation (l, r, t)... addransformation (ln, rn, tn) createhistory () (trafos) getraph (t) (cur) ype hasype 0.. raph refersdocument -directed 0.. XLDocument ypedelement AttributedElement -id from raphelement Edge 0..N 0..n to Node ransformation -name -timestamp Figure 9. raph model for History raphs addchanges (c) propagatechanges () (new) Figure 8. Interaction with History Component When an iteration of the reverse engeerg process is required, the tool restores the start graph by passg the transformation t to the XLHistory component (cf. getraph(t)). Subsequently, the user can perform all necessary additions and/or modifications to the itial representation of the legacy systems and submit the changes to the XLHistory (cf. addchanges(c)). Likewise, the user may restore any other situation by callg getraph (tx) with an termediate transformation tx and by editg that situation. Now the User can use the logged history formation to re-establish consistency through an cremental undo of all transformations that depend on the changes to the start graph (propagatechange()). As result of this he algorithm Figure 0 describes the work performed by our History Management component. At the begng, it receives the start graph from the reengeerg tool. his start graph (S) becomes the itial history graph (H). hen, the History Management component logs all voked transformations the history graph. If process iterations occur the History Management component recovers the itial start graph and sends it to the tool. Le 8 specifies that the start graph can be recovered by takg all graph elements from H that do not represent transformations and do not comprise comg -edges. Once the reengeer has completed the modifications to the itial start graph, it is sent back to the History Management component, which computes the changed graph elements (les 9 and 0). Subsequently, all transformations affected by the changes are determed by transitively traversg - and -edges the History raph. Note that we use regular path expressions to represent graph traversals, as proposed [9]. Fally, all affected transformations are removed from the History raph (Le 2) and the updated tool graph is computed and sent to the tool (les 3 and 4). his is illustrated Figure where the star represents a changed graph element the start graph and the circle

8 marks dependent graph elements that are to be removed from the History raph. In this figure, the bold -nodes represent the updated tool graph that is sent back to the tool. Algorithm History Management Beg. Receive Start raph from tool (addraph(s)) 2. H := S; // S becomes the itial History raph 3. Repeat 4. Repeat 5. Log tool transformation H (addransformation) 6. Until Start raph requested (getraph) 7. Recover Start raph and send it to tool 8. S := {e H type(e) rafo e.(<-out-)= } 9. Receive changed Start raph (addchanges(c)) 0. Receive progagate command (propagatechanges) // determe all affected transformations. Affectedrafos:= c.(-->).(-->&-->)* // undo affected transformations 2. H:= H (Affectedrafos.--> Affectedrafos) 3. Compute updated tool graph and send to tool 4. := {e H type(e) rafo e.(-in->)= } 5. Display Undo Report (Affectedrafos) 6.Loop End. Figure 0. Algorithm History Management patterns has been troduced by amma et al. as a way of communicatg design solutions for frequently recurrg problems [20]. Usg design patterns adds a level of abstraction that facilitates description and understandg of software systems. Recently, researchers have begun to use the notion of patterns the design recovery and documentation of legacy software systems, e.g., [2]. In our study, we have used UMLStudio 6, a commercial UML design tool, for recoverg design patterns from the Abstract Wdow oolkit (AW) 7. We have chosen UMLStudio because it has advanced mechanisms for end-user programmability: UMLStudio provides a scriptg language called PragScript. PragScript is a LISP dialect and facilitates traversal of the entire ternal data structure of the tool. UMLStudio is shipped with a collection of sample scripts and complete onle documentation. It took us approximately four days of work to develop the required XL export/import functionality by customizg these scripts. UMLStudio provides (limited) functionality for reverse engeerg UML class diagrams from Java source code. However, it does not provide automated means for detectg the existence of design patterns. hey have to be detected teractively by addg pattern annotations to the constitutg design elements. For this purpose, we added a pattern annotation function to UMLStudio. he screen shot Figure 2 illustrates this approach for an excerpt of six sample classes of the AW 8. When the reengeer has discovered an stance of a design pattern, (s)he can select its constituents and voke the pattern annotation function. In our screenshot, the reengeer has recovered three stances of design patterns, namely Association, Composite, and Delegation. Some design patterns depend on the existence of others, e.g., the Composite depends on Delegation and Association. We were unable to visualize the direction of such dependencies UMLStudio. Nevertheless, we believe that this does not cause a real problem for users who know the design patterns they are tryg to detect. Figure. Updated and pruned History raph 5. Application example: Design Pattern Recovery he first application of our History Mechanism has been the doma of database design recovery. We reported on this case study a previous paper [9]. Sce then, we have worked on a generalization of our approach to extend existg tools various other domas. In the followg, we describe an application example the doma of design pattern recovery. he notion of design For simplicity reasons, we compressed the diagram by hidg operations and attributes that are not required for the discussion of our example.

9 Figure 2. Design pattern detection with UMLStudio In our theoretical model, we can treat the implemented pattern annotation function as a graph production. If we use our History concept to log transformations necessary for recoverg and annotatg the three design patterns Figure 2, we obta the History raph Figure 3: the first annotation transformation makes the formation explicit that the two references parent and component between Component and Contaer constitute a sgle association. he second transformation annotates the existence of a delegation between the two pat methods both classes. Of course, the recovery of this pattern requires additional knowledge, which dicates that a delegation deed happens between the two operations. One possibility to retrieve this formation is to vestigate the implementation of these operations. Another frequently used heuristic takes equally named operations as an dication for a delegation. his heuristic was used our example Figure 2. Fally, the third design pattern (Composite) is based on the existence of the delegation, an association and an heritance relationship. Let us assume that the reengeer discovered at a later pot that the namg heuristic did not apply this case and the name equality between both operations is just cocident. hen, the Delegation annotation (and all other dependent transformations) have to be undone to avoid consistency. Usg the History component, the reengeer can go back to the itial version of the class model and enter the formation that the knowledge ab the pat operations has changed. hen, the propagation algorithm would automatically undo all dependent operations while the other manual recovery work is consistently preserved. Attr Attr Op Op Attr Attr Assoc Ass oc Op Op Inherit Compos. Delegat. Delegat. Inherit Assoc Figure 3. History raph for design pattern detection 6. Conclusions and future work Mechanisms that allow for iterative and explorative refactorg processes human-centered reengeerg tools are crucial for the usability of these tools. Only few currently existg tools provide such mechanisms [9, 8]. Moreover, these mechanisms are usually tightly tegrated with the rest of the tool and cannot be reused other tool environments. he approach presented this paper is based on our practical experiences with one of these mechanisms [9] and attempts to generalize the volved concepts to make them reusable. he recent

10 movement of the reengeerg community towards toolteroperability based on a common graph exchange format (XL) opens up an opportunity to develop reusable backbone components like the History Manager described this paper. In a previous paper, we have shown that our approach is feasible and scalable [9]. his application was the doma of data reverse engeerg. his paper demonstrates that the History concept can be generalized for other application domas (recovery of objectoriented design patterns) and tegrated with existg reengeerg tools. Our future work will be on improvg the terfacability and usability of our History component. We tend to implement a user terface with a history browser. Acknowledgements he described research has been supported part by the National Science and Research Counsel of Canada (NSERC). Many thanks to Vladislav Krasnyanskiy for his support implementg the current History Management component. References [] Muller, H., S. illey, and K. Wong. Understandg Software Systems usg Reverse Engeerg echnology: Perspectives from the Rigi Project. CASCON ' oronto Ontario, Canada: IBM. [2] Storey, M.A. and H. Muller. Manipulatg and Documentg Software Structures usg SHriMP Views. International Conference Software Matenance. 995: IEEE CS Press. [3] Henrard, J., et al. Program Understandg Database Reverse Engeerg. DEXA' Vienna, Austria. [4] Ebert, J., B. Kullbach, and A. Panse, he Extract- ransform-rewrite Cycle - A Step towards MetaCARE. 997, Fachberichte Informatik, Universität Koblenz-Landau: Koblenz. [5] Cremer, K. A ool Supportg the Re-Design of Legacy Applications. 2nd Euromicro Conference on Software Matenance and Reengeerg. 998: IEEE-CS Press. [6] risworld, W.., et al., ool Support for Planng the Restructurg of Data Abstractions Large Systems. IEEE ransactions on Software Engeerg, (7): p [7] Jahnke, J.H. and A. Zundorf. Usg raph rammars for Buildg the Varlet Database Reverse Engeerg Environment. heory and Application of raph ransformations Paderborn, ermany: University of Paderborn, ermany. [8] Jahnke, J.H. and A. Walenste. Reverse Engeerg ools as Media for Imperfect Knowledge. Workg Conference on Reverse Engeerg (WCRE 2000) Brisbane, Australia: IEEE Computer Society. [9] Jahnke, J.H. and J.P. Wadsack. Integration of analysis and redesign activities formation system reengeerg. 3rd European Conference on Software Matenance and Reengeerg (CSMR'99) Amsterdam, NL: IEEE Computer Society. [0] Rozenberg,., ed. Handbook of raph rammars and Computg by raph ransformation. Vol.. 999, World Scientific. [] Corradi, A., U. Montanari, and F. Rossi, raph processes. Fundamenta Informaticae, IOS Press, (3): p [2] Holt, R., et al. XL: owards a Standard Exchange Format. Workg Conference on Reverse Engeerg (WCRE) Brisbane, Australia: IEEE-CS Press. [3] Simpson, M., CVS Version Control and Branch Management. Dr. Dobb's Journal of Software ools, (25): p. 08,0-4. [4] Leferg, C. and A. Schurr, Specification of Integration ools, Buildg tightly tegrated software development environments - he IPSEN Project, M. Nagl, Editor. 996, Sprger Verlag: Berl. [5] Nagl, M., ed. Buildg tightly tegrated software development environments - he IPSEN Project. LNCS. Vol , Sprger: Berl. [6] Rajala, N., D. Campara, and N. Mansurov. Insight - Reverse Engeer Case ool. Intl. Software Engeerg Conference (ICSE-'99). 999: ACM Press. [7] Kullbach, B., et al. Program Comprehension Multi-Language Systems. Workg Conference on Reverse Engeerg (WCRE) Hawaii, USA: IEEE-CS Press. [8] Hick, J.-M., et al. Strategies pour l'evolution des applications de bases de donnees relationnelles : l'approche DB-MAIN. XVIIe congress INFORSID, La arde, France [9] Schurr, A., A. Wter, and A. Zundorf. raph rammar Engeerg with PRORES. European Software Engeerg Conference (ESEC). 995: Sprger Verlag. [20] amma, E., et al., Design patterns : elements of reusable object-oriented software. Addison-Wesley professional computg series. 995, Readg, Mass.: Addison-Wesley. xv, 395. [2] Keller, R.K., et al., eds. he SPOOL Approach to Pattern-Based Recovery of Design Components. Advances Software Engeerg. opics Evolution, Comprehension, and Evaluation, ed. E. H. and O. anir. 200, Sprger-Verlag.

7.3.3 A Language With Nested Procedure Declarations

7.3.3 A Language With Nested Procedure Declarations 7.3. ACCESS TO NONLOCAL DATA ON THE STACK 443 7.3.3 A Language With Nested Procedure Declarations The C family of languages, and many other familiar languages do not support nested procedures, so we troduce

More information

A Linear Logic Representation for BPEL Process Protocol *

A Linear Logic Representation for BPEL Process Protocol * Applied Mathematics & Information Sciences An International Journal 5 (2) (2011), 25S-31S A Lear Logic Representation for BPEL Process Protocol * Jian Wu 1 and Lu J 2 1 Department of Computer Science and

More information

Version 4, 12 October 2004 Project handed out on 12 October. Complete Java implementation due on 2 November.

Version 4, 12 October 2004 Project handed out on 12 October. Complete Java implementation due on 2 November. CS 351 Programmg Paradigms, Fall 2004 1 Project 2: gnuplot Version 4, 12 October 2004 Project handed out on 12 October. Compe Java implementation due on 2 November. 2.1 The task Implement a utility for

More information

Subtyping: An introduction

Subtyping: An introduction Subtypg: An troduction Brigitte Pientka November 26, 2007 We will briefly describe the basics about subtypg. Up to now, we have shown how to enrich a language by addg new language constructs together with

More information

A Consistent Design Methodology to Meet SDR Challenges

A Consistent Design Methodology to Meet SDR Challenges Published the proceedgs of Wireless World Research Forum, Zurich, 2003 A Consistent Design Methodology to Meet SDR Challenges M. Holzer, P. Belanović, and M. Rupp Vienna University of Technology Institute

More information

A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink

A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink A Prototype for Guideline Checking and Model Transformation in Matlab/Simulink Holger Giese, Matthias Meyer, Robert Wagner Software Engineering Group Department of Computer Science University of Paderborn

More information

Method of Semantic Web Service Discovery and Automatic Composition

Method of Semantic Web Service Discovery and Automatic Composition 298 JOURNAL OF EMERGING TECHNOLOGIES IN WEB INTELLIGENCE, VOL. 6, NO. 3, AUGUST 2014 Method of Semantic Web Service Discovery and Automatic Composition Yuem Wang Suqian College, 3 rd Department, Suqian,

More information

Efficient Identification of Design Patterns with Bit-vector Algorithm

Efficient Identification of Design Patterns with Bit-vector Algorithm Efficient Identification of Design Patterns with Bit-vector Algorithm Olivier Kaczor 1, Yann-Gaël Guéhéneuc 1, and Sylvie Hamel 2 1 GEODES 2 LBIT Department of Informatics and Operations Research University

More information

Enhancement in Weighted PageRank Algorithm Using VOL

Enhancement in Weighted PageRank Algorithm Using VOL IOSR Journal of Computer Engeerg (IOSR-JCE) e-issn: 2278-0661, p- ISSN: 2278-8727Volume 14, Issue 5 (Sep. - Oct. 2013), PP 135-141 Enhancement Weighted PageRank Algorithm Usg VOL Sonal Tuteja 1 1 (Software

More information

Articulating and Enforcing Authorisation Policies with UML and OCL

Articulating and Enforcing Authorisation Policies with UML and OCL Articulatg and Enforcg Authorisation Policies with UML and OCL Karsten Sohr Department of Mathematics and Computer Science Universität Bremen Bibliothekstr. 1 28359 Bremen, Germany sohr@tzi.de Gail-Joon

More information

Contextual Analysis (2) Limitations of CFGs (3)

Contextual Analysis (2) Limitations of CFGs (3) G53CMP: Lecture 5 Contextual Analysis: Scope I Henrik Nilsson University of Nottgham, UK This Lecture Limitations of context-free languages: Why checkg contextual constrats is different from checkg syntactical

More information

Fuzzy Systems. Fuzzy Systems in Knowledge Engineering. Chapter 4. Christian Jacob. 4. Fuzzy Systems. Fuzzy Systems in Knowledge Engineering

Fuzzy Systems. Fuzzy Systems in Knowledge Engineering. Chapter 4. Christian Jacob. 4. Fuzzy Systems. Fuzzy Systems in Knowledge Engineering Chapter 4 Fuzzy Systems Knowledge Engeerg Fuzzy Systems Christian Jacob jacob@cpsc.ucalgary.ca Department of Computer Science University of Calgary [Kasabov, 1996] Fuzzy Systems Knowledge Engeerg [Kasabov,

More information

An example DFA: reaching definitions

An example DFA: reaching definitions Dataflow analysis: what is it? Dataflow analysis A common framework for expressg algorithms that compute formation ab a program Why is such a framework useful? Dataflow analysis: what is it? A common framework

More information

There is usually quite a big difference

There is usually quite a big difference UNIVERSAL DATA MODELS FOR By Len Silverston There is usually quite a big difference nature various manufacturg enterprises. Each manufacturg enterprise s products may be very unique, ir manufacturg processes

More information

Avisual environment for visual languages

Avisual environment for visual languages cience of Computer Programmg 44 (2002) 181 203 www.elsevier.com/locate/scico Avisual environment for visual languages Roswitha Bardohl Technical niversity, Berl, Germany Abstract The visual environment

More information

An XML Viewer for Tabular Forms for use with Mechanical Documentation

An XML Viewer for Tabular Forms for use with Mechanical Documentation An XML Viewer for Tabular Forms for use with Mechanical Documentation Osamu Inoue and Kensei Tsuchida Dept. Information & Computer Sciences Toyo University 2100, Kujirai, Kawagoe Saitama, 350-8585, Japan

More information

A Genetic Algorithm for the Number Partitioning Problem

A Genetic Algorithm for the Number Partitioning Problem A Algorithm for the Number Partitiong Problem Jordan Junkermeier Department of Computer Science, St. Cloud State University, St. Cloud, MN 5631 USA Abstract The Number Partitiong Problem (NPP) is an NPhard

More information

Definition and Expansion of Composite Automata in IOA MIT-LCS-TR-959. Joshua A. Tauber and Stephen J. Garland

Definition and Expansion of Composite Automata in IOA MIT-LCS-TR-959. Joshua A. Tauber and Stephen J. Garland Defition and Expansion of Composite Automata IOA MIT-LCS-TR-959 Joshua A. Tauber and Stephen J. Garland July 31, 2004 2 Contents 1 Introduction 1 2 Illustrative examples 3 3 Defitions for primitive automata

More information

Implementing Routing Policy

Implementing Routing Policy Implementg Routg Policy A routg policy structs the router to spect routes, filter them, and potentially modify their attributes as they are accepted from a peer, advertised to a peer, or redistributed

More information

Implementing Routing Policy

Implementing Routing Policy A routg policy structs the router to spect routes, filter them, and potentially modify their attributes as they are accepted from a peer, advertised to a peer, or redistributed from one routg protocol

More information

On the Improvement of Weighted Page Content Rank

On the Improvement of Weighted Page Content Rank On the Improvement of Weighted Page Content Rank Seifede Kadry and Ali Kalakech Abstract The World Wide Web has become one of the most useful formation resource used for formation retrievals and knowledge

More information

Implementing Routing Policy

Implementing Routing Policy A routg policy structs the router to spect routes, filter them, and potentially modify their attributes as they are accepted from a peer, advertised to a peer, or redistributed from one routg protocol

More information

Supplementary Notes on Concurrent ML

Supplementary Notes on Concurrent ML Supplementary Notes on Concurrent ML 15-312: Foundations of Programmg Languages Frank Pfenng Lecture 25 November 21, 2002 In the last lecture we discussed the π-calculus, a mimal language with synchronous

More information

Pattern composition in graph transformation rules

Pattern composition in graph transformation rules Pattern composition in graph transformation rules András Balogh and Dániel Varró Department of Measurement and Information Systems Budapest University of Technology and Economics H-1117 Magyar tudosok

More information

Dependence-Driven Delimited CPS Transformation for JavaScript

Dependence-Driven Delimited CPS Transformation for JavaScript Dependence-Driven Delimited CPS Transformation for JavaScript Laure Philips Joeri De Koster Wolfgang De Meuter Coen De Roover Software Languages Lab, Vrije Universiteit Brussel, Belgium {lphilips, jdekoste,

More information

A Lightweight Language for Software Product Lines Architecture Description

A Lightweight Language for Software Product Lines Architecture Description A Lightweight Language for Software Product Lines Architecture Description Eduardo Silva, Ana Luisa Medeiros, Everton Cavalcante, Thais Batista DIMAp Department of Informatics and Applied Mathematics UFRN

More information

AGG: A Graph Transformation Environment for Modeling and Validation of Software

AGG: A Graph Transformation Environment for Modeling and Validation of Software AGG: A Graph Transformation Environment for Modeling and Validation of Software Gabriele Taentzer Technische Universität Berlin, Germany gabi@cs.tu-berlin.de Abstract. AGG is a general development environment

More information

Towards Control of Evolutionary Games on Networks

Towards Control of Evolutionary Games on Networks 53rd IEEE Conference on Decision and Control December 15-17, 2014. Los Angeles, California, USA Towards Control of Evolutionary Games on Networks James R. Riehl and Mg Cao Abstract We vestigate a problem

More information

Software Architecture Recovery based on Dynamic Analysis

Software Architecture Recovery based on Dynamic Analysis Software Architecture Recovery based on Dynamic Analysis Aline Vasconcelos 1,2, Cláudia Werner 1 1 COPPE/UFRJ System Engineering and Computer Science Program P.O. Box 68511 ZIP 21945-970 Rio de Janeiro

More information

Towards Better Support for Pattern-Oriented Software Development

Towards Better Support for Pattern-Oriented Software Development Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,

More information

Feature-Oriented Modelling in BIP: A Case Study

Feature-Oriented Modelling in BIP: A Case Study Feature-Oriented Modellg BIP: A Case Study Cecylia Bocovich Joanne Atlee University of Waterloo Email: {cbocovic, jmatlee}@uwaterloo.ca Abstract In this paper, we vestigate the usage of Behaviour- Interaction-Priority

More information

Automatic Derivation of AADL Product Architectures in Software Product Line Development

Automatic Derivation of AADL Product Architectures in Software Product Line Development Automatic Derivation of AADL Product Architectures Software Product Le Development Javier González-Huerta, Silvia Abrahão, Emilio Insfran ISSI Research Group, Universitat Politècnica de València Camo de

More information

[RT98] B. Rumpe, V. Thurner. Refining Business Processes. In: Seventh OOPSLA Workshop on Precise Behavioral Semantics (with an Emphasis on OO

[RT98] B. Rumpe, V. Thurner. Refining Business Processes. In: Seventh OOPSLA Workshop on Precise Behavioral Semantics (with an Emphasis on OO Reng Busess Processes Bernhard Rumpe, Veronika Thurner Department of Computer Science, Technical University of Munich Arcisstr., 8090 Munich, Germany email: frumpe j thurnerg@.tum.de Abstract In this paper,

More information

Fully Persistent Graphs Which One To Choose?

Fully Persistent Graphs Which One To Choose? Fully Persistent Graphs Which One To Choose? Mart Erwig FernUniversität Hagen, Praktische Informatik IV D-58084 Hagen, Germany erwig@fernuni-hagen.de Abstract. Functional programs, by nature, operate on

More information

Global Optimization of Integrated Transformers for High Frequency Microwave Circuits Using a Gaussian Process Based Surrogate Model

Global Optimization of Integrated Transformers for High Frequency Microwave Circuits Using a Gaussian Process Based Surrogate Model Global Optimization of Integrated Transformers for High Frequency Microwave Circuits Usg a Gaussian Process Based Surrogate Model Bo Liu, Yg He, Patrick Reynaert, Georges Gielen ESAT-MICAS, Katholieke

More information

Zomerlust Systems Design (CK1997/001363/23) trading as ZSD

Zomerlust Systems Design (CK1997/001363/23) trading as ZSD Zomerlust Systems Design (CK1997/001363/23) tradg as ZSD Unit D11, Clareview Busess Park 236 Lansdowne Rd fo@zsd.co.za http://www.zsd.co.za P.O. Box 46827 Glosderry, 7702 South Africa +27-21-683-1388 +27-21-674-1106

More information

php mysql live projects training

php mysql live projects training [Class Room and Onle * ] Mysql with Live Projects Trag is available free of charge, and the Computer Centre provides the complete source code for users to build, customize and was recorded as the most

More information

Feature-Oriented Modelling in BIP: A Case Study

Feature-Oriented Modelling in BIP: A Case Study Feature-Oriented Modellg BIP: A Case Study Cecylia Bocovich Joanne Atlee University of Waterloo Email: {cbocovic, jmatlee}@uwaterloo.ca Abstract In this paper, we vestigate the usage of Behaviour- Interaction-Priority

More information

Automatic Reconstruction of the Underlying Interaction Design of Web Applications

Automatic Reconstruction of the Underlying Interaction Design of Web Applications Automatic Reconstruction of the Underlying Interaction Design of Web Applications L.Paganelli, F.Paternò C.N.R., Pisa Via G.Moruzzi 1 {laila.paganelli, fabio.paterno}@cnuce.cnr.it ABSTRACT In this paper

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

Design and analysis of quality information for data warehouses Jeusfeld, M.A.; Quix, C.; Jarke, M.

Design and analysis of quality information for data warehouses Jeusfeld, M.A.; Quix, C.; Jarke, M. Tilburg University Design and analysis of quality formation for data warehouses Jeusfeld, M.A.; Quix, C.; Jarke, M. Published : Conceptual Modelg - ER'98 Publication date: 1998 Lk to publication Citation

More information

Scheduling complex streaming applications on the Cell processor. LIP Research Report RR-LIP

Scheduling complex streaming applications on the Cell processor. LIP Research Report RR-LIP Schedulg complex streamg applications on the Cell processor Matthieu Gallet 1,3,4 Mathias Jacquel 1,3,4 Loris Marchal 2,4 1 ENS Lyon 2 CNRS 3 Université de Lyon 4 LIP laboratory, UMR 5668, ENS Lyon CNRS

More information

On Secure Distributed Data Storage Under Repair Dynamics

On Secure Distributed Data Storage Under Repair Dynamics On Secure Distributed Data Storage Under Repair Dynamics Sameer Pawar Salim El Rouayheb Kannan Ramchandran Electrical Engeerg and Computer Sciences University of California at Berkeley Technical Report

More information

An Annotation Tool for Semantic Documents

An Annotation Tool for Semantic Documents An Annotation Tool for Semantic Documents (System Description) Henrik Eriksson Dept. of Computer and Information Science Linköping University SE-581 83 Linköping, Sweden her@ida.liu.se Abstract. Document

More information

A Transformation Tool for ODE Based Models

A Transformation Tool for ODE Based Models A Transformation Tool for ODE Based Models Ciro B. Barbosa, Rodrigo W. dos Santos, Ronan M. Amorim, Leandro N. Ciuffo, Fairus Manfroi, Rafael S. Oliveira, and Fernando O. Campos FISIOCOMP, Laboratory of

More information

3. Sequential Logic 1

3. Sequential Logic 1 Chapter 3: Sequential Logic 1 3. Sequential Logic 1 It's a poor sort of memory that only works backward. Lewis Carroll (1832-1898) All the Boolean and arithmetic chips that we built previous chapters were

More information

MIXED-SIGNAL VLSI DESIGN OF ADAPTIVE FUZZY SYSTEMS

MIXED-SIGNAL VLSI DESIGN OF ADAPTIVE FUZZY SYSTEMS IE-SIGNAL VLSI ESIGN OF AAPTIVE FZZY SYSTES I. Baturone, S. Sánchez-Solano, J. L. Huertas Instituto de icroelectrónica de Sevilla - Centro Nacional de icroelectrónica Avda. Rea ercedes s/n, (Edif. CICA)

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

COP-5555 PROGRAMMING LANGUAGEPRINCIPLES NOTES ON RPAL

COP-5555 PROGRAMMING LANGUAGEPRINCIPLES NOTES ON RPAL COP-5555 PROGRAMMING LANGUAGEPRINCIPLES NOTES ON 1. Introduction is a subset of PAL, the Pedagogic Algorithmic Language. There are three versions of PAL:, LPAL, and JPAL. The only one of terest here is.

More information

An Teaching Quality Evaluation System Based on Java EE

An Teaching Quality Evaluation System Based on Java EE Software Engeerg 2016; 4(2): 27-33 http://www.sciencepublishggroup.com/j/se doi: 10.11648/j.se.20160402.14 ISSN: 2376-8029 (Prt); ISSN: 2376-8037 (Onle) An Teachg Quality Evaluation System Based on Java

More information

Optimization of Test/Diagnosis/Rework Location(s) and Characteristics in Electronic Systems Assembly Using Real-Coded Genetic Algorithms

Optimization of Test/Diagnosis/Rework Location(s) and Characteristics in Electronic Systems Assembly Using Real-Coded Genetic Algorithms Proceedgs of the International Test Conference, October 3 Optimization of Test/Diagnosis/Rework Location(s) and Characteristics Electronic Systems Assembly Usg Real-Coded Genetic Algorithms Zhen Shi and

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

E-CARES Project: Reengineering of Telecommunication Systems

E-CARES Project: Reengineering of Telecommunication Systems E-CARES Project: Reengineering of Telecommunication Systems Christof Mosler Department of Computer Science 3, RWTH Aachen University, Ahornstr. 55, 52074 Aachen, Germany, christof.mosler@rwth-aachen.de

More information

sort items in each transaction in the same order in NL (d) B E B C B C E D C E A (c) 2nd scan B C E A D D Node-Link NL

sort items in each transaction in the same order in NL (d) B E B C B C E D C E A (c) 2nd scan B C E A D D Node-Link NL ppears the st I onference on Data Mg (200) LPMer: n lgorithm for Fdg Frequent Itemsets Usg Length-Decreasg Support onstrat Masakazu Seno and George Karypis Department of omputer Science and ngeerg, rmy

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

Theory of Graph Transformations

Theory of Graph Transformations Theory of Graph Transformations Helge Wiemann University of Bremen studies of computer science hwiemann@tzi.de Abstract This paper shall give an introduction into the theory of rule-based graph transformation

More information

Formalizing Fact Extraction

Formalizing Fact Extraction atem 2003 Preliminary Version Formalizing Fact Extraction Yuan Lin 1 School of Computer Science University of Waterloo 200 University Avenue West Waterloo, ON N2L 3G1, Canada Richard C. Holt 2 School of

More information

Integrating data flow equations with UML/Realtime

Integrating data flow equations with UML/Realtime Integratg data flow equations with UML/Realtime Lutz Bichler, Ansgar Radermacher and Andreas Schürr University of the Federal Armed Forces Munich Institute for Software Technology 85577 Neubiberg, Germany

More information

Thimble Threads for MLj

Thimble Threads for MLj Thimble Threads for MLj Ian Stark Laboratory for Foundations of Computer Science Division of Informatics University of Edburgh Ian.Stark@ed.ac.uk Abstract. Thimble is a concurrency library for MLj, the

More information

Reviewing High-Radix Signed-Digit Adders

Reviewing High-Radix Signed-Digit Adders .9/TC.4.39678, IEEE Transactions on Computers Reviewg High-Radix Signed-Digit s Peter Kornerup University of Shern Denmark Abstract Higher radix values of the form β = r have been employed traditionally

More information

Static Analysis for Fast and Accurate Design Space Exploration of Caches

Static Analysis for Fast and Accurate Design Space Exploration of Caches Static Analysis for Fast and Accurate Design Space Exploration of Caches Yun iang, Tulika Mitra Department of Computer Science National University of Sgapore {liangyun,tulika}@comp.nus.edu.sg ABSTRACT

More information

Evolution of XML Applications

Evolution of XML Applications Evolution of XML Applications University of Technology Sydney, Australia Irena Mlynkova 9.11. 2011 XML and Web Engineering Research Group Department of Software Engineering Faculty of Mathematics and Physics

More information

SYSTOLIC IMPLEMENTATION OF SAMPLE-BY-SAMPLE CONJUGATE GRADIENT ALGORITHM

SYSTOLIC IMPLEMENTATION OF SAMPLE-BY-SAMPLE CONJUGATE GRADIENT ALGORITHM SYSOLIC IMPLEMENAION OF SAMPLE-BY-SAMPLE CONJUGAE GRADIEN ALGORIHM Ram Baghaie Helski University of echnolog Laboratory of elecommunications echnolog P.O. Box 3 15 HU, Fland ABSRAC In this paper, we consider

More information

Bridging the Gap Between Requirements and Design with Use Case Maps. Daniel Amyot, Ph.D.

Bridging the Gap Between Requirements and Design with Use Case Maps. Daniel Amyot, Ph.D. Use Case Maps Bridgg the Gap Between Requirements and Design with Use Case Maps Daniel Amyot, Ph.D. Daniel_Amyot@mitel.com http://www.usecasemaps.org Carleton University November 15, 2001 Page 2 Requirements

More information

Customized Content Dissemination in Peer-to-Peer Publish/Subscribe

Customized Content Dissemination in Peer-to-Peer Publish/Subscribe Customized Content Dissemation Peer-to-Peer Publish/Subscribe Hojjat Jafarpour, Mirko Montanari, Sharad Mehrotra and Nali Venkatasubramanian Department of Computer Science University of California, Irve

More information

On Secure Distributed Data Storage Under Repair Dynamics

On Secure Distributed Data Storage Under Repair Dynamics On Secure Distributed Data Storage Under Repair Dynamics Sameer Pawar, Salim El Rouayheb, Kannan Ramchandran University of California, Bereley Emails: {spawar,salim,annanr}@eecs.bereley.edu. Abstract We

More information

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages

Developing Web-Based Applications Using Model Driven Architecture and Domain Specific Languages Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain

More information

ASKNet: Creating and Evaluating Large Scale Integrated Semantic Networks

ASKNet: Creating and Evaluating Large Scale Integrated Semantic Networks ASKNet: Creatg and Evaluatg Large Scale Integrated Semantic Networks Brian Harrgton and Stephen Clark Oxford University Computg Laboratory Wolfson Buildg, Parks Road Oxford, United Kgdom {brian.harrgton,stephen.clark}@comlab.ox.ac.uk

More information

Modelling and Verifying an Object-Oriented Concurrency Model in GROOVE

Modelling and Verifying an Object-Oriented Concurrency Model in GROOVE arxiv:1505.05265v1 [cs.pl] 20 May 2015 Modellg and Verifyg an Object-Oriented Concurrency Model GROOVE Master s Thesis Claudio Corrodi ETH Zurich clcorrodethz.ch October 10, 2014 April 10, 2015 Supervised

More information

Scenario-based Synthesis of Annotated Class Diagrams in UML

Scenario-based Synthesis of Annotated Class Diagrams in UML Scenario-based Synthesis of Annotated Class Diagrams in UML Petri Selonen and Tarja Systä Tampere University of Technology, Software Systems Laboratory, P.O.Box 553, FIN-33101 Tampere, Finland {pselonen,tsysta}@cs.tut.fi

More information

An Application-Specific Network-on-Chip for Control Architectures in RF Transceivers

An Application-Specific Network-on-Chip for Control Architectures in RF Transceivers An Application-Specific Network-on-Chip for Control Architectures RF Transceivers Siegfried Brandstätter DMCE GmbH & Co KG Freistädter Straße 4, 44 Lz, Austria Email: SiegfriedX.Brandstaetter@tel.com Mario

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

More information

Author's personal copy ARTICLE IN PRESS. Information Systems 35 (2010) Contents lists available at ScienceDirect. Information Systems

Author's personal copy ARTICLE IN PRESS. Information Systems 35 (2010) Contents lists available at ScienceDirect. Information Systems Information Systems 35 (2010) 111 138 Contents lists available at ScienceDirect Information Systems journal homepage: www.elsevier.com/locate/fosys VASA: An algebra for vague spatial data databases $ Alejandro

More information

A SURVEY OF WEB MINING ALGORITHMS

A SURVEY OF WEB MINING ALGORITHMS A SURVEY OF WEB MINING ALGORITHMS 1 Mr.T.SURESH KUMAR, 2 T.RAJAMADHANGI 1 ASSISTANT PROFESSOR, 2 PG SCHOLAR, 1,2 Department Of Information Technology, K.S.Rangasamy College Of Technology ABSTRACT- Web

More information

Formal Reasoning about Communication Systems II

Formal Reasoning about Communication Systems II Formal Reasong about Communication Systems II Automated Fast-Track Reconfiguration Christoph Kreitz Abstract. We present formal techniques for improvg the performance of group communication systems built

More information

Utilizing a Common Language as a Generative Software Reuse Tool

Utilizing a Common Language as a Generative Software Reuse Tool Utilizing a Common Language as a Generative Software Reuse Tool Chris Henry and Stanislaw Jarzabek Department of Computer Science School of Computing, National University of Singapore 3 Science Drive,

More information

Change Detection System for the Maintenance of Automated Testing

Change Detection System for the Maintenance of Automated Testing Change Detection System for the Maintenance of Automated Testing Miroslav Bures To cite this version: Miroslav Bures. Change Detection System for the Maintenance of Automated Testing. Mercedes G. Merayo;

More information

RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS

RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS Jon Whittle 1, João Araújo 2, Ambrosio Toval 3, and Jose Luis Fernández Alemán 3 1 QSS / NASA Ames Research Center, M/S 269-2, Moffett Field,

More information

Dynamic reverse engineering of Java software

Dynamic reverse engineering of Java software Dynamic reverse engineering of Java software Tarja Systä 1 Abstract. An experimental environment has been built to reverse engineer the run-time behavior of Java software. Event trace information is generated

More information

Lisbon Mobility Simulations for Performance Evaluation of Mobile Networks

Lisbon Mobility Simulations for Performance Evaluation of Mobile Networks Lisbon Mobility Simulations for Performance Evaluation of Mobile Networks Pedro Vieira 1,3, Manuel Vieira 1,2 1 DEETC / Instituto Superior de Engenharia de Lisboa, Tel. +351 21 8317291, FAX +351 21 8317114

More information

This article was origally published a journal published by Elsevier, and the attached copy is provided by Elsevier for the author s benefit and for the benefit of the author s stitution, for non-commercial

More information

Data Reverse Engineering of Legacy Databases to Object Oriented Conceptual Schemas

Data Reverse Engineering of Legacy Databases to Object Oriented Conceptual Schemas Electronic Notes in Theoretical Computer Science 74 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume74.html 13 pages Data Reverse Engineering of Legacy Databases to Object Oriented Conceptual

More information

The onprom Toolchain for Extracting Business Process Logs using Ontology-based Data Access

The onprom Toolchain for Extracting Business Process Logs using Ontology-based Data Access The onprom Toolchain for Extracting Business Process Logs using Ontology-based Data Access Diego Calvanese, Tahir Emre Kalayci, Marco Montali, and Ario Santoso KRDB Research Centre for Knowledge and Data

More information

Unit 1 Introduction to Software Engineering

Unit 1 Introduction to Software Engineering Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering

More information

type environment updated subtype sound

type environment updated subtype sound #1 Type Checkg #2 One-Slide Summary A type environment gives types for free variables. You typecheck a let-body with an environment that has been updated to conta the new let-variable. If an object of

More information

Toward Automated Schema-directed Code Revision

Toward Automated Schema-directed Code Revision Toward Automated Schema-directed Code Revision Raquel Oliveira, Pierre Genevès, Nabil Layaïda To cite this version: Raquel Oliveira, Pierre Genevès, Nabil Layaïda. Toward Automated Schema-directed Code

More information

Towards semantic merging of versions of BDI agent systems

Towards semantic merging of versions of BDI agent systems Towards semantic merging of versions of BDI agent systems Yingzhi Gou, Hoa Khanh Dam and Aditya Ghose School of Computer Science and Software Engineering University of Wollongong New South Wales 2522,

More information

Copyright 2017 Ingenico epayments. PrestaShop Extension

Copyright 2017 Ingenico epayments. PrestaShop Extension PrestaShop Extension Table of contents 1. Disclaimer 2. Installation PrestaShop 2.1 Requirements 2.2 Installation Process 3. Configuration 3.1 Ingenico epayments back office 3.1.1 Admistrative details

More information

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis

Detecting Structural Refactoring Conflicts Using Critical Pair Analysis SETra 2004 Preliminary Version Detecting Structural Refactoring Conflicts Using Critical Pair Analysis Tom Mens 1 Software Engineering Lab Université de Mons-Hainaut B-7000 Mons, Belgium Gabriele Taentzer

More information

Pattern-Oriented Development with Rational Rose

Pattern-Oriented Development with Rational Rose Pattern-Oriented Development with Rational Rose Professor Peter Forbrig, Department of Computer Science, University of Rostock, Germany; Dr. Ralf Laemmel, Department of Information Management and Software

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

A Domain-Customizable SVG-Based Graph Editor for Software Visualizations

A Domain-Customizable SVG-Based Graph Editor for Software Visualizations A Domain-Customizable SVG-Based Graph Editor for Software Visualizations Tony Lin, Feng Zou, Holger M. Kienle and Hausi A. Müller University of Victoria, Canada {gaoyun,fzou,kienle,hausi}@cs.uvic.ca Abstract

More information

A Schedulability-Preserving Transformation Scheme from Boolean- Controlled Dataflow Networks to Petri Nets

A Schedulability-Preserving Transformation Scheme from Boolean- Controlled Dataflow Networks to Petri Nets Schedulability-Preserving ransformation Scheme from oolean- ontrolled Dataflow Networks to Petri Nets ong Liu Edward. Lee University of alifornia at erkeley erkeley,, 94720, US {congliu,eal}@eecs. berkeley.edu

More information

Using Graph Rewriting to Specify Software Architectural Transformations

Using Graph Rewriting to Specify Software Architectural Transformations Using Graph Rewriting to pecify oftware Architectural ransformations Hoda Fahmy Richard C. Holt Dep t. of Computer cience Dep t. of Computer cience University of oronto University of Waterloo fahmyh@cs.toronto.edu

More information

Towards End-User Adaptable Model Versioning: The By-Example Operation Recorder

Towards End-User Adaptable Model Versioning: The By-Example Operation Recorder Towards End-User Adaptable Model Versioning: The By-Example Operation Recorder Petra Brosch, Philip Langer, Martina Seidl, and Manuel Wimmer Institute of Software Technology and Interactive Systems Vienna

More information

1 Introduction Closure conversion is a critical program transformation for higher-order languages that elimates lexically nested, rst-class functions

1 Introduction Closure conversion is a critical program transformation for higher-order languages that elimates lexically nested, rst-class functions Typed Closure Conversion for Recursively-Dened Functions (Extended Abstract) Greg Morrisett 1 Cornell University Robert Harper 2 Carnegie Mellon University Abstract Much recent work on the compilation

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

Statechart Modeling with Fujaba

Statechart Modeling with Fujaba GraBaTs 04 Preliminary Version Statechart Modeling with Fujaba Leif Geiger Albert Zündorf University of Kassel, Software Engineering Research Group, Wilhelmshöher Allee 73, 34121 Kassel, Germany {leif.geiger

More information

For many years, the creation and dissemination

For many years, the creation and dissemination Standards in Industry John R. Smith IBM The MPEG Open Access Application Format Florian Schreiner, Klaus Diepold, and Mohamed Abo El-Fotouh Technische Universität München Taehyun Kim Sungkyunkwan University

More information

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information