A Comparison of Reverse Engineering Tools based on Design Pattern Decomposition *

Size: px
Start display at page:

Download "A Comparison of Reverse Engineering Tools based on Design Pattern Decomposition *"

Transcription

1 A Comparison of Reverse Engineering Tools based on Design Pattern Decomposition * Francesca Arcelli, Stefano Masiero, Claudia Raibulet, Francesco Tisato DISCo Dipartimento di Informatica Sistemistica e Comunicazione Università degli Studi di Milano-Bicocca, I-20126, Milan, Italy {arcelli, masiero, raibulet, tisato}@disco.unimib.it Abstract The usefulness of design patterns in forward engineering is already well-known and several tools provide support for their application in the development of software systems. While the role of design patterns in reverse engineering is still argued primarily due to their informal definition which leads to various possible implementations of each pattern. One of the most discussed aspects related to design patterns is about the need of their formalization according to the drawbacks this can represent. Formalization leads to the identification of the socalled sub-patterns, which are the recurring fundamental elements design patterns are composed of. In this paper we analyze the role sub-patterns play in two reverse engineering tools: FUJABA and SPQR. Attention is focused on how sub-patterns are exploited to define and to detect design patterns. To emphasize the similarities and differences between the two approaches, the Composite Design Pattern is considered as example. 1. Introduction The original aim of design patterns [9] has been to extract the common aspects of the design of available software architectures and to formulate in an informal way known and optimized solutions to specific design problems. The awareness of the design patterns existence has raised new challenging issues related to their role, specification, and usage/implementation. In the context of forward engineering, the role of design patterns is to provide optimized (common) solutions to well-known problems, solutions that have been already tested and validated in available implementations. This accelerates the development process ensuring also an improved quality of software. Initially, research has been concentrated on the implementation of design patterns, focusing on the possibility of using them automatically during the development of software systems. Problems occurred immediately due to the informal specification of design patterns, which is motivated by the intention to keep them independent of any implementation language and to provide a reasonable degree of flexibility of the pattern instantiation once the application context has been identified. Hence, actual implementations of design patterns are personalized by programmers to applications exigencies leading to possible variants of the same pattern. The tracing problem raises here, because it becomes difficult to keep track of variations of patterns. In the context of reverse engineering, the recognition of design patterns provides additional information related to the rationale behind the design. They do not only provide information about how the architecture has been built, but also why it has been built in a specific way due to the semantic design patterns incorporate. Primarily, the idea of detecting design patterns in the reverse engineering process, has encountered strong resistance of both the pattern and reverse engineering communities because of their various possible implementations and interpretations, as well as of the various intents of using the same structure of a single pattern [5, 10]. In this context, there is a strong need to formalize design patterns. Inevitably, formalization leads to the identification of regular recurring elements. Considering patterns as compositions of simpler elements may reduce significantly the creation of variants in forward engineering, while it increases the * This research is partially supported by the MAIS project financed by MIUR Ministero dell Istruzione, dell Università e della Ricerca in the context of the FIRB program Fondo per gli Investimenti della Ricerca di Base.

2 possibility of identifying applied patterns in reverse engineering. The rest of the paper is organized as follows. Section 2 introduces the main steps of design patterns detection process. Section 3 presents two tools which decompose patterns to improve their detection: FUJABA [12] and SPQR [20]. Attention is concentrated on how sub-components are used to define and detect design patterns, and which are, according to tools authors, the pros and cons these tools provide. Our comments are introduced at the end of each tool presentation as a discussion paragraph. The section ends with a comparison of the two tools focused on the decomposition of design patterns. Conclusions are dealt within Section 4. Section 5 describes our current and future work by introducing two of our projects that exploit sub-components for design pattern definition and detection in Java software systems. 2. Design Pattern Detection Steps The main steps a tool performs to detect design patterns are related to source code information extraction, archetypes recognition, and presentation of results (see Figure 1). Information extracted from source code depends on the elements searched by the detection algorithm to identify design patterns. Usually, extracted information is represented in a language-independent way, such as an abstract syntax tree (AST) or an abstract syntax graph (ASG). Besides extracted information, the detection algorithm receives as input a catalog of design patterns in which patterns are described according to the meta-representation formalism used by the detection algorithm. The detection algorithm is based on matching techniques which try to map representations of design patterns stored in the catalog to the representation of the extracted information from source code. Results of the detection algorithm are provided in a graphical (UML diagrams) or textual mode (ASCII or XML files). Design pattern detection tools can be evaluated with respect to the following metrics: precision and recall [17]. Precision is given by the ratio of recognized and really implemented patterns, while recall is calculated as the division between implemented and recognized patterns. In our opinion, these two evaluation parameters are mostly dependent on the catalog of design patterns and the information used by the detection algorithm to identify design patterns. Various possible implementations of design patterns are recognized based on the information stored in the design pattern catalog. Such information is rather incomplete constraining the detection algorithm to require human intervention and/or additional information/mechanisms (i.e., fuzzy logic) to complete, if possible, its task. [10] categorizes design pattern detection tools according to the degree of the human intervention/involvement in the detection process: manual, semi-automatic, and automatic. We propose a categorization of detection tools based on the information they use during detection: - tools considering the entire representation of design patterns (PTIDEJ [2], CrocoPat [4]); it means the detection algorithm tries to map (at once) the entire pattern on the representation of the source code; usually, this approach claims for a complete catalog containing all possible implementations of design patterns. - tools considering a minimal set of key structures design patterns consist of ([17], SPOOL [10]); it means the detection algorithm tries to individuate (at once) the core set of structures a pattern is built on; this approach claims a further analysis of design patterns leading to the identification of their core elements; - tools considering the sub-components design patterns are built of (FUJABA [12], SPQR [20]); it means the detection algorithm works incrementally by individuating first the sub-components of patterns, then trying to combine these subcomponents into patterns; obviously, subcomponents are explicitly described and stored in the design pattern catalog. Of interest for the present paper is the last category of tools because they imply a further formalization of design patterns that conserve their flexibility. Figure 1. Main Steps of Design Pattern Detection

