Results 11 -
12 of
12
Measuring Software Flexibility
"... Abstract. Flexibility has been recognized as a desirable quality of software since the earliest days of software engineering. Classic and contemporary software design litera-ture suggest that particular implementations are more flexible than others but stop short of suggesting objective criteria for ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Flexibility has been recognized as a desirable quality of software since the earliest days of software engineering. Classic and contemporary software design litera-ture suggest that particular implementations are more flexible than others but stop short of suggesting objective criteria for quantifying such claims. To measure software flexibility in precise terms, we introduce the notion of evolution complexity and dem-onstrate how it can be used to measure and compare the flexibility of— 1. programming paradigms (object-oriented vs. procedural programs) 2. architectural styles (Shared Data, Pipes and Filters, and Abstract Data Type) 3. design patterns (Visitor and the Abstract Factory) We also demonstrate how evolution complexity can be used to choose the most flexible design policy. We conclude with experimental results corroborating our claims.
An Investigation of Aspect-Oriented Programming
, 2002
"... Aspect-Oriented Programming (AOP) is a recently proposed programming paradigm which promotes clear design and re-usability by enforcing the principle of separation of concerns. Procedural and object-oriented paradigms are usually not sufficient for separating the concerns in such a way that none of ..."
Abstract
- Add to MetaCart
Aspect-Oriented Programming (AOP) is a recently proposed programming paradigm which promotes clear design and re-usability by enforcing the principle of separation of concerns. Procedural and object-oriented paradigms are usually not sufficient for separating the concerns in such a way that none of them ends up being scattered throughout the code. AOP introduces the concept of aspects, which are a means to encapsulate crosscutting concerns (i.e. concerns which cannot be encapsulated in a single unit of decomposition, or cannot be neatly separated from other concerns in a component). AOP is an enhancement to other programming paradigms. Three different AOP schemes AspectJ, JAC and DJ, which are all aspect-oriented extensions to Java are investigated and compared. The manner in which aspect-oriented constructs interact with Java is studied. The parallelisation of matrix multiplication is taken as an example in order to show the use of AOP, and more particularly AspectJ, from the design of an operation through to its integration into existing applications. This parallelisation appears to be a means to introduce performance as an aspect. The aspects used in this example are then enhanced so as to use abstraction and reflection in order to improve their own re-usability. It is concluded that AOP is a promising technology for improving readability and re-usability of components, and for introducing performance into applications.

