A Catalog of Patterns for Concept Lattice Interpretation in Software Reengineering

Size: px
Start display at page:

Download "A Catalog of Patterns for Concept Lattice Interpretation in Software Reengineering"

Transcription

1 A Catalog of Patterns for Concept Lattice Interpretation in Software Reengineering Muhammad U.Bhatti, Nicolas Anquetil, Marianne Huchard, and Stéphane Ducasse RMoD Project-Team INRIA - Lille Nord Europe USTL - CNRS UMR 8022, Lille, France {firstname.lastname}@inria.fr LIRMM, CNRS and Université de Montpellier-2, Montpellier, cedex 5, France huchard@lirmm.fr Abstract Formal Concept Analysis (FCA) provides an important approach in software reengineering for software understanding, design anomalies detection and correction. However, FCA-based approaches have two problems: (i) they produce lattices that must be interpreted by the user according to his/her understanding of the technique and different elements of the graph; and, (ii) the lattice can rapidly become so big that one is overwhelmed by the mass of information and possibilities. In this paper, we present a catalogue of important patterns in concept lattices, which can allow automating the task of lattice interpretation. The approach helps the reengineer to concentrate on the task of reengineering rather than understanding a complex lattice. We provide interpretation of these patterns in a generalized manner and illustrate them on various contexts constructed from program information of different open-source systems. We also present a tool that allows automated extraction of the patterns from concept lattices. I. INTRODUCTION Formal Concept Analysis (FCA) is a mathematical technique to discover significant groupings of objects having similar attributes [14]. FCA can be applied to program entities, which helps in generating high-level views of a program for program understanding and identifying and correcting some anomalies in software systems. For example, FCA is used to identify objects in procedural code by looking at functions accessing global variables [26], [9]. Equally, it is applied to object-oriented systems by analyzing software components (e.g.,, classes, attributes or methods) and their relationships (e.g.,, belongs-to, uses or defines). Some studies aim at understanding object-oriented systems [3], [8], [23], others use program information for reengineering classes [28], [29], [5]. The extracted program information is used to construct concept lattices that are presented to the reengineers for analysis. The reengineer then explores a lattice to uncover important information. The problem with the FCA techniques is that they produce concept lattices that are not readily comprehensible for developers who need to spend a good amount of effort to interpret these lattices. A possible solution is to break the information being fed into FCA into small chunks [5]. However, the approach is not scalable as the chunks need to be individually analyzed, which requires generating several lattices. Another issue is that concept lattices extract many more concepts than the number of objects they are given as input [1], thus adding complexity over the semantic complexity of the lattice. The objective of the paper is to reduce concept lattices to a few interesting node and subgraph patterns such that the user does not have to interpret each node and its relationships nor to analyze the entire lattice in detail. We don t pretend that all useful findings are captured by these patterns, but they simplify the task of lattice analysis by proposing some accepted semantics. We look for the lattice patterns in an automated way, which could open the path for semi-automated reengineering actions. In this paper, we define the patterns that proved to be useful in many cases of FCA applied to software engineering domain. We provide an interpretation in a generalized way, explaining their interest. Later, we exemplify them using different information from various open-source systems. These patterns are implemented in a prototype and we give some figures on the reduction in information to process for a concrete example. This paper is organized as follows: Section II presents existing work that uses FCA in software reengineering and motivates our approach. Section III presents nodes and subgraphs patterns. Section IV proposes a validation on opensource systems and Section V describes the prototype for pattern identification. Section VI concludes the paper. II. MOTIVATING A GENERIC INTERPRETATION TOOL FOR CONCEPT LATTICES In this section, we present different studies that have been performed to understand and restructure software systems through FCA. Then we provide motivation for our proposed approach. A. Existing work a) Module and Object Identification with FCA: Sahraoui et al. [26] present a method that extracts objects from procedural code using FCA. Important concepts are looked for in the resultant lattices using heuristics. Another approach compares the object identification capability of clustering and FCA techniques [9]. A few heuristics are described to interpret the concepts of the lattice. An approach to transform a COBOL legacy system to a distributed component system is proposed by Canfora et al. [6]. Siff and Reps explore the relationship between program variables and procedures through FCA for restructuring of C programs [27].

2 b) Object-Oriented Reengineering and FCA: Godin et al. [15] proposed in 1993 to analyze classes by their member methods to evaluate and refactor OO class hierarchies using FCA. Dicky et al. [10] define an incremental algorithm and study the method specialization in the FCA framework. Falleri et al. [13] compare several FCA configurations [7]. Leblanc et al. [17] apply FCA to extract Java interface hierarchies from Java classes. Snelting and Tip [28] present a framework for detecting and remediating design problems in a class hierarchy; it is used in [29] for refactoring Java class hierarchies. Arévalo, Ducasse and Nierstrasz [3] use FCA to understand how methods and classes in an object-oriented inheritance hierarchy are coupled by means of the inheritance and interfaces relationships. Lienhard, Ducasse and Arévalo [21] use FCA to identify traits in inheritance hierarchies. Dekel and Gil [8] use FCA to visualize the structure of Java classes and to select an effective order for reading the methods. In [5] a tool-assisted technique is presented to identify useful abstractions and class hierarchies in procedural object-oriented code. FCA is used to detect the presence of bad smells and design patterns [2], and to suggest appropriate refactorings to correct certain design defects [24]. FCA is also used to understand a system s source code for relevant concepts of interest [23] and to cluster words for feature location [25]. FCA is also used to examine information generated from program execution to reconstruct control flow graphs [4] and feature location [12]. FCA is used in aspect mining [20], detection of design-level class attributes from code [30], and searching for code patterns and their violations [22]. c) FCA Filtering: Some studies, applying FCA to software reengineering, have suggested concept filtering techniques to resolve the problem of lattice complexity. The notion of concept partitions is used to filter the concepts that are not interesting for creating modules [27]. Mens et al. filter concepts according to some properties 1 of the concepts in the lattices constructed by their approach [23]. Arévalo et al. describe a few heuristics to reduce the search for concepts that describe important class hierarchy schemas [2]. Joshi and Joshi [19] provide a few patterns that may emerge when context is based upon methods and attributes of a class. There is a plethora of FCA-based techniques that aim to analyze software systems for reengineering purposes. The diversity of these approaches shows the interest in FCA as a tool to certain kinds of software analysis. Some approaches apply context-specific heuristics for filtering non-interesting concepts. However, these heuristics remain tied to a specific context and cannot be generalized. Therefore, there is a need to define a unifying framework for lattice interpretation. This paper goes in that direction by describing a few patterns of nodes and subgraphs in concept lattices. B. Synthetic view of FCA in Software Reengineering One of the strengths of FCA for program comprehension and software reengineering is the wide range of contexts that 1 size of the concept s intent and extent. can be used. For each different context, the method provides different insights into reengineering opportunities. OO systems consist of different entities such as packages, classes, methods, attributes, or variables. In Table I we summarized the main entities and relationships that could be used as context (other ones could be invented). In the table, rows are formal objects, and columns formal attributes. In each cell of the upper half, a blank means there is no possible relationship (we found no interesting relationship to link a method formal object to packages formal attributes), U stands for use (a method uses another method by calling it, or a class uses another class through inheritance), and C stands for contains (or declare, a class contains an identifier, a method contains a variable). The relationships in boldface (upper half) denote contexts that we found already studied in the literature. In that case, a representative reference is given in the lower half of the table. The s in the lower half denote possible contexts that we identified and for which we know of no prior published research. They represent unexplored areas of FCA and software reengineering research. TABLE I MAIN POSSIBLE CONTEXTS FOR FCA; FORMAL OBJECTS ARE IN ROWS, FORMAL ATTRIBUTES ARE IN COLUMNS, RELATIONSHIPS ARE USE AND CONTAIN; IN LOWER HALF, REFERENCES INDICATE THE CONTEXTS THAT WERE ALREADY STUDIED (ALSO IN BOLD FACE IN UPPER HALF) AND S MARK POSSIBLE CONTEXTS THAT HAVE NOT BEEN EXPLORED YET Formal objects Formal attributes pckg class meth. att. var. pckg C,U C,U C,U C,U C,U class U C,U C,U C,U C,U meth. U U U C,U att. U var. U U U U pckg class [5], [32] [21], [15] [18] [13] meth. [3], [5] [3], [8] [22] [30] att. var. [28] [28] Table I considers only the main formal objects and formal attributes in software reengineering for OO systems. A comprehensive survey of the contexts studied in software engineering is provided by Tilley et al. [31]. C. Concept lattice interpretation FCA is a flexible technique that may be used on a wide range of contexts. The number of unexplored contexts, even for the simple enumeration of possibilities proposed in the Section II-B, gives an idea of its potential. However before it gains larger use, we believe two problems need to be solved. First most of the existing approaches, leave the analysis work to the user. Concept lattices are complex abstract constructs that may prove difficult to interpret. Sahraoui et al. [26] recognized this problem and proposed a tool to help analyzing the lattices. Another issue with FCA is the size of the lattices they produce [1]. This again points toward the need to provide an

