12
 Object Technology Object Technology did not spring full blown from one person's mind. It is a collaboration of ideas that were developed over decades, so the terms may not always be consistent among implemen tations. Please tell us if you believe a definition is not correct or is incomplet e. Behavior The behavior of an object  is how it acts and reacts to  messages  sent to it by other objects. Behavior is typically implemented within an object as  methods that are defined in its class. "Behavior is how an object acts and reacts, in terms of its state changes and message passing; the outwardly visible and testable activity of an object" 1  Class A class is a general specification or description for a set of  objects that defines their common structure (data), behavior (methods), and relationships. Component A unit of code that provides a set of services through well-defined interfaces  and is specifically designed and package d to be reusable. A component acts like a "black box" that hides or encapsula tes the details of how the services are actually implemented. Compone nts can be mixed and matched to form larger systems. "For most of the industry, components are synonymous with encapsulate d binary  objects, most notably Java Beans and ActiveX controls. Support for inheritance andpolymorphism is not critical for the definition of components." 5  Event

Ooad Technical Terms

Embed Size (px)

Citation preview

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 1/12

 

Object Technology 

Object Technology did not spring full blown from one person's mind. It is a

collaboration of ideas that were developed over decades, so the terms may not always

be consistent among implementations. Please tell us if you believe a definition is not

correct or is incomplete.

Behavior

The behavior of an object is how it acts and reacts to messages sent to it by other

objects. Behavior is typically implemented within an object as methods that are

defined in its class. "Behavior is how an object acts and reacts, in terms of 

its state changes and message passing; the outwardly visible and testable activity of an

object" 1 

Class

A class is a general specification or description for a set of  objects that defines their

common structure (data), behavior(methods), and relationships.

Component

A unit of code that provides a set of services through well-defined interfaces and is

specifically designed and packaged to be reusable. A component acts like a "black 

box" that hides or encapsulates the details of how the services are actually

implemented. Components can be mixed and matched to form larger systems. "Formost of the industry, components are synonymous with encapsulated binary objects, 

most notably Java Beans and ActiveX controls. Support

for inheritance andpolymorphism is not critical for the definition of components." 5 

Event

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 2/12

"Some occurrance that may cause the state of an object to change." 1 

Identity

A property of an object that distinguishes the object from all others.

Inheritance

Inheritance is a relationship between classes where one class is a parent of another. It

implements "is-a" relationships between objects. Inheritance takes advantage of the

commonality among objects to reduce complexity.

Instance

See Object. 

Instantiation

Creating an object from a class definition.

Interface

"An interface is a collection of operations that specify a service of 

a class or component. An interface therefore describes the externally visable behavior

of that element. An interface might represent the complete behavior of a class or

component or only a part of that behavior". 7 

JavaBeans

JavaBeans is the component architecture for the Java programming language. "A Java

Bean is a reusable software component that can be manipulated visually in a builder

tool." ... "Individual Java Beans will vary in the functionality they support, but the

typical unifying features that distinguish a Java Bean are:

  Support for "introspection" so that a builder tool can analyze how a bean

works

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 3/12

  Support for "customization" so that when using an application builder a

user can customize the appearance and behaviorof a bean.

  Support for "events" as a simple communication metaphor that can be

used to connect up beans.

  Support for "properties", both for customization and for programmatic

use.  Support for "persistence", so that a bean can be customized in an

application builder and then have its customized statesaved away and

reloaded later." 2 

Message

"An operation that one object performs on another." 1 

Methods

"A class's methods typically contain the code that understands and manipulates

an object's state. Some classes have public fields for programmers to manipulate

directly, but in most cases this isn't a very good idea." 6 Methods implement an

objects's outward behavior. 

Object

An object is an abstraction or simulation of physical things such as people and

machines or intangible things such as events and processes that captures their

characteristics and behavior. Objects and classes are the basic building blocks for

object-oriented software design. "Something you can do things to. An object

has state, behavior, and identity; the structure and behavior of similar objects are

defined in their common class." 1 

Persistence

Persistence allows the state of an object to be saved to non-volatile storage such as a

file or database and later restored even though the original creator of the object no

longer exists.

Property

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 4/12

A Property is a named characteristic or attribute of an object. 

Polymorphism

"A concept in type theory, according to which a name (such as a variable declaration)may denote objects of many differentclasses that are related by some common

superclass; thus, any object denoted by this name is able to respond to some common

set of operations in different ways." 1 Method overloading is also considered by some

