1 / 31

SEA Side Software Engineering Annotations

SEA Side Software Engineering Annotations. AAnnotation 9 : AOP One hour presentation to inform you of new techniques and practices in software development. Professor Sara Stoecklin Director of Software Engineering- Panama City Florida State University – Computer Science

dillon
Download Presentation

SEA Side Software Engineering Annotations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SEA Side Software Engineering Annotations • AAnnotation 9 : AOP One hour presentation to inform you of new techniques and practices in software development. Professor Sara Stoecklin Director of Software Engineering- Panama City Florida State University – Computer Science sstoecklin@mail.pc.fsu.edu stoeckli@cs.fsu.edu 850-522-2091 850-522-2023 Ex 182

  2. Adaptive Oriented Programming Dr. Sara Stoecklin Florida State University

  3. Adaptive Oriented Programming • MIT Technology Review • January/February 2001 issue defined ten emerging areas of technology that will soon have a PROFOUND impact on the economy and on how we live and work. • They listed as one of those ten areas “adaptive programming”.

  4. Adaptive Oriented Programming • Alias • Adaptive Oriented Programming (Northwestern University) • Subject Oriented Programming (IBM) • Aspect Oriented Programming (XEROX)

  5. Adaptive Oriented Programming • Definition • A technique for creating robustness to changes in a particular aspect of a system, program, or software component.

  6. Adaptive Oriented Programming • Concept • Design software iteratively, identifying those things that will become necessary to change at later dates. • Build abstractions for these changes so that changes during maintenance will be necessary only in parts of the system.

  7. Adaptive Oriented Programming • Concept • Software is written in a manner that allows the programmer to work at a higher level of abstractions than the normal executable code. • It can be implemented as meta programming.

  8. Adaptive Oriented Programming • Concept • Adaptive Programming is an extension of OO software development where relationships between functions and data are flexible or loosely coupled.

  9. Aspect Oriented Programming Agenda • Why Aspect Oriented Programming? • What are Aspects? • What is a cross-cutting with Aspects? • How AOP tackle a software problem? • Examples. • Conclusions

  10. Aspect Oriented Programming Why Aspect Oriented Programming? • A typical process model. • Divide system into small units of functionality. • Write code for each functional unit. • Have the units collaborate to form the system. • Design decisions are tangled, business rules are tangled. • Results in tangled code.

  11. Aspect Oriented Programming Why Aspect Oriented Programming --Contd. • Hard to manage, maintain and expand. • OO and Procedural languages have a few points in common, functional decomposition into procedure/function/object. • Called GP(Generalized Procedure Languages). • The Tangling problem is not solved by GPs.

  12. Units of functionality or procedure (components) Aspect Oriented Programming What is a Cross Cutting with Aspects? SOFTWARE PROJECT

  13. Cross cut Units of functionality or procedure Aspect Oriented Programming What is a Cross Cut? SOFTWARE PROJECT

  14. Cross cut Aspect Oriented Programming What is an Aspect? • It’s not a unit of system’s functional decomposition. • It’s a property that effect the performance of the components in the system. • e.g. synchronization, memory access patterns etc.

  15. Aspect Oriented Programming How AOP addresses the problem. • A new technique called AOP. • Aspects and concerns can be dealt with in a relatively new way. • Provides appropriate isolation between the components and the aspects.

  16. Aspect Oriented Programming Proposed Solution • AOP is a step ahead in this direction of separation of concern. • Allows to write a separate code block for a design decision instead of spreading it all over. • Aspect Oriented Languages • AspectJ (core functionality), • Cool(synchronization) and • Ridl( distribution concerns).

  17. Aspect Oriented Programming An Example Suppose you have an order entry system and one use case allows you to create and cancel orders.

  18. Aspect Oriented Programming Order Entry System • Let’s assume we have the following simplified Order class as our base object: • public class Order { • int orderID; • public void placeOrder() { • public void cancelOrder() { • }

  19. Aspect Oriented Programming Order Entry System • Suppose we now need to add authorization checks for the persons entering and canceling orders. • Suppose also we would like to check in particular if the requester has access rights to the methods placeOrder() and cancelOrder().

  20. Aspect Oriented Programming Order Entry System • If we have written this in an OO architecture with something like EJB. Then we are stuck with the strict OO implementation of EJB. • EJB separates the services from the business objects BUT now we want to add a service to the already written C/S service (i.e EJB services) and messaging provided in both Java and EJB

  21. Aspect Oriented Programming Order Entry System • Thus this access to user procedures may be an ASPECT of C/S systems.

  22. Aspect Oriented Programming The Difference • In OO, components are glued together with bits of code using create this object, create that object, etc. • A transaction processing goes something along these lines: log this method to a file for debugging, run a security check, start a transaction, open a database connection, remember to catch exceptions or Win32® structured exceptions and validate parameters. • Thus this code is duplicated across transactions for transaction and session management.

  23. Aspect Oriented Programming The Difference • In the realm of AOP, these aspects need to be programmed separately. • Aspects associated with components often use metadata such as the session management aspect or data management aspect or transaction management aspect.

  24. Aspect Oriented Programming The Difference • The runtime uses the metadata to compose the stack of aspects, typically occurs at object creation time. • Thus the correct class is created according to the aspect technique (CICS like transaction management)

  25. Aspect Oriented Programming What are some main uses?

  26. Aspect Oriented Programming What are some main uses?

  27. Aspect Oriented Programming What are some main uses?

  28. Aspect Oriented Programming Related work • Mehmet Aksit et al. at university of Twente developed composition filters,object model. • Component language is OOP. • Aspects used to synchronization and communication. • Calton Pu et. Al. at Oregon Graduate institute, OS kernels. Components are typical OS kernels, aspects are optimizations based on invariants.

  29. Aspect Oriented Programming Related work • Karl Lieberherr et al at north eastern university trying to make OOP more reusable by introducing aspects to control cross cutting issues. • Joe Yoder has made progress Reflection and Meta-object Proposals • Subjective Programming introduced by IBM • Other Engineering Disciplines • Mechanical engineers use static, dynamic and thermal models as these models cross cut each other.

  30. Aspect Oriented Programming Conclusions • Components are properties of a system for which implementation can be easily encapsulated in a procedure/function/object. • Aspects are properties for which implementation can’t be encapsulated. • Aspects cross-cut in systems implementation. • AOP is needed for clean abstraction and composition of both components and aspects.

  31. Aspect Oriented Programming Conclusions • AOP is different from other languages as it provides separate languages for component and aspects. • Also provides different abstraction and composition mechanisms. • Aspect weaver is used to co-ordinate them. • These systems are proven to be easier to develop and maintain and being more efficient too.

More Related