FINE-GRAIN TRANSFORMATIONS FOR REFACTORING EMMAD I. M. SAADEH THESIS

Size: px
Start display at page:

Download "FINE-GRAIN TRANSFORMATIONS FOR REFACTORING EMMAD I. M. SAADEH THESIS"

Transcription

1 FINE-GRAIN TRANSFORMATIONS FOR REFACTORING By EMMAD I. M. SAADEH THESIS Submitted in partial fulfillment of the requirements for the degree of Philosophiae Doctor (Computer Science) in the Faculty of Engineering, Built Environment and Information Technology of the University of Pretoria, 2009 Pretoria, South Africa University of Pretoria

2 FINE-GRAIN TRANSFORMATIONS FOR REFACTORING By: Emmad I. M. Saadeh Supervisor: Prof. Derrick Kourie Department: Computer Science Degree: PhD (Computer Science) ABSTRACT This thesis proposes a new approach to formalize refactorings, principally at the UML class diagram design level (but incorporating a limited amount of code-level information basic access-related information). A set of abstract and atomic fine-grain transformations (FGTs) is defined as prototypical building blocks for constructing refactorings. The semantics of each FGT is specified in terms of its pre- and postcondition conjuncts. Various logical relationships between FGT pre- and postcondition conjuncts are fully catalogued. These include uni- and bidirectional sequential dependency relationships; absorbing and cancelling reduction relationships; and uni- and bi-directional conflict relationships. The principle container for FGTs is an FGT-list in which the ordering of FGTs respects the sequential relationships between them. Such a list is characterised by the set of FGT precondition conjuncts (which a system should satisfy if the FGTs are to be sequentially applied to the system) as well as the resulting postcondition conjuncts (that describe the effect of applying the list). In the thesis, twenty-nine commonly used primitive refactorings are specified as such FGT-lists, together with their associated FGT-enabling precondition conjuncts. Refactoring-level pre- and postconditions are also identified for each primitive refactoring FGT-list. These are, of course, required to guarantee behaviour preservation. An alternative container for FGTs is defined, called an FGT-DAG. It is a directed acyclic graph with FGTs as nodes, and with arcs that reflect the sequential dependency relationships between constituent FGTs. An algorithm is provided to convert a list of FGTs into a corresponding set of FGT-DAGs. Thus design level refactorings specified as FGT-lists can be also be converted to corresponding sets of FGT-DAGs. The precondition for applying such a refactoring to a given system is specified at two levels: the FGT-enabling precondition conjuncts that apply to each FGT-DAG, and the refactoring-level precondition conjuncts. The thesis provides various algorithms that operate on FGT-DAGs. These include an algorithm to remove redundancies from an FGT-DAG. It also includes algorithms that operate on the i

3 elements of a set of FGT-DAGs: to detect sequential dependencies between these elements, to detect whether they are in deadlock, and to detect and possibly remove or modify FGTs causing conflicts between them. In addition, an algorithm is provided to build composite refactorings from primitive refactorings. It indicates how composite-level and FGT-enabling precondition conjuncts can be derived and utilised to avoid the rollback problem. A Prolog prototype FGT-based refactoring tool has been implemented. The tool stores all of the above-mentioned catalogued information as Prolog rules and facts. This includes the twenty-nine commonly used primitive refactorings (stored as Prolog FGT-lists) and their associated refactoring-level pre- and postcondition conjuncts. The tool also implements all the previously mentioned algorithms as Prolog procedures. The thesis thus establishes the foundations for a tool in which end users can create (and apply without rollback) not only composite refactorings, but also completely new refactorings whose semantics is constrained only by the fine-grained semantics of FGTs, rather than by the more course-grained semantics of primitive refactorings. Furthermore, using FGTs as refactoring building blocks (i.e. instead of primitive refactorings) means that redundancies and conflicts can be more accurately pin-pointed and removed; and opportunities for parallel execution are exposed at a more fine-grained level. These advantages come at the cost of having to carry out more computations because analysis has to take place at the FGT-level rather than at the refactoring-level. ii

4 To my father, mother & my wife for their encouragement and support. iii

5 Acknowledgments First, I am thankful to God for having granted me the skills, power, patience, and opportunities that made this possible in spite of all the other commitments and responsibilities that I had. I would like to thank my supervisor, Prof. Derrick Kourie, for his support, guidance and patience along these years, and for providing constant direction. He has been a source of encouragement and inspiration. I learned a lot from the feedback he gave me. I was amazed by both his insights and his stamina. He invested his most valuable resource on my behalf: his time. I owe thanks to my colleagues in the Espresso Research Group and in the Computer Science Department in University of Pretoria for all the encouragements during the different stages of this work. I thank my parents, brothers and sisters for their support. I especially appreciated my father's words of encouragement. I thank my children Ibraheem, Marah, and Adam for many encouraging times together. I owe them all the time I spent to accomplish this work. I am especially thankful to my wife Hadeel for her love, support, and patient throughout this entire process. I really thank her for all the responsibilities she took on behalf of me to give me a chance to do my research. Without her, I never would have made it through the program. As a wife and mother, she picked up the slack and encouraged me in an extraordinary way. She deserves an award at least as valuable as my PhD. iv

6 TABLE OF CONTENTS Page ABSTRACT ACKNOWLEDGEMENTS TABLE OF CONTENTS LIST OF FIGURES LIST OF TABLES LIST OF ALGORITHMS i iv v x xii xiii I Prologue CHAPTER 1. INTRODUCTION The Problem The Proposed Formalism Thesis Overview REFACTORING STATE OF THE ART Software Evolution Refactoring Codes Level Non-Object-Oriented Programming Languages Object-Oriented Programming Languages Design Level Models Database Schemas Level Software Architectural Level Software Requirements Level Formalisms Graph Transformations Pre- and Postcondition Program Slicing Formal Concept Analysis II The Approach 3. LOGIC-BASED REPRESENTATION Introduction Object Element Logic-Terms Relation Element Logic-Terms Example Reflection on this Chapter v

