Aspect-Oriented Software Development
|
|
- Gerald Cameron
- 5 years ago
- Views:
Transcription
1 Claudia Marcos ISISTAN Instituto de Sistemas Tandil Facultad de Ciencias Exactas - UNICEN Current Methods and Languages Most current programming languages support abstraction mechanisms for breaking a system down into parametrised components which perform some function. Current methods and notations concentrate on finding and composing functional units - generally expressed as objects, modules, procedures. 1
2 Decomposition & Composition of Concerns complex systems design practices support decomposition into components programming languages support implementation and composition of components Benefits of Good Modularity Also known as clean separation of concerns Each decision / function in a single place easy to understand easy to modify easy to unplug 2
3 Modularity is not always possible... (1) A system may be seen as a set of concerns: basic functionality performance data persistence resource sharing error handling performance optimizations synchronization tracing security... Modularity is not always possible... (2) Some concerns don t localize to objects their code tends to be orthogonal to the rest of the requirements and is spread out through many modules Logging Security Persistence Implementation modules Concerns associated to different requirements 3
4 Book Cross-cutting User Library class Book { class User { interface LibraryInterface extends Remote { private BookID id; private UserID id; public BookID getbook(userid u, String title) throws private PostScript ps; Library thelibrary; RemoteException; private UserID borrower; Printer theprinter; public PostScript getbookps(bookid bid) throws RemoteException; public Book(String t, String a, String i, PostScript p) { public User(String n) { id = new UserID(n); id = new BookID(t,a,i); ps = p; public boolean getbook (String title) { class Library extends UnicastRemoteObject implements BookID abook=null; LibraryInterface { try{ Hashtable books; public UserID get_borrower() {return borrower; abook = thelibrary.getbook(id, title); Library() throws RemoteException { public void set_borrower(userid u) {borrower = u; catch (RemoteException e) { books = new Hashtable(100); public PostScript get_ps() { return ps; try { public BookID get_bid() { return id; theprinter.print(id, abook); public BookID getbook(userid u, String title) catch (RemoteException e) { throws RemoteException { return true; System.out.println("REQUEST TO GET BOOK " + title); class BookID { if(books.containskey(title)) { private String title; public UserID get_uid() { return id; Book b = (Book)books.get(title); private String isbn; System.out.println("getBook: Found it:" + b); if (b!= null) { public BookID(String t, String a, String i) { class UserID { if (b.get_borrower() == null) title = t; private String name; b.set_borrower(u); author = a; return b.get_bid(); isbn = i; public UserID(String n) { name = n; public String get_name() { return name; public String get_title() {return title; return null; public PostScript getbookps(bookid bid) throws RemoteException { Printer if (books.containskey(bid.get_title())) { Book b = (Book)books.get(bid.get_title()); interface PrinterInterface extends Remote { if (b!= null) public boolean print (UserID u, BookID b) throws RemoteException; return b.get_ps(); return null; public class Printer extends UnicastRemoteObject implements PrinterInterface { private Vector jobs = new Vector(10, 10); private Library thelibrary; this optimization cross-cuts public Printer() throws RemoteException{ public boolean print (UserID u, BookID b) throws RemoteException{ PostScript ps=null; try{ the primary structure of the ps = thelibrary.getbookps(b); catch (RemoteException e) { return queue(newjob); program boolean queue(job j) { //... return true; Cross-cutting Symptoms Tangled code Code duplication and dispersion Difficult to reason about why is this here? what does this connect to? it destroys modularity 4
5 Effects of Cross-cutting Consequences: Bad quality code Poor traceability Low productivity Low reusability Testing difficulties Bad adaptability Poor evolution Aspect-Oriented Paradigm The goal of AOP is to provide methods and techniques for: decomposing problems into a number of functional components as well as a number of aspects which crosscut the functional components, and then composing these components and aspects to obtain system implementations. 5
6 Aspect-Oriented Programming Component: can be encapsulated in procedures well located, acceded and clear Aspect: can not be encapsulated in an only one procedure, it is disseminated in the functional components An object is something: Is an entity An aspect is not something is something about something: An aspect exist to incorporate orthogonal functionality to an object Objects not depend on aspects: Objects do not change because of aspects Aspect-Oriented Programming Properties or features that don t align with the functional components of a system cross-cut the primary division of labour that is achieved with objects. An aspect is a feature or unit that cross-cuts other components in the design or implementation. Weaving is the systematic process of combining the aspects and the functional units of a system. A join-point is the place where the weaver introduces the aspect code into the basic component. 6
7 class User { private String name; class Book { private String title; Library thelibrary; Printer the; Printer public User(String n) { name = n; public boolean getbook (String title) { Book abook = thelibrary.getbook(this, title); private String author; private String isbn; private PostScript ps; private User borrower; public Book(String t, String a, String i, PostScript p) { title = t; author = a; isbn = i; ps = p; public User get_borrower() {return borrower; public void set_borrower(user u) {borrower = u; public PostScript get_ps() { return ps; theprinter.print(this,abook); return true; portal Printer { void print(book book) { book: Book: {direct pages; public class PrinterImpl { String status = Idle Vector jobs; class Library { Hashtable books; public PrinterImpl() { pubilc get_status() { return status public add_job(int j) { jobs.add(j); Library(){ books = new Hashtable(100); public Book getbook(user u, String title) { System.out.println("REQUEST TO GET BOOK " + title); if(books.containskey(title)) { Book b = (Book)books.get(title); System.out.println("getBook: Found it:" + b); if (b!= null) { if (b.get_borrower() == null) return null; b.set_borrower(u); return b; portal Library { Book find (String title){ return: Book: {copy title, author, isbn; Aspect Weaving A weaver combines classes and aspects compiler / pre-processor / interpreter statically or dynamically unambiguously coordinates cross-cutting classes aspect weaver executable code aspects Additional Concepts Planes Composition Strategies Conflicts between aspects 7
8 Planes: Encapsulating Aspects Collection of aspects which carry out a specific functionality Different levels of granularity Planes will facilitate the handling of groups of aspects, their reuse, their interaction with the rest of the system, their adaptability The concept of plane is not to be confused with the concept of level or hierarchy of levels Heterarchical vs. Hierarchical structure (heterarchy: a form of organization resembling a network or fishnet) Composition Strategies Different association strategies imply different joinpoints between aspects and other components Class composition: the aspect code is activated when all objects of the composed class receive a message Method composition: the aspect code is activated when all objects of the class receive a message with the composed method Object composition: the aspect code is activated when the composed object receives a message Object-Method composition: the aspect code is activated when the composed object receives a message with the composed method 8
9 Composition Strategies Functional class ClassA Method1 () Method2 () Composition Aspect AspectA AspMethod() instance-of Asp:AspectA AspMethod O2:ClassA Behaviour Mechanism O1:ClassA Method2 Conflicts A conflict may occur if two or more aspects compete for activation Aspect 1 Aspect 2 Message Object 1 Object 2 9
10 Conflicts between Aspects Static conflict: detected when the association is established; similar to system restrictions Dynamic conflict: detected at run-time Detection and Solving Conflicts Which aspects are to be executed? They can be defined at design time or if it depends on the execution time information it can be at execution time Activation order Conflict Taxonomy according to the development life cycle step InOrder ReverseOrder Optional Exclusive Null Context-dependent 10
11 Levels of Conflict Aspect-Aspect: between two specific aspects Aspect-Plane: between an aspect and a plane (all the aspects of this plane) Plane-Plane: between two specific planes (all aspects of one plane with respect to all aspects of another) Aspect-All: between a specific aspect and all the others (in any plane) Aspect-Oriented Applications Implementation Current programming languages extensions A language to define the functional components A language to define the aspects An aspect weaver Frameworks Specific tools 11
12 Aspects Extractor Tool Early Aspects Identification Engineering requirement approach by which aspects are identified, specified, integrated and evaluated in the first steps of the system life cycle Several steps are followed in order to identify candidate aspects Possible conflict situations are identified however not solved Aspects Extractor Tool Use Cases Non-functional Requirements Key words System input Task 1: Analyze the input information Task 2: Selection of candidate aspects Task 3: Specification of candidate aspects Use case analysis Analyst information analysis Identification of conerns by an stemming algorithm Selection of the candidate aspects Description of aspects responsibilities Identification of the relationship bentween aspects and functional components. Conflicts Task 4: Identification of conflicts System output T Task 5: UML modeling Extended use case diagram 12
13 Aspects Extractor Tool Application Creation Functionality Description with Aspects Extractor Tool 13
14 Functionality Description with Rational Rose Selection of Candidate Aspects Identified 14
15 Description of Candidate Aspects Description of Conflict Situations 15
16 UML Use Case Diagram with Aspects Alpheus Aspect-Oriented Development Tool Dynamic composition of aspects with functional units Flexible strategies for association and activation/composition of aspects Multiple levels of aspects Facilities for the reuse and adaptability of aspects Handling of conflicts between simultaneously active and competing aspects Framework to permit instantiation of different applications (in different domains) 16
17 Alpheus Reflective Architecture Metalevel Metaobjects Aspects Composition Base Level Base level objects Alpheus Components Definition 17
18 Alpheus Components Definition Alpheus Composition Specification 18
19 Alpheus Definition of Conflicts Alpheus Visualization ASObsPatient ASObsPatient ASStStatistic ASStStatistics sendmessage( GetPatStatistics [], Patient, NewPatient[] ) GetPatStatistics() sendmessage( Store[], Patient, NewPatient[] ) Store() 19
20 Alpheus Code Generation Alpheus Pending Tasks 20
21 Current Work - ASTOR an AspectJ extension to solve conflict situation, static resolution - Aspects reuse in AspectJ - Extension of Aspects Extractor tool in order to solve automatically the conflict situations, early conflicts - Rule system in order to solve conflict situations, design level - Architectural aspects 21
AOSA - 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 informationAdapting Aspect-Oriented Applications: A Trial Experience
Adapting Aspect-Oriented Applications: A Trial Experience Claudia Marcos and Jane Pryor E-mail: {cmarcos,jpryor}@exa.unicen.edu.ar ISISTAN Research Institute, Facultad de Ciencias Exactas, UNICEN Paraje
More informationAn Extension of ArgoUML for the Incorporation of Profiles
An Extension of ArgoUML for the Incorporation of Profiles Jane Pryor, Edgardo Belloni, Claudia Marcos ISISTAN Research Institute, Facultad de Ciencias Exactas, UNICEN Paraje Arroyo Seco, B7001BBO Tandil,
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 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 informationObject-Oriented Software Engineering Practical Software Development using UML and Java
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical
More 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 informationCHAPTER 5 GENERAL OOP CONCEPTS
CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should
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 informationUnit 1 Introduction to Software Engineering
Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering
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 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 informationObject-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes 5.1 What is UML? The Unified Modelling Language is a standard graphical language
More 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 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 informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5, No. 4, Mai-June 2006 ADDING ASPECT-ORIENTED PROGRAMMING FEATURES TO C#.NET
More information5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered
Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process
More informationAspect oriented Software Development. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 1
Aspect oriented Software Development Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development To
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 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 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 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 informationAOP Framed! Informatics Center Federal University of Pernambuco
AOP Framed! Henrique Rebêlo Informatics Center Federal University of Pernambuco Henrique Rebêlo 2009 Contacting Me Ph.D. student Henrique Rebêlo Specialist on AOSD, DbC, Static Metrics, JML Software Architecture,
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 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 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 informationMeta-Program and Meta-Programming
Meta-Program and Meta-Programming What is a Meta-Programming? The creation of procedures and programs that automatically construct the definitions of other procedures and programs. First example the Turing
More informationModeling Issues Modeling Enterprises. Modeling
Modeling Issues Modeling Enterprises SE502: Software Requirements Engineering Modeling Modeling can guide elicitation: It can help you figure out what questions to ask It can help to surface hidden requirements
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 informationINTERNAL ASSESSMENT TEST III Answer Schema
INTERNAL ASSESSMENT TEST III Answer Schema Subject& Code: Object-Oriented Modeling and Design (15CS551) Sem: V ISE (A & B) Q. No. Questions Marks 1. a. Ans Explain the steps or iterations involved in object
More informationWHAT IS SOFTWARE ARCHITECTURE?
WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is
More informationEngineering Multi-Agent Systems with Aspects and Patterns
Engineering Multi-Agent Alessandro Garcia 1 Viviane Silva 1 Christina Chavez 1,2 Carlos Lucena 1 1 Depto. de Informática, Grupo SoC+Agents, TecComm/LES, PUC-Rio Rua Marquês de São Vicente, 225 22451-900
More informationAn 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 informationQSOUL/Aop. Aspect Oriented Software Development using Logic Meta Programming
QSOUL/Aop Aspect Oriented Software Development using Logic Meta Programming Johan Brichau, Programming Technology Lab, Vrije Universiteit Brussel, Brussel, Belgium 7/29/10 ESUG 2001, Essen 1 Overview Aspect
More informationThe Koala Component Model for Consumer Electronics Software by: Ommering, Linden, Kramer, Magee. Presented by: Bridget Flaherty.
The Koala Component Model for Consumer Electronics Software by: Ommering, Linden, Kramer, Magee Presented by: Bridget Flaherty Koala Overview Motivation The Koala Model Handling Diversity Coping with Evolution
More informationA7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS
A7-R3: INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE is to be answered
More informationProgrammazione. Prof. Marco Bertini
Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Introduction Why OO Development? Improved structure of software easier to: Understand Maintain Enhance Reusable
More informationContemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.
Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful
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 informationObject Oriented Software Development CIS Today: Object Oriented Analysis
Object Oriented Software Development CIS 50-3 Marc Conrad D104 (Park Square Building) Marc.Conrad@luton.ac.uk Today: Object Oriented Analysis The most single important ability in object oriented analysis
More informationObject-Oriented Programming Paradigm
Object-Oriented Programming Paradigm Sample Courseware Object-Oriented Programming Paradigm Object-oriented programming approach allows programmers to write computer programs by representing elements of
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 informationAspect-oriented Software Development. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 1
Aspect-oriented Software Development Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development To
More informationRaising the Level of Development: Models, Architectures, Programs
IBM Software Group Raising the Level of Development: Models, Architectures, Programs Dr. James Rumbaugh IBM Distinguished Engineer Why Is Software Difficult? Business domain and computer have different
More informationMotivation. Ability is what you're capable of doing. Motivation determines what you do. Attitude determines how well you do it.
Aspects in AspectJ Motivation Aspect Oriented Programming: a brief introduction to terminology Installation Experimentation AspectJ some details AspectJ things you should know about but we dont have time
More informationSo, What is an Aspect?
Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join
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 informationIn this Lecture you will Learn: Design Patterns. Patterns vs. Frameworks. Patterns vs. Frameworks
In this Lecture you will Learn: Design Patterns Chapter 15 What types of patterns have been identified in software development How to apply design patterns during software development The benefits and
More informationMulti-Dimensional Separation of Concerns and IBM Hyper/J
Multi-Dimensional Separation of Concerns and IBM Hyper/J Technical Research Report Barry R. Pekilis Bell Canada Software Reliability Laboratory Electrical and Computer Engineering University of Waterloo
More informationDynamic Aspect Composition using Logic Metaprogramming
Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France and Universidad National de La Plata - Argentina 2001-2002 VRIJE UNIVERSITEIT BRUSSEL SCIENTIA
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 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 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 Object Oriented Analysis and Design
A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,
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 informationComponent Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems
Component Design Systems Engineering BSc Course Budapest University of Technology and Economics Department of Measurement and Information Systems Traceability Platform-based systems design Verification
More informationDesign Patterns. Gunnar Gotshalks A4-1
Design Patterns A4-1 On Design Patterns A design pattern systematically names, explains and evaluates an important and recurring design problem and its solution Good designers know not to solve every problem
More informationOdysseas Papapetrou and George A. Papadopoulos
From Components to Services: Evolutions and Trends in CBSE World Scientific, 2005 CHAPTER X ENHANCING COMPONENT-BASED SOFTWARE DEVELOPMENT WITH ASPECT ORIENTED PROGRAMMING Odysseas Papapetrou and George
More informationComponent-Based Software Engineering TIP
Component-Based Software Engineering TIP X LIU, School of Computing, Napier University This chapter will present a complete picture of how to develop software systems with components and system integration.
More informationBeyond Aspect-Oriented Programming: Toward Naturalistic Programming
Beyond Aspect-Oriented Programming: Toward Naturalistic Programming Cristina Videira Lopes Institute for Software Research and University of California, Irvine Outline AOP and AspectJ The problem and the
More informationUnderstanding the Object Paradigm
2 Understanding the Object Paradigm M MAJOR A J O R T TOPICSO P I C S Objectives... 18 Pre-Test Questions... 18 Introduction... 19 Classes... 19 Classes and Functions... 20 Abstraction... 25 Adding and
More informationOMG Systems Modeling Language Tutorial May, 2012
OMG Systems Modeling Language Tutorial May, 2012 Giuseppe Scanniello Giuseppina Casalaro System Engineering Overview System Engineering (SE) is a discipline to deal with complex system realised through
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 informationOverview of AspectOPTIMA
COMP-667 Software Fault Tolerance Overview of AspectOPTIMA Jörg Kienzle School of Computer Science McGill University, Montreal, QC, Canada With Contributions From: Samuel Gélineau, Ekwa Duala-Ekoko, Güven
More informationREVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION
c08classandmethoddesign.indd Page 282 13/12/14 2:57 PM user 282 Chapter 8 Class and Method Design acceptance of UML as a standard object notation, standardized approaches based on work of many object methodologists
More informationChapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design
Chapter 6 Architectural Design Lecture 1 1 Topics covered ² Architectural design decisions ² Architectural views ² Architectural patterns ² Application architectures 2 Software architecture ² The design
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 informationDesign Patterns Design patterns advantages:
Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity
More informationAspect-Oriented Programming using a Logic Meta Programming Language to express cross-cutting through a dynamic joinpoint structure.
Aspect-Oriented Programming using a Logic Meta Programming Language to express cross-cutting through a dynamic joinpoint structure. Kris Gybels August 27, 2001 Document version notes When refering to parts
More informationModularizing Web Services Management with AOP
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, Bart.Verheecke@vub.ac.be System and Software Engineering Lab Vrije Universiteit Brussel 1. Introduction
More informationLECTURE 2: The Object Model. Ivan Marsic Rutgers University
LECTURE 2: The Object Model Ivan Marsic Rutgers University Topics Objects and Method Calls Interfaces UML Notation Object Relationships Process/Algorithm Oriented vs. Object Oriented Approaches Objects,
More informationSoftware Architecture and Design I
Software Architecture and Design I Instructor: Yongjie Zheng February 23, 2017 CS 490MT/5555 Software Methods and Tools Outline What is software architecture? Why do we need software architecture? How
More information1 Executive Overview The Benefits and Objectives of BPDM
1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will
More informationADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE
ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE Dave Clarke 1 THIS LECTURE At the end of this lecture you will know notations for expressing software architecture the design principles of cohesion
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 informationExample Concerns (I) Example Concerns (II) Characteristics. Composition Risks. Isolating Crosscutting Concerns in Embedded Systems.
Isolating Crosscutting s in Embedded Systems Arie van Deursen Example s (I) a) Every public function should check its parameters before using them.... b) Every public function should trace itself just
More informationCh t 8 Chapter 8. System Models
Ch t 8 Chapter 8. System Models Objectives To explain why the context t of a system should be modelled d as a part of requirements engineering process To describe behavioural modelling, data modelling
More informationAspect-Oriented Programming and AspectJ
What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview
More informationCOURSE 2 DESIGN PATTERNS
COURSE 2 DESIGN PATTERNS CONTENT Fundamental principles of OOP Encapsulation Inheritance Abstractisation Polymorphism [Exception Handling] Fundamental Patterns Inheritance Delegation Interface Abstract
More informationPOAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models
POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU Outline Chapter 4: Design Patterns
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 informationAbstraction. Abstraction
9/11/2003 1 Software today is more complex than it has ever been. Software controls Space shuttle systems during launch Elevators in 100-story buildings Cross-Atlantic transportation routes of freighters
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 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 informationSoftware Design Fundamentals. CSCE Lecture 11-09/27/2016
Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -
More informationDarshan Institute of Engineering & Technology for Diploma Studies
REQUIREMENTS GATHERING AND ANALYSIS The analyst starts requirement gathering activity by collecting all information that could be useful to develop system. In practice it is very difficult to gather all
More informationLecture 16 & 17. Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc.
Lecture 16 & 17 Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc. Spring 2009 EE 382V Software Evolution, Instructor Miryung Kim This week s Agenda Presentations:
More informationTopic : Object Oriented Design Principles
Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities
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 informationMinsoo Ryu. College of Information and Communications Hanyang University.
Software Reuse and Component-Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University msryu@hanyang.ac.kr Software Reuse Contents Components CBSE (Component-Based
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationComponents Based Design and Development. Unit 3: Software Design Quick Overview
Components Based Design and Development Computer Engineering Studies Universidad Carlos III de Madrid Unit 3: Software Design Quick Overview Juan Llorens Högskolan på Åland Finland / Universidad Carlos
More informationSTARCOUNTER. Technical Overview
STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation
More informationSetting the stage... Key Design Issues. Main purpose - Manage software system complexity by improving software quality factors
Setting the stage... Dr. Radu Marinescu 1 1946 Key Design Issues Main purpose - Manage software system complexity by...... improving software quality factors... facilitating systematic reuse Dr. Radu Marinescu
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 informationDomain-Driven Development with Ontologies and Aspects
Domain-Driven Development with Ontologies and Aspects Submitted for Domain-Specific Modeling workshop at OOPSLA 2005 Latest version of this paper can be downloaded from http://phruby.com Pavel Hruby Microsoft
More informationXIV. The Requirements Specification Document (RSD)
XIV. The Requirements Specification Document (RSD) What is a RSD? What to include/not include in a RSD? Attributes of a Well-Written RSD Organization of a RSD Sample Table of Contents An Example 2002 John
More informationProgramming for Engineers in Python
Programming for Engineers in Python Lecture 5: Object Oriented Programming Autumn 2011-12 1 Lecture 4 Highlights Tuples, Dictionaries Sorting Lists Modular programming Data analysis: text categorization
More informationUNIT II Requirements Analysis and Specification & Software Design
UNIT II Requirements Analysis and Specification & Software Design Requirements Analysis and Specification Many projects fail: because they start implementing the system: without determining whether they
More information