3 assisted solution for lattice analysis. Some filtering techniques exist in the literature to remove unwanted concepts from lattices. However, these techniques are dependent upon their contexts because these are geared towards unrevealing specific code patterns. The solution of decomposing a context into smaller chunks requires a lot of effort to generate lattices representing each chunk. A natural solution lies in automating the interpretation of lattices. This automation will be more useful if it can be applied indifferently to lattices built on any formal context. The user would not be required to analyze each node in the lattice; he will search for patterns in the lattices and useful nodes will be identified without spending too much time on the lattice. Moreover, an automated technique can extract these patterns without requiring the user to understand the complexities of FCA. We hope to define a dictionary of such patterns that along with a definition of the meaning of a concept for each possible context, could propose to users an interpretation for any lattice built from a known context. In the next section, we present a catalogue of patterns that represent interesting constructs in concept lattices from the software engineer point of view. These patterns help the user in two ways. First, they help to reduce the work of understanding a complex lattice for interpreting a few node and graph patterns. Hence, the work is reduced to look for these patterns and understand their interpretation. Second, because we consider generic subgraph patterns, a tool can be built to extract these patterns from the lattices, which will greatly simplify the work of analyzing these lattices. III. PATTERNS IN CONCEPT LATTICES In this section, we present concept lattice patterns intended to help software engineers analyze the result of FCA. These patterns are sufficiently generic to be applied to a large set of possible contexts. A. Nodes in Concept Lattices The patterns we will present depend on typical arrangements of nodes and vertices, but also on the specific nodes that concept lattices may/should contain. Therefore, before going to the patterns, we will take a look at the four types of nodes that a concept lattice may contain. In the following, we borrow from the Conexp tool the way these nodes are displayed. The tool displays each node as a circle. A black lower semi-circle in the node indicates the presence of formal objects introduced by the node (i.e., that no sub-concept has). A grey upper semicircle in the node indicates the presence of formal attributes introduced by the node (i.e., that no super-concept has). Four types of nodes are possible : Full (black and grey): The node introduces formal attributes that its super-concepts don t have and has formal objects that its sub-concepts don t have. Grey: The node introduces formal attributes that its super-concepts don t have, but all its formal objects (if it has any) appear in a sub-concept. Such node must have more than one direct sub-concept. Black: The node has formal objects of its own (that no sub-concept has), but inherits all its formal attributes (if it has any) from its super-concepts. Such node must have more than one direct super-concept. Empty: The node has no formal attribute or object of its own. It must have more than one direct super-concept and more than one direct sub-concept. B. A Catalogue of Patterns We now describe some subgraph patterns that we identified as useful to help analyze a concept lattice. The criteria that we used to choose these patterns are: They have a clear meaning that can be interpreted for any formal context; Hence, the patterns are generic enough to extract meaningful information; They represent important groups of formal objects and formal attributes, useful for the user; They produce very few false positives: If the patterns identify too many false-positives in the results, the user is required to look at the lattice to filter the false-positives. Hence, the effectiveness of the patterns would be lost. One can rely on the patterns and not analyze the lattice. We prefer limiting the false positives at the expense of having many false negatives. The patterns are defined as specific topology of nodes and edges, sometimes accompanied by a specific type of node for one or more of the members of the pattern. Some of these patterns are illustrated in Figure 1 to help the reader visualize them. (a) (b) (c) Fig. 1. Some of the patterns in concept lattices 1) Top node ( ): We identified two cases of interest for the top node: Top-black The pattern reveals the fact that the formal objects attached to the top node don t have relationship to any of the formal attributes present in the context. It indicates formal objects that are not relevant to the context being studied. Top-grey or Top-full The existence of a grey or full node at the top of a lattice marks a set of formal attributes (the grey part) that are in relationship to all the formal objects contained in the context. The pattern represents an important set of formal attributes that form the very basis of the context. 2) Bottom node ( ): We may identify two cases: Bottom-grey The pattern reveals the fact that the formal attributes attached to the node are not in relationship with any of the formal objects present in the context. Likewise, the