3 3. Comparing Design Pattern Detection Tools through the Role of Sub-Patterns FUJABA (From Uml To Java And Back Again) [12] and SPQR (System for Pattern Query and Recognition) [20] will be presented through the formalization mechanisms they use to define design patterns and the influence these mechanisms have in their detection process FUJABA Design Pattern Definition Design patterns are defined in terms of UML class diagrams, which successfully describe their structure. The behavioral aspects of design patterns are expressed through story-diagrams [7, 24], which are a combination of activity and interaction diagrams. Within FUJABA, common parts of design patterns are defined separately as sub-patterns [14], which can be further (re-)used as atomic (basic) elements (like classes, methods, attributes) to define other subpatterns or patterns. Sub-patterns may have associated a direct correspondence to code (such as reference, association, generalization, delegation of implementation, etc.) [14]. The construction of patterns or sub-patterns from other sub-patterns exploits the inheritance and use relationships (as they are defined by the OO paradigm). Implementation variants are generated by the multitude of possible implementations of method bodies (i.e., head/foot controlled loops) and associations (i.e., the multiplicity of binary associations) [14]. In addition to the implementation variants, FUJABA introduces also design variants [14]. Design patterns that may have structurally different variants with the same semantics have associated more than one design variant. In the pattern definition class diagram, variants of a design (sub-)pattern may be specified totally independent with each other (i.e., the Composite design pattern has two variants (1) the variant with two classes: Component and Composite, and (2) the variant with one class in which Component and Composite are unified in one single class) or may be connected through an inheritance relationship (i.e., the MultiLevelInheritance sub-pattern is defined as a sub-class of the Generalization sub-pattern). Design Pattern Detection Information extracted from source code is expressed as an abstract syntax graph (ASG), which is further enriched with annotations during the design pattern detection process. Annotations indicate the presence of patterns or sub-patterns in the ASG under analysis. Annotations are added on an ASG by using graph transformation (or rewrite) rules [15, 24] previously defined. Each transformation rule defines formally a (sub-)pattern. Additional nodes and edges inserted in the ASG indicate which sub-graphs correspond to the identified (sub-)patterns. Annotations are then used as atomic elements of the ASG by transformation rules defining other (sub- )patterns, which contain the identified annotations as constituent parts. The class diagram defining (sub-)patterns specifies the types of nodes and edges of an (annotated) ASG. Transformation rules capture both structural and behavioral aspects of design (sub-)patterns. Each transformation rule has two parts: the left hand one defines the (sub-)pattern by indicating the sub-graph that has to be isomorphically bound to the ASG of the source code, while the right hand one consists of the left hand side together with the modifications to the sub-graph (nodes and edges) to be created and/or deleted. Transformation rules have a hierarchical organization which assigns them a level number [14]. Rules depending only on information extracted from source code belong to level one, while rules depending on other rules (annotations) get a number level consistent with the topological order of rules. Recursive rules included in cycles concerning their dependencies get the same level number. The design pattern detection algorithm annotates the ASG of the source code for every found (sub- )pattern. Nevertheless it is a deductive algorithm [14, 15], it uses a combined bottom-up (applying transformation rules starting from the minimum level number) and top-down (applying transformation rules starting from the highest level number) strategy, which accelerates the provision of the first relevant analysis results. Level numbers associated to transformation rules are used by the detection algorithm to establish the order of applying rules on the ASG and to switch between the two types of strategies (when transformation rules in the queue cannot be applied by the current strategy). Analysis results have associated a fuzzy value which leads to the automatic acceptation or rejection when the uncertainty value is higher or lower than previously-defined values. During the detection process, a software engineer may change the uncertainty value associated to a (sub-)pattern, and moreover s/he may add, delete, or adapt transformation rules to the domain of interest. Variants explicitly defined either as design or implementation are automatically detected. Those

4 which are not explicitly defined may be inferred with a certain level of uncertainty expressed by fuzzy values [13]. In this way, a transformation rule may match several implementation variants with different degrees of uncertainty. Pros and Cons Even if FUJABA is presented as a tool for software systems written in Java, it can be extended to other programming languages too (also non object-oriented) [14]. The representation of the source code as an ASG sustains the previous affirmation. The definition of patterns and sub-patterns and their behavior through (standard) UML diagrams makes it easier for software engineers to understand, use, and extend FUJABA. Authors assert their approach provides a precise definition of all GoF-patterns [9], albeit with the use of alternative variants to conserve their design flexibility. Design variants are introduced to avoid the explosion of annotations in the ASG, which may lead to scalability problems. For the same reason, implementation variants are used in conjunction with fuzzy logic, which leads to less reliability. Authors argue their implementation variants are mostly related to sub-patterns which are significantly less complex than patterns [14]. The introduction of sub-patterns makes the detection process incremental enabling the provision of first results in a short time with consistent information. FUJABA allows the intervention of the software engineer during the detection process making it a semiautomatic tool for design pattern recognition. Discussion Sub-patterns are described as common parts of patterns which have associated their own definition. In the context of FUJABA, sub-patterns have been primarily introduced in the attempt to reduce the dimension of the design pattern catalog. The most interesting aspect of sub-patterns is that they can be further (re-)used as basic (atomic) elements both in the definition and the detection process of other patterns. FUJABA lacks in describing how sub-patterns should be identified neither it provides a catalog of subpatterns. Using sub-patterns in pattern definition, more levels of abstraction have been introduced between the source code and the high-level specification of design patterns. In this way, the differences between two levels of abstraction are significantly reduced. A subpattern may have different implementation variants, but at the upper abstraction level(s) it is seen as a unique element. For instance, the Composite design pattern may be expressed through three sub-patterns: Generalization, Association, and IN_Delegation (see Figure 2). Each of these sub-patterns may have several variants. The problem of the Composite variants is reduced to the variants of three sub-patterns which are far simpler than the Composite pattern. Besides, the three sub-patterns are used also by other design patterns. The existence of intermediate abstraction levels allows the detection algorithm to use both bottom-up and top-down strategies. This leads to having in a short time partial analysis results which can be expressive enough SPQR Design Pattern Definition Design patterns are defined through three different elements: elemental design patterns (EDP), reliance operators, and rho-calculus. EDPs [21, 22, 23] are lowlevel design patterns, which express in a formal denotational semantics a small number of fundamental OO concepts. Design patterns are expressed as compositions of EDPs, which are seen as an intermediate level of abstraction between the source code and the high-level description of design patterns. EDPs capture those mechanisms specific to the OO programming used in the every day implementation of software (i.e., creation of objects, abstraction of interface, delegation of implementation, etc.). SPQR authors assert all twenty-three GoF design patterns can be built of the sixteen EDPs. EDPs and their composition rules are expressed formally in terms of rho-calculus [21], which represents a subset of sigma-calculus [1] extended with new reliance operators. Rho-calculus inherits from sigma-calculus the type definition, object typing, and type subsumption concepts. Reliance operators are defined as direct, quantifiable expressions which indicate whether elements rely or depend on other elements and to what extend they do so. These operators indicate reliance on method invocation, field access, or generalization. Design Pattern Detection SPQR is an automatic design pattern detection tool. It consists of several component tools, corresponding to the main steps of the detection algorithm: source code feature extraction, feature-rule description, rule inference, and query results. Information looked up in the source code corresponds to the rho-calculus concepts used for the definition of EDPs. Source code is represented as an abstract syntax tree from which information is further extracted and stored into a POML file Pattern/Object Markup Language [19], an