7 4. FGT-BASED APPROACH Introduction Fine-Grain Transformations (FGTs) Object Element FGTs addobject FGT renameobject FGT changeoamode FGT changeodeftype FGT deleteobject FGT Relational Element FGTs addrelation FGT renamerelation FGT deleterelation FGT FGT Sequential Dependency Definition Uni-Directional Sequential Dependencies Bi-Directional Sequential Dependency Mapping Feasible FGT-Lists to FGT-DAGs FGTs for Primitive and Composite Refactorings Definitions FGT-Enabling Preconditions in an FGT-DAG FGTs and Primitive Refactorings Preconditions Applying Refactorings Reflection on this Chapter PRIMITIVE REFACTORINGS AS FGT COLLECTIONS Introduction Add Element Refactorings addclass addmethod addattribute addparameter addgetter addsetter Change Element Refactorings Changing Characteristics renameclass renamemethod renameattribute renameparameter changeclassaccess changemethodaccess changeattributeaccess changemethodreturntype changeattributedeftype changeparameterdeftype Change Structure (Restructuring) vi

8 changesuper movemethod moveattribute attributereadstomethodcall attributewritestomethodcall pullupmethod pushdownmethod pullupattribute pushdownattribute Delete Element Refactorings deleteclass deletemethod deleteattribute deleteparameter Reflection on this Chapter MOTIVATED EXAMPLE LAN Simulation Logic-Based Representation encapsulateattribute Refactoring createclass Refactoring pullupmethod Refactoring LAN after Refactorings III Features Of The Approach 7. REDUNDANCY REMOVAL Introduction Absorbing Reduction Cancelling Reduction Advantages of Reduction Process Reduction Algorithm Example Efficiency Considerations DETECTING AND RESOLVING CONFLICTS Introduction Conflicts in FGT-Based Approach FGT's Conflicts-Pairs Bi-Directional Conflict Uni-Directional Conflict Conflict Algorithm LAN Motivated Example Reflections on Conflicts SEQUENTIAL DEPENDENCY BETWEEN REFACTORINGS Introduction Sequential Dependency in Previous Approaches vii

9 9.3 Sequential Dependency between FGT-Based Refactorings Sequential Dependency Algorithm Deadlock Problem LAN Motivated Example COMPOSITE REFACTORINGS Introduction FGT-based Composite Refactoring Examples encapsulateattribute Composite Refactoring enh-pullupattribute Composite Refactoring Reflection on this Chapter PARALLELIZING OPPORTUNITIES Introduction Parallelizing Opportunities Reflection on Parallelization NEW REFACTORINGS Introduction Example New Refactorings in the FGT-Based Approach Reflection on this Chapter IV Epilogue 13. CONCLUSIONS Summary Conclusions Future Work V Appendix A. FGT SEQUENTIAL DEPENDENCY A.1 Uni-Directional Sequential Dependencies A.2 Bi-Directional FGTs Sequential Dependencies B. PRIMITIVE REFACTORINGS AS FGT SEQUENCES B.1 Add Element Refactorings B.1.1 addclass B.1.2 addmethod B.1.3 addattribute B.1.4 addparameter B.2 Rename Element Refactorings B.2.1 renameclass B.2.2 renamemethod B.2.3 renameattribute B.2.4 renameparameter B.3 Change Characteristics Refactorings viii

10 B.3.1 changeclassaccess B.3.2 changemethodaccess B.3.3 changeattributeaccess B.3.4 changemethodreturntype B.3.5 changeattributedeftype B.3.6 changeparameterdeftype B.4 Delete Element Refactorings B.4.1 deletemethod B.4.2 deleteattribute B.4.3 deleteparameter BIBLIOGRAPHY ix

11 LIST OF FIGURES Page 1.1 pullupmethod Refactoring: (a) before refactoring, (b) after refactoring Refactorings as black box Refactorings as hard coded sequence of statements Refactoring as a set of FGT-DAGs Simplified UML meta-model A simple UML class diagram of the SimpleSys A code-level implementation of the SimpleSys Underlying logic representations of the SimpleSys Potential sequential dependencies between FGTs FGT-DAGs of refactoring X Primitive, composite refactorings and FGTs Primitive refactoring different considerations Class A before and after addgetter(a.x) Class A before and after addsetter(a.x) Class A & B before and after movemethod(b.m, A, [int]) Class A & B before and after moveattribute(a.x, B) A UML class diagram of the LAN simulation before refactoring A code-level implementation of the LAN simulation before refactoring Underlying logic representations of the LAN simulation before refactoring Packet & Workstation classes before and after encapsulateattribute refactoring Underlying logic representations of the LAN simulation after refactorings A UML class diagram of the LAN simulation after refactoring A code-level implementation of the LAN simulation example after refactoring Part of the reduction facts as implemented in Prolog Reduction inside refactoring Refactoring X after reduction Conflict between refactorings R i & Rj Conflicts detection in FGT-based approach Possible conflicts between FGTs A Selection of fgtconflict facts as implemented in Prolog A simplified UML class diagram of a college system Conflict detection & resolving algorithm Conflicts between refactorings movemethod & pullupmethod Sequential dependency between refactorings R i & R j Ambiguous sequential dependency Sequential dependency in FGT-based approach Refactoring Directed Acyclic Graphs (REF-DAGs) Deadlock problem Sequential dependency between refactorings createclass & pullupmethod Straightforward approach Composite refactoring in composite preconditions approaches x

12 10.3 Composite refactoring in FGT approach A simplified UML class diagram of a college system encapsulateattribute composite refactoring encapsulateattribute composite refactoring in FGT approach A simplified UML class diagram. (a) before and (b) after refactoring enh-pullupattribute composite refactoring Part of the LAN system's class diagram Part of the LAN system's class diagram after enh-pullupmethod xi

13 LIST Of TABLES Page 4.1 Primitive refactorings encapsulateattribute refactoring createclass refactoring pullupmethod refactoring Absorbing reduction Cancelling reduction Bi-directional FGT conflict-pairs Uni-directional FGT conflict-pairs encapsulateattribute refactoring enh-pullupattribute refactoring A comparison between FGTs-based and alternative formalisms xii

14 LIST OF ALGORITHMS Page 4.1 Building FGT-DAGs algorithm Reduction algorithm Conflict detection & resolving algorithm Sequential dependency algorithm Deadlock detection algorithm xiii

15 Part I Prologue 1