4 pattern is important as it depicts attributes that are not relevant to the context being studied. Bottom-black or Bottom-full The existence of the black or full node at the bottom of a lattice illustrates a set of formal objects that are related to all the formal attributes present in the formal context. 3) Horizontal Decomposition: Horizontal decomposition (see Figure 1(a)) is a pattern that appears when one can identify disjoint subgraphs when removing the top and bottom of the lattice. In the illustrating figure, there are three disjoint subgraphs. Horizontal decomposition points to the presence of disjoint sets of relationships between formal objects and formal attributes. This is somehow similar to having several disjoint contexts. The different subgraphs may actually have formal attributes or formal objects in common in the case of Top-grey/Top-full and Bottom-black/Bottom-full, but assuming we ignore these (see discussion above), then each subgraph may be considered independently from all the others. Snelting and Tip mention horizontal decomposition in [28]. A less constrained pattern would be to find a horizontal decomposition, with non trivial subgraphs, between two nodes that are not the top or the bottom of the lattice. This is also related to the Module pattern that will be discussed immediately. 4) Module: In partially ordered set theory, a module represents a group of nodes that are connected to the rest of the graph through a unique top node and a unique bottom node [16]. The supremum and infimum of the module are part of it. Figure 1(b) illustrates a simple example of module in a concept lattice. A module represents an important pattern because it can be considered as a sublattice inside a concept lattice. One could imagine collapsing the entire module into one composite node without changing the semantics of the lattice (just make it a bit more abstract). Also, all the patterns applicable to the concept lattice can also be applied to the module. The module in itself can be seen as a smaller individual lattice that can be analyzed independently of the rest. 5) Irreducible specialization: Specializations are the basis of a lattice and one finds them everywhere: Every arc in a concept lattice marks a specialization relationship. Yet the pattern is interesting when the specialization occurs between a black (or full) super-concept and a grey (or full) sub-concept (illustrated in Figure 1(c)). Irreducible specialization patterns depicts two nodes that should not be merged. The upper node (in Figure 1(c)) needs to exist because it has its own formal object(s) and the lower node needs to exist because it has its own formal attribute(s). That is to the say specialization pattern represents two entities in a system that are relevant in the system they belong to. When the super-concept (sub-concept) in the specialization pattern is the top node (resp. bottom node), we further require that it is a full node, to ensure that it represents a complete concept with formal objects and formal attributes. When we are not dealing with the top or bottom nodes in the lattice, we don t need this restriction because the nodes in the pattern can inherit formal attributes (formal objects) from their super-concepts (resp. sub concepts). IV. CONCRETE EXAMPLES In this section, we present a validation of these patterns to evaluate that the patterns do appear in the concept lattices, and these reveal important information about the underlying program. For the examples, we experiment with various formal contexts from different program entities of open-source systems. These contexts are similar to existing contexts of the literature. The contexts will be presented as triplet: O- R-A that is to say: formal Object, Relation, and formal Attribute. Program information for the lattices is extracted through FCAParser 2. A. Member use This formal context is based on the following information: O = All methods within a class except getters and setters A = Attributes of the class R = The method accesses an attribute directly or through a getter method The concepts resulting from this context represent different features that a class may implement, assuming that each feature will be composed of methods accessing a particular set of attributes. The example used will be the class Main of JMemorize 3. Figure 2 shows the lattice resulting from this example. We may identify the following patterns in the concept lattice: Top black: The two methods in the top-black node do not access any attribute of the class. Code analysis shows that copyfile is a utility method whereas onprogramend is an empty method in the class. Horizontal Decomposition: Removing the top and bottom nodes of the lattice, we are left with 6 independent subgraphs: (i) a set of three disjoint subgraphs on the far right having methods main, run, and startstats, (ii) the bulk of the nodes in the centre, (iii) one node with methods exit, rmprgobs and addprgsobs on the lower left, and (iv) two nodes with methods clrthrw, logthrw. The subgraphs identify independent concerns of the class (convertible to traits). For example, the log (on the far left) or the handling of observers when the program ends (lower left). Irreducible specialization: There is one instance of this pattern on the left of the lattice. As explained, it indicates that we have here two features that could not be easily merged. Module: The same two nodes on the far left illustrate a case of the simplest possible module. The two nodes could be grouped in one to simplify the lattice. This is not incompatible with them being an irreducible specialization, as this merging into one composite node is only a proposition to simplify the lattice itself, and not something that should impact the underlying source code

5 The complete lattice of the class shows that the class implements several concerns: observers, logging, and application startup. The application startup concern is illustrated by the presence of main, run, and startstats methods. In the code, main calls run to start the application, which in turn calls startstats to collect program statistics during program execution. The bulk of the nodes in the center shows that these nodes implement some coherent functionality, which is revealed by their interconnections. The disjoint branches of the lattice propose to decompose the class to encapsulate each concern into a separate class. On a single class with few members, the FCA technique and the patterns we propose may seem like an overkill, but one must understand that, in practice, such tools would be used for all the classes (thousands) of a system and a user would not have the possibility to analyze each one independently. The patterns would be a help to point out the classes that offer the best opportunities for design improvement. B. Class Coupling Class coupling explores the relationship amongst different classes, by the way each one uses the members of the other classes. Similarly to attribute uses (Section IV-A) for classes, concepts resulting from this context represent high level features in packages by identifying common access to other class members. O = Classes; A = Class members (attributes and methods); R = The class Uses a member of another class. The example will use the classes of package org.jhotdraw.geom of JHotDraw. The resulting lattice is presented in Figure 3. We may find the following patterns: Module: There are two simple modules in this lattice. The first one consists of the lattice itself minus its top node. It gives us all the classes that interact together. The second one, two nodes on the left, for which we can draw the same conclusions that in example Section IV-A. Of course in such a small case, the simplifications that node aggregation would bring are not really needed. Horizontal decomposition: If we focus on the largest non-trivial module (whole lattice without the top black node), we can detect the presence of a horizontal decomposition pattern with two independent branches. They suggest two features: one that works with BezierPath s as containers (isempty(), add()) and the other one that sees them as graphical elements (moveto(), isclosed(),... ). This shows that the class BezierPath implements two different concerns and requires refactoring different concerns in separate classes. V. PROTOTYPE FOR PATTERN IDENTIFICATION We have provided concrete examples that show that the catalogue of patterns does reveal some important spots in concept lattices. We developed a tool in Moose [11] to automate the task of pattern identification in concept lattices. The tool supports the identification of all the patterns. We used the tool to extract the patterns from the lattice constructed from all classes in OpenBravo 4 using the following formal context: O =All classes; A = Method names; R = The class locally defines the method name Table II provides a summary of the results produced by the tool. The resultant concept lattice is composed of 1053 nodes and 2260 connections. Of those nodes and connections, the user needs to study 154 nodes and 150 connections, if (s)he wants to explore all the patterns. This represents a reduction of 85% in the number of nodes to analyze and 93% in the number of connections. TABLE II PATTERNS IN OPENBRAVO Fig. 3. Class Coupling lattice for org.jhotdraw.geom package in JHotDraw Top black: The pattern in this context shows the existence of nine classes in the package that do not access members of any of the classes in the package. In this specific case, the lack of communication is due to the fact that this package is an intermediary layer between java 2D graphics (java.awt.geom) and the rest of the JHotDraw framework. Irreducible specialization: There is a case of irreducible specialization that is similar to the one observed in Section IV-A. # of formal objects 756 # of formal attributes 6658 # of nodes 1053 # of node connections 2260 Top Top Black (1 node, 0 connections) Bottom - Irreducible specializations 45 (90 nodes, 45 connections) Horizontal decomposition 28 (28 nodes, 56 connections) Modules 14 (49 nodes, 49 connections) Total Nodes and connections in Patterns 154 nodes, 150 connections The patterns in the lattice reveal: classes without methods or empty classes (Top black); hierarchies of classes having similar methods (Irreducible specialization); classes that do not have common methods with other classes (Horizontal decomposition). Modules in the lattice represent different methods that are common (duplicated) amongst the classes of 4

