3

Click here to load reader

The Object Oriented Approach

  • Upload
    rem

  • View
    217

  • Download
    3

Embed Size (px)

DESCRIPTION

Prepared by our group for the course IT1.

Citation preview

Page 1: The Object Oriented Approach

Pasalo, Rem Edcel E. June 31, 2013

3-AAC Prof. Von German

Object-Oriented Approach

The term meant different things to different people because it had become very fashionable to describe any software system in terms of object-oriented concepts. To some, the concept of object was merely a new name for abstract data types; each object had its own private variables and local procedures, resulting in modularity and encapsulation. To others, classes and objects were a concrete form of type theory; in this view, each object is considered to be an element of a type which itself can be related through sub-type and super type relationships.

To others still, object-oriented software systems were a way of organizing and sharing code in large software systems. Individual procedures and the data they manipulate are organized into a tree structure. Objects at any level of this tree structure inherit behavior of higher level objects; inheritance turned out to be the main structuring mechanism which made it possible for similar objects to share program code. Despite many authors being concerned with providing precise definitions for the object-oriented paradigm, it was difficult to come up with a single generally accepted definition.

Rentsch defines object-oriented programming in terms of inheritance, encapsulation, methods, and messages, as found in Smalltalk. Objects are uniform in that all items are objects and no object properties are visible to an outside observer. All objects communicate using the same mechanism of message passing, and processing activity takes place inside objects. Inheritance allows classification, sub-classification and super-classification of objects, which permits their properties to be shared.

Pascoe also presents object-oriented terminology from the Smalltalk perspective. Pascoe defines an object-oriented approach in terms of encapsulation, data abstraction, methods, messages, inheritance, and dynamic binding for object-oriented languages. Pascoe also affirms that some languages that have one or two of these features have been improperly called object-oriented languages. For instance, Ada could not be considered an object-oriented language because it does not provide inheritance.

Agile Approach

Agile development methodology provides opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a potentially shippable product increment. By focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology is described as “iterative” and “incremental.” In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.

Page 2: The Object Oriented Approach

The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. Because teams can develop software at the same time they’re gathering requirements, the phenomenon known as “analysis paralysis” is less likely to impede a team from making progress. And because a team’s work cycle is limited to two weeks, it gives stakeholders recurring opportunities to calibrate releases for success in the real world. Agile development methodology helps companies build the right product. Instead of committing to market a piece of software that hasn’t even been written yet, agile empowers teams to continuously replan their release to optimize its value throughout development, allowing them to be as competitive as possible in the marketplace. Development using an agile methodology preserves a product’s critical market relevance and ensures a team’s work doesn’t wind up on a shelf, never released.

Source/s:

http://www.engga.uwo.ca/people/lcapretz/ACM-SIGSOFT-v2.pdf

Capretz, Luiz Fernando. A Brief History of the Object-Oriented Approach, Characterisation of an Object-Oriented Model. p.2, March 2003.

http://agilemethodology.org/