16 CHAPTER 1 INTRODUCTION 1.1 The Problem Software that is used in a real-world environment inevitably changes or becomes progressively less useful in that environment. As evolving software changes, its structure tends to become more complex [46]. Because of this, the major part of the total software development cost is devoted to software maintenance [9, 29, and 47]. Better software development methods and tools do not THE THESIS Prologue I The Approach II Features Of The Approach III Epilogue IV Appendix V INTRODUCTION REFACTORING _ STATE OF THE ART2 solve this problem, because their increased capacity is used to implement more new requirements within the same time frame [25], making the software more complex again. To cope with this spiral of complexity, there is an urgent need for techniques that reduce software complexity by incrementally improving the internal software quality. The research domain that addresses this problem is referred to as restructuring [1, 28] or, in the specific case of objectoriented software development, refactoring [22, 65]. [59] Refactoring is the process of improving the internal structure of the software while preserving its external behaviour [22, 65 and 70]. By improving the internal structure it is meant that refactoring will restructure the software in order to improve its quality by making it easier to understand, to extend, to find bugs, and to program faster [2, 60]. Preserving the external behaviour means, before and after applying the refactoring, the software will require the same preconditions and result in the same postconditions. The refactoring community assumes a set of precondition conjuncts for each refactoring that needs to be satisfied as a condition for applying that refactoring. To give an idea about refactoring before going into the details of the thesis, Figure 1.1(a) shows a simple example of a UML class diagram with four classes: HR, Employee as a superclass, Salesman and Engineer as subclasses of Employee. The HR class has two association relations, one with each of the Salesman and Engineer classes. The Salesman and Engineer subclasses have the same method getname which is called by the method report in the HR class. 1 LOGIC-BASED REDUNDANCY FGT SEQUENTIAL REPRESENTATION3 REMOVAL 7 CONCLUSIONS 13 DEPENDENCY A DETECTING AND FGT-BASED PRIMITIVE RESOLVING APPROACH 4 8 REFACTORINGS B CONFLICTS AS FGT SEQUENCES SEQUENTIAL PRIMITIVE DEPENDENCY REFACTORINGS AS 5 BETWEEN 9 FGT COLLECTIONS REFACTORINGS COMPOSITE MOTIVATED REFACTORINGS 10 EXAMPLE 6 PARALLELIZING OPPORTUNITEIS 11 NEW REFACTORINGS 12 2

17 Figure 1.1: pullupmethod Refactoring: (a) before refactoring, (b) after refactoring Note that the duplication of the getname method in the two subclasses as shown in Figure 1.1(a) causes the following design problems: 1. More efforts and spaces are needed at the design and code levels. 2. There is an increased chance of inconsistency between the two copies. This can arise if the developer changes one of the two copies and forgets to change the other. 3. The design is complicated, because the same method appears two times in the design. This also causes two association relations to be created between HR class and each one of the two subclasses. To solve these problems, it is preferred to change the design by deleting the getname method from the two subclasses and move it to their superclass, as shown in Figure 1.1(b). As a result, one copy of the getname method will appear in the design and also the two association relations between the HR class and the two subclasses will be replaced by one association relation between the HR class and the Employee class. Doing this restructuring will increase the quality of the internal design of the class diagram without changing the external behaviour of the system (The system will make the same services as before restructuring). This is because the getname method will be inherited to the two subclasses. The associated association relation also will be inherited. The restructuring done in the previous example is an example of refactoring. In this case, it is a pullupmethod refactoring. The precondition for the pullupmethod refactoring that should be satisfied in order to apply the refactoring to the system, as a condition to preserve the behaviour of the system is: 3

18 1. The getname method should not be declared in the superclass (Employee) or any of its ancestors. 2. The access mode of the getname method in the subclasses is not private. 3. All the references made by the getname method must be visible from the superclass. 4. The signature of the method in all the subclasses should be the same. A current research trend is to investigate refactorings at levels of abstraction above the codelevel [23, 68, and 81]. This is because many people are visually oriented and prefer to visualize the relationships between classes rather than apprehend them textually. Furthermore, being able to directly manipulate code at a higher level of granularity (i.e. methods, variables, and classes rather than characters) can make refactoring more efficient [2]. Therefore, this thesis also focusses on refactorings at the design level. Several approaches have been used to formalize such refactorings, as discussed in section 2.4. For example, the graph transformations approach [11, 18 and 19] represents software as a graph, and refactorings are formalized as graph-production rules [7, 34, 51-56, and 63]. As another approach, the logic-based conditional transformation approach [38, 39] represents software as logic-terms and refactorings are formalized as conditional transformations with pre- and postconditions. In general, reasoning takes place at the level of refactorings themselves, and attention is not paid to the detailed transformational steps that must be applied to the model to achieve the refactoring. Such reasoning is with respect to a set of preconditions that must be satisfied in order to apply that refactoring, resulting in a set of postconditions. In this sense, a refactoring is treated as an abstraction, or as a black box as illustrated in Figure 1.2. Figure 1.2: Refactorings as black box Of course, to be of practical value, these conceptual ideas have to be implemented in refactoring tools. Such a tool would have to access some representation of an underlying system that is to be refactored. The refactorings themselves are implemented as hard coded parameterise procedures i.e. as a sequence of code statements. To apply a particular 4

19 refactoring to the underlying system, the tool requires an interface that allows the user to select and invoke procedures which then execute the actual refactoring, thus changing the underlying system representation accordingly. Figure 1.3: Refactorings as hard coded sequence of statements Treating refactoring as a black box can be notionally conceived of as shown in Figure 1.3. Whenever a refactoring is applied, the hard coded sequence of statements is executed atomically. The inter-relationship between the different code statements both within and between refactorings cannot be determined. This has the following implications: 1. Where redundancy inside or between refactoring may exist, there is no possibility to remove it. As shown in the figure on the right, there could be a redundancy between statement 3 and 20 in the code. For example, if statement 3 adds an attribute to a specific class in the system and subsequently statement 20 deletes or changes the name or definition type of that attribute, the redundancy cannot be removed. This kind of scenario could arise, for example, when composing two or more refactorings into a single one. 2. Where conflict occurs between two refactorings, it is not possible to determine which part of the two refactorings caused the conflict. The figure on the right side illustrates this by showing a conflict between statement 3 in Refactoring X Refactoring X S ta te m e n t 1. S ta te m e n t 2. S ta te m e n t S ta te m e n t S ta te m e n t n -1. S ta te m e n t n. refactoring X and statement 20 in refactoring Y. For example, statement 3 might add an attribute to a specific class in the system, based on a precondition of refactoring X that the class exists but does not have that attribute. On the other hand, statement 20 might delete that class from the system, based on the precondition that the class exists and has no attributes. Redundacy Statement 1. Statement 2. Statement Statement n-1. Statement n. Conflict Refactoring Y Statement 1. Statement 2. Statement Statement Statement n-1. Statement n. 5