6 Fig. 2. Lattice for Main in JMemorize the system. Hence, the modules nodes can be used to refactor these classes toward a better design. VI. CONCLUSION An inconvenience of using FCA is that lattices are complex and one needs to be knowledgeable about FCA to extract useful information. The paper presents patterns in concept lattices that can ease the task of lattice interpretation. We demonstrate that: The patterns reveal important information for the underlying context; The patterns identify pertinent results regardless of the context used for creating the formal concept; All mined patterns in the examples are pertinent, thus false-positive results are absent. A prototype is presented that searches for the patterns in lattices. In software reengineering, such a tool could support automated identification of problem areas. For our future work, we are interested in expanding the catalogue of patterns and mix our approach with filtering techniques. REFERENCES [1] N. Anquetil. A comparison of graphs of concept for reverse engineering. IWPC, [2] G. Arévalo, S. Ducasse, S. Gordillo, and O. Nierstrasz. Generating a catalog of unanticipated schemas in class hierarchies using formal concept analysis. Inf. Softw. Technol., 52: , November [3] G. Arévalo, S. Ducasse, and O. Nierstrasz. Understanding classes using X-Ray views. In MASPEGHI 2003 (ASE 2003), pages 9 18, Oct [4] T. Ball. The concept of dynamic analysis. In ESEC/FSC 99, number 1687 in LNCS, pages , Heidelberg, sep Springer Verlag. [5] M. U. Bhatti, S. Ducasse, and M. Huchard. Reconsidering classes in procedural object-oriented code. In WCRE, [6] G. Canfora, A. Cimitile, A. De Lucia, and G. A. Di Lucca. A Case Study of Applying an Eclectic Approach to Identify Objects in Code. In Proceedings of IWPC 99, pages IEEE, May [7] M. Dao, M. Huchard, M. R. Hacene, C. Roume, and P. Valtchev. Improving generalization level in uml models iterative cross generalization in practice. In K. E. Wolff, H. D. Pfeiffer, and H. S. Delugach, editors, ICCS, volume 3127 of Lecture Notes in Computer Science, pages Springer, [8] U. Dekel and Y. Gil. Revealing class structure with concept lattices. In WCRE, pages IEEE Press, Nov [9] A. Deursen and T. Kuipers. Identifying objects using cluster and concept analysis. In Proceedings of ICSE 99, pages ACM Press, [10] H. Dicky, C. Dony, M. Huchard, and T. Libourel. On automatic class insertion with overloading. In OOPSLA, pages , [11] S. Ducasse, T. Gîrba, and O. Nierstrasz. Moose: an agile reengineering environment. In Proceedings of ESEC/FSE 2005, pages , Sept Tool demo. [12] T. Eisenbarth, R. Koschke, and D. Simon. Locating features in source code. IEEE Computer, 29(3): , Mar [13] J.-R. Falleri, M. Huchard, and C. Nebut. A generic approach for class model normalization. In ASE, pages IEEE, [14] B. Ganter and R. Wille. Formal Concept Analysis: Mathematical Foundations. Springer Verlag, [15] R. Godin and H. Mili. Building and Maintaining Analysis-Level Class Hierarchies using Galois Lattices. In Proceedings OOPSLA 93, volume 28, pages , Oct [16] M. Habib, M. Huchard, and J. Spinrad. A linear algorithm to decompose inheritance graphs into modules. Algorithmica, 13(6): , [17] M. Huchard and H. Leblanc. Computing Interfaces in JAVA. In Proceedings of ASE 2000, pages , [18] M. Huchard and H. Leblanc. Computing interfaces in java. In ASE, pages , [19] P. Joshi and R. K. Joshi. Concept analysis for class cohesion. In Proceedings CSMR 2009, pages [20] A. Kellens, K. Mens, and P. Tonella. A survey of automated code-level aspect mining techniques. Transactions on Aspect-Oriented Software Development, 4(4640): , [21] A. Lienhard, S. Ducasse, and G. Arévalo. Identifying traits with formal concept analysis. In ASE 05, pages 66 75, Nov [22] C. Lindig. Mining patterns and violations using concept analysis. Technical report, Saarland University, Germany, [23] K. Mens and T. Tourwé. Delving source code with formal concept analysis. Comput. Lang. Syst. Struct., 31: , October [24] N. Moha, A. M. R. Hacene, P. Valtchev, and Y.-G. Guéhéneuc. Refactorings of design defects using relational concept analysis. ICFCA 08, pages Springer-Verlag, [25] D. Poshyvanyk and A. Marcus. Combining formal concept analysis with information retrieval for concept location in source code. In ICPC 07, pages 37 48, Washington, DC, USA, IEEE Computer Society. [26] H. A. Sahraoui, H. Lounis, W. Melo, and H. Mili. A concept formation based approach to object identification in procedural code. Automated Software Engineering Journal, 6(4): , [27] M. Siff and T. Reps. Identifying modules via concept analysis. Transactions on Software Engineering, 25(6): , Nov [28] G. Snelting and F. Tip. Understanding Class Hierarchies Using Concept Analysis. ACM TOPLAS, pages , May [29] M. Streckenbach and G. Snelting. Refactoring class hierarchies with KABA. In OOPSLA 04, pages , New York, NY, USA, [30] A. Sutton and J. Maletic. Recovering uml class models from c++: A detailed explanation. Inf. Softw. Technol., pages , March [31] T. Tilley, R. Cole, P. Becker, and P. Eklund. A survey of formal concept analysis support for software engineering activities. In G. Stumme, editor, Proceedings of ICFCA 03. Springer-Verlag, Feb [32] P. Tonella and G. Antoniol. Object oriented design pattern inference. In Proceedings of ICSM 99, pages IEEE Computer Society Press, Oct

Reconsidering Classes in Procedural Object-Oriented Code

Reconsidering Classes in Procedural Object-Oriented Code Reconsidering Classes in Procedural Object-Oriented Code Accepted to WCRE 2008 Muhammad Usman BHATTI 1 Stéphane DUCASSE 2 Marianne HUCHARD 3 1 CRI - Univ. Paris 1 Sorbonne, France 2 INRIA - Lille Nord

