Ad
related to: history of inheritance systems in computer science
Search results
Results From The WOW.Com Content Network
Complex inheritance, or inheritance used within an insufficiently mature design, may lead to the yo-yo problem. When inheritance was used as a primary approach to structure programs in the late 1990s, developers tended to break code into more layers of inheritance as the system functionality grew.
Meyer described the Eiffel software development method, based on a small number of key ideas from software engineering and computer science, in Object-Oriented Software Construction. [18] Essential to the quality focus of Eiffel is Meyer's reliability mechanism, design by contract , which is an integral part of both the method and language.
The concept of class hierarchy in computer science is very similar to taxonomy, the classifications of species. The relationships are specified in the science of object-oriented design and object interface standards defined by popular use, language designers ( Java , C++ , Smalltalk , Visual Prolog ) and standards committees for software design ...
The rules on pre- and postconditions are identical to those introduced by Bertrand Meyer in his 1988 book Object-Oriented Software Construction.Both Meyer, and later Pierre America, who was the first to use the term behavioral subtyping, gave proof-theoretic definitions of some behavioral subtyping notions, but their definitions did not take into account aliasing that may occur in programming ...
Other approaches include multiple inheritance and mixins, but these have drawbacks: the behavior of the code may unexpectedly change if the order in which the mixins are applied is altered, or if new methods are added to the parent classes or mixins. Traits solve these problems by allowing classes to use the trait and get the desired behavior.
The authors of Design Patterns discuss the tension between inheritance and encapsulation at length and state that in their experience, designers overuse inheritance. They claim that inheritance often breaks encapsulation, given that inheritance exposes a subclass to the details of its parent's implementation. [11]
The history of computer science began long before the modern discipline of computer science, usually appearing in forms like mathematics or physics. Developments in previous centuries alluded to the discipline that we now know as computer science. [ 1 ]
Computer science is more theoretical (Turing's essay is an example of computer science), whereas software engineering is focused on more practical concerns. However, prior to 1946, software as we now understand it – programs stored in the memory of stored-program digital computers – did not yet exist.