20 This would constitute a conflict between the two refactorings if they were to be applied as separate threads to the system. 3. Where there is a sequential dependency between two refactorings, there is no possibility to know at what specific point on it one of the two refactorings is sequentially dependent on the other. As shown in the figure on the right side if there is a sequential dependency between statement 3 in refactoring X and statement 20 in refactoring Y. Where statement 3, for example, adds a class to the system and statement 20 adds an attribute to that class. In this case refactoring Y is considered to be sequentially dependent on refactoring X and having to be applied to the system after refactoring X. Again, because the two refactorings are considered as code sequences, there is no possibility to know at what specific point in the code one of the two refactorings becomes sequentially dependent on the other. 4. Because refactorings are considered as code sequences, two or more refactorings can only be run in parallel if they are shown to be sequentially independent of each other. Because there is no metainformation about the nature of sequential dependency between their constituent code statements, it is not possible to determine whether parts of the refactorings could be run in parallel. Refactoring X 5. A new composite refactoring can be assembled by using previously-defined refactorings as building blocks. Its constituent elements can only be analysed for redundancy, conflicts, sequential dependency and possible parallelization with reference to the pre- and postconditions of these elements i.e. with reference to the properties of the original refactorings. Nevertheless, as will be discussed later, such an analysis can suggest an ordering of the constituent refactorings which will avoid the so-called rollback problem. 6. If a tool allows a user to build new refactorings, the semantics of any new refactoring is necessarily constrained by the selection of refactorings that have been implemented in the tool. Any refactoring whose semantics goes beyond that will have to be hard coded as a task to be undertaken by the tool developer, rather than the tool user. Statement 1. Statement 2. Statement Statement n-1. Statement n. Sequential Dependecy Seq. Execution Refactoring Y Statement 1. Statement 2. Statement Statement Statement n-1. Statement n. Refactoring X Statem ent 1. Statem ent 2. Statem ent Statem ent n-1. Statem ent n. 6

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has

More information

Particle Swarm Optimization Methods for Pattern. Recognition and Image Processing

Particle Swarm Optimization Methods for Pattern. Recognition and Image Processing Particle Swarm Optimization Methods for Pattern Recognition and Image Processing by Mahamed G. H. Omran Submitted in partial fulfillment of the requirements for the degree Philosophiae Doctor in the Faculty

More information

The Discovery and Retrieval of Temporal Rules in Interval Sequence Data

The Discovery and Retrieval of Temporal Rules in Interval Sequence Data The Discovery and Retrieval of Temporal Rules in Interval Sequence Data by Edi Winarko, B.Sc., M.Sc. School of Informatics and Engineering, Faculty of Science and Engineering March 19, 2007 A thesis presented

More information

An Ontological Framework for Contextualising Information in Hypermedia Systems.

An Ontological Framework for Contextualising Information in Hypermedia Systems. An Ontological Framework for Contextualising Information in Hypermedia Systems. by Andrew James Bucknell Thesis submitted for the degree of Doctor of Philosophy University of Technology, Sydney 2008 CERTIFICATE

More information

Enhanced Web Log Based Recommendation by Personalized Retrieval

Enhanced Web Log Based Recommendation by Personalized Retrieval Enhanced Web Log Based Recommendation by Personalized Retrieval Xueping Peng FACULTY OF ENGINEERING AND INFORMATION TECHNOLOGY UNIVERSITY OF TECHNOLOGY, SYDNEY A thesis submitted for the degree of Doctor

More information

TOMRAS: A Task Oriented Mobile Remote Access System for Desktop Applications

TOMRAS: A Task Oriented Mobile Remote Access System for Desktop Applications DOCTORAL DISSERTATION TOMRAS: A Task Oriented Mobile Remote Access System for Desktop Applications Khaled Khankan kkhankan@it. uts. edu. au Supervised by: Prof. Robert Steele robert.steele@usyd.edu.au

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

The Automatic Design of Batch Processing Systems

The Automatic Design of Batch Processing Systems The Automatic Design of Batch Processing Systems by Barry Dwyer, M.A., D.A.E., Grad.Dip. A thesis submitted for the degree of Doctor of Philosophy in the Department of Computer Science University of Adelaide

More information

Advanced Migration of Schema and Data across Multiple Databases

Advanced Migration of Schema and Data across Multiple Databases Advanced Migration of Schema and Data across Multiple Databases D.M.W.E. Dissanayake 139163B Faculty of Information Technology University of Moratuwa May 2017 Advanced Migration of Schema and Data across

More information

Enabling Component-Based Model Transformations with QVT. Li Dan

Enabling Component-Based Model Transformations with QVT. Li Dan Enabling Component-Based Model Transformations with QVT by Li Dan Doctor of Philosophy in Software Engineering 2013 Faculty of Science and Technology University of Macau Enabling Component-Based Model

More information

Location Based Selling Platform for Mobile Buyers

Location Based Selling Platform for Mobile Buyers Location Based Selling Platform for Mobile Buyers M. M. Buddhika Mawella 149219M Faculty of Information Technology University of Moratuwa April 2017 Location Based Selling Platform for Mobile Buyers M.

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

Dedication. To the departed souls of my parents & father-in-law.

Dedication. To the departed souls of my parents & father-in-law. Abstract In this thesis work, a contribution to the field of Formal Verification is presented innovating a semantic-based approach for the verification of concurrent and distributed programs by applying

More information

GEO BASED ROUTING FOR BORDER GATEWAY PROTOCOL IN ISP MULTI-HOMING ENVIRONMENT

