Software Refactoring using New Architecture of Java Design Patterns

Size: px
Start display at page:

Download "Software Refactoring using New Architecture of Java Design Patterns"

Transcription

1 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: 11 décembre 2006) This project is an attempt to study and analyze software refactoring and see how it can be improved using common Design Pattern solutions. Design patterns have been extensively studied in the literature as patterns of proven solutions to problems in given context. They are abstractions of the solutions that occur frequently in software and hence can be used to a commonly occurring problem in software design. We propose a new architecture of a more efficient approach of using design patterns to improve refactoring and predict its utility over approaches using Eclipse and JEdit to give a better control and command over refactoring and explore new ideas in future scope of work. 1. PROJECT OBJECTIVE The objective of the project is to propose software refactoring using a new architecture of Java design patterns with integration of Expert Systems to automate the process and make it more efficient. We also propose the protocol to be adopted in the new architecture and predict its future comparison with other approaches like Eclipse and Jedit if the architecture is fully implemented with all functionality. Use of Artificial Intelligence techniques in such a scenario is emphasized. 2. PROJECT MOTIVATION AND SCOPE The motivation of the project to take software refactoring and design patterns stems from the following points : 1. To study and analyze software refactoring and design patterns and there use and drawbacks in Software Engineering. 2. To propose a new architecture and protocol for Java design patterns use and predict its utility and improvement over other tools qualitatively and quantitatively. 3. Explore a possible connection between artificial intelligence and software refactoring to automate and make the procedure efficient. The scope of the project is to study the basics of sofware refactoring and design patterns. We implement a refactoring tool to understand basic concepts of software refactoring and propose a new architecture of the use of design patterns and speculate the use of Expert Systems and Decision Support systems as artificial intelligence constructs in the application of design patterns to the code. 3. PROBLEM STATEMENT The problem which lead to the present work is summarized in following points : 1. The software changes frequently, so it becomes increasingly difficult to add new features and preserve the meaning of the modified code. 2. Restructuring often leads to loss of meaning of code, effort and time of the work. 3. So, there is need of reusing common patterns of design, where the implementations vary for refactoring purposes. In our case we defined an architecture to address above problems by using Expert Systems and Decision Support Systems. 4. INTRODUCTION Software refactoring has gained familiarity and popularity in recent times in the software engineering community. Due to the need to preserve the behavior of the code still to be able to maintain, modify, control and extend the code refactoring approaches has gained importance. Refactoring stems from a more general field of restructuring and re-engineering approaches with the basic aim of revitalizing the meaning, readability, comprehensibility and maintenance of the code keeping its behavior consistent. The modern approach of software refactoring originated from Opdyke s PhD thesis[1] where it is formally defined as the process of changing a [objectoriented] software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. In this project we propose to enhance the ability of software refactoring in an object oriented environment of Java technology using the common design patterns available in Java and propose to improve it to scale over present approaches in an architecture proposed for future work. A design patterns is a proven solution to a problem in a context and represent solutions to problems that arise when developing software within

2 2 a particular context. Although numerous tools related to refactoring exist, some apply design patterns in refactoring. Even these tools do not clearly specify where refactoring can be applied and when to apply appropriate design patterns[2]. This project studies briefly the ideas of software refactoring and design patterns individually and then proposes to use the best of both methods for effective code maintainability, understanding and effective reuse. The report is divided as follows : section 5 deals briefly about common concepts and reviews of software refactoring field, section 6 deals with a brief review of design patterns and their use in recent times in software engineering circles, section 7 deals with our proof of concept refactoring tool called Jtool which applies common Java design patterns called command patterns to refactor a test code, section 8 deals with limitations and scope of the tool with analysis of its functioning, section 9 deals with scope of future improvement of the tool and research work which can be taken in this regard and section 10 gives conclusion to the work. 5. BRIEF REVIEW OF SOFTWARE REFACTORING The field of software refactoring has sprung up since the early 90 s from the Phd thesis of Opdyke s [1] as discussed briefly in introduction. Refactoring is the process of rewriting a computer program or other material to improve its structure or readability, while explicitly preserving its meaning or behavior. Software in modern times are amenable to complexities beyond the capability of simple maintenance tasks hence there is a constant need for incremental improvement in the internal software quality keeping the behavior invariant under refactoring techniques[3]. Refactoring generally leads to extensibility, modularity, reusability, complexity, maintainability, efficiency of the code. In software engineering, the term refactoring means modifying source code without changing its external behavior, and is sometimes informally referred to as cleaning it up [4]. To focus on the structures in the software which need refactoring Beck has coined the term bad smells which are structures in the code that suggest (sometimes scream for) the possibility of refactoring[5] an example of a bad smell can be code duplication in a software which needs to be removed during the refactoring process. Fig 1. An example of refactoring in Visual Studio [9] An important primitive in any restructuring or refactoring process is not altering the behavior of the software. The original definition of behavior preservation as suggested by Opdyke [1] states that, for the same set of input values, the resulting set of output values should be the same before and after the refactoring. But behavior is too sensitive and subjective topic to be defined formally hence there have been attempts in literature to define behavior based on the problem in context in a domain specific way. But it is important to realize that the consistency of behavior is an important primitive to be kept unchanged in a refactoring or restructuring attempt. The use of preconditions and invariants has been suggested repeatedly in research literature as a way to address the problem of behavior preservation when restructuring or refactoring software artifacts. A typical software refactoring involves preconditions and post conditions phase. The basic idea of these conditions is to ensure the behavior preservation of the code in the best way possible. So preconditions and post conditions define the expectation from the code after refactoring and hence are in some sense responsible for behavior preservation. Refactoring has been seen as graph transformations also in literature.[6] Thus with a rich field of refactoring literature we set on to see how design patterns and refactoring can be clubbed together to improve and evolve the comprehensibility and use of software code. 6. BRIEF REVIEW OF DESIGN PATTERNS Formally design patterns are defined as patterns that express solutions to recurring software design problems in terms of objects and interfaces [8]. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects

