Coordinated Visualization of Aspect-Oriented Programs

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Coordinated Visualization of Aspect-Oriented Programs"

Transcription

1 Coordinated Visualization of Aspect-Oriented Programs Álvaro F. d Arce 1, Rogério E. Garcia 1, Ronaldo C. M. Correia 1 1 Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita Filho (UNESP) Rua Roberto Simonsen, Presidente Prudente SP Brazil Abstract. Software Visualization provides support to program analysis by visual presentation, improving cognition to comprehension tasks. Focusing specifically on aspect-oriented source code, it s needed to map features of Aspect-Oriented Program (aspects and advices) into visual presentations, providing suitable visualization for understanding how aspects crosscut usual classes. In this paper we present a proposal of visual mapping for aspect-oriented programs aimed to support Program Comprehension by improving cognition. 1. Introduction Aspect-Oriented Programming (AOP) supports the modularization of crosscutting concerns by mechanisms that make possible the addition of behavior to selected elements of the programming language semantics, thus isolating implementation that otherwise would be spread and tangled throughout the base code [Kiczales et al. 2001]. However, AOP new features can increase the structural complexity of software systems, increasing the difficulty to comprehend their architecture and structure, bringing up challenges to the comprehension of Aspect-Oriented Programs. Software Visualization is an alternative approach to help software engineers to cope with structural complexity due to fragmentation and the need to compose fragments. However, the visualization must be able to deal with an Aspect-Oriented Program effectively. The visualization process deal with gathering data, its organization and mapping into visual structures to generate visual representations [Card et al. 1999]. Following such process, it is needed not only to have specific visual mapping for Aspect-Oriented Programs, but also have mechanisms to gather and to organize data representing AOP features. Different techniques and tools have been proposed to support software visualization. For example, hierarchical structures can be visualized using Treemaps [Johnson and Shneiderman 1991, Bederson et al. 2002, Pfeifer and Gurd 2006], Polymetric Views [Lanza 2004, Carneiro et al. 2008], and Hyperbolic Trees [Munzner 1998] (this last one for large structures); Bars and Stripes might be used for inter-relational structures visualization [Baldwin et al. 2009]. Besides, some extensions have been proposed, like UML 3D to visualize packages, classes and methods [Gall and Lanza 2006] and Dependence Graphs to inter-dependency level visualization [Wurthinger et al. 2008] can also be used to build visual representations to support comprehension process. These visualization techniques can represent, by themselves, only the aspects before the weaving they cannot represent the resulted code of an Aspect-Oriented Program after the weaving process (tangled and spread code). A Treemap extension was proposed to show

2 advised relations of AOP [Pfeifer and Gurd 2006], but it is a user based mining by searching regular expressions representing aspects and classes elements. We have developed a visual mapping tackling Aspect-Oriented Program. To present our approach, the remainder of this paper is organized as follow. In Section 2 it s presented some considerations about Aspect-Oriented Programs and features to its visualization. In Section 3 is presented the visual mapping for Aspect-Oriented Programs and the tool implemented. And in Section 4 the final remarks are presented. 2. Aspect-Oriented Program AOP tackles crosscutting concerns problem supporting the definition units of implementation (aspects) that cut across the system units (base code), providing the behavior expected [Kiczales et al. 2001]. A generic AOP language should define elements enough to combine aspects and code base. The following elements were pointed out: a model to describe base code points where additional behavior may be defined, named joinpoints; a mechanism to identify these joinpoints; units that encapsulate both joinpoint specifications and behavior enhancements; and a process to combine both base code and aspects, named the weaving process [Elrad et al. 2001]. Aspects and how they crosscuts a base code are important elements that should be mapped into visual structures. There are several programming languages extensions to support AOP, one of them is AspectJ: an extension of the Java language to support AOP. In AspectJ are defined new constructions to aspect, advices, and pointcuts. Aspects are units that combine joinpoint specifications and pieces of advice. Also, aspects can declare members attributes and methods to be owned by other types, what is called inter-type declarations. Advices are pieces of code joined to specified points in the program. Before, after and around advices are method-like constructs that can be executed before, after and in place of the joinpoints, respectively. The AOP runtime invokes advice automatically when the pointcut matches the joinpoint defining the crosscutting behavior. Listing 1. Piece of source code aspect-oriented 1 p u b l i c c l a s s Account { 2 p r i v a t e f l o a t f u n d s ; 3 p u b l i c Account ( f l o a t f u n d s ) { t h i s. f u n d s = f u n d s ; } 4 p u b l i c f l o a t g e t F u n d s ( ) { return f u n d s ; } 5 p u b l i c void withdraw ( f l o a t v a l u e ) { f u n d s = f u n d s ; } 6 p u b l i c void d e p o s i t ( f l o a t v a l u e ) { f u n d s o += v a l u e ; } 7 } 8 p u b l i c a s p e c t R e g i s t e r { 9 p o i n t c u t withdraw ( Account acc, f l o a t v a l u e ) : 10 t a r g e t ( acc ) && args ( v a l u e ) && c a l l ( Account. withdraw ( f l o a t ) ) ; p o i n t c u t d e p o s i t ( Account acc, f l o a t v a l u e ) : 13 t a r g e t ( acc ) && args ( v a l u e ) && c a l l ( Account. d e p o s i t ( f l o a t ) ) ; a f t e r ( Account Account, f l o a t v a l u e ) r e t u r n i n g ( ) : withdraw ( Account, v a l u e ) { 16 System. o u t. p r i n t l n ( "Withdraw - Value: " + v a l u e ) ; 17 } 18 a f t e r ( Account Account, f l o a t v a l u e ) r e t u r n i n g ( ) : d e p o s i t ( Account, v a l u e ) { 19 System. o u t. p r i n t l n ( "Deposit - Value: " + v a l u e ) ; 20 } 21 } In Listing 1 is shown pieces of source code of an Aspect-Oriented Program. In this example is shown a bank account class and an aspect modifying it by two pointcuts