5 XML Schema for object-oriented code description. SPQR generates feature-based rules from the POML file and gives them as input to the OTTER theorem prover [20]. In addition, OTTER receives as input the elements of rho-calculus, the EDPs, and the design patterns of interest, all encoded as rules. The theorem prover provides the instances of design patterns found by inferring on the input information and rules. The output of the theorem prover is translated in an XMLbased format and can be used for further analysis (i.e., graphical representation). Design patterns and their implementation variants are not statically described, but they are dynamically inferred through formalized rules. In the context of SPQR, implementation variants are called isotopes [20], and they are seen as variations of code expression that conform to the concepts and roles of EDPs. The catalog of design patterns contains the definition of the EDPs in terms of OO elements and the definition of design patterns in terms of EDPs. Isotopes are dynamically inferred by the theorem prover. Pros and Cons The main advantages of SPQR are consequences of the formalization mechanisms it introduces for the definition of EDPs and their combination rules into design patterns. These mechanisms ensure a highdegree of flexibility to the SPQR approach. Specified through EDPs, design patterns become less complex and easier to understand and to detect. EDPs represent an intermediate level between source code and design patterns, reducing the design patterns detection to the detection of EDPs. As design patterns, also EDPs are language-independent. Due to the rho-calculus formalism, the power of the detection process increases significantly by being able to reduce dynamically variants to their corresponding patterns. SPQR provides a set of core EDPs which are necessary, if not sufficient, to reconstruct all the GoF design patterns. Even if, they are presented as mechanisms to define more complex design patterns EDPs can be seen also as stand-alone mechanisms to analyze software systems due to their capacity of capturing design intents. They can be used for better understanding of the source code in general without identifying complex design patterns. Further, they are particularly adapted for educational purposes in the context of OO software systems. SPQR is presented as an automated toolset for design pattern detection in software systems written in C++ easily extensible to other programming languages. It has a modular structure being composed by several components, which can be independently modified and/or substituted. Authors threshold are related to the code analysis performed according to the concepts expressed through the rho-calculus formalism considered equivalent to a compilation. Currently, no significant differences for the design pattern detection process have been encountered. Discussion The keyword characterizing SPQR is formalization. As the authors sustain, formalization itself increases the flexibility of their approach. The success of SPQR is due to the attention authors give to the aspect how design patterns can be built or rebuilt? rather than how to represent design patterns in another form?. Therefore, attention is concentrated on the functionalities of design patterns, and not on their syntactical representation. SPQR is an automated design pattern detection tool. This is an important aspect demonstrating it is possible to precisely detect design patterns without human intervention. The definition of the EDPs catalog, whether it is complete or not, provides additional understanding of the source code regardless EDPs are used independently or as part of design patterns. The rho-calculus formalism has solved the problem of the implementation variants in an elegant manner. SPQR is presented as a modular tool composed of independent components which can be modified and/or substituted without affecting other components. For instances, authors sustain SPQR is easily extensible for other programming languages by replacing the components that perform code analysis and generate the POML file containing the feature based rules equivalent to the source code. Unfortunately, these adaptations can be performed only by authors because SPQR and its components are not available for download and testing. Also the composition rules of EDPs into design patterns are not presented by authors FUJABA vs. SPQR: Sub-Patterns vs. EDPs Nevertheless the idea of decomposing patterns is not new, in our opinion it has not been exploited in design pattern detection tools previously of FUJABA and SPQR. FUJABA makes use of sub-patterns to reduce the dimension of the design pattern catalog and to reduce the complexity of the elements searched in the source code. It builds a hierarchy of sub-patterns by assigning them a level number which is exploited by the detection algorithm to establish the order of applying transformation rules. Within SPQR, EDPs play a central role: extraction of information from source code is performed according to the elements EDPs are built of, design pattern detection is reduced to the EDPs detection, and design patterns are

6 expressed exclusively through EDPs. EDPs form a plain abstraction level, this meaning they can be detected independently of each other. In our opinion, there is a connection between the names of sub-patterns, respectively elemental design patterns, and the reason for which they have been introduced in the detection tools. Sub-patterns have been born as a consequence of identifying common structural (syntactical) elements in different design patterns. They can be connected with each other through inheritance or use relationships. Hence, subpattern may be considered similar to the sub-class concept. While, elemental design patterns represent independent and simpler design pattern. They capture the essence of the OO concepts used by design patterns. Hence, they are considered elemental elements on which design patterns are built. We have adopted, for this paper, the term subpatterns to express the sub-components of design patterns regardless their original meaning introduced by FUJABA. To summarize, sub-patterns are mostly related to the syntactical form of the components of design patterns, while elemental design patterns are mostly related to the functionalities of the components of design patterns. To sustain this affirmation we present the sub-patterns (see Figure 2) [14] and the EDPs (see Figure 3) [11] the Composite design pattern is composed of. In the FUJABA approach, the Composite pattern is composed of three sub-patterns [14]: Generalization (level 1 based only on source code information), Association and 1N_Delegation (level 2 based on the Reference sub-pattern here not shown for the sake of figure clarity). In the SPQR approach, the Composite pattern is composed of three EDPs: Inheritance, AbstractInterface, and RedirectInFamily. Both cases ignore Leaf class being not relevant for this example. A key question raises here: is there any equivalence/correspondence between sub-patterns and EDPs? In both approaches, three elements have been recognized as parts of the Composite design pattern. At first glance, Generalization corresponds to Inheritance, and 1N_Delegation to RedirectInFamily. What about Association and AbstractInterface, which seem to be different? Another question raises here: are they really equivalent differing only by their name? In the case of Generalization and Inheritance the answer is yes, they differ only by their names. In FUJABA, there is required also an Association between the two classes involved in the Generalization sub-pattern to built the Composite pattern. We ask here, should it be a particular type of Association? We suggest the name Aggregation for such an association. In SPQR, the AbstractInterface indicates the presence of a common interface for operating on an object type family delaying the definition of the actual operation to a later time [23]. Essentially, it captures the abstract feature of the Component class. The conclusion is that Association and AbstractInterface are completely different both in names and in meanings. The 1N_Delegation in FUJABA indicates there is a delegation of implementation between two operations of the two classes connected by a Generalization and an Association. While, in SPQR, the RedirectInFamily redirects some portion of a method s implementation to a possible cluster of classes, of which the current class is a member. As it can be easily concluded, the RedirectInFamily is more complex than 1N_Delegation. In our opinion RedirectInFamily includes both Association and 1N_Delegation. Figure 2. Sub-Patterns of the Composite Design Pattern Figure 3. EDPs of the Composite Design Pattern