GEO BASED ROUTING FOR BORDER GATEWAY PROTOCOL IN ISP MULTI-HOMING ENVIRONMENT GEO BASED ROUTING FOR BORDER GATEWAY PROTOCOL IN ISP MULTI-HOMING ENVIRONMENT Duleep Thilakarathne (118473A) Degree of Master of Science Department of Electronic and Telecommunication Engineering University

More information

ALGORITHMIC ASPECTS OF DOMINATION AND ITS VARIATIONS ARTI PANDEY

ALGORITHMIC ASPECTS OF DOMINATION AND ITS VARIATIONS ARTI PANDEY ALGORITHMIC ASPECTS OF DOMINATION AND ITS VARIATIONS ARTI PANDEY DEPARTMENT OF MATHEMATICS INDIAN INSTITUTE OF TECHNOLOGY DELHI JUNE 2016 c Indian Institute of Technology Delhi (IITD), New Delhi, 2016.

More information

A reputation system for BitTorrent peer-to-peer filesharing

A reputation system for BitTorrent peer-to-peer filesharing University of Wollongong Research Online University of Wollongong Thesis Collection 1954-2016 University of Wollongong Thesis Collections 2006 A reputation system for BitTorrent peer-to-peer filesharing

More information

An agent-based peer-to-peer grid computing architecture

An agent-based peer-to-peer grid computing architecture University of Wollongong Research Online University of Wollongong Thesis Collection 1954-2016 University of Wollongong Thesis Collections 2005 An agent-based peer-to-peer grid computing architecture Jia

More information

The adaptive serializable snapshot isolation protocol for managing database transactions

The adaptive serializable snapshot isolation protocol for managing database transactions University of Wollongong Research Online University of Wollongong Thesis Collection 1954-2016 University of Wollongong Thesis Collections 2007 The adaptive serializable snapshot isolation protocol for

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

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

More information

A Frequent Max Substring Technique for. Thai Text Indexing. School of Information Technology. Todsanai Chumwatana

A Frequent Max Substring Technique for. Thai Text Indexing. School of Information Technology. Todsanai Chumwatana School of Information Technology A Frequent Max Substring Technique for Thai Text Indexing Todsanai Chumwatana This thesis is presented for the Degree of Doctor of Philosophy of Murdoch University May

More information

A COMPARATIVE STUDY OF INTERPERSONAL MEANING ON SOLICITED AND UNSOLICITED ENGLISH APPLICATION LETTERS. (Systemic Functional Linguistics Approach)

A COMPARATIVE STUDY OF INTERPERSONAL MEANING ON SOLICITED AND UNSOLICITED ENGLISH APPLICATION LETTERS. (Systemic Functional Linguistics Approach) A COMPARATIVE STUDY OF INTERPERSONAL MEANING ON SOLICITED AND UNSOLICITED ENGLISH APPLICATION LETTERS (Systemic Functional Linguistics Approach) THESIS Submitted as a Partial Fulfillment of Requirements

More information

Practical Object-Oriented Design in Ruby