3 and two advices to register the transaction after calls to withdraw() and deposit() methods. The AspectJ advice weaver statically transforms the program so that at runtime it behaves according to the language semantics, as show in Figure 1. 1 Deposit Withdraw <<after-returning>> <<after-returning>> 2 Figure 1. Execution model after weaving To visualize Aspect-Oriented Programs, specifically AspectJ programs, it s interesting that a Software Visualization tool highlights (in more than one visual scenario) program characteristics like aspects, advices and pointcuts, with the aim to let the user view how an aspect crosscuts one or more classes or how much a class is modified by one or more aspects, or how the code is tangled and spread by the weaver. After the weaving and compilation processes, the specific data of an Aspect- Oriented Program are tangled and spread in bytecode, identified by specific signatures. By these signatures, it s possible to obtain data about program aspects and advices (two important items in an Aspect-Oriented Program visualization) and organize them in a graph, along with the other program elements (like packages, classes and methods) to obtain data enough to generate the visual representations. 3. Aspect-Oriented Program Visualization We proposed a multiple view approach to visualize AOP, as depicted in Figure 2. Structural Presentation aims to show how the source code is organized in classes and aspects; Inter-Units Presentation aims to show crosscutting between method and advices; and Intra-Method Presentation aims to show the behavior intra-method after weaving process. One might observe in Figure 2 that visualizations are coordinated to allow exploring different levels of view. Structural Presentation (Treemap View) Intra-Method Presentation (Graph View) Inter-Units Presentation (Hyperbolic View) Figure 2. Presentations Schema For each presentation was chosen suitable technique according to its pourpose: for example, there are several techniques for hierarchical views, and we have chosen Treemap to represent the program s hierarchical structure including aspects and advices (Structural Presentation). Hyperbolic view was chosen to represents classes dependences coupled with aspects crosscuts (Inter-Units Presentation), and Control Flow Graph (CFG) to visualize the advised source code representing the behavior of a piece of code, showing advices over the code after the weaving process (Intra-Method Presentation). By the coordination of these three visual presentations, Aspect-Oriented Program can be visualized

4 in hierarchical structure, classes dependence, aspects crosscuts, tangled code and spread code. A Software Visualization tool has been developed according to the visual mapping proposed, and it is shown in the following SoftV iz OAH : The Visualization Tool The tool SoftV iz OAH consists in a standalone desktop software, and its architecture, shown in Figure 3, is organized onto three layers: Dataset, Control and Visualization. In addition, the tool allows visualizing test case results as described in the following. The Dataset layer is aimed to static and dynamic analyses creating data sets necessary to generate the visualizations. The Reading Module reads a program s bytecode and analyzes classes, aspects and test cases. The Static Analysis reads classes, aspects and test cases (using JUnit). During the reading, the data flow stream of each unit is analyzed and put into a data structure representing a CFG, while new instructions are inserted in each unit code (instrumentation technique, containing methods and advices calls, providing feedback to allow monitoring test cases by Dynamic Analysis), and it s built a list with all classes, aspects and their information obtained by the instrumentation. From this list, it s built a hierarchical structure, which will be used to generate the Treemap visual presentation. Also, informations like superclass references, variable types, methods parameters and returns, and others are grouped into a node table and an edge table to mount a Dependence Graph (by the interpretation of these tables and the organization of the links among the nodes), which is used to generate the Hyperbolic visual representation. While doing a Structural Test, Dynamic Analysis monitors test cases and registers each visited portion of code of each code unit, making a execution path. From the path, the coverage criteria are verified to determine the test s Result each criterion has its own standard to verify whether the test has been completely or partially met. During a test execution, the instrumentation sends to the tool information about each visited portion of code. This information is stored to be used by each visual representation. By these two steps analyses, the tool gathers data to generate visual representations [Martins 2007, Trevisan 2010, Dutra 2010]. At Control layer the Integration Module organizes data obtained from Reading Module to generate visual presentations (all three presentations are generated at the same time) and provides mechanisms to coordinate them. These mechanisms capture interaction with visual presentations to reflect them into another view. An event, caused by an user interaction in a specific visualization, is captured. From this event, the Integration Module obtains data about the selected unit of the program (class, method, aspect or advice). The data structures stored in the Dataset layer (i.e., the graph data structure, the list containing information from the instrumentation, the hierarchical structure and the node and edge tables) are used to do the coordination among the visualizations. Then, an event is sent to each other visualization in the Visualization layer, informing the new state of the visual representation (i.e., highlighted items), performing, this way, the coordination. The Visualization layer provides CFG, Treemap and Hyperbolic visual presentations, as explained in Section 3. In each visual presentation, aspects are highlighted. In the CFG visual representation, basic code blocks are represented by rectangles outlined by a continuous line, code blocks advised by aspects are represented by rectangles outlined by a dashed line and method returns are represented by rectangles outlined by a double line. Inside each rectangle there is a number indicating the code block execution