More information

XRay Views: Understanding the Internals of Classes

XRay Views: Understanding the Internals of Classes XRay Views: Understanding the Internals of Classes Gabriela Arévalo, Stéphane Ducasse, Oscar Nierstrasz Software Composition Group University of Bern (Switzerland) {arevalo, ducasse, oscar}@iam.unibe.ch

More information

Software Data Analytics Part 2: Formal Concept Analysis. Oscar Nierstrasz Luca Liechti

Software Data Analytics Part 2: Formal Concept Analysis. Oscar Nierstrasz Luca Liechti Software Data Analytics Part 2: Formal Concept Analysis Oscar Nierstrasz Luca Liechti Roadmap > Basics of Formal Concept Analysis > Applications of FCA to Software > Computing the concept lattice > FCA

More information

Use of Model Driven Engineering in Building Generic FCA/RCA Tools

Use of Model Driven Engineering in Building Generic FCA/RCA Tools Use of Model Driven Engineering in Building Generic FCA/RCA Tools J.-R. Falleri 1, G. Arévalo 2, M. Huchard 1, and C. Nebut 1 1 LIRMM, CNRS and Université de Montpellier 2, 161, rue Ada, 34392 Montpellier

More information

Derivation of Feature Component Maps by means of Concept Analysis

Derivation of Feature Component Maps by means of Concept Analysis Derivation of Feature Component Maps by means of Concept Analysis Thomas Eisenbarth, Rainer Koschke, Daniel Simon University of Stuttgart, Breitwiesenstr. 20-22, 70565 Stuttgart, Germany {eisenbts, koschke,

More information

Class model extraction from procedural code: Confronting a few ideas from the 2000 s against the reality of an industrial system

Class model extraction from procedural code: Confronting a few ideas from the 2000 s against the reality of an industrial system Class model extraction from procedural code: Confronting a few ideas from the 2000 s against the reality of an industrial system Marianne Huchard, Ines Ammar, Ahmad Bedja Boana, Jessie Carbonnel, Theo

More information

TOWARDS PRACTICAL TOOLS FOR MINING ABSTRACTIONS IN UML MODELS

TOWARDS PRACTICAL TOOLS FOR MINING ABSTRACTIONS IN UML MODELS TOWARDS PRACTICAL TOOLS FOR MINING ABSTRACTIONS IN UML MODELS M. Dao France Télécom R&D/MAPS/AMS 38-40 rue du général Leclerc 92794 Issy Moulineaux Cedex 9, France michel.dao@francetelecom.com M. Huchard

More information

Using FCA to Suggest Refactorings to Correct Design Defects

Using FCA to Suggest Refactorings to Correct Design Defects Using FCA to Suggest Refactorings to Correct Design Defects Naouel Moha, Jihene Rezgui, Yann-Gaël Guéhéneuc, Petko Valtchev, and Ghizlane El Boussaidi GEODES, Department of Informatics and Operations Research

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

Operational Specification for FCA using Z

Operational Specification for FCA using Z Operational Specification for FCA using Z Simon Andrews and Simon Polovina Faculty of Arts, Computing, Engineering and Sciences Sheffield Hallam University, Sheffield, UK {s.andrews, s.polovina}@shu.ac.uk

More information

Splitting a Large Software Archive for Easing Future Software Evolution An Industrial Experience Report using Formal Concept Analysis

Splitting a Large Software Archive for Easing Future Software Evolution An Industrial Experience Report using Formal Concept Analysis Splitting a Large Software Archive for Easing Future Software Evolution An Industrial Experience Report using Formal Concept Analysis Marco Glorie 1, Andy Zaidman* 2, Lennart Hofland 1, and Arie van Deursen

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

Inheritance Metrics: What do they Measure?

Inheritance Metrics: What do they Measure? Inheritance Metrics: What do they Measure? G. Sri Krishna and Rushikesh K. Joshi Department of Computer Science and Engineering Indian Institute of Technology Bombay Mumbai, 400 076, India Email:{srikrishna,rkj}@cse.iitb.ac.in

More information

arxiv: v1 [cs.se] 6 May 2015

arxiv: v1 [cs.se] 6 May 2015 Applying FCA toolbox to Software Testing Fedor Strok Yandex 16 Leo Tolstoy St. Moscow, Russia fdrstrok@yandex-team.ru Faculty for Computer Science National Research University Higher School of Economics

More information

Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces

Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces Orla Greevy and Stéphane Ducasse Software Composition Group University of Bern, Switzerland {greevy, ducasse}@iam.unibe.ch

More information

Mining Features from the Object-Oriented Source Code of a Collection of Software Variants Using Formal Concept Analysis and Latent Semantic Indexing

Mining Features from the Object-Oriented Source Code of a Collection of Software Variants Using Formal Concept Analysis and Latent Semantic Indexing Mining Features from the Object-Oriented Source Code of a Collection of Software Variants Using Formal Concept Analysis and Latent Semantic Indexing R. AL-msie deen 1, A.-D. Seriai 1, M. Huchard 1, C.

More information

A Pragramatic Approch to Mine Aspects in Procedural Object-Oriented Code

A Pragramatic Approch to Mine Aspects in Procedural Object-Oriented Code A Pragramatic Approch to Mine Aspects in Procedural Object-Oriented Code Muhammad Usman BHATTI 1 Stéphane DUCASSE 2 Awais RASHID 3 1 CRI, Université de Paris 1 Sorbonne, France 2 INRIA - Lille Nord Europe,

More information

Identification of Crosscutting Concerns: A Survey

Identification of Crosscutting Concerns: A Survey Identification of Crosscutting Concerns: A Survey Arvinder Kaur University School of IT GGSIP, University, Delhi arvinder70@gmail.com Kalpana Johari CDAC, Noida kalpanajohari@cdacnoida.in Abstract Modularization

More information

How Relational Concept Analysis Can Help to Observe the Evolution of Business Class Models

How Relational Concept Analysis Can Help to Observe the Evolution of Business Class Models How Relational Concept Analysis Can Help to Observe the Evolution of Business Class Models A. Osman Guédi 1,2,3, A. Miralles 2,3, B. Amar 2, C. Nebut 3, M. Huchard 3, and T. Libourel 4 1 Université de

More information

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects Delft University of Technology Software Engineering Research Group Technical Report Series Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst, Marius Marin, and Arie van Deursen

More information

Using Formal Concept Analysis for discovering knowledge patterns

Using Formal Concept Analysis for discovering knowledge patterns Using Formal Concept Analysis for discovering knowledge patterns Mohamed Rouane-Hacene 1, Marianne Huchard 2, Amedeo Napoli 3, and Petko Valtchev 1 1 Dépt. informatique, UQAM, C.P. 8888, Succ. CV, Montréal,

More information

TopicViewer: Evaluating Remodularizations Using Semantic Clustering

TopicViewer: Evaluating Remodularizations Using Semantic Clustering TopicViewer: Evaluating Remodularizations Using Semantic Clustering Gustavo Jansen de S. Santos 1, Katyusco de F. Santos 2, Marco Tulio Valente 1, Dalton D. S. Guerrero 3, Nicolas Anquetil 4 1 Federal

More information

UML Specification and Correction of Object-Oriented Anti-patterns

UML Specification and Correction of Object-Oriented Anti-patterns UML Specification and Correction of Object-Oriented Anti-patterns Maria Teresa Llano and Rob Pooley School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh, United Kingdom {mtl4,rjpooley}@hwacuk

More information

Visualizing Feature Interaction in 3-D

Visualizing Feature Interaction in 3-D Visualizing Feature Interaction in 3-D Orla Greevy 1, Michele Lanza 2 and Christoph Wysseier 1 1 Software Composition Group - University of Berne - Switzerland 2 Faculty of Informatics, University of Lugano

More information

Interactive Exploration of Semantic Clusters

Interactive Exploration of Semantic Clusters Interactive Exploration of Semantic Clusters In proceedings of the International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT 2005) Mircea Lungu 1, Adrian Kuhn 2, Tudor Gîrba