7 To summarize, Generalization corresponds to Inheritance, while Association and 1N_Delegation to RedirectInFamily. AbstractInterface is an additional design intent captured only by SPQR. 4. Conclusions Due to the fact design patterns provide common solutions to common problems which are of significant complexity to require additional explanations, it has been born the idea of decomposing patterns and to identify recurring elements they consist of. These recurring elements have been recognized both in the context of forward and reverse engineering, and they have been named fragments [8], motifs [6], minipatterns [16], sub-patterns [12], or elemental design patterns [20]. As the variety of names suggests, there is little agreement what patterns should be decomposed in. From the abstraction point of view, the sub-components of patterns should be situated at the half-way between the source code and the high-level definition of design patterns. Their goal should be to capture design intents, not just being another formalism to represent source code. A hierarchy of sub-patterns simplifies the understanding and the detection of design patterns. We aim at summarizing in the following the main benefits sub-patterns provide for the definition and detection of design patterns: - sub-patterns are less complex than design patterns, hence also the rules their detection is based on are simpler; - design patterns can be described formally as combinations of sub-patterns; - decomposing patterns into sub-patterns do not affect the flexibility of the first once; the variants problems impacts mainly on sub-patterns; - sub-patterns represent an intermediate abstraction level between design patterns and source code; they can be considered also independently from design pattern in the context of reverse engineering due to their ability to incorporate design intents. 5. Current and Further Work Considering the SPQR approach particularly interesting, we have extended it to software systems written in Java [3]. We have used the Recoder [18] framework to parse the source code and to generate its equivalent AST. Further, we have implemented a Visitor [9] to extract the information given as input to the OTTER theorem prover used by SPQR and to encode this information in a POML file. The output of our prototype called J2POML [3] goes in input to the theorem prover of SPQR, which provides a report with the detected design patterns. Further, we are evaluating the idea of using the catalog of EDPs independently of the SPQR approach. This choice considers also that SPQR is based on a mathematical paradigm not commonly used by software engineers, and difficult to be understood and extended for other programming languages or new design patterns. Currently, we have implemented a prototype EDPDetector4Java [11] able to identify EDPs within the Java source code. We have concentrated our attention only on static analysis of the source code. The limitations of such an analysis are generated by the polymorphism of the object-oriented languages. Our approach uses an AST representation of the source code in association with information related to type expressions, reference resolutions, and crossreferences. EDPs belonging to the Object Elements and Type Relation groups [20] are easy to detect through a direct relation with the Java constructs represented in the AST nodes. During the analysis of such a node it is possible to identify an EDP directly or using cross-reference information. The detection of the EDPs belonging to the Method Invocation group [20] is more complex because it requires an analysis of the object types and methods implicated in the interaction. Considering only the static analysis, we cannot detect EDPs precisely, hence we have associated them a degree of uncertainty as in the FUJABA approach. Further work will be concentrated on introducing dynamic analysis of the source code, the identification of mechanisms to infer design patterns from EDPs, and the resolution of implementation variants. Moreover, we intent to experiment the FUJABA tool for the detection of the EDPs defined in the context of SPQR, and to identify similarities and differences between sub-patterns and EDPs. Acknowledgements We would like to thank Jörg Niere from University of Siegen, Germany and Jason McC Smith from University of North Carolina, USA for their collaborations and useful hints. 6. References [1] M. Abadi, and L. Cardelli, A Theory of Objects, Springer- Verlag, New York, Inc., [2] H. Albin-Amiot, P. Cointe, Y. G. Guéhéneuc, and N. Jussien, Instantiating and Detecting Design Patterns: Putting

