ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION
|
|
|
- Jody Quinn
- 9 years ago
- Views:
Transcription
1 ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION Raúl Marticorena, Carlos López Language and Informatic Systems, University of Burgos, EPS Campus Vena Edificio C, Burgos, Spain Javier Pérez, Yania Crespo Department of Computing, University of Valladolid, ETSII Campus Miguel Delibes, Valladolid, Spain Keywords: Abstract: Refactoring tools, characterization, IDE, object-oriented programming. Tool support for refactoring is widespread nowadays. The most widely known IDEs include refactoring support, and many refactoring-specific tools are also available. Developers are aware of refactoring activities and they do refactor their applications even manually or in an assisted way. For the users of refactoring tools, the current state of the art is well documented in refactoring catalogs, where objectives, motivation, mechanisms, etc. are defined. There are also available collections of criteria to detect refactoring opportunities; compilations of guidelines to help decide when and how to apply refactorings. However, refactoring tool implementors can not only base their work on the documentation available in refactoring catalogs because they do not offer clear guidelines on how to build the tools to automate these refactorings. Implementing refactoring tools without any guidance, involves reasoning about which will be the better plan to implement refactoring operations in the tool, their complexity or their graphical interface design, etc. This paper introduces a refactoring characterization, and proposes how it can help refactoring tool implementors on making decisions. 1 Introduction Refactoring has become a well known and useful technique for software developers in a short time. Since 1992, where W. Opdyke (Opdyke, 1992) stamped the term and defined which can be considered the first refactoring catalog, advances in refactoring have been increased exponentially. Fowler et al. published the first book on refactoring (Fowler, 2000) which spreads the seed all around. This book contains the definition of one of the most known refactoring catalogs 1. Other well known catalogs can be found in (Kerievsky, 2004), (Ambler and Sadalage, 2006), (Lippert and Roock, 2006) and (Meszaros, 2007). The impact of refactoring is so that developers are aware of refactoring activities and they do refactor their applications even manually or in an assisted way. Nevertheless, authors agree that the activities concerning refactorings must be automated (Mens and 1 See also Tourwé, 2004) in order to succeed. The most widely known IDEs include refactoring support, and many refactoring-specific tools are also available. Implementing refactoring tools involves reasoning about which will be the better schedule to implement refactoring operations in the tool in a rational and effective way. This includes issues on reusability, complexity and graphical user interface design. In this work, we will present a characterization of refactoring operations. It will provide some objective criteria, that should drive decisions in the refactoring tools development process, to developers of refactoring-specific tools or IDEs refactoring modules. In the remainder of this paper, some related works on refactoring implementation and refactoring characterization approaches are detailed in Section 2. Section 3 describes the proposed characterization based on features. Section 4 provides the characterization of the Fowler s catalog and shows how the characterization was used to help making decisions in the
2 development of a refactoring tool. Section 5 concludes and describes some future work. 2 Related Works In (Crespo and Marqués, 2001), we find an analysis of refactorings. This analysis is based on a classification, in order to characterize and to compare refactorings from several works. The characterization is made from seven features: motivation: reuse, requirement changes or maintenance. direction: vertical (inheritance), horizontal (client). effects: preserve clients, preserve objects, aggressive. consequences: global, localized. initiated: by inference, by demand. human interaction: automatic, semiautomatic, manual. target: analysis, design, implementation artifacts. Some conclusions can be extracted from this work, that helps to infer refactoring properties. However, this work is performed from a high-level point of view that is not useful to solve refactoring implementation problems at a lower level of abstraction. In (Zannier and Maurer, 2003), a new refactoring characterization is presented. This characterization is organised around three complexity levels: atomic, sequential and complex. Basic object-oriented concepts package, class, method, field, etc. define a feature named scope. Refactorings are then classified using the scope of the input and output elements of the refactoring. This approach has some advantages: it is easy to apply and it does not depend on implementation details, therefore it can be applied with several goals. Nevertheless, it defines just three large groups of refactorings. Some additional implementation decisions are difficult to made, due to the lack of a more fine-grained classification, which could allow refining these big groups. On the basis of (Crespo and Marqués, 2001), (López et al., 2006) proposed a characterization aimed at helping in refactoring definition. The main features of this characterization are: knowledge requirement: required design patterns. target: design models, code implementation. inputs: system, class, attribute, method, instruction, entity. preconditions: system, class, attribute, method, instruction, entity. actions: create, update, delete. postconditions: system, class, attribute, method, instruction and entity. Additionally, it takes into account low level details, such as the number or type of the elements used in preconditions, actions or postconditions. This approach depends on a particular solution and programming language and, therefore, it is difficult to reuse in other contexts. Gathering all that information is useful but, as a negative consequence, some decisions should be made before knowing certain details. As a consequence, it could be possible that some implementation changes could have effects on the refactoring characterization. This situation must be avoided. 3 Refactoring Characterization The main goal which drives this characterization is to define simple features which can be extracted from refactoring descriptions (from recipes or semiformal definitions). These features should also be objective, in the sense that different people should obtain the same values from their descriptions. Therefore, we try to avoid a subjective issue. Hence, instances of characterization features must be extracted from catalogs with a basic observation, hiding language and implementation details. Next subsections detail each feature. 3.1 Design and Language Issues Design and language issues, required to apply certain refactoring, points out some clues about its complexity. Programmers can have different knowledge and experience on the programming language, making it easier or more difficult to apply, and to implement certain refactoring. We define three levels: Basic: a refactoring uses common concepts of Object-Oriented (OO) languages (modules, classes, attributes, methods and inheritance). It talks about concepts of an OO programming language, which can be managed by any developers with basic knowledge of OO programming. Advanced: advanced concepts of OO programming, such as contracts, exceptions, genericity, delegates and annotations. These concepts require a good knowledge of the programming language and skills in well known good practices of OO programming and design.
3 Design Pattern: the refactoring involves some details regarding design patterns, such as participants, roles, etc. defined in the design pattern specification. The designer or the programmer must be acquainted with design pattern catalogs and the different idioms for each language. In (Kerievsky, 2004), we can find a complete calatog of these refactorings. Some examples of the application of this feature are: Inline Method (basic), Replace Exception with Test (advanced) and Form Template Method (design pattern) (Fowler, 2000). We assume that each level subsumes the previous ones. Those programmers which apply design patterns, are also knowledgeable on basic and advanced OO concepts. This feature is interesting in education because it allows gradating contents. 3.2 Scope This feature tries to observe the refactoring effects as seen by the users, without implementation details. When we apply a refactoring, we can log three different change levels: Intraclass (I): changes that do not affect other classes. Changes are contained within the class scope. They modify the methods body or those entities not referenced from other classes (e.g. private or non-exported methods). Contracts between classes remain without changes. Client (C): client classes need to be updated (with changes in the contracts). Changes affect public or exported properties which are used by client classes belonging to the same or different packages, namespaces or workspaces. Inheritance (H): classes with inheritance relationships are modified. The class hierarchy is affected by changes to the inherited properties. The basic effect is that changes must be usually propagated in both ways: ancestors and descendants. A refactoring can have effects at the three levels. For example, Add Parameter (Fowler, 2000), apparently a simple refactoring, has effects on its own class (Intraclass), clients that use the method (Client), and ancestor or descendants that define or override the method (inheritance). 3.3 Inputs Inputs are the cornerstone of refactorings, because the users want to refactor something (refactoring target) and additional information is needed to drive the refactoring execution. If the refactoring offers different alternative paths, user interaction is mandatory. The refactoring inputs are important factors for characterizing refactorings. Basically, the programmer needs to identify: Root input: (or target element) the software element that users select when invoking the refactoring, from visual inspection or aided detection. For example: Self Encapsulate Field (Fowler, 2000), needs only one target input, the field to encapsulate. The remaining refactoring actions do not need user interaction. Additional inputs: it is very common that users provide some extra information about how to run the refactoring. They are defined as additional inputs. Wizards and other graphical components are built to assist the users to introduce these values. For example: Move Field (Fowler, 2000) needs a field as the root input, but the user has also to select the target class (additional input) where the field must be moved to. User interaction is mandatory in order to to choose the target class. We always need a root input that identifies which kind of refactoring can be applied. This point is used intensively in currently available tools. All of them give some sort of inference, showing the closed set of refactorings that can be applied to the element the user has selected. Therefore, we need to classify refactorings by their root element because this will be used to define the specific set of refactorings that should be enabled in our refactoring tool or IDE when some kind of element is selected for refactor. One of the current problems that users face when applying refactorings, appears when the tool does not offer any assistance about the applicable set of refactorings. Some works such as (Emerson Murphy- Hill, 2008) point out this problem. As a consequence of this, people are reluctant to apply refactorings because they do not have a clear idea of what refactorings can be applied. 3.4 Actions We define actions as operations that change the source code state. Refactorings usually involve many smaller actions. From reviewing refactoring mechanisms (Fowler, 2000) or even low-level refactorings (Opdyke, 1992), we can deduce that many actions are performed by executing one simple refactoring. These actions are linked to the implementation solution (metamodels, logic predicates, grammarware, XML, etc.), but for the sake of simplicity one abstract action must characterize the refactoring. In this work, refacto-
4 ring snapshots are considered, from the initial to final state, selecting one action that defines the refactoring. Enlarging these catalogs by adding new refactorings, would make it very easy to add new actions. Nevertheless the characterization purpose is to give a simple and easy method. Therefore, we must generalize this feature to a closed set of actions, with a narrow number of options, where any refactoring could be classified. Regarding source code edition, we can think about basic text operations as copy, paste, delete, find, etc. In concern of the refactoring process, we can think in similar terms, and reduce the number of applicable actions to (ordered from lower to greater complexity): Add: it links a previously created element to its scope where it will be contained. Rename it changes the name of an element identified in the system by name. Remove it cuts the relationship between an element and the scope where it was contained. Replace as the sequential run of Remove and Add in the same scope. Move as the sequential run of Remove and Add in different scopes. 4 The Refactoring Characterization in Practice In this section, some refactorings from the classical Fowler s catalog (Fowler, 2000) are characterized. Most of currently available tools and IDEs choose this catalog as the first reference to follow. It is an advantage because it provides a common point of view, with a well known vocabulary. 4.1 Applications on Building Graphical User Interface A common problem with refactorings tools is to define a graphical library or API that allows to build refactoring user screens that guide refactoring execution. Inputs give an approximation of the refactoring complexity. Big number of inputs are more difficult to manage, with more complicated graphical user interfaces. This is a basic question, and it is relatively easy to give an answer using the inputs feature of the refactoring characterization. If we have a refactoring with only one input (root input), it can be classified as automatic and it will be initiated automatically from the environment selection by the programmer. On the other hand, if the refactoring needs some additional parameters, we need user interaction and the refactoring is semiautomatic. In the first case, you do not need any dialog window or wizard, but with semiautomatic refactorings, some kind of graphical support must be available. Next step is to use the root input type. Depending on the tool, certain software elements could be available or not. Since it is important to mark the root input type. If your tool only works at design level, refactorings with a block of instructions as input, do not have sense and could not be included. From a reuse point of view, we need to know what refactorings have a similar GUI. These questions can also be answered with this characterization. For example, refactorings as Replace Error Code with Exception, Replace Exception with Test, Replace Method with Method Object, Replace Parameter with Explicit Methods, Replace Parameter with Method and Separate Query from Modifier, have the same inputs: one method (as root input) and one code fragment. All these refactorings will have a common GUI, since the refactoring GUI API could be reused in a great number of refactorings. Other different case is the Add Parameter refactoring. We need one method (as root input), one type and one name to build the new parameter. There is no other refactoring that shares these inputs, as this concrete GUI could not be reused. From our previous experience (Marticorena et al., 2007) (Marticorena and Crespo, 2008), we used our characterization. Refactoring classification using the root input, also allows to define clearly the set of available refactorings. If the tool includes one concept (i.e. class, method, etc.), it is relatively easy to help users showing just refactorings with its suitable type input. Our Eclipse plug-in points current available refactorings depending on the current selected element. As can be seen in Fig.1, it is selected the check method in the text editor and Available Refactorings view shows the suitable refactoring list. Figure 1: Running available refactorings.
5 4.2 Applications on Scheduling A different and more complicated problem is to determine a schedule of refactoring implementation. If we have a set of refactorings, extracted from some catalogs, what refactorings should be implemented at first steps? Some criteria should be applied to maximize reuse and to minimize efforts. In (Fowler, 2000), we find the use relationship, but these relationships are established by the author, from his own experience. Refactorings are grouped by functional criteria, but these groups do not define any implementation order. We could take the use dependency graph extracted from (Fowler, 2000) and begin to build the refactorings using this graph following a topological sorting. This method is also used in bottom-up testing. Nevertheles, our proposal tries to give a simple method, with similar results, but without previous experience applying the refactoring set (usually in a manual way). In order to divide the problem, we will face the refactoring implementation focused on functional groups (Fowler, 2000), instead on focusing on the complete set of refactorings. For example, in the group Moving Features Between Objects, we find seven refactorings. In Figure. 2, the graph of use relationships inferred from the catalog in (Fowler, 2000) is presented. The process uses the previously explained criteria: Design and Language Issues, Scope, Inputs (root and additional inputs and Action type. These criteria are used to schedule the refactoring implementations, from the first criterion to the last in a similar way to the clause order by in a SQL query (the order in the clause marks the precedence in the results). When two elements have same values in the i th feature, it is applied the i th + 1 to solve the tie. An example of applying the proposed characterization to the refactorings is shown in Table 1 on the Category Moving Features Between Objects from (Fowler, 2000). The elements in the table are obtained in descending complexity. If we take the ordered refactorings in Table 1, it is very similar to one of the possible topological sorting extracted from the dependency graph of (Fowler, 2000) (see Fig. 2). Some refactorings, as Remove Middle Man or Introduce Foreign Method, without dependencies in the graph, can be scheduled following the proposed order. About refactoring implementation schedule, our solution is based on repositories. These repositories contain functions and predicates that allow to ensemble the refactoring pieces (pre/postconditions and actions). Applying previous features explained in Sec. 3, we obtain those refactoring with lowest complexity as the first candidates to be implemented. 5 Conclusions and Future Work The characterization presented in this position paper uses only static information, that can be extracted from an abstract refactoring definition, with some degree of language independence. This level of abstraction has some advantages. It offers a starting point to implement a refactoring, therefore the tool builder can be more confident on the initial decisions taken during the first steps of the refactoring tool development. Nevertheless, using the proposed characterization can also trigger some questions about the refactoring definition itself. It can warn us to check whether the refactoring has been correctly defined, or even to reason about if two different characterization refers to the same refactoring. Our approach can be used as a tool to compare how different people understand the refactoring definitions included in refactoring catalogs. Future work could include to apply this method to very different catalogs. For example, in (Ambler and Sadalage, 2006), refactorings are applied to databases. Concepts such as design and language issues, scope, inputs and actions, should be adapted to new domains. Although, we think that a similar characterization could be defined and applied with low effort, partially reusing the results of this work. ACKNOWLEDGEMENTS Raúl Marticorena, Carlos López, Javier Pérez and Yania Crespo are partially funded by the spanish government (Ministerio de Ciencia e Innovación, project TIN ). REFERENCES Ambler, S. W. and Sadalage, P. J. (2006). Refactoring Databases: Evolutionary Database Design. Addison- Wesley Professional. Crespo, Y. and Marqués, J. M. (2001). Definición de un Marco de Trabajo para el Análisis de Refactorizaciones de software. Actas JISBD 01,VI Jornadas de Ingeniería del Software y Bases de Datos, pages Emerson Murphy-Hill, A. P. B. (2008). Refactoring tools: Fitness for purpose. IEEE Software, 25(5): Fowler, M. (2000). Refactoring. Improving the Design of Existing Code. Addison-Wesley.
6 Figure 2: Moving Features Between Objects. Table 1: Moving Features Between Objects Characterization. Refactoring Design and Language Scope Root Additional Inputs Action Issues Input Hide Delegate Design Pattern ICH 1 Class N Classes Move Remove Middle Man Design Pattern ICH 1 Class N Classes Remove Introduce Local Extension Basic ICH 1 Class 1 Class, N methods Add Extract Class Basic ICH 1 Class N Attributes Move Inline Class Basic ICH 1 Class 1 Class Move Move Method Basic ICH 1 Method 1 Class Move Move Field Basic ICH 1 Attribute 1 Class Move Introduce Foreign Method Basic IC 1 Class N Instructions Add Kerievsky, J. (2004). Refactoring to Patterns. Addison- Wesley. Lippert, M. and Roock, S. (2006). Refactoring in Large Software Projects: Performing Complex Restructurings Successfully. Wiley, 1st edition ISBN-13: López, C., Marticorena, R., and Crespo, Y. (2006). Caracterización de Refactorizaciones para la Implementación en Herramientas. In Actas JISBD 06, XI Jornadas de Ingeniería del Software y Bases de Datos, Sitges, Barcelona, ISBN: , pages Marticorena, R. and Crespo, Y. (2008). Dynamism in Refactoring Construction and Evolution. A Solution Based on XML and Reflection. In 3rd International Conference on Software and Data Technologies (IC- SOFT), pages Marticorena, R., López, C., Crespo, Y., and Pérez, J. (2007). Reuse Based Refactoring Tools. In WRT 07, 1st Workshop on Refactoring Tools, Berlin, Germany., pages ECOOP 07. Mens, T. and Tourwé, T. (2004). A survey of software refactoring. IEEE Trans. Softw. Eng., 30(2): Meszaros, G. (2007). xunit Test Patterns: Refactoring Test Code (Addison Wesley Signature Series). Addison- Wesley Longman, Amsterdam. Opdyke, W. F. (1992). Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana- Champaign, IL, USA. Zannier, C. and Maurer, F. (2003). Tool support for complex refactoring to design patterns. In Marchesi, M. and Succi, G., editors, XP, volume 2675 of Lecture Notes in Computer Science, pages Springer.
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
An Automatic Reversible Transformation from Composite to Visitor in Java
An Automatic Reversible Transformation from Composite to Visitor in Java Akram To cite this version: Akram. An Automatic Reversible Transformation from Composite to Visitor in Java. CIEL 2012, P. Collet,
Software Refactoring using New Architecture of Java Design Patterns
Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:
Agile Software Development
Agile Software Development Lecturer: Raman Ramsin Lecture 13 Refactoring Part 3 1 Dealing with Generalization: Pull Up Constructor Body Pull Up Constructor Body You have constructors on subclasses with
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study
Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study Francisco Zigmund Sokol 1, Mauricio Finavaro Aniche 1, Marco Aurélio Gerosa 1 1 Department of Computer Science University of São
RANKING REFACTORING PATTERNS USING THE ANALYTICAL HIERARCHY PROCESS
RANKING REFACTORING PATTERNS USING THE ANALYTICAL HIERARCHY PROCESS Eduardo Piveta 1, Ana Morra 2, Maelo Penta 1 João Araújo 2, Pedro Guerrro 3, R. Tom Price 1 1 Instituto de Informática, Universidade
sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases
sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases Hagen Schink Institute of Technical and Business Information Systems Otto-von-Guericke-University Magdeburg, Germany
A Case Study for Program Refactoring
A Case Study for Program Refactoring Berthold Hoffmann, Javier Pérez 2, and Tom Mens 3 Universität Bremen, Germany 2 Universidad de Valladolid, Spain 3 Service de Génie Logiciel, Université de Mons-Hainaut,
Building Reusable Software Component For Optimization Check in ABAP Coding
Building Reusable Software Component For Optimization Check in ABAP Coding P.Shireesha Lecturer Dept. of MCA KITS,Warangal,INDIA. [email protected] Dr.S.S.V.N.Sharma Professor Dept. of Informatics
Applying Object-Oriented Principles to the Analysis and Design of Learning Objects
Applying Object-Oriented Principles to the Analysis and Design of Learning Objects Chrysostomos Chrysostomou and George Papadopoulos Department of Computer Science, University of Cyprus, Nicosia, Cyprus
Program Understanding in Software Engineering
Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert
i-questionnaire A Software Service Tool for Data
i-questionnaire A Software Service Tool for Data Analysis in e-business 1 ANDY S.Y. LAI, 2 Y.C. POON 1, Department of Information and Communications Technology, Hong Kong Institute of Vocational Education,
Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.
TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is
Business Insight Report Authoring Getting Started Guide
Business Insight Report Authoring Getting Started Guide Version: 6.6 Written by: Product Documentation, R&D Date: February 2011 ImageNow and CaptureNow are registered trademarks of Perceptive Software,
Tool Support for Software Variability Management and Product Derivation in Software Product Lines
Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,
EMC Documentum Composer
EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights
Integrity 10. Curriculum Guide
Integrity 10 Curriculum Guide Live Classroom Curriculum Guide Integrity 10 Workflows and Documents Administration Training Integrity 10 SCM Administration Training Integrity 10 SCM Basic User Training
Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.
Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez [email protected] Hector Florez [email protected] ABSTRACT The linguistic conformance and the ontological
Using the TASKING Software Platform for AURIX
Using the TASKING Software Platform for AURIX MA160-869 (v1.0rb3) June 19, 2015 Copyright 2015 Altium BV. All rights reserved. You are permitted to print this document provided that (1) the use of such
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
NNMi120 Network Node Manager i Software 9.x Essentials
NNMi120 Network Node Manager i Software 9.x Essentials Instructor-Led Training For versions 9.0 9.2 OVERVIEW This course is designed for those Network and/or System administrators tasked with the installation,
Lightweight Data Integration using the WebComposition Data Grid Service
Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
SERENITY Pattern-based Software Development Life-Cycle
SERENITY Pattern-based Software Development Life-Cycle Francisco Sanchez-Cid, Antonio Maña Computer Science Department University of Malaga. Spain {cid, amg}@lcc.uma.es Abstract Most of current methodologies
Terms and Definitions for CMS Administrators, Architects, and Developers
Sitecore CMS 6 Glossary Rev. 081028 Sitecore CMS 6 Glossary Terms and Definitions for CMS Administrators, Architects, and Developers Table of Contents Chapter 1 Introduction... 3 1.1 Glossary... 4 Page
131-1. Adding New Level in KDD to Make the Web Usage Mining More Efficient. Abstract. 1. Introduction [1]. 1/10
1/10 131-1 Adding New Level in KDD to Make the Web Usage Mining More Efficient Mohammad Ala a AL_Hamami PHD Student, Lecturer m_ah_1@yahoocom Soukaena Hassan Hashem PHD Student, Lecturer soukaena_hassan@yahoocom
Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria
OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software
OOP? What is OOP? Why? OOP in a nutshell. Stéphane Ducasse 2.1
OOP? What is OOP? Why? OOP in a nutshell Stéphane Ducasse 2.1 Reality on Software Development Analyze Maintain Design Construct Test What is important? maintainability extensibility understandability Stéphane
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 1, January-February 2007 CM Configuration Change Management John D.
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
Authoring for System Center 2012 Operations Manager
Authoring for System Center 2012 Operations Manager Microsoft Corporation Published: November 1, 2013 Authors Byron Ricks Applies To System Center 2012 Operations Manager System Center 2012 Service Pack
1 File Processing Systems
COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
XFlash A Web Application Design Framework with Model-Driven Methodology
International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,
Braindumps.C2150-810.50 questions
Braindumps.C2150-810.50 questions Number: C2150-810 Passing Score: 800 Time Limit: 120 min File Version: 5.3 http://www.gratisexam.com/ -810 IBM Security AppScan Source Edition Implementation This is the
Mining a Change-Based Software Repository
Mining a Change-Based Software Repository Romain Robbes Faculty of Informatics University of Lugano, Switzerland 1 Introduction The nature of information found in software repositories determines what
Domain-Specific Modelling for Cross-Platform Product Families
Domain-Specific Modelling for Cross-Platform Product Families Steven Kelly & Risto Pohjonen MetaCase Consulting, [email protected], [email protected] Abstract. Domain-specific modelling has proved its
Selbo 2 an Environment for Creating Electronic Content in Software Engineering
BULGARIAN ACADEMY OF SCIENCES CYBERNETICS AND INFORMATION TECHNOLOGIES Volume 9, No 3 Sofia 2009 Selbo 2 an Environment for Creating Electronic Content in Software Engineering Damyan Mitev 1, Stanimir
PTC Integrity Eclipse and IBM Rational Development Platform Guide
PTC Integrity Eclipse and IBM Rational Development Platform Guide The PTC Integrity integration with Eclipse Platform and the IBM Rational Software Development Platform series allows you to access Integrity
Reuse Contracts: Managing the Evolution of Reusable Assets
Reuse Contracts: Managing the Evolution of Reusable Assets Patrick Steyaert, Carine Lucas, Kim Mens, Theo D Hondt Programming Technology Lab Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussels, Belgium
Foundations of Model-Driven Software Engineering
Model-Driven Software Engineering Foundations of Model-Driven Software Engineering Dr. Jochen Küster ([email protected]) Contents Introduction to Models and Modeling Concepts of Model-Driven Software
A Java Tool for Creating ISO/FGDC Geographic Metadata
F.J. Zarazaga-Soria, J. Lacasta, J. Nogueras-Iso, M. Pilar Torres, P.R. Muro-Medrano17 A Java Tool for Creating ISO/FGDC Geographic Metadata F. Javier Zarazaga-Soria, Javier Lacasta, Javier Nogueras-Iso,
Defining and Checking Model Smells: A Quality Assurance Task for Models based on the Eclipse Modeling Framework
Defining and Checking Model Smells: A Quality Assurance Task for Models based on the Eclipse Modeling Framework Thorsten Arendt a, Matthias Burhenne a, Gabriele Taentzer a a Philipps-Universität Marburg,
How Can Data Sources Specify Their Security Needs to a Data Warehouse?
How Can Data Sources Specify Their Security Needs to a Data Warehouse? Arnon Rosenthal The MITRE Corporation [email protected] Edward Sciore Boston College (and MITRE) [email protected] Abstract In current warehouse
Modeling the User Interface of Web Applications with UML
Modeling the User Interface of Web Applications with UML Rolf Hennicker,Nora Koch,2 Institute of Computer Science Ludwig-Maximilians-University Munich Oettingenstr. 67 80538 München, Germany {kochn,hennicke}@informatik.uni-muenchen.de
Using Continuous Code Change Analysis to Understand the Practice of Refactoring
Using Continuous Code Change Analysis to Understand the Practice of Refactoring Stas Negara, Nicholas Chen, Mohsen Vakilian, Ralph E. Johnson, Danny Dig University of Illinois at Urbana-Champaign Urbana,
Using Object And Object-Oriented Technologies for XML-native Database Systems
Using Object And Object-Oriented Technologies for XML-native Database Systems David Toth and Michal Valenta David Toth and Michal Valenta Dept. of Computer Science and Engineering Dept. FEE, of Computer
Towards an Appropriate Software Refactoring Tool Support
Towards an Appropriate Software Refactoring Tool Support MARIJA KATIĆ, KREŠIMIR FERTALJ Department of Applied Computing Faculty of Electrical Engineering and Computing, University of Zagreb Unska 3, 10
Content Management Implementation Guide 5.3 SP1
SDL Tridion R5 Content Management Implementation Guide 5.3 SP1 Read this document to implement and learn about the following Content Manager features: Publications Blueprint Publication structure Users
Turning Emergency Plans into Executable
Turning Emergency Plans into Executable Artifacts José H. Canós-Cerdá, Juan Sánchez-Díaz, Vicent Orts, Mª Carmen Penadés ISSI-DSIC Universitat Politècnica de València, Spain {jhcanos jsanchez mpenades}@dsic.upv.es
Requirements and Recommendations for the Realization of a Configuration Management Database
Requirements and Recommendations for the Realization of a Configuration Management Database Thomas Schaaf 1, Boran Gögetap 2 1 MNM Team, Ludwig Maximilians University, Munich, Germany [email protected]
Integration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than
UPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts
UPROM Tool: A Unified Business Process Modeling Tool for Generating Software Life Cycle Artifacts Banu Aysolmaz 1 and Onur Demirörs 2 1, 2 Informatics Institute, Middle East Technical University, Ankara,
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor
A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor Klaus Krogmann, Steffen Becker University of Karlsruhe (TH) {krogmann, sbecker}@ipd.uka.de Abstract: The actual benefits
Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53
Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software
Textual Modeling Languages
Textual Modeling Languages Slides 4-31 and 38-40 of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics
Development of Tool Extensions with MOFLON
Development of Tool Extensions with MOFLON Ingo Weisemöller, Felix Klar, and Andy Schürr Fachgebiet Echtzeitsysteme Technische Universität Darmstadt D-64283 Darmstadt, Germany {weisemoeller klar schuerr}@es.tu-darmstadt.de
Simplifying e Business Collaboration by providing a Semantic Mapping Platform
Simplifying e Business Collaboration by providing a Semantic Mapping Platform Abels, Sven 1 ; Sheikhhasan Hamzeh 1 ; Cranner, Paul 2 1 TIE Nederland BV, 1119 PS Amsterdam, Netherlands 2 University of Sunderland,
A Multi-layered Domain-specific Language for Stencil Computations
A Multi-layered Domain-specific Language for Stencil Computations Christian Schmitt, Frank Hannig, Jürgen Teich Hardware/Software Co-Design, University of Erlangen-Nuremberg Workshop ExaStencils 2014,
On Applying Normalized Systems Theory to the Business Architectures of Information Systems
Baltic J. Modern Computing, Vol. 2 (204), No. 3, 32-49 On Applying Normalized Systems Theory to the Business Architectures of Information Systems Erki EESSAAR Department of Informatics, Tallinn University
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS
Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,
Integration of Application Business Logic and Business Rules with DSL and AOP
e-informatica Software Engineering Journal, Volume 4, Issue, 200 Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska, Krzysztof Kasprzyk Faculty of Computer
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
Avaya Aura Orchestration Designer
Avaya Aura Orchestration Designer Avaya Aura Orchestration Designer is a unified service creation environment for faster, lower cost design and deployment of voice and multimedia applications and agent
Run-time Variability Issues in Software Product Lines
Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, [email protected] 2 Dep.
Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1
The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions
ProGUM-Web: Tool Support for Model-Based Development of Web Applications
ProGUM-Web: Tool Support for Model-Based Development of Web Applications Marc Lohmann 1, Stefan Sauer 1, and Tim Schattkowsky 2 1 University of Paderborn, Computer Science, D 33095 Paderborn, Germany {mlohmann,sauer}@upb.de
From Business World to Software World: Deriving Class Diagrams from Business Process Models
From Business World to Software World: Deriving Class Diagrams from Business Process Models WARARAT RUNGWORAWUT 1 AND TWITTIE SENIVONGSE 2 Department of Computer Engineering, Chulalongkorn University 254
Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools
Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools Michaela Rindt, Timo Kehrer, Udo Kelter Software Engineering Group University of Siegen {mrindt,kehrer,kelter}@informatik.uni-siegen.de
Model Driven Interoperability through Semantic Annotations using SoaML and ODM
Model Driven Interoperability through Semantic Annotations using SoaML and ODM JiuCheng Xu*, ZhaoYang Bai*, Arne J.Berre*, Odd Christer Brovig** *SINTEF, Pb. 124 Blindern, NO-0314 Oslo, Norway (e-mail:
mframe Software Development Platform KEY FEATURES
mframe Software Development Platform mframe is a comprehensive software development platform for building modern modular WEB and B2B applications. It consists of basic core modules as well as other delevoped
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori
Demonstration of an Automated Integrated Test Environment for Web-based Applications
Demonstration of an Automated Integrated Test Environment for Web-based Applications Tiziana Margaria 1,2, Oliver Niese 2, and Bernhard Steffen 2 1 METAFrame Technologies GmbH, Dortmund, Germany [email protected]
A QUICK OVERVIEW OF THE OMNeT++ IDE
Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ 4.x Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.
Endo-Testing: Unit Testing with Mock Objects
Endo-Testing: Unit Testing with Mock Objects Tim Mackinnon, Steve Freeman, Philip Craig ([email protected], [email protected], [email protected]) ABSTRACT Unit testing is a fundamental practice in Extreme
Refactoring (in) Eclipse
Refactoring (in) Eclipse J. van den Bos Master s thesis August 15, 2008 Master Software Engineering Universiteit van Amsterdam Thesis Supervisor: Prof. Dr. P. Klint Internship Supervisor: Drs. H.J.S. Basten
Training Management System for Aircraft Engineering: indexing and retrieval of Corporate Learning Object
Training Management System for Aircraft Engineering: indexing and retrieval of Corporate Learning Object Anne Monceaux 1, Joanna Guss 1 1 EADS-CCR, Centreda 1, 4 Avenue Didier Daurat 31700 Blagnac France
Firewall Builder Architecture Overview
Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.
UML Representation Proposal for XTT Rule Design Method
UML Representation Proposal for XTT Rule Design Method Grzegorz J. Nalepa 1 and Krzysztof Kluza 1 Institute of Automatics, AGH University of Science and Technology, Al. Mickiewicza 30, 30-059 Kraków, Poland
Development/Maintenance/Reuse: Software Evolution in Product Lines
Development/Maintenance/Reuse: Software Evolution in Product Lines Stephen R. Schach Vanderbilt University, Nashville, TN, USA Amir Tomer RAFAEL, Haifa, Israel Abstract The evolution tree model is a two-dimensional
Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design
Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design Dionisis X. Adamopoulos 1, Constantine A. Papandreou 2 1 University of Piraeus, Greece and Centre for Communication
