A Concept-Based Approach to Software Design (original) (raw)
Related papers
Using a concept-based approach to aspect-oriented software design
2002
Aspect-oriented programming (AOP) has received considerable interest, in particular as an extension of object-oriented programming. However, current object-oriented software design techniques, such as UML, are not well suited to cope with aspect orientation. In this paper we discuss a design approach, called CoCompose, which supports aspect orientation and software evolution. The CoCompose design language adopts a generic concept construct for describing software systems. Design-level relationships between concepts can be expressed by applying the parameterised feature construct. Complete CoCompose models can be translated into executable programs using an automatic translation process.
Improving the Design and Implementation of Software Systems uses Aspect Oriented Programming
Aspect Oriented Programming (AOP) is a technique used to enhance the separation of concern in software design and implementation. To implement AOP developers most commonly use AspectJ, an extension of the Java language. In order to represent the separation of concerns a new design technique is needed for modeling of aspects. Aspect Oriented Design language (ASDL) is a design notation could build on the existing design language UML. It is capable of supporting many aspects-oriented languages. This research aims to investigate where developers can use aspect-oriented programming in the software development process. This includes how to identify Aspects in the design stage, then how they can be applied in the implementation process in software development .This will lead to improve modularity and reusability of the software. The paper will be a position paper abut Aspect Oriented Software Design, also will investigate several case studies of the design and implementation of a software application that shows how we can identify the Aspect in the process.
An Aspect Oriented Framework for Flexible Design Pattern-based Development
2013
The implementation of a Design Pattern (DP) may be affected by some problems due to typical deficiencies of Object Oriented languages that may worsen the modularity of a software system, and thus its comprehensibility, maintainability, and testability. Aspect Oriented Programming allows to implement DPs by its powerful quantification constructs that can handle better modularity and composition, helping to overcome some of the OO design trade-offs in current DP implementations. In Model Driven Development system models, defined by a Design Specification Language (DSL), are transformed between different levels of abstraction to get system implementation. In this paper we propose an Aspect Oriented DSL-based framework to specify and to apply, declaratively, Design Patterns to the system classes. The main aim driving the definition of the proposed framework is to improve the modularity, the internal code quality, and the flexibility, by allowing software designers to specify DP models w...
Theme: An approach for aspect-oriented analysis and design
… of the 26th International Conference on …, 2004
Aspects are behaviours that are tangled and scattered across a system. In requirements documentation, aspects manifest themselves as descriptions of behaviours that are intertwined, and woven throughout. Some aspects may be obvious, as specifications of typical crosscutting behaviour. Others may be more subtle, making them hard to identify. In either case, it is difficult to analyse requirements to locate all points in the system where aspects should be applied. These issues lead to problems achieving traceability of aspects throughout the development lifecycle. To identify aspects early in the software lifecycle, and establish sufficient traceability, developers need support for aspect identification and analysis in requirements documentation. To address this, we have devised the Theme approach for viewing the relationships between behaviours in a requirements document, identifying and isolating aspects in the requirements, and modelling those aspects using a design language. This paper describes the approach, and illustrates it with a case study and analysis.
Aspects and Objects: A Unified Software Design Framework
2013
Aspect-Oriented Software Development provides a means to modularize concerns of a system which are scattered over multiple system modules. These concerns are known as crosscutting concerns and they cause code to be scattered and tangled in multiple system units. The technique was first proposed at the programming level but evolved up through to the other phases of the software development lifecycle with the passage of time. At the moment, aspect-orientation is addressed in all phases of software development, such as requirements engineering, architecture, design and implementation. This thesis focuses on aspect-oriented software design and provides a design language, Aspect-Oriented Design Language (AODL), to specify, represent and design aspectual constructs. The language has been designed to implement co-designing of aspectual and non-aspectual constructs. The obliviousness between the constructs has been minimized to improve comprehensibility of the models. The language is applied in three phases and for each phase a separate set of design notations has been introduced. The design notations and diagrams are extensions of Unified Modelling Language (UML) and follow UML Meta Object Facility (UML MOF) rules. There is a separate notation for each aspectual construct and a set of design diagrams to represent their structural and behavioural characteristics.
A Modelling Proposal for Aspect-Oriented Software Architectures
2006
Aspect-oriented programming (AOP) has emerged in recent years as a new paradigm for software development. PRISMA is an approach for developing complex and large software systems. It combines the aspect-oriented software development (AOSD) and the component-based software development (CBSD) in an elegant and novel way achieving a better management of crosscutting-concerns and software reusability. PRISMA approach proposes the separation of concerns from the very beginning of the software life-cycle in order to introduce them as reusable aspects of software architecture. PRISMA provides a framework to guide the development of complex and large software systems. The framework is composed by a modelling tool, a .NET middleware, and a compiler to automatically generate the application source code. In this paper, we present the modeling tool of the PRISMA framework and how it supports the reuse and maintenance improvements of the PRISMA model and its aspect- oriented description language (AOSD). We illustrate our proposal and modelling tool using a real-life case, the TeachMover robot
Aspect-oriented development with stratified frameworks
IEEE Software, 2003
Aspect-oriented development is a "separation-ofconcerns" technology that promises to improve productivity and product quality in software development projects. Architecture stratification combines the strengths of component-based frameworks and model-driven architectures to support aspectoriented development.
A study of aspect-oriented design approaches
2006
This report carries out a study that is based on literature of the state-of-the-art in Aspect-Oriented Design Approaches. The goal of this work is to position these design approaches within the full life-cycle of a software engineering process that encompasses requirements analysis, architecture design, detailed design, implementation, maintenance, evolution, etc. The study takes on the form of an evaluation that is based on a set of criteria communicating the goals of this report. The report provides a description and classification of these criteria including a discussion on the influence they have on various software quality factors. A conclusion will present a number of interesting observations about the current state-of-the-art.