Design marker
   HOME

TheInfoList



OR:

{{Short description, Technique of documenting design choices in source code In
software engineering Software engineering is a systematic engineering approach to software development. A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term '' ...
, a design marker is a technique of documenting ''design choices'' in
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the ...
using the Marker Interface pattern. Marker interfaces have traditionally been limited to those interfaces intended for explicit,
runtime verification Runtime verification is a computing system analysis and execution approach based on extracting information from a running system and using it to detect and possibly react to observed behaviors satisfying or violating certain properties. Some very p ...
(normally via ''instanceof''). A design marker is a marker interface used to document a design choice. In
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
programs the design choice is documented in the marker interface's
Javadoc Javadoc (originally cased JavaDoc) is a documentation generator created by Sun Microsystems for the Java language (now owned by Oracle Corporation) for generating API documentation in HTML format from Java source code. The HTML format is used for ...
documentation. Many choices made at software design time cannot be directly expressed in today's implementation languages like C# and Java. These design choices (known by names like
Design Pattern A design pattern is the re-usable form of a solution to a design problem. The idea was introduced by the architect Christopher Alexander and has been adapted for various other disciplines, particularly software engineering. The "Gang of Four" boo ...
, Design Contract,
Refactoring In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structu ...

Effective Programming IdiomsBlueprints
etc.) must be implemented via programming and
naming conventions A naming convention is a convention (generally agreed scheme) for naming things. Conventions differ in their intents, which may include to: * Allow useful information to be deduced from the names based on regularities. For instance, in Manhatta ...
, because they go beyond the built-in functionality of production programming languages. The consequences of this limitation conspire over time to erode design investments as well as to promote a false segregation between the designer and implementer mindsets. Two independent proposals recognize these problems and give the same basic strategies for tackling them. Until now, the budding explicit programming movement has been linked to the use of an experimental Java research tool called ELIDE. The Design Markers technique requires only standard
Javadoc Javadoc (originally cased JavaDoc) is a documentation generator created by Sun Microsystems for the Java language (now owned by Oracle Corporation) for generating API documentation in HTML format from Java source code. The HTML format is used for ...
-like tools to garner many of the benefits of ''Explicit Programming''.


See also

* ''
Design Patterns ''Design Patterns: Elements of Reusable Object-Oriented Software'' (1994) is a software engineering book describing software design patterns. The book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, with a forewo ...
'' * Marker interface pattern


External links


Design Markers: Explicit Programming for the rest of us

Design Markers home page


Software design