CSC/ECE 517 Fall 2012/ch2a 2w15 rr: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 3: Line 3:


==Background==
==Background==
The earliest computers were programmed in their native [http://en.wikipedia.org/wiki/Assembly_language assembly language ], which is inherently reflective as it is programmed by defining the instructions as data. Reflective functionality such as modifying the instructions or analyzing them was commonplace. As programming moved to higher level languages such as [http://en.wikipedia.org/wiki/C_(programming_language) C], this practice disappeared until programming languages with reflection in their type system appeared. Brian Cantwell Smith's 1982 doctoral dissertation<ref>[http://dspace.mit.edu/handle/1721.1/15961 Brian Cantwell, Smith, <i>"Procedural Reflection in Programming Languages, Department of Electrical Engineering and Computer Science"</i>, Massachusetts Institute of Technology, PhD Thesis, 1982]</ref><ref>[http://publications.csail.mit.edu/lcs/specpub.php?id=840 Brian C. Smith, <i>"Reflection and semantics in a procedural language"</i>, Technical Report MIT-LCS-TR-272, Massachusetts Institute of Technology, Cambridge, Mass., January 1982]</ref> introduced the notion of computational reflection in programming languages,  
The history of object oriented design has many branches, and many people have contributed to this domain. The 1960s and 1970s saw the emergence of object oriented programming languages, such as Simula and Smalltalk, with key contributors such as Kristen Nygaard and Alan Kay, the visionary computer scientist who founded Smalltalk.  
and the notion of the meta-circular interpreter as a component of 3-Lisp<ref>[http://weblog.raganwald.com/2006/11/significance-of-meta-circular_22.html Metacircular Interpreter and Lisp]</ref>.


But object oriented design was informal through that period, and it was only form 1982 that it emerged as a topic in its own right.  Many well-known object oriented design pioneers developed their ideas during the 1980s including Grady Booch, Kent Beck, Peter Coad, Don Firesmith, Ivar Jacobson (a UML founder), Steve Mellor, Bertrand Meyer, Jim Rumbaugh (a UML founder) and Rebecca Wirfs-Brock among others.


==References==
==References==

Revision as of 21:44, 22 October 2012

Introduction

Object-oriented design is a programming model that began in the late 60's as software programs became more complex. The idea behind the approach was to build software systems by modeling them based on the real-world objects that they were trying to represent. For example, banking systems would contain customer objects, account objects, etc. Today, object-oriented design has been widely adopted <ref> Introduction to Object Oriented Design</ref>. When done properly, this approach leads to simple, robust, flexible and modular software. When something goes wrong, the results could be bad. Object oriented design can be seen from different perspectives. In the language-centric perspective, objects are containers of data and methods. The model-centric perspective views the objects as model elements reflecting the real world objects and Responsibility-centric perspective views objects as interacting elements each playing a role in object community.

Background

The history of object oriented design has many branches, and many people have contributed to this domain. The 1960s and 1970s saw the emergence of object oriented programming languages, such as Simula and Smalltalk, with key contributors such as Kristen Nygaard and Alan Kay, the visionary computer scientist who founded Smalltalk.

But object oriented design was informal through that period, and it was only form 1982 that it emerged as a topic in its own right. Many well-known object oriented design pioneers developed their ideas during the 1980s including Grady Booch, Kent Beck, Peter Coad, Don Firesmith, Ivar Jacobson (a UML founder), Steve Mellor, Bertrand Meyer, Jim Rumbaugh (a UML founder) and Rebecca Wirfs-Brock among others.

References

<references />

Additional Reading