5 Hyperbolic View Graph View Treemap View Visualization Integration Module Control Reading Module Structural Test JUnit Static Analysis Dynamic Analysis Result Dataset Bytecode DataSource Figure 3. SoftV iz OAH Tool architecture sequence. Normal code sequences are represented by continuous lines, and exceptions are represented by dashed lines. All code blocks belong to codes inside methods and aspects. If a test case (created by the user) is applied, each rectangle is colored according a gradient from red to green. The more the code block has failed in the test, the redder it s colored. The more the code block has succeeded, the greener it is colored. Such color mapping allows viewing how succeeded (or failed) a test case covered the source code. Also, Treemap presents hierarchical structures in constrained and nested rectangles. Each rectangle can represent packages, classes, methods, aspects and advices. A rectangle size represents the number calls to the represented method or advice, and the color represents test case results, just like the referred gradient. In the Hyperbolic visual presentation, nodes represent whole program classes and aspects, and edges represent dependency between each class or aspect, i.e. method calls and joinpoints. Each edge is colored according to their structural tests results. Clicking on an edge, the participant methods in its test are shown in Treemap. Clicking on a node, it is positioned in the center of the graph and its representation is highlighted in Treemap. All visual presentations use the same color mapping, but to highlight aspect selection, a different color is used. Listing 2. Method calling two adviced methods 1 p u b l i c void t r a n s f e r r i n g ( i n t sourcenumber, i n t d e s t i n a t i o n N u m b e r, f l o a t v a l u e ) { 2 t r y { 3 a c c o u n t s o u r c e A c c o u n t = g e t a c c o u n t ( sourcenumber ) ; 4 a c c o u n t d e s t i n a t i o n A c c o u n t = g e t a c c o u n t ( d e s t i n a t i o n N u m b e r ) ; 5 i f ( s o u r c e A c c o u n t. g e t B a l l a n c e ( ) >= v a l u e ) { 6 s o u r c e A c c o u n t. withdraw ( v a l u e ) ; / / ADVICED METHOD 7 d e s t i n a t i o n A c c o u n t. d e p o s i t ( v a l u e ) ; / / ADVICED METHOD 8 } e l s e 9 throw new I n s u f f i c i e n t F u n d s E x c e p t i o n ( s o u r c e A c c o u n t. getnumber ( ), v a l u e ) ; 10 } catch ( A b s e n t A c c o u n t E x c e p t i o n e ) { 11 System. o u t. p r i n t l n ( e. getmessage ( ) ) ; 12 } catch ( I n s u f f i c i e n t F u n d s E x c e p t i o n e ) { 13 System. o u t. p r i n t l n ( e. getmessage ( ) ) ; 14 } 15 }

6 (a) Treemap visualization (b) Methods of selected class (c) Hyperbolic projection (d) CFG visualization Figure 4. CFG and Interaction with Treemap projection

7 In Figures 4(d) and 4(a) are shown the CFG and the Treemap views from transfer- Test test case, which calls transferring method the transferring method shown in Listing 2 calls withdraw and deposit methods, which are adviced as depicted in Figure 1. Each node in CFG represent a code block executed, and their connection represents possible path execution. All code blocks, advices and methods are colored according to their test results, using the same color mapping to CFG and the Treemap. When code block is selected in the graph visualization, its respective method is selected in the Treemap visualization, and when code block selected contains an advice, the respective advice is also selected in the Treemap visualization. The selected rectangle in Figure 4(d) represent a code block containing the calling to withdraw method and its advice, and both method and advice are highlighted in the Treemap visualization. The graph visualization is showing two advices (represented by rectangles with dashed lines) with their respective pointcuts (represented by their sequence in the graph) crosscutting a test case with the Account class. The global view of the graph visualization represents the tangled and spread code. In the example depicted in Figure 4(d), the code is tangled (advices among the code) and the aspect is thinly spread (advices are close to each other). Nodes in Hyperbolic view represent classes and aspects, distinguished by different colors. Edges represent method calling or aspect crosscutting. By interacting with Hyperbolic view, one might select classes, aspects and edges between them. When a class or aspect is selected in the Hyperbolic visualization, the respective class or aspect is also selected in the Treemap visualization, and its respective methods or advices are shown in a separated panel, depicted in Figure 4(b). By selecting an edge in the Hyperbolic visualization, the participating methods or advices are also selected in the Treemap visualization. In Figure 4 is shown the selected class Terminal moved to center of projection, its selection in Treemap visualization, and the list of methods. By interacting with those visual presentations, one might observe how aspects crosscut classes. 4. Final Remarks We proposed a visual mapping to present features of Aspect-Oriented Programs using three coordinated visual presentations. Those visualizations aim to externalize structural organization, the relations among classes and aspects, and the advised code. By coordination proposed it is possible to highlight selected elements on different detail levels, allowing the user to gather information about aspect and its spreading to the source code. The visual mapping proposed has been evaluated using some AOP source code. One of them is the GanttProject 1, originally written in Java that we modified to an AspectJ project by factoring some functionalities to aspects (to visualize them in the tool), resulting in lines of code at all. According to preliminary evaluation, the tool functionalities are useful to support Aspect-Oriented Program understanding. However, to assess the effectiveness and efficiency of the visual mapping proposed in more realistic way, it is needed to conduct a controlled experiment, which will be conducted using an experimentation process. Such controled experiment will be conduct aimed to reveal defects previously inserted into the GanttProject source code. 1 An open source project obtained at