3 3 that are involved. Algorithms are not thought of as design patterns, since they solve computational problems rather than design problems. Christopher Alexander has defined design patterns as a three part rule given by :[7] 1. Context- the environment and the situation where the problem has occurred in the software design. 2. Problem- the problem which demands for the solution in a given context. 3. Solution- a ready made solution already existing for a similar kind of a problem. Hence a design pattern can be seen as a problem.solution pairs in a given context. The concept of design patterns originates from the works of Ward Cunningham and Ken Beck who were working with Smalltalk and designing Graphical Use Interfaces back in Design patterns was made famous by the gang of four[gamma, Helm, Johnson and Vlissides] known in software community as Go4. Design pattern use a consistent documentation approach and are granular and applied at different levels such as frameworks, subsystems and sub-subsystems. Design patterns can speed up the development process by providing tested, proven development paradigms. Effective software design requires considering issues that may not become visible until later in the implementation. Reusing design patterns helps to prevent subtle issues that can cause major problems and improves code readability for coders and architects familiar with the patterns. Often, people only understand how to apply certain software design techniques to certain problems. These techniques are difficult to apply to a broader range of problems. Design patterns provide general solutions, documented in a format that doesn t require specifics tied to a particular problem. Fig. 2 : Generic Design Pattern architecture. [10] The concept of a Pattern Language is also forwarded in the literature to document a collection of related patterns to solve a large scale problem. Pattern language derives itself from pattern catalogue which is a collection of patterns based on types. For large scale problems pattern languages can prove effective in solving problems. Patterns are also grouped together in Pattern Family of the same type. When a change occurs on a pattern it is checked for a change of family. Changes can be characterized as micro evolution and macro evolution. Fig.3 : A generic Pattern evolution mechanism Developers use the design pattern by introducing in their designs prototypical micro-architecture, which means that micro-architectures in their designs will have structure and organization similar to the chosen design motif. In addition, patterns allow developers to communicate using well-known, well understood names for software interactions. Common design patterns can be improved over time, making them more robust than ad-hoc designs. Design patterns come with there share of problems and criticisms that centers briefly on following points : 1. Targets the wrong problem- The need for patterns results from using computer languages or techniques with insufficient abstraction ability. Under ideal factoring, a concept should not be copied, but merely referenced. But if something is referenced instead of copied, then there is no pattern to label and catalog. 2. Lacks formal foundations- The study of design patterns has been excessively ad hoc, and some have argued that the concept sorely needs to be put on a more formal footing. 3. No reuse is possible- A pattern must be programmed anew into each application that uses it. Some authors see this as a step backward from software reuse as provided by components. 4. Inefficient solutions- The idea of a design pattern is an attempt to standardize what are already accepted best practices. In principle this might appear to be beneficial, but in practice it often results in the unnecessary duplication of code. With this brief review of design patterns we emphasize here that not withstanding the criticisms of design patterns we believe that they provide an effective way to solve problems which repeat in all phases of software development.