More information

Triadic Formal Concept Analysis within Multi Agent Systems

Triadic Formal Concept Analysis within Multi Agent Systems Triadic Formal Concept Analysis within Multi Agent Systems Petr Gajdoš, Pavel Děrgel Department of Computer Science, VŠB - Technical University of Ostrava, tř. 17. listopadu 15, 708 33 Ostrava-Poruba Czech

More information

ARiSA First Contact Analysis

ARiSA First Contact Analysis ARiSA First Contact Analysis Applied Research In System Analysis - ARiSA You cannot control what you cannot measure Tom DeMarco Software Grail Version 1.3 Programming Language Java 1.4 Date 2 nd of December,

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

Vertical decomposition of a lattice using clique separators

Vertical decomposition of a lattice using clique separators Vertical decomposition of a lattice using clique separators Anne Berry, Romain Pogorelcnik, Alain Sigayret LIMOS UMR CNRS 6158 Ensemble Scientifique des Cézeaux Université Blaise Pascal, F-63 173 Aubière,

More information

Efficient Separate Compilation of Object-Oriented Languages

Efficient Separate Compilation of Object-Oriented Languages Efficient Separate Compilation of Object-Oriented Languages Jean Privat, Floréal Morandat, and Roland Ducournau LIRMM Université Montpellier II CNRS 161 rue Ada 34392 Montpellier cedex 5, France {privat,morandat,ducour}@lirmm.fr

More information

A Meta-Model for Fact Extraction from Delphi Source Code

A Meta-Model for Fact Extraction from Delphi Source Code Electronic Notes in Theoretical Computer Science 94 (2004) 9 28 www.elsevier.com/locate/entcs A Meta-Model for Fact Extraction from Delphi Source Code Jens Knodel and G. Calderon-Meza 2 Fraunhofer Institute

More information

Using Conceptual Analysis in Java Environment for the X-Ray view on a Class

Using Conceptual Analysis in Java Environment for the X-Ray view on a Class ORIENTAL JOURNAL OF COMPUTER SCIENCE & TECHNOLOGY An International Open Free Access, Peer Reviewed Research Journal Published By: Oriental Scientific Publishing Co., India. www.computerscijournal.org ISSN:

More information

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Gilles Ardourel, Marianne Huchard To cite this version: Gilles Ardourel, Marianne Huchard. Teaching Encapsulation and

More information

Usually software system variants, developed by Clone-and-own approach, form

Usually software system variants, developed by Clone-and-own approach, form ABSTRACT Usually software system variants, developed by Clone-and-own approach, form a starting point for building Software Product Line. To migrate software systems which are deemed similar to a product

More information

Impact of Dependency Graph in Software Testing

Impact of Dependency Graph in Software Testing Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,

More information

Deriving Component Interfaces after a Restructuring of a Legacy System

Deriving Component Interfaces after a Restructuring of a Legacy System Deriving Component Interfaces after a Restructuring of a Legacy System Abderrahmane Seriai, Salah Sadou, Houari Sahraoui, Salma Hamza To cite this version: Abderrahmane Seriai, Salah Sadou, Houari Sahraoui,

More information

RiMOM Results for OAEI 2009

RiMOM Results for OAEI 2009 RiMOM Results for OAEI 2009 Xiao Zhang, Qian Zhong, Feng Shi, Juanzi Li and Jie Tang Department of Computer Science and Technology, Tsinghua University, Beijing, China zhangxiao,zhongqian,shifeng,ljz,tangjie@keg.cs.tsinghua.edu.cn

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

Using Concept Analysis to Detect Co-Change Patterns

Using Concept Analysis to Detect Co-Change Patterns Using Concept Analysis to Detect Co-Change Patterns In Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2007) Tudor Gîrba Software Composition Group University of Bern Radu

More information

Churrasco: Supporting Collaborative Software Evolution Analysis

Churrasco: Supporting Collaborative Software Evolution Analysis Churrasco: Supporting Collaborative Software Evolution Analysis Marco D Ambros a, Michele Lanza a a REVEAL @ Faculty of Informatics - University of Lugano, Switzerland Abstract Analyzing the evolution

More information

Quality Driven Software Migration of Procedural Code to Object-Oriented Design

Quality Driven Software Migration of Procedural Code to Object-Oriented Design Quality Driven Software Migration of Procedural Code to Object-Oriented Design Ying Zou Dept. of Electrical & Computer Engineering Queen s University Kingston, ON, K7L 3N6, Canada zouy@post.queensu.ca

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

Lala Madiha Hakik Faculty of Sciences and Techniques, University Hassan I, BP 577. Settat, Morocco,

Lala Madiha Hakik Faculty of Sciences and Techniques, University Hassan I, BP 577. Settat, Morocco, Benchmarking for Validation of Introduction Safety Requirements in Component of an Embedded Software for Self-Defense Against the Failures with A Technique Combining Concept Lattice And Graph. Lala Madiha

More information

Symbol Detection Using Region Adjacency Graphs and Integer Linear Programming

Symbol Detection Using Region Adjacency Graphs and Integer Linear Programming 2009 10th International Conference on Document Analysis and Recognition Symbol Detection Using Region Adjacency Graphs and Integer Linear Programming Pierre Le Bodic LRI UMR 8623 Using Université Paris-Sud

More information

Control-Flow-Graph-Based Aspect Mining

Control-Flow-Graph-Based Aspect Mining Control-Flow-Graph-Based Aspect Mining Jens Krinke FernUniversität in Hagen, Germany krinke@acm.org Silvia Breu NASA Ames Research Center, USA silvia.breu@gmail.com Abstract Aspect mining tries to identify

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