8 Bits and Pieces Together, Proceedings of the 16 th International Conference on Automated Software Engineering, San Diego, CA, USA, 2001, pp [3] D. Bellinzona, J2POML: Extraction of Information for Design Pattern Recognition from Java Source Code, University of Milano-Bicocca, Milan, Italy, November, [4] D. Beyer, and C. Lewerentz, CrocoPat: Efficient Pattern Analysis in Object-Oriented Programs, Proceedings of the 11 th IEEE International Workshop on Program Comprehension, Los Alamitos, CA, USA, 2003, pp [5] C. Chambers, B. Harrison, and J. Vlissides, A Debate on Language and Tool Support for Design Patterns, Proceeding of the 27 th ACM SIGPLAN-SIGART Symposium on Principles of Programming Languages, Boston, MA, USA, 2000, pp [6] A. H. Eden, Precise Specification of Design Patterns and Tool Support in Their Application." PhD Dissertation. Department of Computer Science, Tel Aviv University, [7] T. Fischer, J. Niere, L. Torunski, and A. Zündorf, Story Diagrams: A New Graph Rewrite Language based on the Unified Modeling Language, Proceedings of the 6 th International Workshop on Theory and Application of Graph Transformation, Paderborn, Germany, LNCS 1764, Springer Verlag, November 1998, pp [8] G. Florijn, M. Meijers, and P. van Winsen, Tool Support for Object Oriented Patterns, Proceedings of the 11 th European Conference on Object-Oriented Programming, Springer Verlag, Berlin, Germany, [9] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: elements of reusable object-oriented software, Addison Wesley, Reading MA, USA, [10] R. K. Keller, R. Schauer, S. Robitaille, and P. Page, Pattern-Based Reverse-Engineering of Design Components, Proceedings of the International Conference on Software Engineering, Los Angeles, CA, USA, 1999, pp [11] S. Masiero, Design Pattern Detection in Reverse Engineering The Role of Sub-Patterns, Master Thesis, University of Milano-Bicocca, Milan, Italy, October, [12] U. Nickel, J. Niere, and A. Zündorf, The FUJABA Environment, Proceedings of the 22 nd International Conference on Software Engineering, Limerick, Ireland, 2000, pp [13] J. Niere, Fuzzy Logic based Interactive Recovery of Software Design, Proceedings of the 24 th International Conference on Software Engineering, Orlando, Florida, USA, 2002, pp [14] J. Niere, W. Schäfer, J. P. Wadsack, L. Wendehals, and J. Welsh, Towards Pattern-Based Design Recovery, Proceedings of the 24 th International Conference on Software Engineering, Orlando, Florida, USA, 2002, pp [15] J. Niere, M. Meyer, and L. Wendehals, User-driven Adaption in Rule-Based Pattern Recognition, Tech. Rep. trri , University of Paderborn, Paderborn, Germany, June [16] M. Ò Cinnéide, Automated Application of Design Patterns: A Refactoring Approach, Ph.D Dissertation, University of Dublin, Trinity College, [17] I. Philippow, D. Streitferdt, M. Riebisch, and S. Naumann, An Approach for Reverse Engineering of Design Pattern, Software and Systems Modeling, Springer Verlag, April [18] Recoder - [19] J. McC. Smith, and D. Stotts, Pattern/Object Markup Language (POML): A Simple XML Schema for Object Oriented Code Description, Tech. Rep , Computer Science Department, University of North Carolina at Chapel Hill, April [20] J. McC. Smith, and D. Stotts, SPQR: Flexible Automated Design Pattern Extraction From Source Code, Proceedings of the 2003 IEEE International Conference on Automated Software Engineering, Montreal QC, Canada, October, 2003, pp [21] J. McC. Smith, and D. Stotts, Elemental Design Patterns and the Rho-calculus: Foundations for Automated Design Pattern Detection in SPQR, Tech. Rep , Computer Science Department, University of North Carolina at Chapel Hill, September [22] J. McC. Smith, and D. Stotts, Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture, Proceedings of the 27 th Annual IEEE/NASA Software Engineering Laboratory Workshop, Greenbelt, MD, 2002, pp [23] J. McC. Smith, An Elemental Design Patterns Catalog, Tech. Rep , Computer Science Department, University of North Carolina at Chapel Hill, December [24] L. Wendehals, Improving Design Pattern Instance Recognition by Dynamic Analysis, Proceedings of the ICSE 2003 Workshop on Dynamic Analysis, Portland, USA, May 2003.

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

Crash course on design patterns

Crash course on design patterns Crash course on design patterns Yann-Gaël Guéhéneuc guehene@emn.fr From Olivier Motelet s course (2001/10/17) École des Mines de Nantes, France Object Technology International, Inc., Canada Design patterns

More information

Components in an Adaptive and QoS-based Architecture

Components in an Adaptive and QoS-based Architecture Components in an Adaptive and QoS-based Architecture Claudia Raibulet, Francesca Arcelli, Mussino Stefano, Mario Riva, Francesco Tisato, Luigi Ubezio Università degli Studi di Milano-Bicocca DISCo Dipartimento

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

A Novel Approach to Automated Design Pattern Detection

A Novel Approach to Automated Design Pattern Detection A Novel Approach to Automated Design Pattern Detection Nikolaos Tsantalis, Alexander Chatzigeorgiou, Spyros T. Halkidis and George Stephanides Department of Applied Informatics, University of Macedonia,

More information

An Expert System for Design Patterns Recognition

An Expert System for Design Patterns Recognition IJCSNS International Journal of Computer Science and Network Security, VOL.17 No.1, January 2017 93 An Expert System for Design Patterns Recognition Omar AlSheikSalem 1 and Hazem Qattous 2 1 Department

More information

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A Meta-Model for Composition Techniques in Object-Oriented Software Development A Meta-Model for Composition Techniques in Object-Oriented Software Development Bedir Tekinerdogan Department of Computer Science University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands E-Mail:

More information

Design Patterns. Gunnar Gotshalks A4-1

Design Patterns. Gunnar Gotshalks A4-1 Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem

More information

Towards a formal model of object-oriented hyperslices

Towards a formal model of object-oriented hyperslices Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This

More information

A Case Study for HRT-UML

A Case Study for HRT-UML A Case Study for HRT-UML Massimo D Alessandro, Silvia Mazzini, Francesco Donati Intecs HRT, Via L. Gereschi 32, I-56127 Pisa, Italy Silvia.Mazzini@pisa.intecs.it Abstract The Hard-Real-Time Unified Modelling

More information

Case Studies in Automated Design Pattern Detection in C++ Code using SPQR

Case Studies in Automated Design Pattern Detection in C++ Code using SPQR Technical Report TR05-013 Department of Computer Science Univ. of North Carolina at Chapel Hill Case Studies in Automated Design Pattern Detection in C++ Code using SPQR Jason McC. Smith and David Stotts

More information

Design Pattern Detection and Software Architecture Reconstruction: an Integrated Approach based on Software Micro-structures

Design Pattern Detection and Software Architecture Reconstruction: an Integrated Approach based on Software Micro-structures Università degli Studi di Milano-Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione Dottorato di Ricerca in Informatica XXII Ciclo Design Pattern Detection and Software Architecture Reconstruction:

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

Modeling Systems Using Design Patterns

Modeling Systems Using Design Patterns Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk

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

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

A Taxonomy and a First Study of Design Pattern Defects

A Taxonomy and a First Study of Design Pattern Defects A Taxonomy and a First Study of Design Pattern Defects Naouel Moha, Duc-loc Huynh, and Yann-Gaël Guéhéneuc Ptidej Team GEODES - Group of Open and Distributed Systems, Experimental Software Engineering

More information

Recovery of Design Pattern from source code

