background preloader

OOPs

Facebook Twitter

Design Patterns. It has been highly influential to the field of software engineering and is regarded as an important source for object-oriented design theory and practice.

Design Patterns

More than 500,000 copies have been sold in English and in 13 other languages. The authors are often referred to as the Gang of Four (GoF).[1] History[edit] Introduction, Chapter 1[edit] V4Noble.pdf (application/pdf Object) 18th-blackwell.pdf (application/pdf Object) Software Metaphors. Nik Boyd Copyright 2003, 2013 Nikolas S.

Software Metaphors

Boyd. All rights reserved. Introduction: Software as Fiction Software is an unique form of literature. As fiction, software is entirely and thoroughly metaphorical. This essay explores a wide variety of these metaphors in hopes of awakening a greater awareness of them in software developers and in hopes of making their acknowledgement more common and explicit in the general practice of software development. Metaphors and Cognitive Science Cognitive science studies conceptual systems, especially how the brain and the mind operate. We acquire our primary metaphors during our earliest years.

Given that our subjective and cognitive experiences are rich in metaphor, it should not surprise us to find that our software designs are also full of metaphors. Software and Algebraic Metonymy In their consideration of Where Mathematics Comes From,2 Lakoff and Núñez suggest that metonymy plays a crucial role in our thinking about algebra: Software Elements Figure 1. Aboveline.pdf (application/pdf Object) Object-Oriented Concepts. OOP is such an abstract concept that the topic is notorious for spawning off a plentitude of real-life metaphors to explain it, involving ducks, dictators, cars.

Object-Oriented Concepts

To introduce you slowly to OOP, I will use the movie industry as a metaphor. It's about as bad as all of the other metaphors ever used to explain OOP. But I plan to implement it in code for the latter part of this chapter. And it gives me an excuse to decorate the page with movie images. This section will include the basic code to set up classes in Ruby. Self Comes to Mind: Constructing the Conscious Brain - Antonio Damasio. Untitled. Page Title. (paraphrase of Allan Hobson; Pace-Schott; Sleep and Dreaming, p.49) Summary of the AIM model and the nature of conscious states The AIM model describes a method of mapping conscious states onto an underlying physiological state space.

Page Title

The AIM model relates not just to wake-sleep states of consciousness, but to all states of consciousness. It is limited by describing only three, of what are undoubtedly numerous dimensions that must be specified to completely define this state space, but we have chosen those parameters that we feel are most critical for distinguishing among the basic wake-sleep states of consciousness. By choosing activation, input source, and mode of neuromodulation as our three dimensions, we have selected how much information is being processed by the brain (A), what information is being processed (I), and how it is being processed (M).

Convergence-Divergence Zones. Convergence-Divergence Zones (Damasio; Self Comes to Mind, 144) A convergence-divergence zone (CDZ) is an ensemble of neurons within which many feedforward-feedback loops make contact.

Convergence-Divergence Zones

(Damasio; Self Comes to Mind, 144) Link to a readable diagram — Convergence-Divergence Zones Diagram A CDZ receives feedforward connections from sensory areas located earlier in the signal-processing chains, which begin at the entry point of the sensory signals in the cerebral cortex. A CDZ sends reciprocal feedback projections to the originating areas. A CDZ also sends feedforward projections to regions located in the next connectional level of the chain and receives return projections from them.

Page Title. Dispositions A disposition is a habit, a preparation, a state of readiness, or a tendency to act in a specified way.

Page Title

(Wikipedia) Nested hierarchies of motor command procedures Nested hierarchies of motor command procedures, variously called Fixed Action Patterns (FAPs) or Central Pattern Generators (CPGs) or Dispositions emanating from the basal ganglia, premotor cortex, motor cortex, brain stem and spinal cord produce movement patterns unconsciously. Metaphor of Object-Oriented Programming. Metaphor of Object-Oriented Programming Metaphors can sometimes be helpful.

Metaphor of Object-Oriented Programming

Although the neural network does not correspond to a digital computer in most ways, I believe the metaphor of "object-oriented programming" may be helpful. The brain’s cognitive functionality and memories are widely distributed. I believe there are many thousands of tiny local functional modules operating in parallel and hierarchically with recurrent and reentrant connections operating recursively. NOOP-TheEvolutionMetaphorInElica.pdf (application/pdf Object) Object-oriented programming. Overview[edit] Rather than structure programs as code and data, an object-oriented system integrates the two using the concept of an "object".

Object-oriented programming

An object has state (data) and behavior (code). Objects correspond to things found in the real world. So for example, a graphics program will have objects such as circle, square, menu. An online shopping system will have objects such as shopping cart, customer, product. The goals of object-oriented programming are: Increased understanding.Ease of maintenance.Ease of evolution. The overall understanding of the system is increased because the semantic gap—the distance between the language spoken by developers and that spoken by users—is lessened. Object-orientation takes this to the next step.

Object-oriented user interface. In computing an object-oriented user interface (OOUI) is a type of user interface based on an object-oriented programming metaphor.

Object-oriented user interface

In an OOUI, the user interacts explicitly with objects that represent entities in the domain that the application is concerned with. Many vector drawing applications, for example, have an OOUI - the objects being lines, circles and canvases. The user may explicitly select an object, alter its properties (such as size or colour), or invoke other actions upon it (such as to move, copy, or re-align it). If a business application has any OOUI, the user may be selecting and/or invoking actions on objects representing entities in the business domain such as customers, products or orders.