ObjectObject- Oriented Concepts and Principles

How People Understand Technology

What is OOP? Object oriented program is a programming approach in which a problem domain is characterized as a set of objects that have a specific attributes and behavior. The objects are manipulated with a collection of functions called method or services. The objects are categorized into classes and subclasses .

the structure and behavior of similar objects are defined in their common class. which determines everything about an object. the terms instance and object are interchangeable /An object is defined via its class. Objects are individual instances of a class . behavior. and identity.What is an Object? Definitions /An object has state.

/Objects in a class are said to be its instances . or recursive structure and behavior) for objects. behavior (methods).What is a Class? /A class is a specification of structure (instance variables). and inheritance (parents.

you may have to delete the image and then insert it again. or the image may have been corrupted. Your computer may not have enough memory to open the image.The image cannot be displayed. If the red x still appears. . Restart your computer. and then open the file again.

Features of OOP /Data Encapsulation /Inheritance /Polymorphism /Data Abstraction .

Data Encapsulation Encapsulation is the process of hiding all of the details of an object that do not contribute to its essential characteristics .

We say ``A inherits from B''. Objects of class A thus have access to attributes and methods of class B without the need to redefine them .Inheritance Inheritance is the mechanism which allows a class A to inherit properties of a class B.

Polymorphism Polymorphism is a characteristic that greatly reduces the effort required to extend an existing OO system .

It is not used to create objects. Derived classes must define the properties of A . Class A only specifies properties.Data Abstraction A class A is called abstract class if it is only used as a superclass for other classes.

Commonly used OOP language ‡C++ ‡Small Talk ‡JAVA ‡VisualWorks ‡VisualAge .

.Object Oriented Analysis Object-oriented analysis (OOA) is concerned with developing software engineering requirements and specifications that expressed as a system's object model (which is composed of a population of interacting objects). as opposed to the traditional data or functional views of systems.

.Conventional Vs OO Approaches ³Modeling Dimensions´ that may be used to compare various conventional and ObjectOriented analysis methods: ‡Identification/ Classification of entities ‡General to specific and whole to part entity relationships ‡Other entity relationships Contd.«.

‡Description of attributes of entities ‡Large scale Model Partition ‡States and transitions between states ‡Detailed specification for functions ‡Top down decomposition ‡End to end processing sequences ‡Identification of exclusive services ‡Entity Communication .

Widely used methods in OOA ‡The Booch Method ‡The Rumbaugh Method ‡The Jacobson Method ‡The Coud and Yourdon Method ‡The wrifs-Brock method .

improve performance.Benefits of OOA Maintainability: The ease with which a software system or component can be modified to correct faults. or other attributes. or adapt to a changed environment Reusability: The degree to which a software module or other work product can be used in more than one computing program or software system Productivity:The quality or state of being productive .

.Object Oriented Design The goal of the design phase is to generate a description of how to synthesize software objects that behave in accord with analysis models and meet all other system requirements.

The layers of OO design ‡The Subsystem Layer ‡The Class and Object Layer ‡The Message Layer ‡The Responsibilities Layer .

Conventional Vs OO Approaches Fichman and Kemerer suggest ten design modeling components that may be used to compare various conventional and OO design methods ‡Representation of hierarchy of modules ‡Specification of data definitions ‡Specification of procedural logic Contd«. .

‡Indication of end to end processsing sequences ‡Definition of classes ‡Assignment of operations to classes ‡Specification of Message connection ‡Identication of Exclusive services ‡Representation of object states and transition .

Widely used methods in OOD ‡The Booch Method ‡The Rumbaugh Method ‡The Jacobson Method ‡The Coud and Yourdon Method ‡The wrifs-Brock method .

It is necessary to test an OO system at different levels in an effort to uncover that may occur as classes collaborate with one another .Object Oriented Testing The architecture of OO software results in a series of layered subsystems that encapsulated collaborating classes.

The Impact on OO Programming on Testing ‡Some Types of faults become plausible ‡Some Types of faults become more plausible ‡Some new types of faults appear .

‡ Testing is structured/waterfall idea .. integral part of development ‡ Testing can be incremental and iterative Contd..Perceptions About Testing Objects MYTH ‡ Testing is unnecessary ‡ Testing gets in the way REALITY ‡ Human error is as likely as ever ‡ Testing can be a complementary.

.Perceptions About Testing Objects MYTH ‡ Testing is trivial ‡ Automated GUI testing is sufficient REALITY ‡ Hunches about testing completeness are notoriously optimistic ‡ GUI-based tests may be little more than automated testing-bypoking-around ‡ Many bugs only surface during integration Contd. testing would be unnecessary .. ‡ If programmers were more careful.

..Perceptions About Testing Objects MYTH ‡Testing is inconsistent with a commitment to quality ‡Testing is the same ‡Conventional testing is useless for objects REALITY ‡Reliable software cannot be obtained without testing ‡OO code structure matters ‡Conventional testing techniques can be adapted Contd..

Perceptions About Testing Objects MYTH ‡Black box testing is sufficient REALITY ‡OO structure matters .

Test methods applicable in Class Level ‡Random testing for OO classes ‡Partition Testing at the Class Level .

Interclass test Case design ‡Multiple Class Testing ‡Testing Derived from Behavior Models .

Sign up to vote on this title
UsefulNot useful