Recovery of Design Pattern from source code Recovery of Design Pattern from source code Amit Kumar Gautam and T.Gayen Software Engineering, IIIT Allahabad tgayen@iiita.ac.in, Ise2008004@iiita.ac.in Abstract. The approach for detecting design pattern

More information

DESIGN PATTERN MATCHING

DESIGN PATTERN MATCHING PERIODICA POLYTECHNICA SER. EL. ENG. VOL. 47, NO. 3 4, PP. 205 212 (2003) DESIGN PATTERN MATCHING Dániel PETRI and György CSERTÁN Department of Measurement and Information Systems Budapest University of

More information

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES Wolfgang Friess AUDI AG wolfgang.friess@audi.de Julio Sincero University Erlangen-Nuernberg sincero@informatik.uni-erlangen.de Wolfgang

More information

Conceptual Model for a Software Maintenance Environment

Conceptual Model for a Software Maintenance Environment Conceptual Model for a Software Environment Miriam. A. M. Capretz Software Engineering Lab School of Computer Science & Engineering University of Aizu Aizu-Wakamatsu City Fukushima, 965-80 Japan phone:

More information

SPQR: Formalized Design Pattern Detection and Software Architecture Analysis

SPQR: Formalized Design Pattern Detection and Software Architecture Analysis SPQR: Formalized Design Pattern Detection and Software Architecture Analysis Jason McC. Smith, David Stotts University of North Carolina at Chapel Hill Chapel Hill, NC 27599-3175 {smithja, stotts}@cs.unc.edu

More information

Detection a Design Pattern through Merge Static and Dynamic Analysis Using Altova and Lambdes Tools

Detection a Design Pattern through Merge Static and Dynamic Analysis Using Altova and Lambdes Tools Detection a Design Pattern through Merge Static and Dynamic Analysis Using Altova and Lambdes Tools Hamed J. Fawareh Department of Software Engineering,Zarqa University,Jaber Highway, Zarqa, Jordan. Orcid

More information

Software Language Engineering of Architectural Viewpoints

Software Language Engineering of Architectural Viewpoints Software Language Engineering of Architectural Viewpoints Elif Demirli and Bedir Tekinerdogan Department of Computer Engineering, Bilkent University, Ankara 06800, Turkey {demirli,bedir}@cs.bilkent.edu.tr

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1 Ingegneria del Software Corso di Laurea in Informatica per il Management Design Patterns part 1 Davide Rossi Dipartimento di Informatica Università di Bologna Pattern Each pattern describes a problem which

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

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar Design Patterns MSc in Communications Software Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

A Design Rationale Representation for Model-Based Designs in Software Engineering

A Design Rationale Representation for Model-Based Designs in Software Engineering A Design Rationale Representation for Model-Based Designs in Software Engineering Adriana Pereira de Medeiros, Daniel Schwabe, and Bruno Feijó Dept. of Informatics, PUC-Rio, Rua Marquês de São Vicente

More information

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D. Software Design Patterns Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University J. Maletic 1 Background 1 Search for recurring successful designs emergent designs from practice

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

Design Patterns. An introduction

Design Patterns. An introduction Design Patterns An introduction Introduction Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Your design should be specific to the problem at

More information

Reasoning on Business Processes and Ontologies in a Logic Programming Environment

Reasoning on Business Processes and Ontologies in a Logic Programming Environment Reasoning on Business Processes and Ontologies in a Logic Programming Environment Michele Missikoff 1, Maurizio Proietti 1, Fabrizio Smith 1,2 1 IASI-CNR, Viale Manzoni 30, 00185, Rome, Italy 2 DIEI, Università

More information

Towards the integration of security patterns in UML Component-based Applications

Towards the integration of security patterns in UML Component-based Applications Towards the integration of security patterns in UML Component-based Applications Anas Motii 1, Brahim Hamid 2, Agnès Lanusse 1, Jean-Michel Bruel 2 1 CEA, LIST, Laboratory of Model Driven Engineering for

More information

The MARPLE Project - A Tool for Design Pattern Detection and Software Architecture Reconstruction

The MARPLE Project - A Tool for Design Pattern Detection and Software Architecture Reconstruction The MARPLE Project - A Tool for Design Pattern Detection and Software Architecture Reconstruction Francesca Arcelli, Christian Tosi, Marco Zanoni, Stefano Maggioni Università degli Studi di Milano-Bicocca,

More information

Using AOP to build complex data centric component frameworks

Using AOP to build complex data centric component frameworks Using AOP to build complex data centric component frameworks Tom Mahieu, Bart Vanhaute, Karel De Vlaminck, Gerda Janssens, Wouter Joosen Katholieke Universiteit Leuven Computer Science Dept. - Distrinet

More information

A System of Patterns for Web Navigation

A System of Patterns for Web Navigation A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In

More information

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. OBM 7 -draft 09/02/00 1 Domain Engineering And Variability In The Reuse-Driven Software Engineering Business. Martin L. Griss, Laboratory Scientist, Hewlett-Packard Laboratories, Palo Alto, CA. Effective

More information

Control Flow Analysis with SAT Solvers

Control Flow Analysis with SAT Solvers Control Flow Analysis with SAT Solvers Steven Lyde, Matthew Might University of Utah, Salt Lake City, Utah, USA Abstract. Control flow analyses statically determine the control flow of programs. This is

More information

RAMSES: a Reflective Middleware for Software Evolution

RAMSES: a Reflective Middleware for Software Evolution RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it

More information

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 6367(Print), ISSN 0976 6367(Print) ISSN 0976 6375(Online)

More information

Mining Design Patterns from Existing Projects Using Static and Run-Time Analysis

Mining Design Patterns from Existing Projects Using Static and Run-Time Analysis Mining Design Patterns from Existing Projects Using Static and Run-Time Analysis Michal Dobiš and Ľubomír Majtás Faculty of Informatics and Information Technologies, Slovak University of Technology, Bratislava,

More information

CHAPTER 6: CREATIONAL DESIGN PATTERNS

CHAPTER 6: CREATIONAL DESIGN PATTERNS CHAPTER 6: CREATIONAL DESIGN PATTERNS SESSION I: OVERVIEW OF DESIGN PATTERNS, ABSTRACT FACTORY Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012 by Carlos E. Otero

More information

A Technique for Design Patterns Detection