4 4 7. JAVA DESIGN PATTERNS IN SOFTWARE REFACTORING 7.1 Related Work We summarize some approaches to relating pattern design to refactoring below : 1. Automated Application of Design Patterns This approach in the literature explores a methodology which introduces design patterns in refactoring in the following manner : Select the pattern to be used. Identify a precursor. Decompose the pattern into minipatterns. Define the minipatterns in terms of ministransformations, reusing minitransformations. Define the high-level transformation as a composition of minitransformations 2. Composite Refactorings for Java Programs This approach is explained as below : High-level refactorings made up of smaller, simpler low-level refactorings. If the precondition holds, the refactoring may be applied safely. If this is done correctly the postcondition will hold and the programs behaviour will be preserved. 3. Elbereth : Tool for Refactoring Java Programs Refactoring tool based on the notion of star diagrams. A star diagram provides a structured view of a programs source code as a network of nodes. These approaches have limitations as there was more focus on project development rather than refactoring in them, no focus on control flow analysis and refactoring inter-dependencies and refactoring and design patterns were considered completely different with having no common link. 7.2 Our New Architecture proposed Having studied the limitations and approaches of the previous works of design patterns in refactoring solutions we aim to propose and discuss a new architecture for using Design Patterns in refactoring and how it can score over present approaches. Here is the architecture : Fig 6. Proposed new architecture We chose to develop our new architecture over Java programs and refactoring of Java code though it is a general framework for design patterns. In summary the architecture deals with taking as input Java code and identify which part of the code in terms of methods, classes or variables needs to be reviewed and refactored. Here is the protocol according to which we propose the tool can function : 1. Choose a package or class of Java programs in need of refactoring. 2. Choose an appropriate candidate spot where to apply refactoring. 3. An expert decision which could be manual or automated is done to choose suitable candidate strategy to be applied to the bad smell part of the code. 4. Choose the candidate strategy in terms of appropriate design pattern to be applied to the code. 5. Check for pre and post conditions so that it ensures consistency and invariance of the behavior of the code body. 6. Apply the design pattern to the code manually or automatically. 7. Do a feedback check by comparing the behavior and quality of the original code and refactored code. In the step 1 and 3 where Expert Decision is required to choose the appropriate code which contains bad smells and is in need of refactoring we propose to use the concepts of Expert Systems and Decision Support Systems which are artificial intelligence constructs as automated expert decision in the implementation. We also propose to use adjacency matrix approach where a matrix of class interdependencies can be made to find how are the classes and methods interrelated in terms of cohesion so that we can see how the code can change as refactoring is applied and take corrective actions to keep the behavior intact. The important point to be noted is

5 5 that we here try to employ expert system and adjacency matrix to optimally find the best design pattern required in a given bad smell and then make a rule base to automate it in the expert system. Thus this optimally finding an appropriate design pattern would be important for making the rule base and training the expert system. Here is a brief summary of these artificial intelligence constructs : Expert Systems- These are artificial intelligence primitive model where a rule base is previously defined and accordingly the system chooses the rule and applies on the given code or program and there is a feedback mechanism by which the efficiency of the decision can be judged. Decision Support Systems- These are high level abstractions of the system specifically coded for effective decision making in a problem context. These systems can combine other constructs like Expert Systems, Fuzzy Logic, Artificial Neural networks for better decision support in mission critical applications. As we notice that in any refactoring situation, the choice of the appropriate code to be refactored is the single most important step in the whole process as it determines the number of bad smells in the code. In contemporary approaches expert decision is usually manual based on the coders instincts. We here propose to automate this process in the following way : 1. We can employ the use of Expert Systems to make a rule base of the characteristic properties of bad smells in the code. 2. We can train the expert system over a trial run of the code to be refactored. 3. Then we can fully integrate this expert system with the refactoring tool to automate the process of parts of code in urgent need of refactoring attention. In a similar way Decision Support Systems can be integrated with the new architecture at the initial phase for better choice of bad smell code. Also for preconditions of the architecture described we can use XML formatted forms where the expert can see what are the class interdependencies and accordingly modify the preconditions while preserving code behavior. XML can also be used in the feedback stage where the expert compares the refactored code with original code. The basic idea of using XML in these steps is to automate those steps and make them user friendly so that they can be made efficient. Using such stringent specifications we hope to find the optimal solution of design pattern which can be applied to the particular bad smell. With the proposed architecture and the proposed protocol to be used we hope it would make an improvement in the use of design patterns to restructuring the code and would give a better functionality to the code. Having described the new architecture, the complexity of implementation of the approach is obviously difficult in its full implementation so we chose instead to develop a proof of concept tool to demonstrate a simple refactoring in Java language. We believe that this tool can be further improved keeping its advantages to score more among similar tools like Eclipse and JEdit. 7.3 Design of Refactoring Tool We proposed a new model of design patterns in refactoring in the Java environment and also added the possibility of artificial intelligence constructs, which can be integrated with it. We propose in this section to give the design of the tool, with usual preprocessing and post processing checks involved in it. Fig 4. Proposed Design of tool Salient features of the approach and tool developed are summarized in following points : 1. Increases Maintenance Speed - Our refactoring processing tool is efficient than refactoring manually since it is light weight and provides functionality of design pattern choice to be embedded in the code by optimally finding the best design pattern to a given bad smell. 2. Increases reusability of code, as it follows Java design specifications specifically command patterns and hence all the merits of Java such as reusability, maintainance and modularity are imported in the tool. We also propose an improvement of this approach in section 9 where it can score over other approaches. 7.4 Limitations of Approach There are obvious limitations to our tool since it is a proof of concept tool to demonstrate the utility of design patterns use in software refactoring. There has been more sophisticated tools in the literature on refactoring but seldom are tools proposed for design patterns use in refactoring. Our tool is a simple proof of concept refactoring tool. It is novel in the sense of its new architecture,