8 References Baldwin, J., Myers, D., Storey, M., and Coady, Y. (2009). Assembly code visualization and analysis: An old dog can learn new tricks! PLATEAU 09 Workshop at Onward! Bederson, B. B., Shneiderman, B., and Wattenberg, M. (2002). Ordered and quantum treemaps: Making effective use of 2d space to display hierarchies. ACM Transactions on Graphics (TOG), 4(21): Card, S. K., Mackinlay, J. D., and Shneiderman, B. (1999). Readings in Information Visualization Using Vision to Think. MK Publishers Inc. Carneiro, G., Magnavita, R., and Mendonça, M. (2008). Combining software visualization paradigms to support software comprehension activities. In 4th ACM symposium on Software visualization (SoftVis 08), pages , NY, USA. Dutra, L. S. (2010). Visualização hierárquica de programas orientados a aspectos. Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita Filho. Technical Report. Elrad, T., Filman, R. E., and Bader, A. (2001). Aspect-oriented programming introduction. Commun. ACM, 10(44): Gall, H. and Lanza, M. (2006). Software analysis visualization. 28th International Conference on Software Engineering (ICSE Shangai 2006). Johnson, B. and Shneiderman, B. (1991). Tree-maps: a space-filling approach to the visualization of hierarchical information structures. In Proceedings of the 2nd conference on Visualization 91, VIS 91, pages , Los Alamitos, CA, USA. IEEE Computer Society Press. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. (2001). An overview of aspectj. ECOOP 2001 Object Oriented Programming, 2072(2001): Lanza, M. (2004). Codecrawler - polymetric views in action. In 19th International Conference on Automated Software Engineerings, pages Martins, R. M. (2007). Teste estrutural de programas orientados a aspectos. Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita Filho. Technical Report. Munzner, T. (1998). Exploring large graphs in 3d hyperbolic space. IEEE Computer Graphics and Applications, 18(4): Pfeifer, J. and Gurd, J. (2006). Visualization-based tool support for the development of aspect-oriented programs. AOSD. Trevisan, M. (2010). Visualização de software orientado a aspectos usando visualização hiperbólica. Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita Filho. Technical Report. Wurthinger, T., Wimmer, C., and Mossenbock, H. (2008). Visualization of program dependence graphs. CC 2008, LNCS 4959, pages

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

Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems

Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems The 15th International Conference on Product-Focused Software Process Improvement, Helsinki, Finland. Wen Chen, Alan Wassyng,

More information

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration of Application Business Logic and Business Rules with DSL and AOP Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland Bogumila.Hnatkowska@pwr.wroc.pl

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

Using UML Behavioral Model to Support Aspect Oriented Model

Using UML Behavioral Model to Support Aspect Oriented Model Journal of Software Engineering and Applications, 2013, 6, 98-112 http://dx.doi.org/10.4236/jsea.2013.63014 Published Online March 2013 (http://www.scirp.org/journal/jsea) Using UML Behavioral Model to

More information

Guidelines for Aspect-Oriented Design

Guidelines for Aspect-Oriented Design Guidelines for Aspect-Oriented Design Christina von Flach G. Chavez 1 Carlos J.P. Lucena 2 1 UFBA, Computer Science Department Av. Adhemar de Barros, s/n 40170-110, Salvador, BA, Brazil 2 PUC-Rio, Computer

More information

Aspect-Oriented Web Development in PHP

Aspect-Oriented Web Development in PHP Aspect-Oriented Web Development in PHP Jorge Esparteiro Garcia Faculdade de Engenharia da Universidade do Porto jorge.garcia@fe.up.pt Abstract. Aspect-Oriented Programming (AOP) provides another way of

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

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,

More information

The Application Monitor Aspect Pattern

The Application Monitor Aspect Pattern The Application Monitor Aspect Pattern Roberta Coelho Pontifical Catholic University of Rio de Janeiro (PUC-Rio) Rio de Janeiro, Brazil roberta@inf.puc-rio.br Ayla Dantas Universidade Federal de Campina

More information

Aspects for Testing Aspects?

Aspects for Testing Aspects? Aspects for Testing Aspects? Dehla Sokenou, Stephan Herrmann Technische Universität Berlin Software Engineering Group Sekr. FR 5-6, Franklinstr. 28/29, D-10587 Berlin [dsokenou stephan]@cs.tu-berlin.de

More information

Aspect Oriented Programming. with. Spring

Aspect Oriented Programming. with. Spring Aspect Oriented Programming with Spring Problem area How to modularize concerns that span multiple classes and layers? Examples of cross-cutting concerns: Transaction management Logging Profiling Security

More information

How to Model Aspect-Oriented Web Services

How to Model Aspect-Oriented Web Services How to Model Aspect-Oriented Web Services Guadalupe Ortiz Juan Hernández gobellot@unex.es juanher@unex.es Quercus Software Engineering Group University of Extremadura Computer Science Department Pedro

More information

Distributed Systems Development: Can we Enhance Evolution by using AspectJ?