More information

Producing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari

Producing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari Producing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari Abstract Graphical User Interface (GUI) is essential to programming, as is any other characteristic

More information

Binary Decision Diagrams

Binary Decision Diagrams Logic and roof Hilary 2016 James Worrell Binary Decision Diagrams A propositional formula is determined up to logical equivalence by its truth table. If the formula has n variables then its truth table

More information

Efficient Separate Compilation of Object-Oriented Languages

Efficient Separate Compilation of Object-Oriented Languages Efficient Separate Compilation of Object-Oriented Languages Jean Privat, Floréal Morandat, and Roland Ducournau LIRMM Université Montpellier II CNRS 161 rue Ada 34392 Montpellier cedex 5, France {privat,morandat,ducour}@lirmm.fr

More information

FCA for Software Product Lines Representation: Mixing Configuration and Feature Relationships in a Unique Canonical Representation

FCA for Software Product Lines Representation: Mixing Configuration and Feature Relationships in a Unique Canonical Representation FCA for Software Product Lines Representation: Mixing Configuration and Feature Relationships in a Unique Canonical Representation Jessie Carbonnel 1, Karell Bertet 2, Marianne Huchard 1 and Clémentine

More information

Proposals for Multiple to Single Inheritance Transformation

Proposals for Multiple to Single Inheritance Transformation Proposals for Multiple to Single Inheritance Transformation Michel Dao a, Marianne Huchard b, Thérèse Libourel b, Anne Pons c, Jean Villerd b a France Télécom R&D DTL/TAL 38-40 rue du général Leclerc,

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Sort-based Refactoring of Crosscutting Concerns to Aspects

Sort-based Refactoring of Crosscutting Concerns to Aspects Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft

More information

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 06 Object-Oriented Analysis and Design Welcome

More information

Formal Concept Analysis and Hierarchical Classes Analysis

Formal Concept Analysis and Hierarchical Classes Analysis Formal Concept Analysis and Hierarchical Classes Analysis Yaohua Chen, Yiyu Yao Department of Computer Science, University of Regina Regina, Saskatchewan, Canada S4S 0A2 E-mail: {chen115y, yyao}@cs.uregina.ca

More information

International Journal of Computer Science Trends and Technology (IJCST) Volume 5 Issue 2, Mar Apr 2017

International Journal of Computer Science Trends and Technology (IJCST) Volume 5 Issue 2, Mar Apr 2017 RESEARCH ARTICLE OPEN ACCESS Handling Anomalies in the System Design: A Unique Methodology and Solution Pratik Rajan Bhore [1], Dr. Shashank D. Joshi [2], Dr. Naveenkumar Jayakumar [3] Department of Computer

More information

Rediscovering. Modularity. Stuttgart JUG November 20 th 2012

Rediscovering. Modularity. Stuttgart JUG November 20 th 2012 Rediscovering Modularity Structure101 @chedgey Stuttgart JUG November 20 th 2012 Modularity Manage complexity by Encapsulation Information hiding Modularity Manage complexity by Encapsulation Defined interface

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

Handout 9: Imperative Programs and State

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

More information

Testing and Migration

Testing and Migration Testing and Migration Tudor Gîrba www.tudorgirba.com Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation of the new

More information

Dynamic Analysis and Design Pattern Detection in Java Programs

Dynamic Analysis and Design Pattern Detection in Java Programs Dynamic Analysis and Design Pattern Detection in Java Programs Lei Hu and Kamran Sartipi Dept. Computing and Software, McMaster University, Hamilton, ON, L8S 4K1, Canada {hu14, sartipi}@mcmaster.ca Abstract

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Concept Analysis. Porfirio Tramontana Anna Rita Fasolino. Giuseppe A. Di Lucca. University of Sannio, Benevento, Italy

Concept Analysis. Porfirio Tramontana Anna Rita Fasolino. Giuseppe A. Di Lucca. University of Sannio, Benevento, Italy Web Pages Classification using Concept Analysis Porfirio Tramontana Anna Rita Fasolino Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy Giuseppe A. Di Lucca RCOST Research

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

More information

3 No-Wait Job Shops with Variable Processing Times

3 No-Wait Job Shops with Variable Processing Times 3 No-Wait Job Shops with Variable Processing Times In this chapter we assume that, on top of the classical no-wait job shop setting, we are given a set of processing times for each operation. We may select

More information

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering? Q2a. What are the key challenges being faced by software engineering? Ans 2a. The key challenges facing software engineering are: 1. Coping with legacy systems, coping with increasing diversity and coping

More information

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs Cesar Couto, Pedro Pires, Marco Tulio Valente, Roberto Bigonha, Andre Hora, Nicolas Anquetil To cite this version: Cesar

More information

Using Concept Lattices to Support Web Service Compositions with Backup Services

Using Concept Lattices to Support Web Service Compositions with Backup Services Using Concept Lattices to Support Web Service Compositions with Backup Services Zeina Azmeh, Marianne Huchard, Chouki Tibermacine LIRMM - CNRS & Univ. Montpellier II - France {azmeh, huchard, tibermacin}@lirmm.fr

More information

Theme Identification in RDF Graphs

Theme Identification in RDF Graphs Theme Identification in RDF Graphs Hanane Ouksili PRiSM, Univ. Versailles St Quentin, UMR CNRS 8144, Versailles France hanane.ouksili@prism.uvsq.fr Abstract. An increasing number of RDF datasets is published

More information

Science of Computer Programming

Science of Computer Programming Science of Computer Programming ( ) Contents lists available at SciVerse ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico ozone: Layer identification in the

More information

Digital Archives: Extending the 5S model through NESTOR

Digital Archives: Extending the 5S model through NESTOR Digital Archives: Extending the 5S model through NESTOR Nicola Ferro and Gianmaria Silvello Department of Information Engineering, University of Padua, Italy {ferro, silvello}@dei.unipd.it Abstract. Archives

More information

Clustering-Based Distributed Precomputation for Quality-of-Service Routing*

Clustering-Based Distributed Precomputation for Quality-of-Service Routing* Clustering-Based Distributed Precomputation for Quality-of-Service Routing* Yong Cui and Jianping Wu Department of Computer Science, Tsinghua University, Beijing, P.R.China, 100084 cy@csnet1.cs.tsinghua.edu.cn,

More information

Navigating and Exploring RDF Data using Formal Concept Analysis

Navigating and Exploring RDF Data using Formal Concept Analysis Navigating and Exploring RDF Data using Formal Concept Analysis Mehwish Alam and Amedeo Napoli LORIA (CNRS Inria Nancy Grand Est Université de Lorraine) BP 239, 54506 Vandoeuvre-les-Nancy, France {mehwish.alam,amedeo.napoli@loria.fr}

