| dbpprop:abstract
|
- Subject-Oriented Programming is an object-oriented software paradigm in which the state (fields) and behavior (methods) of objects are not seen as intrinsic to the objects themselves, but are provided by various subjective perceptions (“subjects”) of the objects. The term and concepts were first published in September 1993 in a conference paper which was later recognized as being one of the three most influential papers to be presented at the conference between 1986 and 1996. As illustrated in that paper, an analogy is made with the contrast between the philosophical views of Plato and Kant with respect to the characteristics of “real” objects, but applied to software ones. For example, while we may all perceive a tree as having a measurable height, weight, leaf-mass, etc. , from the point-of view of a bird, a tree may also have measures of relative value for food or nesting purposes, or from the point-of-view of a tax-assessor, it may have a certain taxable value in a given year. Neither the bird’s nor the tax-assessor’s additional state information need be seen as intrinsic to the tree, but are added by the perceptions of the bird and tax-assessor, and from Kant’s analysis, the same may be true even of characteristics we think of as intrinsic. Subject-oriented programming advocates the organization of the classes that describe objects into “subjects”, which may be composed to form larger subjects. At points of access to fields or methods, several subjects’ contributions may be composed. These points were characterized as the join-points of the subjects. For example, if a tree is cut-down, the methods involved may need to join behavior in the bird and tax-assessor’s subjects with that of the tree’s own. It is therefore fundamentally a view of the compositional nature of software development, as opposed to the algorithmic (procedural) or representation-hiding (object) nature.
- Die Subjektorientierte Programmierung ist eine Erweiterung der objektorientierten Programmierung. Sie soll vor allem die Schwächen der objektorientierten Programmierung bei der Entwicklung großer Anwendungen und der Integration unabhängig entwickelter Anwendungen ausgleichen. Das subjektorientierte Programmierparadigma ermöglicht Erweiterungen und Spezialisierungen vorhandener Software ohne Modifikation des Originalcodes. Erreicht wird dies unter anderem dadurch, dass Programmteile zur Anpassung an unterschiedliche Plattformen oder zur Implementation unterschiedlicher Programmversionen vom allgemein verwendbaren Code abgekapselt werden. Eine weitere Zielsetzung ist die Erleichterung der gleichzeitigen Arbeit mehrerer Teams am selben Projekt. Durch die Dezentralisierung des Klassenentwurfs werden Zugriffskonflikte und Engpässe bei der Entwicklung vermieden. In subjektorientierten Programmen soll der Bezug zwischen Anforderungen und Code erkennbar bleiben. Darüber hinaus wird die Implementation einiger Entwurfsmuster vereinfacht. Bei der subjektorientierten Programmierung werden unterschiedliche Sichtweisen auf eine Klasse oder auf eine Gruppe von Klassen durch Spezialisierung implementiert. Diese Sichtweisen (engl. „subjects“) werden irrtümlicherweise im Deutschen als „Subjekte“ bezeichnet, obwohl die Bedeutung des englischen Wortes „subject“ ganz offensichtlich diejenige von „Thema“ oder franz. „Sujet“ ist. Um diese unterschiedlichen Sichtweisen einer Klasse zu implementieren, werden Schnittstellen verwendet.
- Субъектно-ориентированное программирование (СОП) — метод построения объектно-ориентированных систем, как композиции субъектов. Однозначный общепринятый перевод термина subject-oriented programming на русский язык на сегодняшний момент не выработан. В целом СОП включает разбиение системы на субъекты; написание правил для их правильной композиции. СОП дополняет Объектно-ориентированное программирование, решая проблемы, возникающие при разработке больших систем, при решении задач интеграции и переносимости. В СОП субъект — это коллекция классов или фрагментов классов, представляющих свою (субъективную) иерархию классов. Субъектом может быть само приложение, либо часть приложения, объединение которой с другими субъектами даёт приложение целиком. Композиция субъектов комбинирует иерархию классов так, что получаются новые субъекты, включающие функциональность существующих субъектов. Есть и другой способ обобщения объектно-ориентированного программирования
|