Practical Object-Oriented Design in Ruby Practical Object-Oriented Design in Ruby Anyone that has done a decent amount of programming in Ruby is bound hear about the book Practical Object-Oriented Design in Ruby [1] (http://www.poodr.com/) by

More information

Understading Refactorings

Understading Refactorings Understading Refactorings Ricardo Terra terra@dcc.ufmg.br Marco Túlio Valente mtov@dcc.ufmg.br UFMG, 2010 UFMG, 2010 Understanding Refactorings 1 / 36 Agenda 1 Overview 2 Refactoring 3 Final Considerations

More information

Directives for Composing Aspect-Oriented Design Class Models

Directives for Composing Aspect-Oriented Design Class Models Directives for Composing Aspect-Oriented Design Class Models Y. R. Reddy, S. Ghosh, R. B. France, G. Straw, J. M. Bieman, N. McEachen, E. Song, G. Georg Contact Email: ghosh@cs.colostate.edu Computer Science

More information

Except as otherwise permitted under the Copyright, Designs and Patents Act 1988, this thesis may only be produced, stored or transmitted in any form

Except as otherwise permitted under the Copyright, Designs and Patents Act 1988, this thesis may only be produced, stored or transmitted in any form Except as otherwise permitted under the Copyright, Designs and Patents Act 1988, this thesis may only be produced, stored or transmitted in any form or by any means with the prior permission in writing

More information

Tree Rule Firewall. A Thesis Submitted for the Degree of. Doctor of Philosophy. Thawatchai Chomsiri. Faculty of Engineering and Information Technology

Tree Rule Firewall. A Thesis Submitted for the Degree of. Doctor of Philosophy. Thawatchai Chomsiri. Faculty of Engineering and Information Technology Tree Rule Firewall A Thesis Submitted for the Degree of Doctor of Philosophy By Thawatchai Chomsiri in Faculty of Engineering and Information Technology UNIVERSITY OF TECHNOLOGY, SYDNEY 17 th November

More information

Komal Patiyal 1, Sanjay 2 1,2 Computer Science & Engineering, Himachal Pradesh Technical University,Hamirpur. IJRASET: All Rights are Reserved

Komal Patiyal 1, Sanjay 2 1,2 Computer Science & Engineering, Himachal Pradesh Technical University,Hamirpur. IJRASET: All Rights are Reserved Study & Enhancement of Fly spray Bug Tracking Tool Komal Patiyal 1, Sanjay 2 1,2 Computer Science & Engineering, Himachal Pradesh Technical University,Hamirpur Abstract: As software projects become increasingly

More information

Scenario-based Refactoring Selection

Scenario-based Refactoring Selection BABEŞ-BOLYAI University of Cluj-Napoca Faculty of Mathematics and Computer Science Proceedings of the National Symposium ZAC2014 (Zilele Academice Clujene, 2014), p. 32-41 Scenario-based Refactoring Selection

More information

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

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

More information

Combined Modeling and Programming with State Machines

Combined Modeling and Programming with State Machines Combined Modeling and Programming with State Machines Kjetil Andresen Master s Thesis Spring 2014 Combined Modeling and Programming with State Machines Kjetil Andresen 1st May 2014 ii Abstract As part

More information

TECHNICAL TRANSLATION

TECHNICAL TRANSLATION TECHNICAL TRANSLATION Technical Translation Usability Strategies for Translating Technical Documentation JODY BYRNE University of Sheffield, UK A C.I.P. Catalogue record for this book is available from

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

The Video to Panoramic Image Converter

The Video to Panoramic Image Converter The Video to Panoramic Image Converter Mfundo Bill Thesis presented in fulfilment of the requirements for the degree of Bachelor of Science Honours Computer Science at the University of the Western Cape

More information

Object-Oriented Analysis and Design Using UML

Object-Oriented Analysis and Design Using UML Object-Oriented Analysis and Design Using UML An Introduction to Unified Process and Design Patterns Mahesh P. Matha Object-Oriented Analysis and Design Using UML Object-Oriented Analysis and Design Using

More information

ADAPTIVE VIDEO STREAMING FOR BANDWIDTH VARIATION WITH OPTIMUM QUALITY

ADAPTIVE VIDEO STREAMING FOR BANDWIDTH VARIATION WITH OPTIMUM QUALITY ADAPTIVE VIDEO STREAMING FOR BANDWIDTH VARIATION WITH OPTIMUM QUALITY Joseph Michael Wijayantha Medagama (08/8015) Thesis Submitted in Partial Fulfillment of the Requirements for the Degree Master of Science

More information

INTRODUCTION Background of the Problem Statement of the Problem Objectives of the Study Significance of the Study...

INTRODUCTION Background of the Problem Statement of the Problem Objectives of the Study Significance of the Study... vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION... ii DEDICATION... iii ACKNOWLEDGEMENTS... iv ABSTRACT... v ABSTRAK... vi TABLE OF CONTENTS... vii LIST OF TABLES... xii LIST OF FIGURES... xiii LIST

More information

OCL Support in MOF Repositories

OCL Support in MOF Repositories OCL Support in MOF Repositories Joachim Hoessler, Michael Soden Department of Computer Science Technical University Berlin hoessler@cs.tu-berlin.de, soden@cs.tu-berlin.de Abstract From metamodels that

More information

Automated Planning for Open Network Architectures

Automated Planning for Open Network Architectures UNIVERSITY OF CALIFORNIA Los Angeles Automated Planning for Open Network Architectures A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philosophy in Computer

More information

"Charting the Course... Agile Database Design Techniques Course Summary

Charting the Course... Agile Database Design Techniques Course Summary Course Summary Description This course provides students with the skills necessary to design databases using Agile design techniques. It is based on the Scott Ambler book Agile Database Techniques: Effective

More information

A Survey of Software Refactoring

A Survey of Software Refactoring 126 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 30, NO. 2, FEBRUARY 2004 A Survey of Software Refactoring Tom Mens, Member, IEEE, and Tom Tourwé Abstract This paper provides an extensive overview of

More information

Efficient Index Maintenance for Text Databases

Efficient Index Maintenance for Text Databases Efficient Index Maintenance for Text Databases A thesis submitted for the degree of Doctor of Philosophy Nicholas Lester B.E. (Hons.), B.Sc, School of Computer Science and Information Technology, Science,

More information

COP 3330 Final Exam Review

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

More information

An Adaptive Algorithm for Range Queries in Differential Privacy

An Adaptive Algorithm for Range Queries in Differential Privacy Rochester Institute of Technology RIT Scholar Works Theses Thesis/Dissertation Collections 6-2016 An Adaptive Algorithm for Range Queries in Differential Privacy Asma Alnemari Follow this and additional

More information

SOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis.

SOFTWARE ENGINEERING SOFTWARE EVOLUTION. Saulius Ragaišis. SOFTWARE ENGINEERING SOFTWARE EVOLUTION Saulius Ragaišis saulius.ragaisis@mif.vu.lt CSC2008 SE Software Evolution Learning Objectives: Identify the principal issues associated with software evolution and

More information

Chapter 1 Introduction Motivation Approach Significance of Research Overview of Material... 5

Chapter 1 Introduction Motivation Approach Significance of Research Overview of Material... 5 ACKNOWLEDGEMENT First and foremost, I would like to thank my thesis advisor, Dr. A. Lynn Abbott, for his invaluable guidance and patience throughout my entire study at Virginia Tech. Beyond gaining academic

More information

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting UNIT II Syllabus Introduction to UML (08 Hrs, 16 Marks) a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting b. Background, UML Basics c. Introducing UML 2.0 A Conceptual Model

More information

Student retention in distance education using on-line communication.

Student retention in distance education using on-line communication. Doctor of Philosophy (Education) Student retention in distance education using on-line communication. Kylie Twyford AAPI BBus BEd (Hons) 2007 Certificate of Originality I certify that the work in this

More information

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 20 Concurrency Control Part -1 Foundations for concurrency

More information

A Software Tool for Optimal Class-Hierarchy Design Based on the Use-Relationship Among Functions and Variables

A Software Tool for Optimal Class-Hierarchy Design Based on the Use-Relationship Among Functions and Variables A Software Tool for Optimal Class-Hierarchy Design Based on the Use-Relationship Among Functions and Variables Nigel Gwee Computer Science Department Southern University and A&M College Baton Rouge, LA

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

ACKNOWLEDGEMENT. my PhD Supervisor Dr. Vidhyacharan Bhaskar, Professor, Department of

ACKNOWLEDGEMENT. my PhD Supervisor Dr. Vidhyacharan Bhaskar, Professor, Department of iv ACKNOWLEDGEMENT It is my pleasant duty to thank a large number of people for the various forms of help, encouragement and support that they have provided during the time I have been working on this

More information

COMPUTATIONAL CHALLENGES IN HIGH-RESOLUTION CRYO-ELECTRON MICROSCOPY. Thesis by. Peter Anthony Leong. In Partial Fulfillment of the Requirements

COMPUTATIONAL CHALLENGES IN HIGH-RESOLUTION CRYO-ELECTRON MICROSCOPY. Thesis by. Peter Anthony Leong. In Partial Fulfillment of the Requirements COMPUTATIONAL CHALLENGES IN HIGH-RESOLUTION CRYO-ELECTRON MICROSCOPY Thesis by Peter Anthony Leong In Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy California Institute

More information

Formal Support for Model Evolution

Formal Support for Model Evolution Formal Support for Model Evolution Tom Mens http://w3.umh.ac.be/genlog Software Engineering Lab University of Mons-Hainaut Belgium Introduction - Model Evolution More and better tool support needed for

More information

1. Considering functional dependency, one in which removal from some attributes must affect dependency is called

1. Considering functional dependency, one in which removal from some attributes must affect dependency is called Q.1 Short Questions Marks 1. Considering functional dependency, one in which removal from some attributes must affect dependency is called 01 A. full functional dependency B. partial dependency C. prime

More information

Generalized Document Data Model for Integrating Autonomous Applications

Generalized Document Data Model for Integrating Autonomous Applications 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Generalized Document Data Model for Integrating Autonomous Applications Zsolt Hernáth, Zoltán Vincellér Abstract

More information

Class modelling (part 2)

Class modelling (part 2) Class modelling (part 2) Fabrizio Maria Maggi Institute of Computer Science (these slides are derived from the book Object-oriented modeling and design with UML ) Qualified Associations What is the meaning

More information

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures Carsten Hentrich IBM Business Consulting Services, SerCon GmbH c/o IBM Deutschland GmbH Hechtsheimer

More information

code pattern analysis of object-oriented programming languages

code pattern analysis of object-oriented programming languages code pattern analysis of object-oriented programming languages by Xubo Miao A thesis submitted to the School of Computing in conformity with the requirements for the degree of Master of Science Queen s

More information

Tutorial notes on. Object relational structural patterns

Tutorial notes on. Object relational structural patterns Tutorial notes on Object relational structural patterns Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University Page 1 of 14 Exercise 1. a) Briefly describe what is

