Aspect (computer science)

Aspect (computer science)

In computer science, an aspect is a part of a program that cross-cuts its core concerns, therefore violating its separation of concerns. For example, logging code can cross-cut many modules, yet the aspect of logging should be separate from the functional concerns of the module it cross-cuts. Isolating such aspects as logging and persistence from business logic is the aim of the aspect-oriented software development (AOSD), of which aspect-oriented programming (AOP) paradigm is the most established area. []

Aspect-orientation is not limited to programming since it is useful to identify, analyse, trace and modularise concerns (e.g., PREview) through requirements elicitation, specification and design. Aspects can be multi-dimensional by allowing both functional and non-functional behaviour to cross cut any other concerns, instead of just mapping non-functional concerns to functional requirements.

One view of aspect-oriented programming (AOP) is that every major feature of the program, core concern (business logic), or cross-cutting concern (additional features), is an aspect, and by weaving them together (also called composition), you finally produce a whole out of the separate aspects. This approach is known as pure aspect programming, but hybrid approaches are more commonly used, perhaps since there is less of a paradigm shift between object- and aspect-oriented programming. There is a similar situation with early aspect software development (e.g., requirements), with traditional methods being enhanced for aspect-orientation and new models proposed. Non-functional concerns (e.g., security) can crosscut functional concerns (e.g., door must be present). It is possible for functional concerns to crosscut non-functional or functional concerns (e.g., need for more features harms mobility). A uniform approach to representation and composition, similar to the pure approach in AOP, is termed multidimensional representation.

The prism analogy describes aspects with terms from the domain of light. Like splitting light into its many aspects (different colours) with a prism, you split a problem into its separate aspects. With another prism you can put the different colours back into a white ray of light, and by the process of weaving aspects you can put your solutions for the different aspects of a problem back into a solution for the whole problem.

See also

*Database normalization — minimize needlessly replicated data
* Core concern — the intrinsic and inherent core functionality of a class
* Cross-cutting concern — common functionality orthogonal to core concern
* Inheritance semantics
* Functional normalization
* Orthogonalization — mathematical normalization
* Refactoring — restructuring software

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • computer science — computer scientist. the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers. [1970 75] * * * Study of computers, their… …   Universalium

  • Object (computer science) — In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure. (With the later introduction of object oriented programming the same word,… …   Wikipedia

  • Concern (computer science) — For other uses, see Concern (disambiguation). In computer science, a concern is a particular set of behaviors needed by a computer program, the conceptual sections. A concern can be as general as database interaction or as specific as performing… …   Wikipedia

  • Inheritance (computer science) — In object oriented programming, inheritance is a way to form new classes (instances of which are called objects) using classes that have already been defined. The inheritance concept was invented in 1967 for Simula. [ [http://heim.ifi.uio.no/… …   Wikipedia

  • Optimization (computer science) — In computing, optimization is the process of modifying a system to make some aspect of it work more efficiently or use fewer resources. For instance, a computer program may be optimized so that it executes more rapidly, or is capable of operating …   Wikipedia

  • List of important publications in computer science — This is a list of important publications in computer science, organized by field. Some reasons why a particular publication might be regarded as important: Topic creator – A publication that created a new topic Breakthrough – A publication that… …   Wikipedia

  • British Colloquium for Theoretical Computer Science — NOTOC The British Colloquium for Theoretical Computer Science (BCTCS) is an organisation that hosts an annual event for UK based researchers in theoretical computer science. A central aspect of BCTCS is the training of PhD students.The purpose of …   Wikipedia

  • Aspect — may be:*Aspect (computer science), a feature that is linked to many parts of a program, but which is not necessarily the primary function of the program *Grammatical aspect, a component of the conjugation of a verb, having to do with the internal …   Wikipedia

  • Master of Computer Science — Der Master ([ˈmaːstɐ] oder [ˈmaːstə], aus engl. master, das auf lat. magister „Lehrer“, „Vorsteher“, „Meister“ zurückgeht) ist in vielen europäischen Staaten der zweite akademische Grad, den Studenten an Hochschulen als Abschluss einer… …   Deutsch Wikipedia

  • Replication (computer science) — Replication is the process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault tolerance, or accessibility. It could be data replication if the… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”