6 6 software design and functionality. It can be further improved or used as a module in some future sophisticated tool using the present approach of design patterns use. Even automated software refactoring tools can be developed with this tool as a module to enhance the refactoring ability of the code without changing the behavior of the software. We also predict in the light of section 7.2 about the performance of the proposed architecture over existing approaches on Eclipse and JEdit in the following table : 7.5 Our Contribution in the project Here we summarize the salient points we concentrated on in the study : 1. Having studied the previous approaches we highlighted their drawbacks. 2. We proposed a new architecture for better integration of design patterns with refactoring. 3. We also proposed the possibility of integrating artificial intelligence constructs like Expert Systems and Decision Support Systems to automate the choice of code with bad smells. 4. We also proposed analysis of class interdependencies using adjacency matrix and how it can be used to make an effective rule base in expert system for better identification of bad smell code and appropriate design pattern to be used. 5. We study the limitations of the approach with a prediction of its utility over approaches like Eclipse and JEdit in terms of functionality and also performance if fully implemented. We hope to have taken a small step in a new direction to the idea of refactoring and design patterns by proposing the above concepts and predicting their utility in any future implementation of the concepts. It is really interesting and viable to use artificial intelligence constructs in refactoring and design patterns for better automation in their implementations and see the choice of bad smells and appropriate design patterns to correct them as an optimization problem. 9. SCOPE FOR FUTURE WORK There is always a scope of future work and our study has left a lot of loose ends to be tightened and new approaches to be experimented with. We propose that there is a lot of scope of improvement in the functionality of the tool and also to integrate automated systems with refactoring, in our case it was Expert Systems and Decision Support Systems. Here we compare the efficacy of our approach if implemented in totality to score over present approaches using Eclipse and JEdit. Fig 7. Prediction of our approach to others Though we concentrate on using artificial intelligence to automate the initial phase of choosing appropriate code to be refactored and corresponding design pattern, we hope that other phases can also be automated like pre and post conditions. Also the refactored code and the original code can be compared using a manual expert and he can suggest improvements in the rule base to make the application of expert system more efficient. 10. CONCLUSION In conclusion we would like to say that this project was a small attempt to address a new paradigm of reviewing and proposing the use of design patterns and software refactoring to enhance the ability of code comprehensibility, understanding without changing the behavior. In the process of analysis and study of the related concepts there has been a knowledge gain in the related areas of work and new ideas and concepts could be developed in the nascent areas of design patterns and refactoring. Acknowledgements Authors of the project deeply acknowledge Prof. Yann Gael Gueheneuc for being a constant support during the project and also we learnt a lot from him in software engineering and in life in general. REFERENCES [1]W.F. Opdyke, Refactoring : A Program Restructuring Aid in Designing Object-Oriented Application Frameworks, PhD thesis, Univ. of Illinois at Urbana- Champaign, [2]J Rajesh, D Janakiram, JIAD : A Tool to Infer Design Patterns in Refactoring by at PPDP04, August 2426, 2004, Verona, Italy. [3]Tom Mens, Tom Tourwe, A Survey of Software Refactoring in IEEE Transactions on Software Engineering, Vol. 30, No. 2, February [4] Design Patterns in http ://en.wikipedia.org/wiki/

7 7 [5] M. Fowler, Refactoring : Improving the Design of Existing Programs. Addison-Wesley, [6] R. Heckel, Algebraic Graph Transformations with Application Conditions, MS thesis, TU Berlin, [7] Alexander, Christopher, et al (1977). A Pattern Language : Towns, Buildings, Construction. New York : Oxford University Press. [8] Erich Gamma, Richard helm, Ralph, John, Design Patterns, Elements of reusable OO Software Addison Wesley [9]http ://images.google.com [10]Mikio Aiyoma, Evolutionary Patterns of Design and Design Patterns IEEE Electronic address:

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

The Oregon Software Development Process

The Oregon Software Development Process The Oregon Software Development Process Till Schümmer 1 and Robert Slagter 2 1 Computer Science Department, FernUniversität in Hagen, Universitätsstrasse 1, 58084 Hagen, Germany Till.Schuemmer@fernuni-hagen.de

More information

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 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

More information

An Approach for Extracting Modules from Monolithic Software Architectures

