Chapter 5 Aspect Oriented Programming
|
|
- Bethany Fox
- 7 years ago
- Views:
Transcription
1 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 sais plus comment utiliser mon téléphone Bjarne Stroustrup Régis Clouard ensicaen.fr ENSICAEN Caen
2 Introduction 2 OOP limitations Code redundancy Code tangling mix-up of multiple concerns at one place Code scattering a concern is scattered over many places Cross-cutting a concern than spans multiple units of OO modularity cannot be implemented without code-tangling and codescattering
3 Cross-cutting 3 Class A Class B Class C Action1 Action1 Action 2 Action 1 Action2 Action1 Example : Functional Integrity Constraint
4 Code-scattering 4 Class A Class B Class C call method 1 definition method 1 call method 2 call mthod 2 definition method 2 call method 1 call method 2 Example: Data Persistence
5 Solutions 5 Respect design principles of Chapter 1! Aspect oriented Programming Gregor Kiczales en 1996 à Xerox PARC Inspiration: Artificial Intelligence Object language Meta-programming Reflection New programming paradigm Software programming history Procedural paradigm OOP paradigm OAP paradigm Separates business concerns from crosscutting concerns
6 Aspect Oriented Programming 6 OOP without aspect OOP with aspect Class A Class B Class C Class A Class B Class C Aspect
7 Definitions 7 Aspect Unit of modularity. Can contain fields and methods like a regular Java class. Joint Point Places where crosscutting concerns can be woven in. Ex. method call, field access, object creation. Pointcut Declaration that selects join points and collects contexts at that point (regular expressions) Code Advice Code to be executed at a join point.
8 Illustration 8 Object program Aspect program Class A Class B Class C Joint Point A1 Joint Point B1 Joint Point C1 Aspect Pointcut1(A1,A2,B1,C2) Pointcut2(A3,B2,C1,C2) Joint Point A2 Joint Point A3 Joint Point B2 Joint Point C2 Pointcut1 Code advice 1 Pointcut1 & Pointcut2 Code advice 2
9 Joint point models 9 public class HelloWorld { Method call private int max=10; public static void main(string args[]) { new HelloWorld().affichage(); public void affichage() { for (int i=0;i<max;i++) { try { System.out.println("HelloWorld!"); catch (Exception e) { max--; System.err.println("Problème d'affichage");
10 Joint point models 10 public class HelloWorld { Exception private int max=10; public static void main(string args[]) { new HelloWorld().affichage(); public void affichage() { for (int i=0;i<max;i++) { try { System.out.println("HelloWorld!"); catch (Exception e) { max--; System.err.println("Problème d'affichage");
11 Joint point models 11 public class HelloWorld { Constructor call private int max=10; public static void main(string args[]) { new HelloWorld().affichage(); public void affichage() { for (int i=0;i<max;i++) { try { System.out.println("HelloWorld!"); catch (Exception e) { max--; System.err.println("Problème d'affichage");
12 Joint point models 12 public class HelloWorld { Field access private int max=10; public static void main(string args[]) { new HelloWorld().affichage(); public void affichage() { for (int i=0;i<max;i++) { try { System.out.println("HelloWorld!"); catch (Exception e) { max--; System.err.println("Problème d'affichage");
13 Code Advice 13 Code advice is a method like construct that expresses the action to be taken at the join points that are captured by a pointcut. Before advice executes prior to the join point After advice executes following the join point Around advice In such code advice, the keyword 'proceed' is used to specify where to insert the join point s execution can continue original execution, bypass execution or cause execution with an altered context can cause execution of the join point multiple times
14 Weaving 14 An OAP application Set of classes Set of aspects Weaving Weaving rules specify how to integrate the final system
15 Types of weaver 15 1/ Static weaver Source to source translation. Aspect code Class code Weaver Intermediate source code Compiler bytecode
16 Types of weaver 16 2/ Dynamic weaver Bytecode enhancement, first compile source with original compiler, then weave aspects into class files. Weaver Determine if a code advice must be executed Class code Pre-Weaver modifies the class code Modifier class code Virtual Machine Bytecode
17 AOP paradigm 17 Separation functional / non functional parts Functional part: business concerns eg, Add or delete an employee Non functional part: crosscutting concerns eg, Security and access control
18 Examples 18 AspectJ (Open Source) Static weaver URL AspectJ Plug-in Eclipse
19 Example 1: HelloWorld (before 19 weaving) Hello.java World.aj public class Hello { public static void main(string a[]){ new Hello().sayHello(); public aspect World { pointcut salutation() : execution (*Hello.sayHello(..)); public void sayhello() { System.out.println("Hello!"); after() :salutation() { System.out.println("Salut à toi aussi");
20 Example 1: HelloWorld (after 20 weaving) Hello.java World.aj public class Hello { public aspect World { public static void main(string a[]) { new Hello().sayHello(); System.out.println("Salut à toi aussi"); public void sayhello() { System.out.println("Hello!"); pointcut salutation() :execution (*Hello.sayHello(..)); after() :salutation() { System.out.println("Salut à toi aussi");
21 Example 2: Debug (before 21 weaving) Example2.java Debug.aj public class Exemple2 { private int _x=0; public static void main(string args){ public aspect Debug { pointcut methodex2() : execution(*exemple2.*(..)); for (int i=0;i<10;i++) { Exemple2.increment(); pointcut CallIncr() : execution(*increment(..)); pointcut Ensemble() : public void increment() { methodex2() & CallIncr(); _x++; around() :Ensemble() { System.out.println(x); proceed System.out.println(x);
22 Example 2: Debug (after 22 weaving) Example2.java After weaving public class Exemple2 { private int _x=0; public static void main(string a[]){ Debug.aj Before weaving public aspect Debug { pointcut methodex2() : execution(*exemple2.*(..)); for (int i=0;i<10;i++){ System.out.println(_x); Exemple2.increment(); System.out.println(_x); pointcut CallIncr() : execution(*increment(..)); pointcut Ensemble() : methodex2() & CallIncr(); public void increment() { _x++; around() :Ensemble() { System.out.println(_x); proceed System.out.println(_x);
23 Example 3: Design Pattern 23 revisited Singleton OOP : Drawbacks Use of non classical constructor Restrict inheritance Singleton AOP Add a joint point cut on the constructor An attribute stores the instance reference The code advice returns a new instance (1 st call) or the attribute reference
24 Conclusion 24 OOP + AOP = OOP AOP is available as extensions of many programming languages Java C++ Php C# D Smalltalk The future of 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 informationProgress 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 informationAspect-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 informationAspect 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 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 informationIntegration 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 informationData Structures Lecture 1
Fall 2015 Fang Yu Software Security Lab. Dept. Management Information Systems, National Chengchi University Data Structures Lecture 1 A brief review of Java programming Popularity of Programming Languages
More informationThe Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
More informationRemote 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 informationCoordinated Visualization of Aspect-Oriented Programs
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
More informationNew 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 informationGenerating 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 informationHow To Write A Program In Java (Programming) On A Microsoft Macbook Or Ipad (For Pc) Or Ipa (For Mac) (For Microsoft) (Programmer) (Or Mac) Or Macbook (For
Projet Java Responsables: Ocan Sankur, Guillaume Scerri (LSV, ENS Cachan) Objectives - Apprendre à programmer en Java - Travailler à plusieurs sur un gros projet qui a plusieurs aspects: graphisme, interface
More informationKonzepte objektorientierter Programmierung
Konzepte objektorientierter Programmierung Prof. Dr. Peter Müller Werner Dietl Software Component Technology Exercises 3: Some More OO Languages Wintersemester 04/05 Agenda for Today 2 Homework Finish
More informationHello World RESTful web service tutorial
Hello World RESTful web service tutorial Balázs Simon (sbalazs@iit.bme.hu), BME IIT, 2015 1 Introduction This document describes how to create a Hello World RESTful web service in Eclipse using JAX-RS
More informationKotrappa 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 informationAspect-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 informationLangages Orientés Objet Java
Langages Orientés Objet Java Exceptions Arnaud LANOIX Université Nancy 2 24 octobre 2006 Arnaud LANOIX (Université Nancy 2) Langages Orientés Objet Java 24 octobre 2006 1 / 32 Exemple public class Example
More informationAOSD - 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 informationLAB4 Making Classes and Objects
LAB4 Making Classes and Objects Objective The main objective of this lab is class creation, how its constructer creation, object creation and instantiation of objects. We will use the definition pane to
More informationWhat is a programming language?
Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there
More informationHandout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
More informationKeywords 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 informationKITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
More informationAspect-Oriented Software Development
Aspect-Oriented Software Development Dr. Awais Rashid Computing Department Lancaster University, UK Awais Rashid, 2005. Fundamental to Next Generation Software AOSD is vital to our [IBM Software Group
More informationToward 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 informationCSE 452: Programming Languages. Acknowledgements. Contents. Java and its Evolution
CSE 452: Programming Languages Java and its Evolution Acknowledgements Rajkumar Buyya 2 Contents Java Introduction Java Features How Java Differs from other OO languages Java and the World Wide Web Java
More informationJava Cheatsheet. http://introcs.cs.princeton.edu/java/11cheatsheet/ Tim Coppieters Laure Philips Elisa Gonzalez Boix
Java Cheatsheet http://introcs.cs.princeton.edu/java/11cheatsheet/ Tim Coppieters Laure Philips Elisa Gonzalez Boix Hello World bestand genaamd HelloWorld.java naam klasse main methode public class HelloWorld
More informationJava applets. SwIG Jing He
Java applets SwIG Jing He Outline What is Java? Java Applications Java Applets Java Applets Securities Summary What is Java? Java was conceived by James Gosling at Sun Microsystems Inc. in 1991 Java is
More informationHistory OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
More informationUsing 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 informationA 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 informationEncapsulating 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 informationAspectual Mixin Layers
Aspectual Mixin Layers Sven Apel, Thomas Leich, and Gunter Saake Department of Computer Science University of Magdeburg, Germany email: {apel,leich,saake}@iti.cs.uni-magdeburg.de Abstract. Feature-Oriented
More informationObject-Oriented Programming in Java
Object-Oriented Programming in Java Quiz 1 Jan 10, 2001 Problem 1: Who wants to be a Java developer? (with apologies to Regis) Fill in your answer in the space provided. Question 1: Which is these word-pairs
More informationOn 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 informationUsing 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 informationIntroduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins chris.simpkins@gatech.edu CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary
More informationHarmless Advice. Daniel S Dantas Princeton University. with David Walker
Harmless Advice Daniel S Dantas Princeton University with David Walker Aspect Oriented Programming Aspect Oriented Programming IBM - 2004 IBM reports positive results in aspect-oriented programming experiments
More informationComposing 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 informationHow To Combine 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 informationCombining 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 informationC++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
More informationCombining 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 informationAspects 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 informationIntroduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
More informationAspect Weaving for OSGi. Martin Lippert (akquinet it-agile GmbH)
Aspect Weaving for OSGi Martin Lippert (akquinet it-agile GmbH) 2008 by Martin Lippert; made available under Creative Commons Att. Nc Nd 2.5 license October 21 st + 23 rd, 2008 Aspect-oriented programming
More informationContents. Java - An Introduction. Java Milestones. Java and its Evolution
Contents Java and its Evolution Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering The University of Melbourne http:// www.buyya.com Java Introduction
More informationLab Experience 17. Programming Language Translation
Lab Experience 17 Programming Language Translation Objectives Gain insight into the translation process for converting one virtual machine to another See the process by which an assembler translates assembly
More informationSoftware Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
More informationOn the (un)suitability of Java to be the first programming language
On the (un)suitability of Java to be the first programming language Mirjana Ivanovic Faculty of Science, Department of Mathematics and Informatics Trg Dositeja Obradovica 4, Novi Sad mira @im.ns.ac.yu
More informationBasic Java Constructs and Data Types Nuts and Bolts. Looking into Specific Differences and Enhancements in Java compared to C
Basic Java Constructs and Data Types Nuts and Bolts Looking into Specific Differences and Enhancements in Java compared to C 1 Contents Hello World Program Statements Explained Java Program Structure in
More informationFirst Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
More informationChapter 1 Java Program Design and Development
presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli Ralph Walde Trinity College Hartford, CT published by Prentice Hall Java, Java, Java Object Oriented
More informationSE 360 Advances in Software Development Object Oriented Development in Java. Polymorphism. Dr. Senem Kumova Metin
SE 360 Advances in Software Development Object Oriented Development in Java Polymorphism Dr. Senem Kumova Metin Modified lecture notes of Dr. Hüseyin Akcan Inheritance Object oriented programming languages
More informationAspect-Oriented Multi-Client Chat Application
Aspect-Oriented Multi-Client Chat Application Duygu Ceylan, Gizem Gürcüoğlu, Sare G. Sevil Department of Computer Engineering, Bilkent University Ankara, Turkey 06800 dceylan, gizem, sareg @cs.bilkent.edu.tr
More informationqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui
More informationThe Nature and Importance of a Programming Paradigm
Multiple Software Development Paradigms and Multi-Paradigm Software Development Valentino Vranić vranic@elf.stuba.sk Abstract: While OOP (including OOA/D) is reaching the level of maturity of structured
More informationLearn Java - 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 informationCS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013
Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)
More informationScenario-Based Software Architecture for Designing Connectors Framework in Distributed System
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 1, January 2011 32 Scenario-Based Software Architecture for Designing Connectors Framework in Distributed System Hamid Mcheick 1, Yan
More informationThe 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 informationAspect-oriented software engineering
M21_SOMM5152_09_SE_C21.qxd 1/7/10 2:31 PM Page 565 21 Aspect-oriented software engineering Objectives The objective of this chapter is to introduce you to aspect-oriented software development, which is
More informationGetting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
More informationSmalltalk in Enterprise Applications. ESUG Conference 2010 Barcelona
Smalltalk in Enterprise Applications ESUG Conference 2010 Barcelona About NovaTec GmbH German software consulting company Offering full IT services for complex business applications Software engineering,
More informationCS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
More informationHow to use the Eclipse IDE for Java Application Development
How to use the Eclipse IDE for Java Application Development Java application development is supported by many different tools. One of the most powerful and helpful tool is the free Eclipse IDE (IDE = Integrated
More informationCONTRASTING 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 informationJava Crash Course Part I
Java Crash Course Part I School of Business and Economics Institute of Information Systems HU-Berlin WS 2005 Sebastian Kolbe skolbe@wiwi.hu-berlin.de Overview (Short) introduction to the environment Linux
More informationPost 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 informationJava CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
More informationMasters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013
Masters programmes in Computer Science and Information Systems Object-Oriented Design and Programming Sample module entry test xxth December 2013 This sample paper has more questions than the real paper
More informationAspect 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 informationCSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
More informationAspect-Oriented Development of a P2P File Sharing Application
Aspect-Oriented Development of a P2P File Sharing Application Eren Algan, Ridvan Tekdogan, Dogan Kaya Berktas Department of Computer Engineering, Bilkent University, Ankara, TURKEY erenalgan, ridvantekdogan,
More information1001ICT Introduction To Programming Lecture Notes
1001ICT Introduction To Programming Lecture Notes School of Information and Communication Technology Griffith University Semester 2, 2015 1 3 A First MaSH Program In this section we will describe a very
More informationRepresenting Change by Aspect
Representing Change by Aspect Peter Dolog, Valentino Vranić and Mária Bieliková Dept. of Computer Science and Engineering Faculty of Electrical Engineering and Information Technology Slovak University
More informationJ a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
More informationImplementing Application and Network Security using Aspectoriented
Application and Network Security using Aspectoriented Programming F.E. Tshivhase 1, H.S. Venter 2, J.H.P. Eloff 3 1 tshivhasef@tuks.co.za, 2 hventer@cs.up.ac.za, 3 eloff@cs.up.ac.za Information and Computer
More informationAutomation of Library (Codes) Development for Content Management System (CMS)
Automation of Library (Codes) Development for Content Management System (CMS) Mustapha Mutairu Omotosho Department of Computer Science, University Of Ilorin, Ilorin Nigeria Balogun Abdullateef Oluwagbemiga
More informationTechnion - Computer Science Department - Ph.D. Thesis PHD-2010-05 - 2010 Using Aspects to Support the Software Process.
Using Aspects to Support the Software Process Oren Mishali Using Aspects to Support the Software Process Research Thesis Submitted in partial fulfillment of the requirements for the degree of Doctor of
More informationUnification 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 informationEliminating SQL Injection and Cross-Site Scripting With Aspect Oriented Programming
ABSTRACT OF THESIS Eliminating SQL Injection and Cross-Site Scripting With Aspect Oriented Programming Cross Site scripting (XSS) and SQL injection are two of the most common vulnerabilities found in applications.
More informationLoad balancing using Remote Method Invocation (JAVA RMI)
Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &
More informationMcGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0
1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level
More informationPreet raj Core Java and Databases CS4PR. Time Allotted: 3 Hours. Final Exam: Total Possible Points 75
Preet raj Core Java and Databases CS4PR Time Allotted: 3 Hours Final Exam: Total Possible Points 75 Q1. What is difference between overloading and overriding? 10 points a) In overloading, there is a relationship
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationInheritance in Programming Languages
Inheritance in Programming Languages Krishnaprasad Thirunarayan Metadata and Languages Laboratory Department of Computer Science and Engineering Wright State University Dayton, OH-45435 INTRODUCTION Inheritance
More informationAutomated 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 informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM
ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM Ashish Patel, Lead Eclipse Committer for ARM, IBM Corporation Oliver E. Cole, President, OC Systems, Inc. The Eclipse Test and Performance Tools
More informationTutorial on Writing Modular Programs in Scala
Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 13 September 2006 Tutorial on Writing Modular Programs in Scala Martin Odersky and Gilles Dubochet 1 of 45 Welcome to the
More informationFile class in Java. Scanner reminder. Files 10/19/2012. File Input and Output (Savitch, Chapter 10)
File class in Java File Input and Output (Savitch, Chapter 10) TOPICS File Input Exception Handling File Output Programmers refer to input/output as "I/O". The File class represents files as objects. The
More informationLab 1A. Create a simple Java application using JBuilder. Part 1: make the simplest Java application Hello World 1. Start Jbuilder. 2.
Lab 1A. Create a simple Java application using JBuilder In this lab exercise, we ll learn how to use a Java integrated development environment (IDE), Borland JBuilder 2005, to develop a simple Java application
More informationMore on Objects and Classes
Software and Programming I More on Objects and Classes Roman Kontchakov Birkbeck, University of London Outline Object References Class Variables and Methods Packages Testing a Class Discovering Classes
More informationIncorporating 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 informationCrash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
More informationThe Aspect-Oriented Web
The Aspect-Oriented Web John Stamey Department of Computer Science Coastal Carolina University Conway, SC 843-349-2552 jwstamey@coastal.edu Bryan Saunders Department of Computer Science Coastal Carolina
More informationA10 Writing Your First Application
Page 1 A10 Writing Your First Application for BlackBerry Page 2 Contents A10 Writing Your First Application... 3 Introduction... 4 Development... 5 Setting up New BlackBerry Project... 5 Configuring Your
More informationBuilding Robots with NXT and LEJOS. Introduc<on. What is the NXT Robot Pla@orm? Michael Wooldridge (mjw @ liv.ac.uk)
Building Robots with NXT and LEJOS Introduc
More information