Introduction to Object Oriented Analysis and Design FB
Introduction to Object Oriented Analysis and Design FB – LIVE 12/04/2020 TIME: 11 AM M. P. Mishra Associate Professor SOCIS, IGNOU Email: mpmishra@ignou. ac. in
Software System Development � � � Need Objectives Technology/platform Stakeholders Complexity of the System
System Analysis �Specify requirements: �formalize needs of client �to establish a list of mandates �Extracting need of system �To find what system must do, not how, is the key of System Analysis. �Understanding problem domain(finance, law , healthcare, transport etc. . ) is the key.
System Analyst �Need to understand model – large / complex problem domain �Interact with clients and peers �Validate his understanding with the client �Finding reuse
Object Orientation Object Oriented = Classes and Objects + Inheritance + Communicating through Message Complexity of System: The number of classes in OOA model depends on – breadth and depth of problem domain and systems responsibilities within it.
Key Concepts of Object Orientation Following are some key concepts of object orientation which are used to manage complexity: �Abstraction( procedure, data)- Breaking process down in to sub-steps for handling complexity. �Encapsulation / Information hiding – each module is defined in such a way that reveal as little as possible about its inner working.
Contd… �Inheritance – Explicit expression of commonality �Association – Union or connection of ideas �Interface/Message Passing - Manage complexity
Criteria for Object Oriented Analysis Following criteria to be considered during Object Oriented Analysis: -Define remembrance : object attributes -Define behavior: object actions -Are there multiple attributes -Are there more than one object in the class -Always applicable attributes -
Contd… �Always applicable services �Domain based requirements �Identifying objects �Organizing the objects by creating object model diagram �Defining the behavior of the objects �Describing how the objects interact
Object Oriented Analysis and Design of a Complex System How to proceed? �Investigate the problem domain �Study the problem domain �Observe the existing system �Actively listen to problem domain experts �Check previous OOA results �See prototype
Object Oriented System Development : OOA �Object-oriented analysis, design and programming are related to each other. �Object Oriented Analysis(OOA) is concerned with developing an object model of the application domain.
�Grady Booch has defined OOA as “Object-oriented analysis is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary of the problem domain”.
Object Oriented System Development: OOD �Object Oriented Design(OOD) applies object -oriented concepts to develop and communicate the architecture and details of how to meet requirements. �Object Oriented Design(OOD) is concerned with developing an object-oriented system model to implement the requirements.
Contd… �In OOD, concepts in the analysis model, which are technology−independent, are mapped : �onto implementing classes, �constraints are identified �and interfaces are designed Result: A model for the solution of the problem.
Object Oriented System Development: OOD Grady Booch has defined objectoriented design as “a method of design encompassing the process of objectoriented decomposition and a notation for depicting both logical and physical as well as static and dynamic models of the system under design”.
Object Oriented System Development: OOP Object Oriented Programming(OOP) is concerned with implementing/coding an OOD using an OO programming language such as Java , C# , Python, MATLAB, Smalltalk, C++ etc. .
Object Oriented System Development: OOP Some important features of OOP: �Bottom–up approach �Programs developed around objects and grouped in classes �More focus on data �The methods are implemented to operate upon object’s data
Contd… �Interaction between objects through functions call �Reusability of design through creation of new classes by adding features to existing classes using Inheritance
Object An object is an entity that has set of data(attributes) and a defined set of operations which operate on that set of data. The operations associated with the object provide services to other objects which request these services when some processing is required.
Object �Objects are abstractions of real-world or system entities and manage themselves. �Encapsulate data and method that manipulate the data. �Information associated ( value of attributes) with object(at a particular moment ) represent its state. �System functionality is expressed in terms of object services(methods). �Shared data areas are eliminated. Objects communicate by message passing.
Classes �Classes are templates for objects. They may be used to create objects. �Object classes may inherit attributes and services from other object classes.
Classes Objects are created according to some object class definition. A class definition serves as a template for objects. It includes declarations of all the attributes and services(operations) which should be associated with an object of that class. A class is description of a set of objects that share the same attributes, operations, relationships and semantics.
Example: Account Class: Account (Attributes and Operations) Account. No Name Bank. Branch. Code Customer. Address Account. Balance( ) Withdraw( ) Deposit( )
Class: Responsibilities �A responsibility is a contract or an obligation of a class Examples: 1. Bank Account Class 2. Customer, Order , Product , Deliver classes 3. Student and Teacher classes
Inheritance: Types of Inheritance �Single Inheritance �Multiple Inheritance �Multilevel Inheritance �Hierarchical Inheritance �Hybrid Inheritance
Source: https: //www. tutorialspoint. com/object_oriented_analysis_design/ooad_object_oriented_model. htm
Generalization and Specialization Source: https: //www. tutorialspoint. com/object_oriented_analysis_design/ooad_object_oriented_model. htm
Advantages of OOD �As objects may be taken as stand-alone entities, it is easier to maintain. �Objects are potentially reusable components. �Understanding of system is easy as many times there may be an obvious mapping from real world entities to system objects.
Thank you
- Slides: 29