AOP Framed! Informatics Center Federal University of Pernambuco
|
|
- Merilyn Crawford
- 5 years ago
- Views:
Transcription
1 AOP Framed! Henrique Rebêlo Informatics Center Federal University of Pernambuco Henrique Rebêlo 2009
2 Contacting Me Ph.D. student Henrique Rebêlo Specialist on AOSD, DbC, Static Metrics, JML Software Architecture, Product Lines, Empirical Studies Informatics Center Federal University of Pernambuco, UFPE Brazil
3 Talk Material - Contributions Prof. Paulo Borba (expert on aspect-oriented languages and refactoring) Prof. Sérgio Soares (expert on aspect-oriented software development) Prof. Alessandro Garcia (expert on aspect-oriented software assessment metrics) Prof. Fernando Castor Filho (expert on exception handling)
4 talk timeline OO, concerns, tangle, scatter, crosscut AOP AOSD and AspectJ overview research with AOP AOP in industry conclusion UCF 2009
5 OO scatter tangle exploring some of the terms we use crosscut and all that Copyright 2009, Henrique Rebêlo.
6 Object-Oriented Paradigm (OOP) object oriented decomposition modularization objects classes encapsulated data and procedures problem:? CLOS Simula 67 Smalltalk Eiffel C++ Java
7 Bad OO Design G D COMUNICATION BUSINESST A P bl t li f d ith Problem: tangling of code with different purposes
8 Good OO Design Graphical user interface (GUI) Comunication Business Data
9 Layered Architecture The various kinds of code should be written separately Separation of concepts concerns kinds of code separation of concerns
10 Need for Separation of Concerns Large complex distributed software systems Development requires focusing on one concern at a time
11 Separation of Concerns A concern is a specific requirement or consideration that must be addressed in order to satisfy the overall system goal The principle was coined by Edsger Dijkstra 1974 paper "On the Role of Scientific Thought" ht" he received the 1972 A. M. Turing Award for fundamental contributions in the area of programming languages
12 Effective Separation of Concerns improve... Quality attributtes stability reusability evolvability traceability composability maintainability reliability testability...
13 Good modularization without persistence, distribution,... public class Programa { Data [STAThread] public static void Main(string[] args) { Banco fachada = Banco.GetInstance(); Programa.menu(fachada); public static void menu(banco fachada) { string numero = null; double valor = 0.0; Conta conta = null; int opcao = 1; while (opcao!= 0) { try { System.Console.Out.WriteLine("Aperte <Enter> para continuar"); Util.Util.waitEnter(); System.Console.Out.WriteLine("\n\n\n\n\n\n\n"); System.Console.Out.WriteLine("Escolha uma das alternativas abaixo:"); System.Console.Out.WriteLine("1 - Cadastrar Conta"); System.Console.Out.WriteLine("2 - Creditar"); System.Console.Out.WriteLine("3 - Debitar"); System.Console.Out.WriteLine("4 - Transferir"); System.Console.Out.WriteLine("5 - Ver Saldo"); System.Console.Out.WriteLine("0 - Sair"); opcao = Util.Util.readInt(); switch (opcao) { Interface Business public class Banco { private CadastroContas contas; private Banco() { contas = new CadastroConta (new RepositorioContasAccess()); public class CadastroContas { private RepositorioContas contas; public void Debitar(string numero, double valor) { Conta c = contas.procurar(numero); c.debitar(valor); public class RepositorioContasArray : RepositorioContas { private Conta[] contas; private int indice; public RepositorioContasArray() { contas = new Conta[100]; indice = 0; public void Cadastrar(Conta conta) { public void Transferir(string numerode, string n contas.cadastrar(conta); umeropara, double valor) { public void Inserir(Conta conta) { Conta de = contas.procurar(numerode); contas[indice] = conta; Conta para = contas.procurar(numeropara); indice = indice + 1; de.debitar(valor); para.creditar(valor); public void Transferir(string numerode, string n umeropara, double valor) { contas.transferir(numerode, numeropara, valor); public double Saldo(string numero) { Conta c = contas.procurar(numero); return c.saldo; public void Atualizar(Conta conta) { int i = GetIndice(conta.Numero); if (i == indice) { throw new ContaNaoEncontradaException(conta.Numero); else { contas[i].atualizar(conta); [] public class Conta { private string numero; private double saldo; public void Creditar(double valor) { this.saldo = this.saldo + valor; public void Debitar(double valor) { if (valor > saldo) { throw new SaldoInsuficienteException)); else { this.saldo = this.saldo - valor; public void Atualizar(Conta c) { this.numero = c.numero; this.saldo = c.saldo;
14 We have problems with persistence using JDBC public class Banco { private CadastroContas contas; private Banco() { contas = new CadastroConta (new RepositorioContasAccess()); public void Cadastrar(Conta conta) { Persistence.DBHandler.StartTransaction(); try { contas.cadastrar(conta); Persistence.DBHandler.CommitTransaction(); catch (System.Exception ex){ Persistence.DBHandler.RollBackTransaction(); throw ex; public void Transferir(string numerode, string n umeropara, double valor) { Persistence.DBHandler.StartTransaction(); try { contas.transferir(numerode, numeropara, valor); Persistence.DBHandler.CommitTransaction(); catch (System.Exception ex){ Persistence.DBHandler.RollBackTransaction(); throw ex; public class CadastroContas { private RepositorioContas contas; public void Debitar(string numero, double valor) { Conta c = contas.procurar(numero); c.debitar(valor); contas.atualizar(c); public void Transferir(string numerode, string n umeropara, double valor) { Conta de = contas.procurar(numerode); Conta para = contas.procurar(numeropara); de.debitar(valor); para.creditar(valor); contas.atualizar(de); contas.atualizar(para); public double Saldo(string numero) { Conta c = contas.procurar(numero); return c.saldo; public class RepositorioContasAccess : RepositorioContas { public void Inserir(Conta conta) { string sql = "INSERT INTO Conta (NUMERO,SALDO) VALUES ('" + conta.numero + "'," + conta.saldo + ")"; OleDbCommand insertcommand = new OleDbCommand (sql,dbhandler.connection,dbhandler.transaction); insertcommand.executenonquery(); public void Atualizar(Conta conta) { string sql = "UPDATE Conta SET SALDO = (" + conta.as ldo + ") WHERE NUMERO = '" + conta.numero + "'"; OleDbCommand updatecommand = new OleDbCommand(s ql,dbhandler.connection,dbhandler.transaction); int linhasafetadas; linhasafetadas = updatecommand.executenonquery(); if (linhasafetadas == 0) { throw new ContaNaoEncontradaException(conta.Numero); public class DBHandler { private static OleDbConnection connection; public static OleDbConnection Connection { get { if (connection == null) { string datasource = "BancoCS.mdb"; string strconexao = "Provider= Microsoft.Jet.OLEDB.4.0; " + "Data Source=" + datasource; connection = new OleDbConnection(strConexao); return connection; public class Conta { private string numero; private double saldo; public void Creditar(double valor) { this.saldo = this.saldo + valor; public void Debitar(double valor) { if (valor > saldo) { throw new SaldoInsuficienteException)); else { this.saldo = this.saldo - valor; public void Atualizar(Conta c) { this.numero = c.numero; this.saldo = c.saldo; JDBC code in red public static OleDbConnection GetOpenConnection() { Connection.Open(); return Connection; public static void StartTransaction() { Connection.Open(); transaction = Connection.BeginTransaction();
15 What is the problem? Bad modularization of system-wide, peripheral p concerns at the implementation level Symptoms Code tangling Code scattering
16 Problems with OO implementation Code tangling public class Banco { private CadastroContas contas; private Banco() { contas = new CadastroConta (new RepositorioContasAccess()); public void Cadastrar(Conta conta) { Persistence.DBHandler.StartTransaction(); try { contas.cadastrar(conta); Persistence.DBHandler.CommitTransaction(); catch (System.Exception ex){ Persistence.DBHandler.RollBackTransaction(); throw ex; public void Transferir(string numerode, string n umeropara, double valor) { Persistence.DBHandler.StartTransaction(); try { contas.transferir(numerode, numeropara, valor); Persistence.DBHandler.CommitTransaction(); catch (System.Exception ex){ Persistence.DBHandler.RollBackTransaction(); ll i throw ex; public class CadastroContas { private RepositorioContas contas; public void Debitar(string numero, double valor) { Conta c = contas.procurar(numero); c.debitar(valor); contas.atualizar(c); public void Transferir(string numerode, string n umeropara, double valor) { Conta de = contas.procurar(numerode); Conta para = contas.procurar(numeropara); de.debitar(valor); para.creditar(valor); contas.atualizar(de); contas.atualizar(para); public double Saldo(string numero) { Conta c = contas.procurar(numero); return c.saldo; public class DBHandler { private static OleDbConnection connection; public static OleDbConnection Connection { get { if (connection == null) { string datasource = "BancoCS.mdb"; string strconexao = "Provider= Microsoft.Jet.OLEDB.4.0; " + "Data Source=" + datasource; connection = new OleDbConnection(strConexao); return connection; public static OleDbConnection GetOpenConnection() { Connection.Open(); return Connection; public static void StartTransaction() { Connection.Open(); transaction = Connection.BeginTransaction(); Code scattering
17 Problem with OO Code related to such concerns are crosscutting Scattered across several modules of implementation (classes) Each color is one different concern
18 Redundance More OO Problems several similar code fragments in several places of the source code Weak cohesion methods of the affected classes contain instructions that are not directed related to the core concern in which they implement Strong coupling methods of the affected classes need to be aware of methods from classes s which implement the scattered funcionality
19 The Problem of Crosscutting Concerns Certain properties naturally have global, pervasive effects over the system decompositions examples: exception handling, distribution, persistence OO Decomposition Crosscutting Concerns Classes Hamper software reusability, maintainability, and the like p y, y, Domain-specific programming languages started to emerge...
20 Persistence is a crosscutting concern public class Banco { private CadastroContas contas; public class CadastroContas { private RepositorioContas contas; public class RepositorioContasAccess : RepositorioContas { public void Inserir(Conta conta) { string sql = "INSERT INTO Conta (NUMERO,SALDO) private Banco() { public void Debitar(string numero, double valor) { VALUES ('" + conta.numero + "'," + conta.saldo + ")"; contas = new CadastroConta Conta c = contas.procurar(numero); OleDbCommand insertcommand = new OleDbCommand (new RepositorioContasAccess()); c.debitar(valor); (sql,dbhandler.connection,dbhandler.transaction); contas.atualizar(c); insertcommand.executenonquery(); public void Cadastrar(Conta conta) { Persistence.DBHandler.StartTransaction(); public void Transferir(string numerode, string n public void Atualizar(Conta conta) { try { umeropara, double valor) { string sql = "UPDATE Conta SET SALDO = (" + conta.as contas.cadastrar(conta); Conta de = contas.procurar(numerode); ldo + ") WHERE NUMERO = '" + conta.numero + "'"; Persistence.DBHandler.CommitTransaction(); Conta para = contas.procurar(numeropara); OleDbCommand updatecommand = new OleDbCommand(s catch (System.Exception ti ex){ de.debitar(valor); ql,dbhandler.connection,dbhandler.transaction); public void Atualizar(Conta c) Persistence.DBHandler.RollBackTransaction(); para.creditar(valor); int linhasafetadas; throw ex; contas.atualizar(de); linhasafetadas = updatecommand.executenonquery(); contas.atualizar(para); if (linhasafetadas == 0) { throw new ContaNaoEncontradaException(conta.Numero); public void Transferir(string numerode, string n public double Saldo(string numero) { umeropara, double valor) { Conta c = contas.procurar(numero); Persistence.DBHandler.StartTransaction(); return c.saldo; try { contas.transferir(numerode, numeropara, valor); Persistence.DBHandler.CommitTransaction(); public class DBHandler { catch (System.Exception ex){ Persistence.DBHandler.RollBackTransaction(); throw ex; Persistence code in red crosscuts business private static OleDbConnection connection; public static OleDbConnection Connection { get { if (connection == null) { string datasource = "BancoCS.mdb"; string strconexao = "Provider= Microsoft.Jet.OLEDB.4.0; " + "Data Source=" + datasource; connection = new OleDbConnection(strConexao); return connection; public static OleDbConnection GetOpenConnection() { Connection.Open(); return Connection; public static void StartTransaction() { Connection.Open(); transaction = Connection.BeginTransaction(); public class Conta { private string numero; private double saldo; public void Creditar(double valor) { this.saldo = this.saldo + valor; public void Debitar(double valor) { if (valor > saldo) { throw new SaldoInsuficienteException)); else { this.saldo = this.saldo - valor; bli id At li (C t ) { this.numero = c.numero; this.saldo = c.saldo;
21 Crosscutting concerns... cannot be properly modularized by OO constructs because their realization affects the behavior of several methods, possibly in several classes, cutting across class structures
22 Tangling and scattering of... Concerns Persistence Use cases Concurrency Performance control Design by Logging Contract Security Events
23 Generalizing the Problem Primary Functionality Persistence distribution Data Classes Account Loan Customer User Interface ATM Web PC Terminal
24 Root of Cause Copyright 2002, Silvio do Lago Pereira. Persistence The concern is crosscutting to the dimension of the implementation
25 AOP AOSD and exploring another way to promote modularization AspectJ overview Copyright 2009, Henrique Rebêlo.
26 Aspect-oriented languages are quite popular... due to the promise of modularizing crosscutting concerns
27 Aspect-Oriented Programming (AOP) Distribution Security Data Management AOP tools, techniques and methodology Distribution Security Data Management
28 Revisiting the Example Primary Functionality Persistence Distribution Data Classes Account Loan Customer User Interface ATM Web PC Terminal
29 Wouldn t itbeniceif if Data Classes Account aspect Persistence Loan aspect Distribution Customer User Interface ATM Web PC Terminal
30 From your experience Which other system concerns are typically y crosscutting?
31 Quantification is the basic concept of AOP T m() T m() Advice = m() m() m() m() m() m() m() m() m() m() m() m()
32 The success of AOP Persistence code is localized, can be understood in isolation, part of it can be reused Business code can be reused to work with other persistence APIs Business code is not invaded by changes to persistence APIs Less code, more code units
33 Towards to Aspect Oriented Software Development (AOSD)
34 Step 1: Concern identification (decomposition) Concern Identification Concerns Requirements Requirements engineering
35 Examples of Identified Concerns Graphical user interface Distribution Data management Business rules Concurrency control
36 Step 2: Concern Implementation
37 Step 3: System Recomposition classes and interfaces aspects W E A V E R Executable System
38 Aspect Oriented Software Development Requisitos concern identification concerns W OOP Classes e a v AOP Aspects e r Program Business rules Concurrency control Data management Graphical user interface Distribution
39 OOP vs. AOP Business rules Concurrency control Data management Graphical user interface Distribution
40 Context: Objects vs. Aspects Aspect-oriented programming (AOP) modularizing crosscutting concerns (CCCs) OO Decomposition Crosscutting Concerns Aspect-Oriented Decomposition Aspect Join Points Classes enhancing reusability, maintainability, and the like AspectJ: most popular aspect-oriented language
41 Aspect-Oriented Programming (AOP): The AspectJ Approach Classes Class A Class B Aspect Weaver Composed Code Aspect X Aspects Aspect Y Legend Class Aspect Join Points: Reference points in classes used by aspects for specifying relationships with classes
42 Pointcuts define a set of join points join points can be: calls and executions of methods (and also constructors) field access exception handling static initialization joint point composition &&, e!
43 Advice in AspectJ provides extra behavior at join points Define additional code that should be executed... before after after returning after throwing or around join points
44 Persistence at facade public class Banco { private CadastroContas contas;... public void cadastrar(conta t conta) { try { getpm().starttransaction(); contas.cadastrar(conta);... getpm().committransaction(); catch (Exception ex){ getpm().rollbacktransaction();......
45 Pointcut (with a simple alternative) pointcut transmethods(): execution (public * Banco.cadastrar(..)) execution (public * Banco.creditar(..)) execution (public * Banco.deditar(..))... pointcut transmethods(): execution (public * Banco.*(..));
46 Advice for normal flow public aspect PersistenceAspect { before(): transmethods() { getpm().starttransaction(); after() returning(): transmethods() { getpm().committransaction();
47 Advice for exceptional flow Exception is not captured after() throwing(): transmethods() { getpm().rollbacktransaction();...
48 Besides dynamic crosscutting with advice... AspectJ also supports static crosscutting change the relation of subtypes add members into classes Inter-type declarations
49 Static crosscutting pointcut TransMethods(): execution (public * Trans.*(..)); private interface Trans { public void cadastrar(conta conta);... declare parents: Banco implements Trans; interface locall to the aspect changing the hierarchy
50 Research with discussing about some researches that use AOP AOP Copyright 2009, Henrique Rebêlo.
51 Research with AOP There are several other Exception handling improvement Exception handling refactoring AO refactoring...
52 AOP in discussing about the adoption of AOP in idustry industry Copyright 2009, Henrique Rebêlo.
53 AOP in Industry Used tools Spring AOP JBoss AOP AspectJ PostSharp (.NET) Compose* EOS (.NET) Glassbox
54 Aspects in some Brazilian companies In most cases this means Spring AOP, but AspectJ is used too Popular concerns Transactional control Access control Logging Security Business code with reduced Business code with reduced maintenance and more reuse
55 IBM Aspects in some known supports AspectJ Motorola WEAVR Microsoft companies Policy Injection Application Block
56 Conclusions OO appeared with Simula 67 became popular in the industry after years? design patterns AOP has 15 years some use in big companies
57 AOP Framed! Henrique Rebêlo Informatics Center Federal University of Pernambuco Henrique Rebêlo 2009
An Aspect-Oriented Approach. Henrique Rebêlo Informatics Center
An Aspect-Oriented Approach to implement JML Features Henrique Rebêlo Informatics Center Federal University of Pernambuco Summary jmlc problems bigger code, slower code, no suppport for Java ME, and bad
More informationJML and Aspects: The Benefits of
JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for
More informationProgramming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003
Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,
More informationAJDT: Getting started with Aspect-Oriented Programming in Eclipse
AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten
More informationChapitre 6 Programmation orientée aspect (AOP)
6 Programmation orientée aspect (AOP) 2I1AC3 : Génie logiciel et Patrons de conception Régis Clouard, ENSICAEN - GREYC «L'homme est le meilleur ordinateur que l'on puisse embarquer dans un engin spatial...
More informationAOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan
AOP Tutorial Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan Table of Contents 1.0 INTRODUCTION... 3 2.0 SCOPE AND OBJECTIVE... 4 3.0 MOTIVATION... 5 4.0 HISTORY...
More informationA Process for Separation of Crosscutting Grid Concerns
A Process for Separation of Crosscutting Grid Concerns Paulo Henrique M. Maia 1, Nabor C. Mendonça 1, Vasco Furtado 1, Walfredo Cirne 2, Katia Saikoski 3 1 University of Fortaleza (UNIFOR) Fortaleza CE
More informationCourse 6 7 November Adrian Iftene
Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP
More informationc Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco
c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted
More informationChapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1
Chapter 32 Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development
More informationIntroduction to. Bruno Harbulot. ESNW, the University of Manchester.
Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation
More informationAspect-Oriented Programming and Aspect-J
Aspect-Oriented Programming and Aspect-J TDDD05 Ola Leifer Most slides courtesy of Jens Gustafsson and Mikhail Chalabine Outline: Aspect-Oriented Programming New concepts introduced Crosscutting concern
More informationWhat is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting
Aspect Oriented Programming Todd A. Whittaker Franklin University whittakt@franklin.edu What is AOP? Addresses crosscutting concerns Requirements analysis leads to identification of concerns in a software
More informationMobile and Context-aware Interactive Systems
Mobile and Context-aware Interactive Systems Gaëlle Calvary Grenoble INP Laboratoire d Informatique de Grenoble (LIG) Core concepts Principles Terminology For more information, see Sara Bouchenak s M1
More informationAspect Oriented Programming
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationAspect-Oriented Programming. Danilo Caetano Matias dos Santos Henrique Alberto Brittes Potter Igor Conrado Alves de Lima
Aspect-Oriented Programming Danilo Caetano Matias dos Santos Henrique Alberto Brittes Potter Igor Conrado Alves de Lima Aga What s Aspect-Oriented Programming (AOP)? Motivational Scenario Terminology Code
More informationOn the Impact of Aspect-Oriented Programming on Object-Oriented Metrics
On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics Jean-Yves Guyomarc h and Yann-Gaël Guéhéneuc GEODES - Group of Open and Distributed Systems, Experimental Software Engineering Department
More informationMetrics for AOP: Do Aspects Help?
Metrics for AOP: Do Aspects Help? Shmuel Katz From slides of Alessandro Garcia Lancaster University, UK Lecture at AOSD Summer School, Genoa, July 2007 A. Garcia (2007) 1 Does AOP scale up in realistic
More informationUsing Aspects to Make Adaptive Object-Models Adaptable
Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,
More informationEmploying Query Technologies for Crosscutting Concern Comprehension
Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software
More informationAnalyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern
Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Deepali A. Bhanage 1, Sachin D. Babar 2 Sinhgad Institute of Technology,
More informationComparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming
Comparative Evaluation of Programming Paradigms: Separation of Concerns with Object-, Aspect-, and Context-Oriented Programming Fumiya Kato, Kazunori Sakamoto, Hironori Washizaki, and Yoshiaki Fukazawa
More informationAssessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method
Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Eduardo Figueiredo 1, Alessandro Garcia 2, Cláudio Sant Anna 1, Uirá Kulesza 1, Carlos Lucena 1 1 PUC-Rio, Computer Science
More informationAOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz
AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development
More informationEnterprise Informatization LECTURE
Enterprise Informatization LECTURE Piotr Zabawa, PhD. Eng. IBM/Rational Certified Consultant e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa/en 07.10.2011 Lecture 7 Aspect-Oriented Programming
More informationChapter 21 Aspect-Oriented Software Engineering (AOSE)
Chapter 21 Aspect-Oriented Software Engineering (AOSE) Chapter 21 Aspect-Oriented Software Engineering Slide 1 Topics covered Introduction and motivation The separation of concerns Core vs. cross-cutting
More informationAssessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method
Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Eduardo Figueiredo 1, Alessandro Garcia 2, Cláudio Sant Anna 1, Uirá Kulesza 1, Carlos Lucena 1 1 PUC-Rio, Computer Science
More informationApplying Aspect Oriented Programming on Security
Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology
More informationCourse 1 October, 9, Adrian Iftene
Course 1 October, 9, 2017 Adrian Iftene adiftene@info.uaic.ro SWEBOK: place and role of software engineering, knowledge areas (KAs), related disciplines Development and maintenance of the systems: model
More informationA Brief Introduction to Aspect-Oriented Programming. Historical View Of Languages. Procedural language Functional language Object-Oriented language
A Brief Introduction to Aspect-Oriented Programming Historical View Of Languages Procedural language Functional language Object-Oriented language 1 Acknowledgements Zhenxiao Yang Gregor Kiczales Procedural
More informationDemo Proposal. 1 General Information
Demo Proposal 1 General Information Demostration title: FLiP Product Line Derivation Tool Type of demonstration : Forum Contact person: Paulo Borba, phmb@cin.ufpe.br, Informatics Center UFPE, Universidade
More informationA Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages"
A Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages" Procedural language" Functional language" Object-Oriented language" 1 Acknowledgements" Zhenxiao Yang" Gregor Kiczales"
More informationAspect Oriented Java RMI Server
Aspect Oriented Java RMI Server Inderjit Singh Dhanoa BIS College of Engineering & Tech., Moga inderp10@yahoo.co.in Er.Dalwinder Singh Salaria Lovely Professional University ds_salaria@yahoo.co.in ABSTRACT
More informationImplementing Producers/Consumers Problem Using Aspect-Oriented Framework
Implementing Producers/Consumers Problem Using Aspect-Oriented Framework 1 Computer Science Department School of Science Bangkok University Bangkok, Thailand netipan@iit.edu Paniti Netinant 1, 2 and Tzilla
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More informationCopyright IBM Corporation 2004.All rights reserved.
Copyright IBM Corporation 2004.All rights reserved. http://www-106.ibm.com/developerworks/rational/library/2782.html Search help A look at aspect-oriented programming Gary Pollice Worcester Polytechnic
More informationImproving Software Modularity using AOP
B Vasundhara 1 & KV Chalapati Rao 2 1 Dept. of Computer Science, AMS School of Informatics, Hyderabad, India 2 CVR College of Engineering, Ibrahimpatnam, India E-mail : vasu_venki@yahoo.com 1, chalapatiraokv@gmail.com
More informationAOP 101: Intro to Aspect Oriented Programming. Ernest Hill
AOP 101: Intro to Aspect Oriented Programming ernesthill@earthlink.net AOP 101-1 AOP 101: Aspect Oriented Programming Goal of Software History of Programming Methodology Remaining Problem AOP to the Rescue
More informationSCALA AND ASPECTJ. Approaching Modularizing of Crosscutting. Ramnivas Laddad. Concerns. ramnivas
SCALA AND ASPECTJ Approaching Modularizing of Crosscutting Concerns Ramnivas Laddad ramnivas ramnivas!com @ramnivas Copyright Ramnivas Laddad. All rights reserved. @ramnivas Spring framework committer
More informationIdioms for Building Software Frameworks in AspectJ
Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,
More informationSeparation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation
Separation of Concerns and AspectJ EEC 625 Lecture #16 April 3, 2006 EEC 625: Software Design & Architecture Separation of Concerns Breaking a program into pieces that overlap in functionality as little
More informationIntegration 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 informationSort-based Refactoring of Crosscutting Concerns to Aspects
Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft
More informationSERG. Sort-based Refactoring of Crosscutting Concerns to Aspects
Delft University of Technology Software Engineering Research Group Technical Report Series Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst, Marius Marin, and Arie van Deursen
More informationMore Refactoring s: Aspect Oriented Programming with AspectJ
More Refactoring s: Aspect Oriented Programming with AspectJ 1 Geeta Bagade, 2 Dr. Shashank Joshi 1 Ph.D. Scholar, 2 Professor/Ph.D Guide Bharati Vidyapeeth, Pune, India ABSTRACT: Even though Object Oriented
More informationAspect-Oriented Programming
Aspect-Oriented Programming Based on the Example of AspectJ Prof. Harald Gall University of Zurich, Switzerland software evolution & architecture lab AOP is kind of a complicated one for me ( ) the idea
More informationUsing Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University
Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?
More informationFrustrated by all the hype?
Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People
More informationOn the Interplay of Exception Handling and Design by Contract: An Aspect-Oriented Recovery Approach
On the Interplay of Exception Handling and Design by Contract: An Aspect-Oriented Recovery Approach Henrique Rebêlo 1 Roberta Coelho 2 Ricardo Lima 1 Gary T. Leavens 3 Marieke Huisman 4 Alexandre Mota
More informationCall: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline
JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline Advanced Java Database Programming JDBC overview SQL- Structured Query Language JDBC Programming Concepts Query Execution Scrollable
More informationUniversity of Huddersfield Repository
University of Huddersfield Repository Ghareb, Mazen and Allen, Gary Improving the Design and Implementation of Software Systems uses Aspect Oriented Programming Original Citation Ghareb, Mazen and Allen,
More informationInformation systems modeling. Tomasz Kubik
Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components
More informationA Quantitative Assessment
Design Patterns as Aspects: A Quantitative Assessment Cláudio Sant Anna Software Engineering Laboratory Computer Science Department PUC-Rio claudios@inf.puc-rio.br Alessandro Garcia Software Engineering
More informationDISCUSSING ASPECTS OF AOP
a DISCUSSING ASPECTS OF AOP How would you define AOP? Gregor Kiczales: Aspect-oriented programming is a new evolution in the line of technology for separation of concerns technology that allows design
More informationTowards Reusable Components with Aspects: An Empirical Study on Modularity and Obliviousness
Towards Reusable Components with Aspects: An Empirical Study on Modularity and Obliviousness ABSTRACT Kevin Hoffman Purdue University 35 N. University Street West Lafayette, IN 4797 kjhoffma@cs.purdue.edu
More informationRefactoring Aspect Oriented Software
Refactoring Aspect Oriented Software Jochem Rutgers rutgers@ewi.utwente.nl ABSTRACT Existing refactoring methods are able to rewrite object-oriented code to better object-oriented code or to aspect-oriented
More informationA Query-Based Approach for the Analysis of Aspect-Oriented Systems by
A Query-Based Approach for the Analysis of Aspect-Oriented Systems by Eduardo Salomão Barrenechea A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree
More informationAspect Design Pattern for Non Functional Requirements
Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,
More informationJAVA GUI PROGRAMMING REVISION TOUR III
1. In java, methods reside in. (a) Function (b) Library (c) Classes (d) Object JAVA GUI PROGRAMMING REVISION TOUR III 2. The number and type of arguments of a method are known as. (a) Parameter list (b)
More informationCall: Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline
Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline Object-Oriented Programming (OOP) concepts Introduction Abstraction Encapsulation Inheritance Polymorphism Getting started with
More informationCrosscutting Interfaces for Aspect-Oriented Modeling *
* Christina Chavez 1, Alessandro Garcia 2, Uirá Kulesza 3, Cláudio Sant Anna 3 and Carlos Lucena 3 1 Depto de Ciência da Computação, UFBA Av. Adhemar de Barros, s/n Salvador Brasil flach@dcc.ufba.br 2
More informationIntroduction to Aspect-Oriented Programming
Introduction to Aspect-Oriented Programming LÁSZLÓ LENGYEL, TIHAMÉR LEVENDOVSZKY {lengyel, tihamer}@aut.bme.hu Reviewed Key words: aspect-oriented programming (AOP), crosscutting concerns Aspect-oriented
More informationApplication-Oriented System Design
Application-Oriented System Design LISHA/UFSC Prof. Dr. Antônio Augusto Fröhlich March 2004 March 2004 http://www.lisha.ufsc.br 29 Application-Oriented Operating Systems "An application-oriented operating
More informationClasses, subclasses, subtyping
1 CSCE 314: Programming Languages Dr. Flemming Andersen Classes, subclasses, subtyping 2 3 Let me try to explain to you, what to my taste is characteristic for all intelligent thinking. It is, that one
More informationAspect-Orientation from Design to Code
Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739
More informationInternational Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)
International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0047 ISSN (Online): 2279-0055 International
More informationConcurrency Control with Java and Relational Databases
Concurrency Control with Java and Relational Databases Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Recife, PE, Brazil scbs,phmb @cin.ufpe.br Abstract As web based
More informationAspect-Oriented Programming
Aspect-Oriented Programming Johan Östlund johano@dsv.su.se Why should you care? AOP sets out to manage complexity ~ Modularizing software AOP is being accepted/adopted in ever increasing numbers both in
More informationA short introduction to INF329. Spring AOP
A short introduction to INF329 Spring AOP Introduction to AOP AOP is an abbreviation for aspectoriented programming Aspect-oriented programming is a new paradigm in programming, seperating functionality
More informationModeling Aspect-Oriented Change Realizations
Modeling Aspect-Oriented Change Realizations Erasmus Mobility at Lancaster University Lecture 1 Valentino Vranić Institute of Informatics and Software Engineering Faculty of Informatics and Information
More informationCourse 7 25 November Adrian Iftene
Course 7 25 November 2013 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 6 AOP AOP Profiler Tracing Pooling PostSharp Spring Framework Runtime Verification Model Checking MOP Java MOP 2 Concern
More informationEvolving Software Product Lines with Aspects: An Empirical Study on Design Stability
Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability Eduardo Figueiredo, Nelio Cacho, Claudio Sant Anna, Mario Monteiro, Uira Kulesza, Alessandro Garcia, Sergio Soares,
More informationUsing and Extending AspectJ for Separating Concerns in Parallel Java Code
Using and Extending AspectJ for Separating Concerns in Parallel Java Code Bruno Harbulot and John Gurd The University of Manchester POOSC 2005 Glasgow, July 2005 1/26 Presentation Outline Problem and Approach
More informationCode reuse for improving software productivity and quality in AOP
Code reuse for improving software productivity and quality in AOP Youssef Hassoun and Constantinos A. Constantinides School of Computer Science and Information Systems Birkbeck College, University of London,
More informationAspect-Oriented Programming with C++ and AspectC++
Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial University of Erlangen-Nuremberg Computer Science 4 Presenters Daniel Lohmann dl@aspectc.org University of Erlangen-Nuremberg, Germany
More informationTRAP/J v2.1: An improvement for Transparent Adaptation
TRAP/J v2.1: An improvement for Transparent Adaptation Technical Report FIU-SCIS-2007-09-01 May 2007 S. Masoud Sadjadi, Luis Atencio, and Tatiana Soldo Autonomic and Grid Computing Research Laboratory
More informationLanguage support for AOP
Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March
More informationEvolving Software Product Lines with Aspects: An Empirical Study on Design Stability
Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability Eduardo Figueiredo, Nelio Cacho, Claudio Sant Anna, Mario Monteiro, Uira Kulesza, Alessandro Garcia, Sergio Soares,
More informationJAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP
2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries
More informationContent(2) Contribution of OOT in Software Engineering History of SE Technologies and Contribution of OOT JAIST Koichiro Ochimizu
Content(2) Object-oriented Software Development Methodology Outline of Unified Process and Use-case Driven Approach Elevator Control System: Problem Description and Use-case Model Elevator Control System:
More informationThe Object Oriented Paradigm
The Object Oriented Paradigm Joseph Spring 7COM1023 Programming Paradigms 1 Discussion The OO Paradigm Procedural Abstraction Abstract Data Types Constructors, Methods, Accessors and Mutators Coupling
More informationJML and Aspects: The Benefits of Instrumenting JML Features with AspectJ
JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Department of Computing and Systems University of Pernambuco Recife, Pernambuco, Brazil {hemr,sergio@dsc.upe.br
More informationEnforcing Information Hiding in Interface Specifications: with The AspectJML specification language. A Client Aware checking Approach
Enforcing Information Hiding in Interface Specifications: with The AspectJML specification language A Client Aware checking Approach Henrique Rebêlo Universidade Federal de Pernambuco Brazil Gary T. Leavens
More informationIdentification of Differences Between Aspect-Oriented Programs. Marija Katic, PhD Student
Identification of Differences Between Aspect-Oriented Programs Marija Katic, PhD Student University of Zagreb, Faculty of Electrical Engineering and Computing Department of Applied Computing Content Aspect-Oriented
More informationBugdel: An Aspect-Oriented Debugging System
Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,
More informationA Model for Software Plans
A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary private static Vector readdata() { BufferedReader stdin = new BufferedReader(
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationAspect-Oriented Software Development
Claudia Marcos cmarcos@exa.unicen.edu.ar ISISTAN Instituto de Sistemas Tandil Facultad de Ciencias Exactas - UNICEN Current Methods and Languages Most current programming languages support abstraction
More informationChapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring
Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has
More informationConcepts of Programming Languages
Concepts of Programming Languages Lecture 10 - Object-Oriented Programming Patrick Donnelly Montana State University Spring 2014 Patrick Donnelly (Montana State University) Concepts of Programming Languages
More information"Learn to do Verification with AOP? We've just learned OOP!"
"Learn to do Verification with AOP? We've just learned OOP!" Dr David Robinson, Jason Sprott, Gordon Allan Verilab Ltd. david.robinson@verilab.com, jason.sprott@verilab.com, gordon.allan@verilab.com ABSTRACT:
More informationTransJ: An Abstract Independent-Framework for Weaving Crosscutting Concern into Distributed Transactions
Computer Technology and Application 7 (2016) 173-195 doi: 10.17265/1934-7332/2016.04.001 D DAVID PUBLISHING TransJ: An Abstract Independent-Framework for Weaving Crosscutting Concern into Distributed Transactions
More informationUnit-Testing Aspectual Behavior
Unit-Testing Aspectual Behavior [Position Paper] Cristina Videira Lopes and Trung Chi Ngo Donald Bren School of Information and Computer Sciences University of California, Irvine Irvine, CA 92697 {lopes,trungcn}@ics.uci.edu
More informationTake Control with AspectJ
Hermod Opstvedt Chief Architect DnB NOR ITUD Common components Hermod Opstvedt Slide 1 What is AspectJ? Aspect-oriented programming (AOP) is a technique for improving separation of concerns. Crosscutting
More informationLanguage Oriented Modularity: From Theory to Practice
Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)
More informationIndex. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107
A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105
More informationOS Customization versus OS Code Modularity
OS Customization versus OS Code Modularity ECE 344 Fall 2006 Hans-Arno Jacobsen Thanks to Michael Gong, Vinod Muthusamy, and Charles Zhang for helping to find interesting examples et al. Possibly a Debugging
More informationObject-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1
Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations
More informationDomain Knowledge Driven Program Analysis
Domain Knowledge Driven Program Analysis Daniel Ratiu http://www4.in.tum.de/~ratiu/knowledge_repository.html WSR Bad-Honnef, 4 May 2009 Pressing Issues Program understanding is expensive - over 60% of
More information