A Technique for Design Patterns Detection A Technique for Design Patterns Detection Manjari Gupta Department of computer science Institute of Science Banaras Hindu University Varansi-221005, India manjari_gupta@rediffmail.com Abstract Several

More information

Ontology Matching with CIDER: Evaluation Report for the OAEI 2008

Ontology Matching with CIDER: Evaluation Report for the OAEI 2008 Ontology Matching with CIDER: Evaluation Report for the OAEI 2008 Jorge Gracia, Eduardo Mena IIS Department, University of Zaragoza, Spain {jogracia,emena}@unizar.es Abstract. Ontology matching, the task

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture

Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture Elemental Design Patterns: A Formal Semantics for Composition of OO Software Architecture Jason McC. Smith, David Stotts University of North Carolina at Chapel Hill Chapel Hill, NC 27599-3175 {smithja,

More information

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming

More information

Multi-Paradigm Approach for Teaching Programming

Multi-Paradigm Approach for Teaching Programming Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate

More information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

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

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

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

Fausto Giunchiglia and Mattia Fumagalli

Fausto Giunchiglia and Mattia Fumagalli DISI - Via Sommarive 5-38123 Povo - Trento (Italy) http://disi.unitn.it FROM ER MODELS TO THE ENTITY MODEL Fausto Giunchiglia and Mattia Fumagalli Date (2014-October) Technical Report # DISI-14-014 From

More information

Pattern/Object Markup Language (POML): A Simple XML Schema for Object Oriented Code Description

Pattern/Object Markup Language (POML): A Simple XML Schema for Object Oriented Code Description Pattern/Object Markup Language (POML): A Simple XML Schema for Object Oriented Code Description Jason McC. Smith Apr 7, 2004 Abstract Pattern/Object Markup Language (or POML) is a simple XML Schema for

More information

Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs

Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs Eliminating Annotations by Automatic Flow Analysis of Real-Time Programs Jan Gustafsson Department of Computer Engineering, Mälardalen University Box 883, S-721 23 Västerås, Sweden jangustafsson@mdhse

More information

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999 Migrating a Static Analysis Tool to AspectJ TM Martin P. Robillard and Gail C. Murphy Department of Computer Science University of British Columbia 201-2366 Main Mall Vancouver BC Canada V6T 1Z4 fmrobilla,murphyg@cs.ubc.ca

More information

Which Role for an Ontology of Uncertainty?

Which Role for an Ontology of Uncertainty? Which Role for an Ontology of Uncertainty? Paolo Ceravolo, Ernesto Damiani, Marcello Leida Dipartimento di Tecnologie dell Informazione - Università degli studi di Milano via Bramante, 65-26013 Crema (CR),

More information

Annotation Science From Theory to Practice and Use Introduction A bit of history

Annotation Science From Theory to Practice and Use Introduction A bit of history Annotation Science From Theory to Practice and Use Nancy Ide Department of Computer Science Vassar College Poughkeepsie, New York 12604 USA ide@cs.vassar.edu Introduction Linguistically-annotated corpora

More information

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES

REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES REVIEW AND OUTLOOKS OF THE MEANS FOR VISUALIZATION OF SYNTAX SEMANTICS AND SOURCE CODE. PROCEDURAL AND OBJECT ORIENTED PARADIGM DIFFERENCES Hristo Hristov Abstract. In the article, we have reviewed the

More information

Guiding System Modelers in Multi View Environments: A Domain Engineering Approach

Guiding System Modelers in Multi View Environments: A Domain Engineering Approach Guiding System Modelers in Multi View Environments: A Domain Engineering Approach Arnon Sturm Department of Information Systems Engineering Ben-Gurion University of the Negev, Beer Sheva 84105, Israel

More information

Visualizing and Animating Search Operations on Quadtrees on the Worldwide Web

Visualizing and Animating Search Operations on Quadtrees on the Worldwide Web Visualizing and Animating Search Operations on Quadtrees on the Worldwide Web František Brabec Computer Science Department University of Maryland College Park, Maryland 20742 brabec@umiacs.umd.edu Hanan

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built

More information

Lexical Analysis. COMP 524, Spring 2014 Bryan Ward

Lexical Analysis. COMP 524, Spring 2014 Bryan Ward Lexical Analysis COMP 524, Spring 2014 Bryan Ward Based in part on slides and notes by J. Erickson, S. Krishnan, B. Brandenburg, S. Olivier, A. Block and others The Big Picture Character Stream Scanner

More information

A Framework for Reliability Assessment of Software Components

A Framework for Reliability Assessment of Software Components A Framework for Reliability Assessment of Software Components Rakesh Shukla, Paul Strooper, and David Carrington School of Information Technology and Electrical Engineering, The University of Queensland,

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static

More information

A Formal V&V Framework for UML Models Based on Model Transformation Techniques

A Formal V&V Framework for UML Models Based on Model Transformation Techniques A Formal V&V Framework for UML Models Based on Model Transformation Techniques Soon-Kyeong Kim and David Carrington Information Technology and Electrical Engineering The University of Queensland, St. Lucia,

More information

Implementing Trusted Digital Repositories

Implementing Trusted Digital Repositories Implementing Trusted Digital Repositories Reagan W. Moore, Arcot Rajasekar, Richard Marciano San Diego Supercomputer Center 9500 Gilman Drive, La Jolla, CA 92093-0505 {moore, sekar, marciano}@sdsc.edu

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

Summary of the course lectures

Summary of the course lectures Summary of the course lectures 1 Components and Interfaces Components: Compile-time: Packages, Classes, Methods, Run-time: Objects, Invocations, Interfaces: What the client needs to know: Syntactic and

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

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

Information Management (IM)

Information Management (IM) 1 2 3 4 5 6 7 8 9 Information Management (IM) Information Management (IM) is primarily concerned with the capture, digitization, representation, organization, transformation, and presentation of information;

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

Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description)

Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description) Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description) Brigitte Pientka and Joshua Dunfield McGill University, Montréal, Canada {bpientka,joshua}@cs.mcgill.ca Abstract.

More information

COMPARISON AND EVALUATION ON METRICS

COMPARISON AND EVALUATION ON METRICS COMPARISON AND EVALUATION ON METRICS BASED APPROACH FOR DETECTING CODE CLONE D. Gayathri Devi 1 1 Department of Computer Science, Karpagam University, Coimbatore, Tamilnadu dgayadevi@gmail.com Abstract