An Approach for Extracting Modules from Monolithic Software Architectures An Approach for Extracting Modules from Monolithic Software Architectures Ricardo Terra, Marco Túlio Valente, Roberto S. Bigonha Universidade Federal de Minas Gerais, Brazil {terra,mtov,bigonha@dcc.ufmg.br

More information

Program Restructuring to Introduce Design Patterns

Program Restructuring to Introduce Design Patterns Program Restructuring to Introduce Design Patterns Mel Ó Cinnéide Department of Computer Science University College Dublin Ireland. Mel.OCinneide@ucd.ie Paddy Nixon Department of Computer Science Trinity

More information

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION I: OVERVIEW AND HISTORY OF STYLES AND PATTERNS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012

More information

An Automatic Reversible Transformation from Composite to Visitor in Java

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,

More information

Component Based Software Engineering: A Broad Based Model is Needed

Component Based Software Engineering: A Broad Based Model is Needed Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish (parrish@cs.ua.edu) Brandon Dixon (dixon@cs.ua.edu) David Hale (dhale@alston.cba.ua.edu) Department of Computer Science

More information

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION 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

More information

Quality Ensuring Development of Software Processes

Quality Ensuring Development of Software Processes Quality Ensuring Development of Software Processes ALEXANDER FÖRSTER,GREGOR ENGELS Department of Computer Science University of Paderborn D-33095 Paderborn, Germany {alfo engels}@upb.de ABSTRACT: Software

More information

Design principles: laughing in the face of change

Design principles: laughing in the face of change Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh Plan What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going

More information

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical

More information

RANKING REFACTORING PATTERNS USING THE ANALYTICAL HIERARCHY PROCESS

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

More information

Practical Experiences of Agility in the Telecom Industry

Practical Experiences of Agility in the Telecom Industry Practical Experiences of Agility in the Telecom Industry Jari Vanhanen 1, Jouni Jartti 2, and Tuomo Kähkönen 2 1 Helsinki University of Technology, Software Business and Engineering Institute, P.O. Box

More information

A Refactoring Code Browser For Java. Final Report

A Refactoring Code Browser For Java. Final Report A Refactoring Code Browser For Java Final Report Graham Bennett June 2002 Supervisor: Susan Eisenbach Second Marker: Jeff Magee Individual Project MEng Computing Degree Department of Computing Imperial

More information

Ontological Representations of Software Patterns

Ontological Representations of Software Patterns Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software

More information

How Test-Driven Development Influences Class Design: A Practitioner s Point of View

How Test-Driven Development Influences Class Design: A Practitioner s Point of View How Test-Driven Development Influences Class Design: A Practitioner s Point of View Mauricio Finavaro Aniche, Marco Aurélio Gerosa Department of Computer Science University of São Paulo (USP) São Paulo

More information

Applying Agile Methods in Rapidly Changing Environments

Applying Agile Methods in Rapidly Changing Environments Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

WEB APP ARCHITECTURES: MULTI-TIER (2-TIER, 3-TIER) MODEL-VIEWER-CONTROLLER (MVC) REST ARCHITECTURAL STYLE

WEB APP ARCHITECTURES: MULTI-TIER (2-TIER, 3-TIER) MODEL-VIEWER-CONTROLLER (MVC) REST ARCHITECTURAL STYLE WEB APP ARCHITECTURES: MULTI-TIER (2-TIER, 3-TIER) MODEL-VIEWER-CONTROLLER (MVC) REST ARCHITECTURAL STYLE Slides created by Manos Papagelis Based on materials by Marty Stepp, M. Ernst, S. Reges, D. Notkin,

More information

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur Module 1 Introduction to Software Engineering Lesson 2 Structured Programming Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the important features of

More information

An Introduction to Design Patterns

An Introduction to Design Patterns An Introduction to Design Patterns 1. Introduction The philosophy behind design patterns is to document the experiences of software developers in designing software systems and reuse solutions found to

More information

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software... 1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand

More information

Chapter 9 Software Evolution

Chapter 9 Software Evolution Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes

More information

Software Engineering. So(ware Evolu1on

Software Engineering. So(ware Evolu1on Software Engineering So(ware Evolu1on 1 Software change Software change is inevitable New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers

More information

Composite Refactorings for Java Programs

Composite Refactorings for Java Programs Composite Refactorings for Java Programs Mel ÓCinnéide1 and Paddy Nixon 2 1 Department of Computer Science, University College Dublin, Dublin 4, Ireland. mel.ocinneide@ucd.ie http://www.cs.ucd.ie/staff/meloc/default.htm

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

Abstraction and Information Hiding

Abstraction and Information Hiding Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key

More information

Patterns in a Nutshell

Patterns in a Nutshell Patterns in a Nutshell http://www.enteract.com/~bradapp/ January 27, 1998 Patterns in a Nutshell Page 2 of 12 Trendy: Literary: 1.0 What are Patterns? Recent hot topic, OOD buzzword, lots of hype! Form

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

GenericServ, a Generic Server for Web Application Development

GenericServ, a Generic Server for Web Application Development EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student tawbi@irit.fr Bilal CHEBARO Assistant professor bchebaro@ul.edu.lb Abstract

More information

Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II)

Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Managing Software Reuse with Perforce

Managing Software Reuse with Perforce Managing Software Reuse with Perforce by Jo Woodison, Mandarin Consulting 1. Abstract Software reuse is touted as one of the biggest benefits of object-oriented programming, and indeed we have been reusing

More information

A Reusability Concept for Process Automation Software

A Reusability Concept for Process Automation Software A Reusability Concept for Process Automation Software Wolfgang Narzt, Josef Pichler, Klaus Pirklbauer, Martin Zwinz Business Information Systems C. Doppler Laboratory for Software Engineering University

More information

THE DEVELOPMENT OF A WEB BASED MULTIMEDIA INFORMATION SYSTEM FOR BUILDING APPRAISAL

THE DEVELOPMENT OF A WEB BASED MULTIMEDIA INFORMATION SYSTEM FOR BUILDING APPRAISAL THE DEVELOPMENT OF A WEB BASED MULTIMEDIA INFORMATION SYSTEM FOR BUILDING APPRAISAL Dominic O' Sullivan Department of Civil & Environmental Engineering National University of Ireland, Cork. Dr. Marcus

More information

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology Jackie Zheqing Zhang Bill Hopkinson, Ph.D. 12479 Research Parkway Orlando, FL 32826-3248 407-207-0976 jackie.z.zhang@saic.com,

More information

Chapter 4: Design Principles I: Correctness and Robustness

Chapter 4: Design Principles I: Correctness and Robustness Chapter 4: Design Principles I: Correctness and Robustness King Fahd University of Petroleum & Minerals SWE 316: Software Design & Architecture Semester: 072 Objectives To introduce two design principles

More information

Core Issues Affecting Software Architecture in Enterprise Projects

Core Issues Affecting Software Architecture in Enterprise Projects Core Issues Affecting Software Architecture in Enterprise Projects Halûk Gümüşkaya Abstract In this paper we analyze the core issues affecting software architecture in enterprise projects where a large

More information

Teaching Software Engineering Through Game Design

Teaching Software Engineering Through Game Design Teaching Software Engineering Through Game Design Kajal Claypool Computer Science Department University of Massachusetts 1 University Avenue Lowell, MA, USA kajal@cs.uml.edu Mark Claypool Computer Science

More information

The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization

The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization Holger Breitling, Carola Lilienthal, Martin Lippert, Heinz Züllighoven University of Hamburg Computer Science Department,

More information

An Initial Test Suite for Automated Extract Class Refactorings

An Initial Test Suite for Automated Extract Class Refactorings An Initial Test Suite for Automated Extract Class Refactorings Keith Cassell, Peter Andreae, Lindsay Groves, James Noble School of Engineering and Computer Science Victoria University of Wellington Wellington,

More information

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

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

More information

Teaching Object-Oriented Software Design within the Context of Software Frameworks

Teaching Object-Oriented Software Design within the Context of Software Frameworks Teaching Object-Oriented Software Design within the Context of Software Frameworks Zoya Ali, Joseph Bolinger, Michael Herold, Thomas Lynch, Jay Ramanathan, Rajiv Ramnath The Ohio State University, aliz@cse.ohio-state.edu,

More information

CODE REUSE AS A PRACTICE WITHIN EXTREME PROGRAMMING

CODE REUSE AS A PRACTICE WITHIN EXTREME PROGRAMMING CODE REUSE AS A PRACTICE WITHIN EXTREME PROGRAMMING Gerald DeHondt a, b, Vijayan Sugumaran b a Department of Management and Information Systems, College of Business Administration Kent State University,

More information

XFlash A Web Application Design Framework with Model-Driven Methodology

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,

More information

Structuring Product-lines: A Layered Architectural Style

Structuring Product-lines: A Layered Architectural Style Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland

More information

Basic Trends of Modern Software Development

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

More information

Taming the complexity: The need for program understanding in software engineering

Taming the complexity: The need for 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

More information

Development of Tool Extensions with MOFLON

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

More information

RUP Design Workflow. Michael Fourman Cs2 Software Engineering

RUP Design Workflow. Michael Fourman Cs2 Software Engineering RUP Design Workflow Michael Fourman Introduction Design architecture that can meet all requirements Understand non-functional requirements and constraints related to technologies Identify subsystems (overall

More information

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or

More information

Implementing Enterprise Integration Patterns Using Open Source Frameworks

Implementing Enterprise Integration Patterns Using Open Source Frameworks Implementing Enterprise Integration Patterns Using Open Source Frameworks Robert Thullner, Alexander Schatten, Josef Schiefer Vienna University of Technology, Institute of Software Technology and Interactive

More information

A Componentware Methodology based on Process Patterns Klaus Bergner, Andreas Rausch Marc Sihling, Alexander Vilbig Institut fur Informatik Technische Universitat Munchen D-80290 Munchen http://www4.informatik.tu-muenchen.de

More information

Masters in Information Technology

Masters in Information Technology Computer - Information Technology MSc & MPhil - 2015/6 - July 2015 Masters in Information Technology Programme Requirements Taught Element, and PG Diploma in Information Technology: 120 credits: IS5101

More information

Software Design Document (SDD) Template

Software Design Document (SDD) Template (SDD) Template Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase.

More information

Chapter 4 Software Lifecycle and Performance Analysis

Chapter 4 Software Lifecycle and Performance Analysis Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and

More information

CSC408H Lecture Notes

CSC408H Lecture Notes CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

Umbrella: A New Component-Based Software Development Model

Umbrella: A New Component-Based Software Development Model 2009 International Conference on Computer Engineering and Applications IPCSIT vol.2 (2011) (2011) IACSIT Press, Singapore Umbrella: A New Component-Based Software Development Model Anurag Dixit and P.C.

More information

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns Analysis Martin Fowler fowler@acm acm.org http://ourworld ourworld.compuserve.com/homepages/martin_fowler Page Martin Fowler 9//99 What we will cover Introduction Observation Accounting How to use Page

More information

II. TYPES OF LEVEL A.

II. TYPES OF LEVEL A. Study and Evaluation for Quality Improvement of Object Oriented System at Various Layers of Object Oriented Matrices N. A. Nemade 1, D. D. Patil 2, N. V. Ingale 3 Assist. Prof. SSGBCOET Bhusawal 1, H.O.D.

More information

The Concern-Oriented Software Architecture Analysis Method

The Concern-Oriented Software Architecture Analysis Method The Concern-Oriented Software Architecture Analysis Method Author: E-mail: Student number: Supervisor: Graduation committee members: Frank Scholten f.b.scholten@cs.utwente.nl s0002550 Dr. ir. Bedir Tekinerdoǧan

More information

Agile Test-based Modeling

Agile Test-based Modeling Agile Test-based Modeling Bernhard Rumpe Software Systems Engineering TU Braunschweig, Germany www.sse.cs.tu-bs.de Model driven architecture (MDA) concentrates on the use of models during software development.

More information

Towards an Appropriate Software Refactoring Tool Support

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

More information

Information systems modelling UML and service description languages

Information systems modelling UML and service description languages Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:

More information

A standards-based approach to application integration

A standards-based approach to application integration A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist Macnair@us.ibm.com Copyright IBM Corporation 2005. All rights

More information

Enterprise Integration: operational models of business processes and workflow systems *

Enterprise Integration: operational models of business processes and workflow systems * Enterprise Integration: operational models of business processes and workflow systems. 1 Enterprise Integration: operational models of business processes and workflow systems * G.Bruno 1, C.Reyneri 2 and

More information

Why process models? Topic 3 Software process models. 3. Process models. What is a process model?

Why process models? Topic 3 Software process models. 3. Process models. What is a process model? Why process models? Topic 3 Software process models SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software... (IEEE Standard

More information

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013 D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013 The purpose of these questions is to establish that the students understand the basic ideas that underpin the course. The answers

More information

Towards an Automated Pattern Selection Procedure in Software Models

Towards an Automated Pattern Selection Procedure in Software Models Towards an Automated Pattern Selection Procedure in Software Models Alexander van den Berghe, Jan Van Haaren, Stefan Van Baelen, Yolande Berbers, and Wouter Joosen {firstname.lastname}@cs.kuleuven.be IBBT-DistriNet,

More information

A Business Process Driven Approach for Generating Software Modules

A Business Process Driven Approach for Generating Software Modules A Business Process Driven Approach for Generating Software Modules Xulin Zhao, Ying Zou Dept. of Electrical and Computer Engineering, Queen s University, Kingston, ON, Canada SUMMARY Business processes

More information

UML-based Test Generation and Execution

UML-based Test Generation and Execution UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA jeanhartmann@siemens.com ABSTRACT

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Generating Aspect Code from UML Models

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 Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

Verifying Semantic of System Composition for an Aspect-Oriented Approach

Verifying Semantic of System Composition for an Aspect-Oriented Approach 2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach

More information

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting Using Use Cases for requirements capture Pete McBreen 1998 McBreen.Consulting petemcbreen@acm.org All rights reserved. You have permission to copy and distribute the document as long as you make no changes

More information

A Framework for the Delivery of Personalized Adaptive Content

A Framework for the Delivery of Personalized Adaptive Content A Framework for the Delivery of Personalized Adaptive Content Colm Howlin CCKF Limited Dublin, Ireland colm.howlin@cckf-it.com Danny Lynch CCKF Limited Dublin, Ireland colm.howlin@cckf-it.com Abstract

More information

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

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:

More information

Leveraging Corporate Software Development

Leveraging Corporate Software Development Leveraging Corporate Software Development Andreas Birrer, Thomas Eggenschwiler UBILAB, Union Bank of Switzerland Bahnhofstr. 45, CH-8021 Zurich e-mail: {birrer, eggenschwiler}@ubilab.ubs.ch Framework-based

More information

Génie Logiciel et Gestion de Projets. Patterns

Génie Logiciel et Gestion de Projets. Patterns Génie Logiciel et Gestion de Projets Patterns 1 Alexander s patterns Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN 0195024028 Each pattern

More information

Introduction to Software Paradigms & Procedural Programming Paradigm

Introduction to Software Paradigms & Procedural Programming Paradigm Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,

More information

EMPIRICAL STUDY OF THE EVOLUTION OF AGILE-DEVELOPED SOFTWARE SYSTEM IN JORDANIAN'S TELECOM

EMPIRICAL STUDY OF THE EVOLUTION OF AGILE-DEVELOPED SOFTWARE SYSTEM IN JORDANIAN'S TELECOM EMPIRICAL STUDY OF THE EVOLUTION OF AGILE-DEVELOPED SOFTWARE SYSTEM IN JORDANIAN'S TELECOM Dr.Walid Qassim Qwaider Majmaah University College of Science and Humanities in Ghat Management Information Systems

More information

SAPM Overview Semester Summary

SAPM Overview Semester Summary SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

More information

A Brief Analysis of Web Design Patterns

A Brief Analysis of Web Design Patterns A Brief Analysis of Web Design Patterns Ginny Sharma M.Tech Student, Dept. of CSE, MRIU Faridabad, Haryana, India Abstract Design patterns document good design solutions to a recurring problem in a particular

More information

Introduction to Financial Messaging Services Bus A White Paper by Microsoft and SAGA

Introduction to Financial Messaging Services Bus A White Paper by Microsoft and SAGA Simplifying SWIFT Connectivity Introduction to Financial Messaging Services Bus A White Paper by Microsoft and SAGA Version 1.0 August 2009 Applies to: Financial Services Architecture BizTalk Server BizTalk

More information

Language-Driven, Technology-Enhanced Instructional Systems Design

Language-Driven, Technology-Enhanced Instructional Systems Design Language-Driven, Technology-Enhanced Instructional s Design Iván Martínez-Ortiz, José-Luis Sierra, Baltasar Fernández-Manjón Fac. Informática. Universidad Complutense de Madrid C/ Prof. José García Santesmases

More information

An Automated Workflow System Geared Towards Consumer Goods and Services Companies

An Automated Workflow System Geared Towards Consumer Goods and Services Companies Proceedings of the 2014 International Conference on Industrial Engineering and Operations Management Bali, Indonesia, January 7 9, 2014 An Automated Workflow System Geared Towards Consumer Goods and Services

More information

AN intrinsic property of software in a real-world environment

AN intrinsic property of software in a real-world environment IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. XX, NO. Y, MONTH 2004 1 A Survey of Software Refactoring Tom Mens, Tom Tourwé Abstract This paper provides an extensive overview of existing research in

More information

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar

SAPM Overview. Semester Summary. Project management. Tools (1) Dr. James A. Bednar SAPM Overview Semester Summary Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar In this lecture we review the topics we have covered this semester, focusing on what I consider

More information

A Process View on Architecture-Based Software Development

A Process View on Architecture-Based Software Development A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany

More information

QUALITY ASSURANCE IN EXTREME PROGRAMMING Plamen Balkanski

QUALITY ASSURANCE IN EXTREME PROGRAMMING Plamen Balkanski International Journal "Information Theories & Applications" Vol.10 113 QUALITY ASSURANCE IN EXTREME PROGRAMMING Plamen Balkanski Abstract: Our previous research about possible quality improvements in Extreme

More information

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24 Table of Contents CHAPTER 1 Web-Based Systems 1 The Web 1 Web Applications 2 Let s Introduce a Case Study 3 Are WebApps Really Computer Software? 4 Are the Attributes of WebApps Different from the Attributes

More information

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

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

More information

An Introduction to Process Patterns

An Introduction to Process Patterns An Introduction to Process Patterns An AmbySoft Inc. White Paper Scott W. Ambler Object-Oriented Consultant AmbySoft Inc. Material for this paper has be excerpted from: Process Patterns: Building Large-Scale

More information

Component visualization methods for large legacy software in C/C++

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 mcserep@caesar.elte.hu

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

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,

More information

Understanding Service-Orientation Part II: The Principles

Understanding Service-Orientation Part II: The Principles by Raj Balasubramanian, Enterprise IT Architect for IBM Software Group, Benjamin Carlyle, Architect in the Rail industry, Cesare Pautasso Assistant professor in the new Faculty of Informatics at the University

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information