to be a form of polymorphism.

State

"The state of an object represents the cumulative results of its behavior." 1 It is the

sum of an object's property values at an instance in time.

Structure

"The concrete representation of the state of an object. An object does not share its

state with any other object, although all objects of the same class do share the same

representation of their state." 1 

Unified Modeling Language (UML)

The Unified Modeling Language is a graphical notation for describing object-oriented

designs. It has been adopted as a standard by the Open Management Group with wide

industry support. "The Unified Modeling Language (UML) is a language for

specifying, visualizing, constructing, and documenting the artifacts of software

systems, as well as for business modeling and other non-software systems." 4

Object-Oriented Analysis and Design (OOAD) is a relatively new methodology compared to Model Driven Design or RapidApplication Development. In other methodologies purposely separate dataconcerns and process concerns. OOAD techniques arean attempt to eliminate the separation of concerns between data and processes.

In the attempt of merging the data and process concerns into a single object, OOAD introduce object diagrams that document asystem in terms of its objects and interactions.

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 5/12

 The purpose of the new, object-oriented analysis and design technique are to:

1. Study existing objects to see if they can be reused or adapted for new uses

2. Define new or modified objects that will be combined with existing objects into a useful business computing application.

This new format saves everyone a lot of time, but is typically used in a hybrid approach. With the new technology and new designaspects, converting of old systems is not always black and white or straight forward, the conversion of data, documents, andupgrade in knowledge has prevented this model from replacing more traditional methodologies.

Object-oriented analysis and designFrom Wikipedia, the free encyclopedia

Wikiversity has learning

materials about Object

Oriented Software Design 

Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a

group of interacting objects. Each object represents some entity of interest in the system being modeled, and is

characterised by its class, its state (data elements), and its behavior. Various models can be created to show

the static structure, dynamic behavior, and run-time deployment of these collaborating objects. There are a

number of different notations for representing these models, such as the Unified Modeling Language (UML).

Object-oriented analysis (OOA) applies object-modeling techniques to analyze the functional requirements for a

system. Object-oriented design (OOD) elaborates the analysis models to produce implementation

specifications. OOA focuses on what the system does, OOD onhow the system does it.

Contents

[hide] 

1 Object-oriented systems 

2 Object-oriented analysis 

3 Object-oriented design 

4 Literature 

5 See also 

6 References 

7 External links 

[edit]Object-oriented systems

An object-oriented system is composed of objects. The behavior of the system results from the collaboration of

those objects. Collaboration between objects involves them sending messages to each other. Sending a

message differs from calling a function in that when a target object receives a message, it decides on its own

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 6/12

what function to carry out to service that message. The same message may be implemented by many different

functions, the one selected depending on the state of the target object.

The implementation of "message sending" varies depending on the architecture of the system being modeled,

and the location of the objects being communicated with.

[edit]Object-oriented analysis

Object-oriented analysis (OOA) is the process of analyzing a task (also known as a problem domain), to

develop a conceptual model that can then be used to complete the task. A typical OOA model would describe

computer software that could be used to satisfy a set of customer-defined requirements. During the analysis

phase of problem-solving, a programmer might consider a written requirements statement, a formal vision

document, or interviews with stakeholders or other interested parties. The task to be addressed might be

divided into several subtasks (or domains), each representing a different business, technological, or other

areas of interest. Each subtask would be analyzed separately. Implementation constraints,

(e.g., concurrency, distribution, persistence, or how the system is to be built) are not considered during the

analysis phase; rather, they are addressed during object-oriented design (OOD).

The conceptual model that results from OOA will typically consist of a set of use cases, one or more UML class

diagrams, and a number ofinteraction diagrams. It may also include some kind of user interface mock-up.

[edit]Object-oriented design

Main article:  Object oriented design  

During object-oriented design (OOD), a developer applies implementation constraints to the conceptual model

produced in object-oriented analysis. Such constraints could include not only constraints imposed by the

chosen architecture but also any non-functional  – technological or environmental  – constraints, such as

transaction throughput, response time, run-time platform, development environment, or those inherent in the

programming language. Concepts in the analysis model are mapped onto implementation classes and

interfaces resulting in a model of the solution domain, i.e., a detailed description of how the system is to be

built.

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 7/12

 

OOPS Technical Terms

  Abstract class 

In programming languages, an abstract type is a type in a nominative type system which cannot be

instantiated. (However, it may have concrete subtypes that do have instances.) An abstract type may have no