More information

Access Control in Rich Domain Model Web Applications

Access Control in Rich Domain Model Web Applications Access Control in Rich Domain Model Web Applications Extended Abstract João de Albuquerque Penha Pereira joao.pereira@ist.utl.pt Instituto Superior Técnico November 25, 2010 Abstract Rich Domain Model

More information

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang

More information

Aspect-Orientation from Design to Code

Aspect-Orientation from Design to Code Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739

More information

UML-Based Conceptual Modeling of Pattern-Bases

UML-Based Conceptual Modeling of Pattern-Bases UML-Based Conceptual Modeling of Pattern-Bases Stefano Rizzi DEIS - University of Bologna Viale Risorgimento, 2 40136 Bologna - Italy srizzi@deis.unibo.it Abstract. The concept of pattern, meant as an

More information

Model Driven Development of Context Aware Software Systems

Model Driven Development of Context Aware Software Systems Model Driven Development of Context Aware Software Systems Andrea Sindico University of Rome Tor Vergata Elettronica S.p.A. andrea.sindico@gmail.com Vincenzo Grassi University of Rome Tor Vergata vgrassi@info.uniroma2.it

More information

A Type Graph Model for Java Programs

A Type Graph Model for Java Programs A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl

More information

extrinsic members RoleB RoleA

extrinsic members RoleB RoleA ASPECT- ORIENTED PROGRAMMING FOR ROLE MODELS Elizabeth A. Kendall Department of Computer Science, Royal Melbourne Institute of Technology GPO Box 2476V, Melbourne, VIC 3001, AUSTRALIA email: kendall@rmit.edu.au

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

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1 What is a Design Pattern? Each pattern Describes a problem which occurs over and over again in our environment,and then describes the core of the problem Novelists, playwrights and other writers rarely

More information

Definition of Information Systems

Definition of Information Systems Information Systems Modeling To provide a foundation for the discussions throughout this book, this chapter begins by defining what is actually meant by the term information system. The focus is on model-driven

More information

Knowledge Retrieval. Franz J. Kurfess. Computer Science Department California Polytechnic State University San Luis Obispo, CA, U.S.A.

Knowledge Retrieval. Franz J. Kurfess. Computer Science Department California Polytechnic State University San Luis Obispo, CA, U.S.A. Knowledge Retrieval Franz J. Kurfess Computer Science Department California Polytechnic State University San Luis Obispo, CA, U.S.A. 1 Acknowledgements This lecture series has been sponsored by the European

More information

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES Christian de Sainte Marie ILOG Introduction We are interested in the topic of communicating policy decisions to other parties, and, more generally,

More information

Automatic Generation of Graph Models for Model Checking

Automatic Generation of Graph Models for Model Checking Automatic Generation of Graph Models for Model Checking E.J. Smulders University of Twente edwin.smulders@gmail.com ABSTRACT There exist many methods to prove the correctness of applications and verify

More information

Open PROMOL: An Experimental Language for Target Program Modification

Open PROMOL: An Experimental Language for Target Program Modification Open PROMOL: An Experimental Language for Target Program Modification Vytautas Štuikys, Robertas Damaševičius, Giedrius Ziberkas Software Engineering Department, Kaunas University of Technology Studentų

More information

Déjà Vu: A Hierarchical Case-Based Reasoning System for Software Design

Déjà Vu: A Hierarchical Case-Based Reasoning System for Software Design Déjà Vu: A Hierarchical Case-Based Reasoning System for Software Design Barry Smyth Hitachi Dublin Laboratory Trinity College Dublin 2 Ireland. Tel. 01-6798911 Fax. 01-6798926 E-mail: bsmyth@vax1.tcd.ie

More information

Reflective Design Patterns to Implement Fault Tolerance

Reflective Design Patterns to Implement Fault Tolerance Reflective Design Patterns to Implement Fault Tolerance Luciane Lamour Ferreira Cecília Mary Fischer Rubira Institute of Computing - IC State University of Campinas UNICAMP P.O. Box 676, Campinas, SP 3083-970

More information

Fundamentals of STEP Implementation

Fundamentals of STEP Implementation Fundamentals of STEP Implementation David Loffredo loffredo@steptools.com STEP Tools, Inc., Rensselaer Technology Park, Troy, New York 12180 A) Introduction The STEP standard documents contain such a large

More information

XML Support for Annotated Language Resources

XML Support for Annotated Language Resources XML Support for Annotated Language Resources Nancy Ide Department of Computer Science Vassar College Poughkeepsie, New York USA ide@cs.vassar.edu Laurent Romary Equipe Langue et Dialogue LORIA/CNRS Vandoeuvre-lès-Nancy,

More information

System of Systems Architecture Generation and Evaluation using Evolutionary Algorithms

System of Systems Architecture Generation and Evaluation using Evolutionary Algorithms SysCon 2008 IEEE International Systems Conference Montreal, Canada, April 7 10, 2008 System of Systems Architecture Generation and Evaluation using Evolutionary Algorithms Joseph J. Simpson 1, Dr. Cihan

More information

Aspects of an XML-Based Phraseology Database Application

Aspects of an XML-Based Phraseology Database Application Aspects of an XML-Based Phraseology Database Application Denis Helic 1 and Peter Ďurčo2 1 University of Technology Graz Insitute for Information Systems and Computer Media dhelic@iicm.edu 2 University

More information

A Framework for the Internationalization of Data-Intensive Web Applications

A Framework for the Internationalization of Data-Intensive Web Applications A Framework for the Internationalization of Data-Intensive Web Applications Alberto Belussi and Roberto Posenato Dipartimento di Informatica - Università degli Studi di Verona Ca Vignal, Strada le Grazie,

More information

Integrating decision management with UML modeling concepts and tools

Integrating decision management with UML modeling concepts and tools Downloaded from orbit.dtu.dk on: Dec 17, 2017 Integrating decision management with UML modeling concepts and tools Könemann, Patrick Published in: Joint Working IEEE/IFIP Conference on Software Architecture,

More information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing Query Technologies for Crosscutting Concern Comprehension Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software

More information

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms? CIS 8690 Enterprise Architectures Duane Truex, 2013 Cognitive Map of 8090

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

More information