Assignment Topic: Introduction and Object Oriented Concepts
Submitted by: ANISH KUMAR H Roll No: 7 Class: S8CS Admission no: 08cs2172 Roll No Range- 1 to 16 Date of submission : 11-Mar-12
GROUP MEMBER DETAILS
Roll No Name
1 Abin T Abraham 2 Ajimon Anto 3 Akhil Jose 4 Akhil Sasikumaran Nair 5 Alen Sunny Stephen 6 Alvin George 7 Anish Kumar H 8 Anoop Vijayan 9 Arjun Pandavath 10 Arun Kumar R. 11 Bijomon Baby 12 Dileep Kumar D 13 Hari Krishnan M P 14 Jayanth Justin 15 Jeslin Thomas John 16 John James
What is Object-Oriented Programming? Object-Oriented Programming (OOP) is different from procedural programming languages (C, Pascal, etc.) in several ways. Everything in OOP is grouped as "objects" (see data abstraction). OOP, defined in the purest sense, is implemented by sending messages to objects. What is An Object? An object can be considered a "thing" that can perform a set of activities. The set of activities that the object performs defines the object's behavior. For example, a "StudentStatus" object can tell you its grade point average, year in school, or can add a list of courses taken. A "Student" object can tell you its name or its address. The object's interface consists of a set of commands, each command performing a specific action. An object asks another object to perform an action by sending it a message. The requesting (sending) object is referred to as sender and the receiving object is referred to as receiver.
Control is given to the receiving object until it completes the command; control then returns to the sending object. For example, a School object asks the Student object for its name by sending it a message asking for its name. The receiving Student object returns the name back to the sending object.
Definition: Object Orientation is about viewing and modeling the world/system as a set of interacting and interrelated objects. Features of the OO approach: 1) The universe consists of interacting objects 2) Describes and builds systems consisting of objects
Object Oriented Methodology The methodology is consisting of building a model of an application domain and then adding implementation details to it during the design of a system. We call this approach as Object oriented Modeling Techniques (OMT). It has following Stages: 1. Analysis: Starting from a statement of the problem, the analyst builds a model of the real-world situation showing its important properties. The analyst must work with the requester to understand the problem because the problem statements are rarely complete or correct. The analysis model is concise, precise abstraction of what the desired system must do, how it will be done. 2. System design: The system designer makes high-level decisions about the overall architecture. During the Design, the target system is organized into subsystems based on both the analysis structure and the proposed architecture. The system designer must decide what performance characteristics to optimize, choose a strategy of attacking the problem, and make tentative resource allocation. 3. Object- Design: the object designer builds a design model based on the analysis model but containing implementation details. The designer adds details to the design model in accordance with the strategy established during system design. The focus of object design is the data structure and algorithms needed to implement each class. 4. Implementation details: The object classes and relationships developed during object design are finally translated into a particular programming language, database, or hardware implementation. During implementation, it is important to follow good software engineering practice so that traceability to the design is straight forward and so that the implemented system remains flexible and extensible.
Three Models: The OMT methodology uses three kinds of models to describe a system: 1. The Object Model: The object model describes the static structure of the objects in a system and their relationships. The Object model contains object diagrams. An object diagram is a graph whose nodes are object classes and whose arcs are relationship among classes. 2. The Dynamic model: It describes the aspects of a system that change over time. The dynamic model is used to specify and implement control aspects of a system. The dynamic model contains state diagrams. A state diagram is a graph whose nodes are states and whose arcs are transition between states caused by events. 3. The Functional Model: It describes data value transformations within a system. The functional model contains data flow diagrams. A data diagram is a graph whoso nodes are processes and whose are data flows.
Object oriented themes: 1. Abstraction: It consists on focusing on the essential, inherent aspects of an entity and its accidental properties. In system development, this means focusing on what an object is and does, before deciding how it should be implemented. Use of abstraction preserves the freedom to a make decisions as long as possible by avoiding premature commitments to details. Proper use of abstraction allows the same model to be used for analysis, high level design, program Structure, database structure and documentation. 2. Encapsulation: It consists of separating the external aspects of an object, which are accessible to other objects, from the internal implementation details of an object which are hidden from other objects. Encapsulation separates implementation from users/clients. A client depends on the interface. 3. Combining data and behavior: The caller of an operation need not consider how many implementations of a given operation exist. Operator polymorphism shifts the burden of deciding what implementation to use from calling code to the class hierarchy. For e, non-object oriented code to display the contents of a window must distinguish the type of each figure, such as polygon, circle or text, and call the appropriate procedure to display it. 4. Sharing: Object oriented techniques promote sharing at several different levels. Inheritance of both data structure and behavior allows common structure to be shared among several similar subclasses without redundancy. The sharing of code using inheritance is one of the main advantages of object- oriented languages.