Distributed Systems Development: Can we Enhance Evolution by using AspectJ? Distributed Systems Development: Can we Enhance Evolution by using AspectJ? Cormac Driver Siobhán Clarke Distributed Systems Group, Computer Science Department, Trinity College Dublin, Ireland {Cormac.Driver,

More information

Automated Test Generation for AspectJ Programs

Automated Test Generation for AspectJ Programs Automated Test Generation for AspectJ Programs Tao Xie 1 Jianjun Zhao 2 Darko Marinov 3 David Notkin 1 1 Department of Computer Science & Engineering, University of Washington, USA 2 Department of Computer

More information

Remote Pointcut - A Language Construct for Distributed AOP

Remote Pointcut - A Language Construct for Distributed AOP Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori (IBM) 1 Pointcut-advice model Joinpoints Program execution is modeled

More information

HierarchyMap: A Novel Approach to Treemap Visualization of Hierarchical Data

HierarchyMap: A Novel Approach to Treemap Visualization of Hierarchical Data P a g e 77 Vol. 9 Issue 5 (Ver 2.0), January 2010 Global Journal of Computer Science and Technology HierarchyMap: A Novel Approach to Treemap Visualization of Hierarchical Data Abstract- The HierarchyMap

More information

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns. Volume 4, Issue 5, May 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Functional and Non-Functional

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

Aspect Refactoring Verifier

Aspect Refactoring Verifier Aspect Refactoring Verifier Charles Zhang and Julie Waterhouse Hans-Arno Jacobsen Centers for Advanced Studies Department of Electrical and IBM Toronto Lab Computer Engineering juliew@ca.ibm.com and Department

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

The Application Monitor Aspect Pattern

The Application Monitor Aspect Pattern The Application Monitor Aspect Pattern Roberta Coelho 1 Ayla Dantas 2 Uirá Kulesza 1 Walfredo Cirne 2 Arndt von Staa 1 Carlos Lucena 1 1 Computer Science Department Pontifical Catholic University of Rio

More information

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester

More information

Chapter 5 Aspect Oriented Programming

Chapter 5 Aspect Oriented Programming 2I1AC3 : Génie logiciel et Patrons de conception Chapter 5 Aspect Oriented Programming J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé. Je ne

More information

Using an Aspect Oriented Layer in SOA for Enterprise Application Integration

Using an Aspect Oriented Layer in SOA for Enterprise Application Integration 19 Using an Aspect Oriented Layer in SOA for Enterprise Application Integration Chinthaka D. Induruwana School of Computer Science, University of Manchester, Kilburn Building, Oxford Road M13 9PL induruwc@cs.man.ac.uk

More information

Case Study Towards Implementation of Pure Aspect-oriented Factory Method Design Pattern

Case Study Towards Implementation of Pure Aspect-oriented Factory Method Design Pattern Case Study Towards Implementation of Pure Aspect-oriented Factory Method Design Pattern Žilvinas Vaira Vilnius University Institute of Mathematics and Informatics Akademijos 4, LT-01108 Vilnius, Lithuania

More information

Unification of AOP and FOP in Model Driven Development

Unification of AOP and FOP in Model Driven Development Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify

More information

Toward Configurable Access Control for. Healthcare Information Systems

Toward Configurable Access Control for. Healthcare Information Systems Toward Configurable Access Control for Healthcare Information Systems Kung Chen a and Da-Wei Wang b a Department of Computer Science, National Chengchi University b Institute of Information Science, Academia

More information

An Analysis of Aspect Oriented Programming with AspectJ

An Analysis of Aspect Oriented Programming with AspectJ An Analysis of Aspect Oriented Programming with AspectJ Advisor: Dr. Jehan Francois Paris Professor Department of Computer Science University of Houston Submitted by: Jay Gattani Department of Computer

More information

VISUALIZATION TECHNIQUES OF COMPONENTS FOR LARGE LEGACY C/C++ SOFTWARE

VISUALIZATION TECHNIQUES OF COMPONENTS FOR LARGE LEGACY C/C++ SOFTWARE STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LIX, Special Issue 1, 2014 10th Joint Conference on Mathematics and Computer Science, Cluj-Napoca, May 21-25, 2014 VISUALIZATION TECHNIQUES OF COMPONENTS

More information

Chapter 18 Emerging Technologies

Chapter 18 Emerging Technologies Lecture Software Engineering Chapter 18 Emerging Technologies Lecture Software Engineering Topics Introduction Aspect-Oriented Technology Model-Driven Technology Component-Based Technology Service-Oriented

More information

Component-Based Software Development with Aspect-Oriented Programming

Component-Based Software Development with Aspect-Oriented Programming Vol. 4, No. 3 Special issue: GPCE Young Researchers Workshop 2004 Component-Based Software Development with Aspect-Oriented Programming Michael Eichberg, Departement of Computer Science, Darmstadt University

More information

Visualization of Software Metrics Marlena Compton Software Metrics SWE 6763 April 22, 2009

Visualization of Software Metrics Marlena Compton Software Metrics SWE 6763 April 22, 2009 Visualization of Software Metrics Marlena Compton Software Metrics SWE 6763 April 22, 2009 Abstract Visualizations are increasingly used to assess the quality of source code. One of the most well developed

More information

Implementing COOL in JAMI

Implementing COOL in JAMI Implementing COOL in JAMI Steven te Brinke s.tebrinke@student.utwente.nl ABSTRACT JAMI aims to be a generic aspect interpreter framework which can be used to prototype a wide range of AOP languages. However,

More information

OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition

OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition Celina Gibbs and Yvonne Coady University of Victoria Abstract It is becoming increasingly

More information

Introducing a Graduate Course on. called Aspect-Oriented Software Development

Introducing a Graduate Course on. called Aspect-Oriented Software Development Int. J. Engng Ed. Vol. 21, No. 2, pp. 361±368, 2005 0949-149X/91 $3.00+0.00 Printed in Great Britain. # 2005 TEMPUS Publications. Introducing a Graduate Course on Aspect-Oriented Software Development*

More information

Foundation of Aspect Oriented Business Process Management

Foundation of Aspect Oriented Business Process Management Foundation of Aspect Oriented Business Process Management Amin Jalali Department of Computer and Systems Sciences Degree project 30 HE credits Degree subject: computer and Systems Sciences Degree project

More information

Incorporating Aspects into the UML

Incorporating Aspects into the UML Incorporating Aspects into the UML Mark Basch University of North Florida Department of Computer and Information Sciences Jacksonville, FL 32224-2645 (904) 620-2985 basm0001@unf.edu Arturo Sanchez University

More information

CONTRASTING ASPECTUAL DECOMPOSITIONS WITH OBJECT- ORIENTED DESIGNS IN CONTEXT-AWARE MOBILE APPLICATIONS

CONTRASTING ASPECTUAL DECOMPOSITIONS WITH OBJECT- ORIENTED DESIGNS IN CONTEXT-AWARE MOBILE APPLICATIONS Desarrollo de Software Orientado a Aspectos, DSOA 2006 Asociado a XV Jornadas de Ingeniería del Software y Bases de Datos J. Araújo, J. Hernández, E. Navarro y M. Pinto (Eds) Sitges (Barcelona), Octubre

More information

New Generation of Software Development

New Generation of Software Development New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 tyehon@cs.ubc.ca ABSTRACT In this paper, I present a picture of what software development

More information

On Type Restriction of Around Advice and Aspect Interference

On Type Restriction of Around Advice and Aspect Interference On Type Restriction of Around Advice and Aspect Interference Hidehiko Masuhara Graduate School of Arts and Sciences, University of Tokyo masuhara@acm.org Abstract. Statically typed AOP languages restrict

More information

Encapsulating Crosscutting Concerns in System Software

Encapsulating Crosscutting Concerns in System Software Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com

More information

Extending AOP Principles for the Description of Network Security Patterns

Extending AOP Principles for the Description of Network Security Patterns Extending AOP Principles for the Description of Network Security Patterns David Llewellyn-Jones, Qi Shi, Madjid Merabti School of Computing and Mathematical Sciences Liverpool John Moores University Liverpool,

More information

Enhancement of Java Access Control using Spring with AOP and AspectJ

Enhancement of Java Access Control using Spring with AOP and AspectJ Enhancement of Java Access Control using Spring with AOP and AspectJ K. Vinod Kumar 1, Dr. A. P. Siva Kumar 2, K.Thyagarajan 3 1 Department of CSE, JNTUA, India, cse. 2 Assistant Professor, Department

More information

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science University of Magdeburg,

More information

Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns

Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns CS 586 Aspect-Oriented Software Development Project Group Members : Başak Çakar, Elif Demirli, Şadiye Kaptanoğlu Bilkent

More information

Software Engineering & Architecture

Software Engineering & Architecture Software Engineering & Architecture 11. QUALITY METRICS AND VISUALIZATION Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems References Some

More information

Aspect Coordination for Web Applications in Java/AspectJ and Ruby/Aquarium

Aspect Coordination for Web Applications in Java/AspectJ and Ruby/Aquarium Aspect Coordination for Web Applications in Java/AspectJ and Ruby/Aquarium Arturo Zambrano, Alejandro Alvarez, Johan Fabry and Silvia Gordillo LIFIA, Facultad de Informática, Universidad Nacional de La

More information

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration of Application Business Logic and Business Rules with DSL and AOP e-informatica Software Engineering Journal, Volume 4, Issue, 200 Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska, Krzysztof Kasprzyk Faculty of Computer

More information

A COMPARISON OF AOP BASED MONITORING TOOLS

A COMPARISON OF AOP BASED MONITORING TOOLS STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LVI, Number 3, 2011 A COMPARISON OF AOP BASED MONITORING TOOLS GRIGORETA S. COJOCAR AND DAN COJOCAR Abstract. The performance requirements of a software system

More information

Change Impact Analysis for AspectJ Programs

Change Impact Analysis for AspectJ Programs Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin, Jianjun Zhao School of Software Shanghai Jiao Tong University 8 Dongchuan Road, Shanghai, China {saizhang, ausgoo, linyu198,

More information

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution

Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science Otto-von-Guericke-University

More information

Treemaps for Search-Tree Visualization

Treemaps for Search-Tree Visualization Treemaps for Search-Tree Visualization Rémi Coulom July, 2002 Abstract Large Alpha-Beta search trees generated by game-playing programs are hard to represent graphically. This paper describes how treemaps

More information

Automated Data Collection for Usability Evaluation in Early Stages of Application Development

Automated Data Collection for Usability Evaluation in Early Stages of Application Development Automated Data Collection for Usability Evaluation in Early Stages of Application Development YONGLEI TAO School of Computing and Information Systems Grand Valley State University Allendale, MI 49401 USA

More information

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of

More information

TOP-DOWN DATA ANALYSIS WITH TREEMAPS

TOP-DOWN DATA ANALYSIS WITH TREEMAPS TOP-DOWN DATA ANALYSIS WITH TREEMAPS Martijn Tennekes, Edwin de Jonge Statistics Netherlands (CBS), P.0.Box 4481, 6401 CZ Heerlen, The Netherlands m.tennekes@cbs.nl, e.dejonge@cbs.nl Keywords: Abstract:

More information

APPLE: Advanced Procedural Programming Language Elements

APPLE: Advanced Procedural Programming Language Elements APPLE: Advanced Procedural Programming Language Elements Christian Heinlein Dept. of Computer Structures, University of Ulm, Germany heinlein@informatik.uni ulm.de Abstract. Today s programming languages

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

Software Analysis Visualization

Software Analysis Visualization 28th International Conference on Software Engineering Software Analysis Visualization Harald Gall and Michele Lanza !oftware Visualiza"o# Tutorial F7 Software Evolution: Analysis and Visualization 2006

More information

Software Visualization and Model Generation

Software Visualization and Model Generation Software Visualization and Model Generation Erik Doernenburg Software Developer ThoughtWorks, Inc. Gregor Hohpe Software Engineer Google, Inc. Where are the most defects? 2006 Erik Doernenburg & Gregor

More information

Post object-oriented paradigms in software development: a comparative analysis

Post object-oriented paradigms in software development: a comparative analysis Proceedings of the International Multiconference on ISSN 1896-7094 Computer Science and Information Technology, pp. 1009 1020 2007 PIPS Post object-oriented paradigms in software development: a comparative

More information

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS Edwin Hautus Compuware Europe P.O. Box 12933 The Netherlands edwin.hautus@nl.compuware.com Abstract Packages are an important mechanism to decompose

More information

On Design Framework of Context Aware Embedded Systems. Abhay Daftari Nehal Mehta Shubhanan Bakre Xian-He Sun

On Design Framework of Context Aware Embedded Systems. Abhay Daftari Nehal Mehta Shubhanan Bakre Xian-He Sun On Design Framework of Context Aware Embedded Systems Abhay Daftari Nehal Mehta Shubhanan Bakre Xian-He Sun Abstract Department of Computer Science Illinois Institute of Technology {daftabh, mehtneh, shubh,

More information

HYPER/NET: MDSOC SUPPORT FOR.NET

HYPER/NET: MDSOC SUPPORT FOR.NET Desarrollo de Software Orientado a Aspectos, DSOA 2006 Asociado a XV Jornadas de Ingeniería del Software y Bases de Datos J. Araújo, J. Hernández, E. Navarro y M. Pinto (Eds) Sitges (Barcelona), Octubre

More information

101 8430 2 1 2 820 8502 680 4 E-mail: keiji@famteam.org, nkjm@nii.ac.jp, ubayashi@acm.org. Web. Web UBAYASHI

101 8430 2 1 2 820 8502 680 4 E-mail: keiji@famteam.org, nkjm@nii.ac.jp, ubayashi@acm.org. Web. Web UBAYASHI THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS TECHNICAL REPORT OF IEICE. Web 101 8430 2 1 2 820 8502 680 4 E-mail: keiji@famteam.org, nkjm@nii.ac.jp, ubayashi@acm.org Web Web Web

More information

Using Object Teams for State-Based Class Testing

Using Object Teams for State-Based Class Testing Using Object Teams for State-Based Class Testing Bericht-Nr. 2004/10 Dehla Sokenou, Stephan Herrmann ISSN 1436-9915 Using Object Teams for State-Based Class Testing Dehla Sokenou, Stephan Herrmann Abstract

More information

A Preliminary Study of Quantified, Typed Events

A Preliminary Study of Quantified, Typed Events A Preliminary Study of Quantified, Typed Events Robert Dyer 1, Mehdi Bagherzadeh 1, Hridesh Rajan 1 and Yuanfang Cai 2 1 Iowa State University 2 Drexel University {rdyer,mbagherz,hridesh}@cs.iastate.edu

More information

Supporting Partial Database Migration to the Cloud Using Non-Intrusive Software Adaptations: An Experience Report

Supporting Partial Database Migration to the Cloud Using Non-Intrusive Software Adaptations: An Experience Report Supporting Partial Database Migration to the Cloud Using Non-Intrusive Software Adaptations: An Experience Report Caio H. Costa 1, Paulo H. M. Maia 1, Nabor C. Mendonça 2, and Lincoln S. Rocha 3 1 State

More information

Rapid Development of Extensible Profilers for the Java Virtual Machine with Aspect-Oriented Programming

Rapid Development of Extensible Profilers for the Java Virtual Machine with Aspect-Oriented Programming Rapid Development of Extensible Profilers for the Java Virtual Machine with Aspect-Oriented Programming Danilo Ansaloni danilo.ansaloni@usi.ch Walter Binder walter.binder@usi.ch Philippe Moret philippe.moret@usi.ch

More information

Perspectives on Automated Testing of Aspect-Oriented Programs

Perspectives on Automated Testing of Aspect-Oriented Programs Perspectives on Automated Testing of Aspect-Oriented Programs ABSTRACT Tao Xie Department of Computer Science North Carolina State University Raleigh, NC 27695 xie@csc.ncsu.edu Aspect-oriented software

More information

DESIGN PATTERNS WITH ASPECTJ, GENERICS, AND REFLECTIVE PROGRAMMING

DESIGN PATTERNS WITH ASPECTJ, GENERICS, AND REFLECTIVE PROGRAMMING DESIGN PATTERNS WITH ASPECTJ, GENERICS, AND REFLECTIVE PROGRAMMING Adam Przybylek Department of Business Informatics, University of Gdansk, Piaskowa 9, 81-824 Sopot, Poland adam@univ.gda.pl Keywords: Abstract:

More information

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects SBCARS 2007 AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects Rosana T. Vaccare Braga, Fernão S. Rodrigues Germano, Stanley F. Pacios, Paulo C. Masiero Instituto de Ciências

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

The Class Blueprint A Visualization of the Internal Structure of Classes

The Class Blueprint A Visualization of the Internal Structure of Classes The Class Blueprint A Visualization of the Internal Structure of Classes Michele Lanza Software Composition Group University Of Bern Bern, Switzerland lanza@iam.unibe.ch Stéphane Ducasse Software Composition

More information

Kotrappa Sirbi, Prakash Jayanth Kulkarni

Kotrappa Sirbi, Prakash Jayanth Kulkarni WWW.JOURNALOFCOMPUTING.ORG 99 Stronger Enforcement of Security Using AOP & Spring AOP Kotrappa Sirbi, Prakash Jayanth Kulkarni Abstract An application security has two primary goals: first, it is intended

More information

AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development

AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development Hironori Washizaki,Atsuto Kubo,Tomohiko Mizumachi,Kazuki Eguchi,Yoshiaki Fukazawa Waseda University, 3-4-1, Okubo, Shinjuku-ku,

More information

Composing Concerns with a Framework Approach

Composing Concerns with a Framework Approach Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago cac@cs.luc.edu 2 Concurrent

More information

Hierarchical Data Visualization. Ai Nakatani IAT 814 February 21, 2007

Hierarchical Data Visualization. Ai Nakatani IAT 814 February 21, 2007 Hierarchical Data Visualization Ai Nakatani IAT 814 February 21, 2007 Introduction Hierarchical Data Directory structure Genealogy trees Biological taxonomy Business structure Project structure Challenges

More information

Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study

Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study Farhad Soleimanian Gharehchopogh Department of Computer Engineering, Science and Research Branch, Islamic

More information

RETRATOS: Requirement Traceability Tool Support

RETRATOS: Requirement Traceability Tool Support RETRATOS: Requirement Traceability Tool Support Gilberto Cysneiros Filho 1, Maria Lencastre 2, Adriana Rodrigues 2, Carla Schuenemann 3 1 Universidade Federal Rural de Pernambuco, Recife, Brazil g.cysneiros@gmail.com

More information

Using Eclipse CDT/PTP for Static Analysis

Using Eclipse CDT/PTP for Static Analysis PTP User-Developer Workshop Sept 18-20, 2012 Using Eclipse CDT/PTP for Static Analysis Beth R. Tibbitts IBM STG tibbitts@us.ibm.com "This material is based upon work supported by the Defense Advanced Research

More information

Automated Validation & Verification of Software Paper Presentation

Automated Validation & Verification of Software Paper Presentation Regression Test Selection for Java Software Salvador Valencia Rodríguez Automated Validation & Verification of Software Paper Presentation Paper authors Mary Jean Harrold James A. Jones Tongyu Li Donglin

More information

Mapping Use Case Level Aspects to ObjectTeams/Java

Mapping Use Case Level Aspects to ObjectTeams/Java Mapping Use Case Level Aspects to ObjectTeams/Java Stephan Herrmann Christine Hundt Katharina Mehner Technical University Berlin {stephan,resix,mehner}@cs.tu-berlin.de ABSTRACT Aspect-Oriented Software

More information

Abstract. Introduction

Abstract. Introduction CODATA Prague Workshop Information Visualization, Presentation, and Design 29-31 March 2004 Abstract Goals of Analysis for Visualization and Visual Data Mining Tasks Thomas Nocke and Heidrun Schumann University

More information

Visualization to Support Version Control Software: Suggested Requirements

Visualization to Support Version Control Software: Suggested Requirements Visualization to Support Version Control Software: Suggested Requirements Xiaomin Wu Margaret-Anne Storey Adam Murray Rob Lintern University of Victoria University of Victoria University of Ottawa University

More information

Interaction and Visualization Techniques for Programming

Interaction and Visualization Techniques for Programming Interaction and Visualization Techniques for Programming Mikkel Rønne Jakobsen Dept. of Computing, University of Copenhagen Copenhagen, Denmark mikkelrj@diku.dk Abstract. Programmers spend much of their

More information

Representation-Oriented Software Development: A cognitive approach to software engineering

Representation-Oriented Software Development: A cognitive approach to software engineering In P. Romero, J. Good, E. Acosta Chaparro & S. Bryant (Eds). Proc. PPIG 17 Pages 173-187 Representation-Oriented Software Development: A cognitive approach to software engineering John J. Sung School of

More information

A Strategy to Perform Coverage Testing of Mobile Applications

A Strategy to Perform Coverage Testing of Mobile Applications A Strategy to Perform Coverage Testing of Mobile Applications M. E. Delamaro Centro Universitário Eurípides de Marília Marília, Sao Paulo, Brazil delamaro@fundanet.br A. M. R. Vincenzi Instituto de Informática

More information

AOSD - Enhancing SoC. 07.05.2007 :: INF5120 :: Mansur Ali Abbasi. AOSD :: Aspect Oriented Software Development SoC :: Separation of Concerns

AOSD - Enhancing SoC. 07.05.2007 :: INF5120 :: Mansur Ali Abbasi. AOSD :: Aspect Oriented Software Development SoC :: Separation of Concerns 07.05.2007 :: INF5120 :: Mansur Ali Abbasi AOSD - Enhancing SoC AOSD :: Aspect Oriented Software Development SoC :: Separation of Concerns 1 NB! This lecture leans on conciseness rather than completeness

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

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

ECS 235A Project - NVD Visualization Using TreeMaps

ECS 235A Project - NVD Visualization Using TreeMaps ECS 235A Project - NVD Visualization Using TreeMaps Kevin Griffin Email: kevgriffin@ucdavis.edu December 12, 2013 1 Introduction The National Vulnerability Database (NVD) is a continuously updated United

More information

Visualization Techniques in Data Mining

Visualization Techniques in Data Mining Tecniche di Apprendimento Automatico per Applicazioni di Data Mining Visualization Techniques in Data Mining Prof. Pier Luca Lanzi Laurea in Ingegneria Informatica Politecnico di Milano Polo di Milano

More information

Concern Highlight: A Tool for Concern Exploration and Visualization

Concern Highlight: A Tool for Concern Exploration and Visualization Concern Highlight: A Tool for Concern Exploration and Visualization Eugen C. Nistor André van der Hoek Department of Informatics School of Information and Computer Sciences University of California, Irvine

More information

Isabella 1 and Emi Retna 2. Technology, Karunya University, Coimbatore, India

Isabella 1 and Emi Retna 2. Technology, Karunya University, Coimbatore, India STUDY PAPER ON TEST CASE GENERATION FOR GUI BASED TESTING Isabella 1 and Emi Retna 2 1 PG Research Scholar, Software Engineering Group, School of Computer Science and Technology, Karunya University, Coimbatore,

More information

OUR WORK takes place in the process described in [2]

OUR WORK takes place in the process described in [2] Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces Romain Delamare, Benoit Baudry IRISA / INRIA Rennes Campus Universitaire de Beaulieu Avenue du Général Leclerc 35042 Rennes Cedex

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

Unified Modeling Language (UML) for Database Systems and Computer Applications

Unified Modeling Language (UML) for Database Systems and Computer Applications Unified Modeling Language (UML) for Database Systems and Computer Applications Sunguk Lee * Research Institute of Industrial Science and Technology Pohang, Korea sunguk@rist.re.kr *Correspondent Author:

More information

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Flávio Medeiros 1, Thiago Lima 2, Francisco Dalton 2, Márcio Ribeiro 2, Rohit Gheyi 1, Baldoino Fonseca 2

More information

Adaptable Access Control for Electronic Medical Records

Adaptable Access Control for Electronic Medical Records Adaptable Access Control for Electronic Medical Records Kung Chen a, Yuan-Chun Chang a, and Da-Wei Wang b a Department of Computer Science, National Chengchi University b Institute of Information Science,

More information