implementation, or an incomplete implementation. It may include abstract methods or abstract properties 

that are shared by its subtypes.

  Accessibility 

  Abstract method 

  Abstraction (computer science) 

  Access control 

  Accessor method 

  Allocated class 

  Aspect-oriented 

  armstrong number 

  Bridge pattern 

  Builder pattern 

  Base class 

  Cascaded message 

  Cast 

  Chain-of-responsibility pattern 

  Class 

  Class hierarchy 

  Class method 

  Class object 

  Cohesion 

  Collaborator

  Collection class 

  Composition 

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 8/12

  Constructor 

  Container (data structure) 

  Contravariance 

  Copy constructor 

  Coupling 

  Covariance 

  Data-driven design 

  Data hiding 

  Default constructor 

  Deep copy 

  Delegation 

  Dependency injection 

  Destructor 

  Dispatch table 

  Dynamic binding (computer science) (also called Late Binding)

  Dynamic class 

  Dynamic dispatch 

  Dynamic variable 

  Dynamically typed language 

  Early binding 

  Encapsulation (computer science) 

  European Conference on Object-Oriented Programming 

  Exception handling 

  Facade - pattern

  Factory method pattern 

  Factory object 

  Factory pattern 

  Finalizer 

  First-class function 

  Fragile base class 

  Function composition 

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 9/12

  fibonacci series 

  Generic Programming 

  Heap-based memory allocation 

  Hybrid language 

  Immutable object (also called immutable value)

  Information hiding 

  Inheritance (computer science) 

  Initialize 

  Inline function 

  Inner class 

  Instance 

  Instance method 

  Instance variable (also called data member)

  Interaction diagram 

  Interface (computer science) 

  Inversion of control 

  Iterator 

  Late binding 

  Liskov substitution principle 

  Member accessibility 

  Members, any contents of a class: Attributes, Methods andInner classes 

  Message passing 

  Message selector (also called method selector)

  Metaclass 

  Metaprogramming 

  Method designator 

  Method lookup 

  Mixin 

  Mock object 

  Model –view –controller 

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 10/12

  Modular programming 

  Multiple dispatch 

  Multiple inheritance 

  Multitier architecture 

  Mutable variable 

  Mutator method 

  Name mangling 

  Namespace 

  Native method 

  Nested class 

  Object (computer science) 

  Object hierarchy 

  Object type 

  OOPSLA  – annual conference on Object-Oriented Programming Systems Language and Application

  Open/closed principle 

  Orthogonality 

  Overload 

  package 

  Parametric overloading 

  Parameterized classes 

  Parnas's principles 

  Partial class 

  Patterns 

  Persistent object 

  Policy-based design 

  Polymorphic 

  Primitive data type 

  private, a way of encapsulation in object-oriented programming 

  Programming paradigm 

  protected, a way of encapsulation in object-oriented programming 

  Protocol 

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 11/12

  Prototype pattern 

  Prototype-based programming 

  Pseudo-variable 

  public, a way of encapsulation in object-oriented programming 

  Pure polymorphism 

  Pure virtual function (also called pure virtual method)

  Rapid prototyping (rapid application development) 

  Recursion 

  Reference variable 

  Refinement 

  Reflection 

  Responsibility-driven design 

  Reverse polymorphism 

  Run-time type information 

  Scope 

  Shadowed name 

  Shallow copy, as opposed to deep copy  

  Single Responsibility Principle 

  Single-assignment variable 

  Singleton pattern 

  Singly rooted hierarchy 

  Slicing 

  Specification class, a class implementing abstract class 

  Stack-based memory allocation 

  Static method 

  Statically typed language, as opposed to Dynamically typed language

  Strongly-typed programming language 

  Subclass (also called child class or derived class)

  Subclass coupling 

  SOLID 

  Substitutability, principle of

  Subtype 

8/3/2019 Ooad Technical Terms

http://slidepdf.com/reader/full/ooad-technical-terms 12/12

 

  Superclass (also called parent class or base class)

  Tiers 

  Template method pattern 

  Trait 

  Type 

  Type conversion (also called typecasting )

  Verb: to program to (see discussion)

  Virtual class 

  Virtual function (also called virtual method)

  Virtual function pointer (also called virtual method pointer)

  Virtual inheritance (Object Oriented Programming)

  Virtual method table (also called vtable, virtual function table or virtual method table)

  Weak reference 

  Yo-yo problem