More information

Fundamentals of Operating Systems. Fifth Edition

Fundamentals of Operating Systems. Fifth Edition Fundamentals of Operating Systems Fifth Edition Fundamentals of Operating Systems A.M. Lister University of Queensland R. D. Eager University of Kent at Canterbury Fifth Edition Springer Science+Business

More information

Homework 2 Implementing the University Application Due: November 7, 2004 (Sunday midnight)

Homework 2 Implementing the University Application Due: November 7, 2004 (Sunday midnight) Homework 2 Implementing the University Application Due: November 7, 2004 (Sunday midnight) In this assignment, you will implement the University application from homework 1. Instead of implementing your

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

Good-Enough Design. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 11 02/17/2009

Good-Enough Design. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 11 02/17/2009 Good-Enough Design Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 11 02/17/2009 University of Colorado, 2009 1 Goals 2 Review material from Chapter 5 of Pilone & Miles Software Design

More information

Pattern composition in graph transformation rules

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

More information

WP3 Technologies and methods for Web applications

WP3 Technologies and methods for Web applications WP3 Technologies and methods for Web applications Introduction The primary goal of work package WP3 - Technologies and methods for Web applications - is the definition, design, and implementation of the

More information

Dynamic Data Flow Analysis for Object Oriented Programs

Dynamic Data Flow Analysis for Object Oriented Programs Dynamic Data Flow Analysis for Object Oriented Programs Andrew Cain Swinburne University of Technology Faculty of Information and Communication Technologies P.O. Box 218, Hawthorn, Victoria 3122, Australia

More information

Lo-Fidelity Prototype Report

Lo-Fidelity Prototype Report Lo-Fidelity Prototype Report Introduction A room scheduling system, at the core, is very simple. However, features and expansions that make it more appealing to users greatly increase the possibility for

More information

Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications

Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications Collage: A Declarative Programming Model for Compositional Development and Evolution of Cross-Organizational Applications Bruce Lucas, IBM T J Watson Research Center (bdlucas@us.ibm.com) Charles F Wiecha,

More information

Topics in Object-Oriented Design Patterns

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

More information

UNIT V *********************************************************************************************

UNIT V ********************************************************************************************* Syllabus: 1 UNIT V 5. Package Diagram, Component Diagram, Deployment Diagram (08 Hrs, 16 Marks) Package Diagram: a. Terms and Concepts Names, Owned Elements, Visibility, Importing and Exporting b. Common

More information

lecture 1: introduction

lecture 1: introduction micromodels of software declarative modelling and analysis with Alloy lecture 1: introduction Daniel Jackson MIT Lab for Computer Science Marktoberdorf, August 2002 lightweight models a foundation for

More information

A Developer s Guide to the Semantic Web

A Developer s Guide to the Semantic Web A Developer s Guide to the Semantic Web von Liyang Yu 1. Auflage Springer 2011 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 642 15969 5 schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG

More information

CS 338 The Enhanced Entity-Relationship (EER) Model

CS 338 The Enhanced Entity-Relationship (EER) Model CS 338 The Enhanced Entity-Relationship (EER) Model Bojana Bislimovska Spring 2017 Major research Outline EER model overview Subclasses, superclasses and inheritance Specialization and generalization Modeling

More information

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

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

More information

Exheritance Class Generalisation Revived

Exheritance Class Generalisation Revived Exheritance Class Generalisation Revived Markku Sakkinen Information Technology Research Institute University of Jyväskylä P.O.Box 35 (Agora) FIN-40351 Jyväskylä Finland sakkinenm@acm.org or sakkinen@cs.jyu.fi

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Lecture 17 Inheritance Overview Problem: Can we create bigger classes from smaller ones without having to repeat information? Subclasses: a class inherits

More information

Inheritance (Chapter 7)

Inheritance (Chapter 7) Inheritance (Chapter 7) Prof. Dr. Wolfgang Pree Department of Computer Science University of Salzburg cs.uni-salzburg.at Inheritance the soup of the day?! Inheritance combines three aspects: inheritance

More information

Design Pattern: Composite

Design Pattern: Composite Design Pattern: Composite Intent Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly. Motivation

More information

Object-oriented Features of TTCN-3 Presented by Kristóf Szabados (on behalf of STF 550)

Object-oriented Features of TTCN-3 Presented by Kristóf Szabados (on behalf of STF 550) Object-oriented Features of TTCN-3 Presented by Kristóf Szabados (on behalf of STF 550) 1 Evolution First TTCN-3 version in 2001 + Component extension (2005) + Information hiding (2009) Support for more

More information

Multithreaded Programming Part II. CSE 219 Stony Brook University, Department of Computer Science

Multithreaded Programming Part II. CSE 219 Stony Brook University, Department of Computer Science Multithreaded Programming Part II CSE 219 Stony Brook University, Thread Scheduling In a Java application, main is a thread on its own Once multiple threads are made Runnable the thread scheduler of the

