In the object-oriented approach, the focus is on capturing the structure and behavior of information systems into small modules that combines both data and process. The main aim of Object Oriented Design (OOD) is to improve the quality and productivity of system analysis and design by making it more usable. Show
In analysis phase, OO models are used to fill the gap between problem and solution. It performs well in situation where systems are undergoing continuous design, adaption, and maintenance. It identifies the objects in problem domain, classifying them in terms of data and behavior. The OO model is beneficial in the following ways −
Elements of Object-Oriented SystemLet us go through the characteristics of OO System −
Features of Object-Oriented SystemAn object-oriented system comes with several great features which are discussed below. EncapsulationEncapsulation is a process of information hiding. It is simply the combination of process and data into a single entity. Data of an object is hidden from the rest of the system and available only through the services of the class. It allows improvement or modification of methods used by objects without affecting other parts of a system. AbstractionIt is a process of taking or selecting necessary method and attributes to specify the object. It focuses on essential characteristics of an object relative to perspective of user. RelationshipsAll the classes in the system are related with each other. The objects do not exist in isolation, they exist in relationship with other objects. There are three types of object relationships −
InheritanceInheritance is a great feature that allows to create sub-classes from an existing class by inheriting the attributes and/or operations of existing classes. Polymorphism and Dynamic BindingPolymorphism is the ability to take on many different forms. It applies to both objects and operations. A polymorphic object is one who true type hides within a super or parent class. In polymorphic operation, the operation may be carried out differently by different classes of objects. It allows us to manipulate objects of different classes by knowing only their common properties. Structured Approach Vs. Object-Oriented ApproachThe following table explains how the object-oriented approach differs from the traditional structured approach −
Unified Modeling Language (UML)UML is a visual language that lets you to model processes, software, and systems to express the design of system architecture. It is a standard language for designing and documenting a system in an object oriented manner that allow technical architects to communicate with developer. It is defined as set of specifications created and distributed by Object Management Group. UML is extensible and scalable. The objective of UML is to provide a common vocabulary of object-oriented terms and diagramming techniques that is rich enough to model any systems development project from analysis through implementation. UML is made up of −
Example of UML Notation for classInstance diagram-UML notationOperations Performed on ObjectsThe following operations are performed on the objects −
Uses of UMLUML is quite useful for the following purposes −
Static ModelsStatic models show the structural characteristics of a system, describe its system structure, and emphasize on the parts that make up the system.
Dynamic ModelsDynamic models show the behavioral characteristics of a system, i.e., how the system behaves in response to external events.
Object Oriented System Development Life CycleIt consists of three macro processes −
Object Oriented Systems Development ActivitiesObject-oriented systems development includes the following stages −
Object-Oriented AnalysisThis phase concerns with determining the system requirements and to understand the system requirements build a use-case model. A use-case is a scenario to describe the interaction between user and computer system. This model represents the user needs or user view of system. It also includes identifying the classes and their relationships to the other classes in the problem domain, that make up an application. Object-Oriented DesignThe objective of this phase is to design and refine the classes, attributes, methods, and structures that are identified during the analysis phase, user interface, and data access. This phase also identifies and defines the additional classes or objects that support implementation of the requirement. PrototypingPrototyping enables to fully understand how easy or difficult it will be to implement some of the features of the system. It can also give users a chance to comment on the usability and usefulness of the design. It can further define a use-case and make use-case modeling much easier. ImplementationIt uses either Component-Based Development (CBD) or Rapid Application Development (RAD). Component-based development (CBD)CODD is an industrialized approach to the software development process using various range of technologies like CASE tools. Application development moves from custom development to assembly of pre-built, pre-tested, reusable software components that operate with each other. A CBD developer can assemble components to construct a complete software system. Rapid Application Development (RAD)RAD is a set of tools and techniques that can be used to build an application faster than typically possible with traditional methods. It does not replace SDLC but complements it, since it focuses more on process description and can be combined perfectly with the object oriented approach. Its task is to build the application quickly and incrementally implement the user requirements design through tools such as visual basic, power builder, etc. Incremental TestingSoftware development and all of its activities including testing are an iterative process. Therefore, it can be a costly affair if we wait to test a product only after its complete development. Here incremental testing comes into picture wherein the product is tested during various stages of its development. What are the differences between objectTraditional approach rely on sequential and decomposition, larger algorithm into smaller ones like C. OO Approach rely on objects and classes, makes object – oriented projects using OO languages like C++, Java etc. Software testing is very important phase for software development .
What is the difference between structured design and object oriented design methodology?Structured vs Object Oriented Methodology. Structured design breaks a system down into functional modules. Each module can be described as having inputs, processing, and outputs. Structured de sign is a top-down decomposition of system functionality, while object oriented design focuses on system behavior.
What is the difference between structured analysis Modelling and objectStructured Analysis treats processes and data as separate components versus object-oriented analysis combines data and the process that act on the data into objects.
What is the advantage of objectBenefits of Object-Oriented Approach
Object-oriented databases make the promise of reduced maintenance, code reusability, real world modeling, and improved reliability and flexibility.
|