Aspect-oriented programming is a new paradigm that complements the object-oriented technology. The premise of aspect-oriented technology is the separation of concerns. Certain system properties tend to cut across group of functional components such as concurrency, security, and fault tolerance are examples of these crosscutting concerns. Aspect orientation attempts to modularize these crosscutting properties in order to avoid the code-tangling phenomena. Objects are independent entities that cooperate together t0achieve a certain task, how can we mange object interaction without violating basic object orientation principles like abstraction, what triggers an object to perform its functionality, what constraints that an object must consider before performing its task(s) are, how an object behavior impacts other object(s) behavior, how we can model our aspect oriented system with all the above questions in mind using existing CASE tools and guarantee separation of concerns at the implementation (automatic code generation).
In this position paper presents a formal methodology that addresses the above questions and supports separation of concerns for system software. The paper demonstrates aspect-oriented framework applying at the design and implementation phase with separation of system properties. Our approach uses CASE tools supporting UML without any extensions to it. Rhapsody CASE tool has been used to model and automatically generate code since it supports UML diagrams which enable us to present different views using different UML diagrams (OMD, SD, Statecharts, and Use Case diagrams).
[1]
Jean-Marc Jézéquel,et al.
Aspect-oriented design with the UML
,
2000,
ICSE 2000.
[2]
David Harel,et al.
Modeling Reactive Systems With Statecharts : The Statemate Approach
,
1998
.
[3]
Mehmet Aksit,et al.
Composing Software from Multiple Concerns: A Model and Composition Anomalies
,
2000
.
[4]
Cristina V. Lopes,et al.
Aspect-Oriented Programming Workshop Report
,
1997,
ECOOP Workshops.
[5]
Ralph Johnson,et al.
design patterns elements of reusable object oriented software
,
2019
.
[6]
Cristina V. Lopes,et al.
Aspect-oriented programming
,
1999,
ECOOP Workshops.
[7]
Ralph E. Johnson,et al.
Frameworks = (components + patterns)
,
1997,
CACM.
[8]
Yoshikazu Yamamoto,et al.
Extending UML with Aspects: Aspect Support in the Design Phase
,
1999,
ECOOP Workshops.
[9]
David Harel.
From Play-In Scenarios to Code: An Achievable Dream
,
2000,
FASE.
[10]
David Harel,et al.
Statecharts: A Visual Formalism for Complex Systems
,
1987,
Sci. Comput. Program..
[11]
Tzilla Elrad,et al.
Building Reusable Concurrent Software Systems
,
2000,
PDPTA.