More information

Modelling with Classes. CITS1220 Software Engineering

Modelling with Classes. CITS1220 Software Engineering Modelling with Classes CITS1220 Software Engineering Lecture Overview Classes and UML Associations between classes Special types of association: is-a, has-a, is-part-of Modelling Example Implementing associations

More information

lecture 1: introduction

lecture 1: introduction micromodels of software declarative modelling and analysis with Alloy lecture 1: introduction Daniel Jackson MIT Lab for Computer Science Marktoberdorf, August 2002 lightweight models 2 lightweight models

More information

Privacy Preserving Data Sharing in Data Mining Environment

Privacy Preserving Data Sharing in Data Mining Environment Privacy Preserving Data Sharing in Data Mining Environment PH.D DISSERTATION BY SUN, XIAOXUN A DISSERTATION SUBMITTED TO THE UNIVERSITY OF SOUTHERN QUEENSLAND IN FULLFILLMENT OF THE REQUIREMENTS FOR THE

More information

Software Evolution. Dr. James A. Bednar. With material from

Software Evolution. Dr. James A. Bednar.  With material from Software Evolution Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar With material from Massimo Felici, Conrad Hughes, and Perdita Stevens SAPM Spring 2012: Evolution 1 Software

More information

Introduction to UML. Danang Wahyu utomo

Introduction to UML. Danang Wahyu utomo Introduction to UML Danang Wahyu utomo danang.wu@dsn.dinus.ac.id 085 740 955 623 Evolution of OO Development Methods History of OOAD leading to UML Why Model? Analyse the problem domain - Simplify reality

More information

Chapter IV. Introduction

Chapter IV. Introduction 54 Chapter IV ULTRAMAN ARCHITECTURE Introduction In previous chapters, we have introduced and motivated the ideas of a transformational approach to generating user interfaces. Throughout this dissertation

More information

STUDY ON THE USE OF PUBLIC DATA CENTERS FOR IT INFRASTRUCTURE OUTSOURCING IN SRI LANKA

STUDY ON THE USE OF PUBLIC DATA CENTERS FOR IT INFRASTRUCTURE OUTSOURCING IN SRI LANKA 'LIBRARY SlIJVfcRSlTY Of MORATUWA. SRI IAMIU UORATUWA jlhl»o»{!9cko t l STUDY ON THE USE OF PUBLIC DATA CENTERS FOR IT INFRASTRUCTURE OUTSOURCING IN SRI LANKA THE CASE OFSUNTEL LTD By G.A.A.D. KARAUNARATNE

More information

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

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

More information

Chapter 8: Data Abstractions

Chapter 8: Data Abstractions Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

More information

Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring

Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring Tom Mens Tom Tourwé Francisca Muñoz Programming Technology Lab Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussel, Belgium

More information

Transaction Processing in a Mobile Computing Environment with Alternating Client Hosts *

Transaction Processing in a Mobile Computing Environment with Alternating Client Hosts * Transaction Processing in a Mobile Computing Environment with Alternating Client Hosts * Sven Buchholz, Thomas Ziegert and Alexander Schill Department of Computer Science Dresden University of Technology

More information

CHAPTER 11 Refactoring

CHAPTER 11 Refactoring CHAPTER 11 Refactoring Introduction When, Why, What? Which Refactoring Tools? Demonstration: Internet Banking Iterative Development Life-cycle Prototype Consolidation: design review Expansion: concurrent

More information

BINUS INTERNATIONAL UNIVERSITAS BINA NUSANTARA. BiNus MOBILE SERVICE SYSTEM WITH HIGH PERFORMANCE and STRUCTURED DATABASE DESIGN

BINUS INTERNATIONAL UNIVERSITAS BINA NUSANTARA. BiNus MOBILE SERVICE SYSTEM WITH HIGH PERFORMANCE and STRUCTURED DATABASE DESIGN BINUS INTERNATIONAL UNIVERSITAS BINA NUSANTARA Major Information System Sarjana Komputer Thesis EVEN Semester year 2007 BiNus MOBILE SERVICE SYSTEM WITH HIGH PERFORMANCE and STRUCTURED DATABASE DESIGN

More information

A Planning Approach to Migrating Domain-specific Legacy Systems into Service Oriented Architecture

A Planning Approach to Migrating Domain-specific Legacy Systems into Service Oriented Architecture A Planning Approach to Migrating Domain-specific Legacy Systems into Service Oriented Architecture Ph.D Thesis Zhuo Zhang Software Technology Research Laboratory De Montfort University 2012 To my husband,

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

Promoting Traits into Model-Driven Development

Promoting Traits into Model-Driven Development Promoting Traits into Model-Driven Development by Vahdat Abdelzad Thesis submitted in partial fulfillment of the requirements for the degree of Ph.D. in Electrical and Computer Engineering University of

More information

SEMINAR REPORT SEMINAR TITLE. Name of the student

SEMINAR REPORT SEMINAR TITLE. Name of the student SEMINAR REPORT ON SEMINAR TITLE By Name of the student DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING M.B.E.SOCIETY S COLLEGE OF ENGINEERING, AMBAJOGAI 20XX-20XX SEMINAR REPORT ON SEMINAR TITLE By Name

More information

BBM 102 Introduction to Programming II Spring Inheritance

BBM 102 Introduction to Programming II Spring Inheritance BBM 102 Introduction to Programming II Spring 2018 Inheritance 1 Today Inheritance Notion of subclasses and superclasses protected members UML Class Diagrams for inheritance 2 Inheritance A form of software

More information

Inductively Generated Pointcuts to Support Refactoring to Aspects

Inductively Generated Pointcuts to Support Refactoring to Aspects Inductively Generated Pointcuts to Support Refactoring to Aspects Tom Tourwé Centrum voor Wiskunde en Informatica P.O. Box 94079, NL-1090 GB Amsterdam The Netherlands Email: tom.tourwe@cwi.nl Andy Kellens

More information

Contributions to pairing-based cryptography

Contributions to pairing-based cryptography University of Wollongong Research Online University of Wollongong Thesis Collection 1954-2016 University of Wollongong Thesis Collections 2010 Contributions to pairing-based cryptography Tsz Hon Yuen University

More information