More information

A Novel Method for the Comparison of Graphical Data Models

A Novel Method for the Comparison of Graphical Data Models 3RD INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS DEVELOPMENT (ISD01 CROATIA) A Novel Method for the Comparison of Graphical Data Models Katarina Tomičić-Pupek University of Zagreb, Faculty of Organization

More information

Using Component-oriented Process Models for Multi-Metamodel Applications

Using Component-oriented Process Models for Multi-Metamodel Applications Using Component-oriented Process Models for Multi-Metamodel Applications Fahad R. Golra Université Européenne de Bretagne Institut Télécom / Télécom Bretagne Brest, France Email: fahad.golra@telecom-bretagne.eu

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

Creating a Lattix Dependency Model The Process

Creating a Lattix Dependency Model The Process Creating a Lattix Dependency Model The Process Whitepaper January 2005 Copyright 2005-7 Lattix, Inc. All rights reserved The Lattix Dependency Model The Lattix LDM solution employs a unique and powerful

More information

Relational Concept Analysis (RCA)

Relational Concept Analysis (RCA) Relational Concept Analysis (RCA) Mining multi-relational datasets Applied to class model evolution SATToSE 2014 Marianne Huchard July 11, 2014 An introduction to RCA Brief presentation of FCA Formal Concept

More information

Core Membership Computation for Succinct Representations of Coalitional Games

Core Membership Computation for Succinct Representations of Coalitional Games Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity

More information

UC Irvine UC Irvine Previously Published Works

UC Irvine UC Irvine Previously Published Works UC Irvine UC Irvine Previously Published Works Title Differencing and merging within an evolving product line architecture Permalink https://escholarship.org/uc/item/0k73r951 Authors Chen, Ping H Critchlow,

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer

More information

Taxonomy Dimensions of Complexity Metrics

Taxonomy Dimensions of Complexity Metrics 96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,

More information

Applying Experiences with Declarative Codifications of Software Architectures on COD

Applying Experiences with Declarative Codifications of Software Architectures on COD Applying Experiences with Declarative Codifications of Software Architectures on COD Position Paper Roel Wuyts Stéphane Ducasse Gabriela Arévalo roel.wuyts@iam.unibe.ch ducasse@iam.unibe.ch arevalo@iam.unibe.ch

More information

Dynamic and Static Approaches Comparison for Test Suite Reduction in Industry

Dynamic and Static Approaches Comparison for Test Suite Reduction in Industry Dynamic and Static Approaches Comparison for Test Suite Reduction in Industry Vincent Blondeau, Sylvain Cresson, Pascal Croisy, Anne Etien, Nicolas Anquetil, Stéphane Ducasse To cite this version: Vincent

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 14 Reengineering Patterns Part 2 1 Reengineering Patterns: Detecting Duplicated Code 2 Detecting Duplicated Code: Compare Code Mechanically

More information

Tool Support for Refactoring Duplicated OO Code

Tool Support for Refactoring Duplicated OO Code Tool Support for Refactoring Duplicated OO Code Stéphane Ducasse and Matthias Rieger and Georges Golomingi Software Composition Group, Institut für Informatik (IAM) Universität Bern, Neubrückstrasse 10,

More information

Quality-driven feature identification and documentation from source code

Quality-driven feature identification and documentation from source code Quality-driven feature identification and documentation from source code Hamzeh Eyal Salman, Abdelhak-Djamel Seriai, Mustafa Hammad To cite this version: Hamzeh Eyal Salman, Abdelhak-Djamel Seriai, Mustafa

More information

Inter-Project Dependencies in Java Software Ecosystems

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

More information

Application of Execution Pattern Mining and Concept Lattice Analysis on Software Structure Evaluation

Application of Execution Pattern Mining and Concept Lattice Analysis on Software Structure Evaluation Application of Execution Pattern Mining and Concept Lattice Analysis on Software Structure Evaluation Kamran Sartipi and Hossein Safyallah Dept. Computing and Software, McMaster University Hamilton, ON,

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

MERGING BUSINESS VOCABULARIES AND RULES

MERGING BUSINESS VOCABULARIES AND RULES MERGING BUSINESS VOCABULARIES AND RULES Edvinas Sinkevicius Departament of Information Systems Centre of Information System Design Technologies, Kaunas University of Lina Nemuraite Departament of Information

More information

Applying and combining three different aspect mining techniques

Applying and combining three different aspect mining techniques Software Qual J (2006) 14:209 231 DOI 10.1007/s11219-006-9217-3 Applying and combining three different aspect mining techniques M. Ceccato M. Marin K. Mens L. Moonen P. Tonella T. Tourwé C Science + Business

More information

A Heuristic-based Approach to Identify Concepts in Execution Traces

A Heuristic-based Approach to Identify Concepts in Execution Traces A Heuristic-based Approach to Identify Concepts in Execution Traces Fatemeh Asadi * Massimiliano Di Penta ** Giuliano Antoniol * Yann-Gaël Guéhéneuc ** * Ecole Polytechnique de Montréal, Canada ** Dept.

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

More information

Supporting the Workflow Management System Development Process with YAWL

Supporting the Workflow Management System Development Process with YAWL Supporting the Workflow Management System Development Process with YAWL R.S. Mans 1, W.M.P. van der Aalst 1 Department of Mathematics and Computer Science, Eindhoven University of Technology, P.O. ox 513,

More information

Procedia Computer Science

Procedia Computer Science Procedia Computer Science 00 (2009) 000 000 Procedia Computer Science www.elsevier.com/locate/procedia INSODE 2011 Theoretical Analysis for the Impact of Including Special Methods in Lack-of-Cohesion Computation

More information

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011 Expanding Our Horizons CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011 1 Goals of the Lecture Cover the material in Chapter 8 of our textbook New perspective on objects and encapsulation

More information

Combining Different Business Rules Technologies:A Rationalization

Combining Different Business Rules Technologies:A Rationalization A research and education initiative at the MIT Sloan School of Management Combining Different Business Rules Technologies:A Rationalization Paper 116 Benjamin Grosof Isabelle Rouvellou Lou Degenaro Hoi

More information

Rochester Institute of Technology. Making personalized education scalable using Sequence Alignment Algorithm

Rochester Institute of Technology. Making personalized education scalable using Sequence Alignment Algorithm Rochester Institute of Technology Making personalized education scalable using Sequence Alignment Algorithm Submitted by: Lakhan Bhojwani Advisor: Dr. Carlos Rivero 1 1. Abstract There are many ways proposed

More information

A Python Library for FCA with Conjunctive Queries

A Python Library for FCA with Conjunctive Queries A Python Library for FCA with Conjunctive Queries Jens Kötters Abstract. The paper presents a Python library for building concept lattices over power context families, using intension graphs (which formalize

More information