Aspect (computer programming) (original) (raw)
An aspect of a program is a feature linked to many other parts of the program, but which is not related to the program's primary function. An aspect crosscuts the program's core concerns, therefore violating its separation of concerns that tries to encapsulate unrelated functions. For example, logging code can crosscut 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 at the core of the aspect-oriented programming (AOP) paradigm.
Property | Value |
---|---|
dbo:abstract | An aspect of a program is a feature linked to many other parts of the program, but which is not related to the program's primary function. An aspect crosscuts the program's core concerns, therefore violating its separation of concerns that tries to encapsulate unrelated functions. For example, logging code can crosscut 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 at the core of the aspect-oriented programming (AOP) paradigm. Aspect-orientation is not limited to programming since it is useful to identify, analyse, trace and modularise concerns through requirements elicitation, specification and design. Aspects can be multi-dimensional by allowing both functional and non-functional behaviour to crosscut any other concerns, instead of just mapping non-functional concerns to functional requirements. One view of aspect-oriented software development 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 (a process also called composition), one finally produces a whole out of the separate aspects. This approach is known as pure aspect programming, but hybrid approaches are more commonly used. 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. (en) |
dbo:wikiPageID | 762920 (xsd:integer) |
dbo:wikiPageLength | 2254 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1023863142 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Programming_paradigm dbr:Software_feature dbr:Cross-cutting_concern dbr:Persistence_(computer_science) dbc:Aspect-oriented_programming dbr:Aspect-oriented_programming dbr:Aspect_weaver dbc:Aspect-oriented_software_development dbr:Business_logic dbr:Data_logging dbr:Separation_of_concerns |
dbp:wikiPageUsesTemplate | dbt:Citation_needed dbt:Refimprove dbt:Reflist dbt:Single_source dbt:Aosd |
dcterms:subject | dbc:Aspect-oriented_programming dbc:Aspect-oriented_software_development |
gold:hypernym | dbr:Feature |
rdf:type | dbo:Work |
rdfs:comment | An aspect of a program is a feature linked to many other parts of the program, but which is not related to the program's primary function. An aspect crosscuts the program's core concerns, therefore violating its separation of concerns that tries to encapsulate unrelated functions. For example, logging code can crosscut 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 at the core of the aspect-oriented programming (AOP) paradigm. (en) |
rdfs:label | Aspect (computer programming) (en) |
owl:sameAs | freebase:Aspect (computer programming) wikidata:Aspect (computer programming) https://global.dbpedia.org/id/4T7eZ |
prov:wasDerivedFrom | wikipedia-en:Aspect_(computer_programming)?oldid=1023863142&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Aspect_(computer_programming) |
is dbo:wikiPageDisambiguates of | dbr:Aspect |
is dbo:wikiPageRedirects of | dbr:Aspect_(computer) dbr:Aspect_(computer_science) |
is dbo:wikiPageWikiLink of | dbr:Cross-cutting_concern dbr:Boilerplate_code dbr:Spring_Framework dbr:Brownout_(software_engineering) dbr:Aspect dbr:Executable_UML dbr:Aspect_(computer) dbr:Aspect_(computer_science) |
is foaf:primaryTopic of | wikipedia-en:Aspect_(computer_programming) |