410 likes | 429 Views
Learn the basic characteristics of objects, classes, methods, and messages in Object-Oriented Systems. Explore concepts like encapsulation, inheritance, polymorphism, and dynamic binding. Discover software design principles such as modularity, information hiding, minimizing coupling, and maximizing cohesion.
E N D
Basic Characteristics of Object Oriented Systems • Classes and Objects • Methods and Messages • Encapsulation and Information Hiding • Inheritance • Polymorphism and Dynamic Binding
Classes and Objects • Class – Template to define specific instances or objects • Object – Instantiation of a class • Attributes – Describes the object • Behaviors – specify what object can do
Methods and Messages • Methods implement an object’s behavior • Analogous to a function or procedure • Messages are sent to trigger methods • Procedure call from one object to the next
Encapsulation and Information Hiding • Encapsulation • combination of data and process into an entity • Information Hiding • Only the information required to use a software module is published to the user • Reusability Key • Use an object by calling methods
Inheritance • Superclasses or general classes are at the top of a hierarchy of classes • Subclasses or specific classes are at the bottom • Subclasses inherit attributes and methods from classes higher in the hierarchy
Polymorphism and Dynamic Binding • Polymorphism • A message can be interpreted differently by different classes of objects • Dynamic Binding • Sometimes called late binding • Delays typing or choosing a method for an object until run-time • This is different from Static Binding • Type of object determined at compile time
Software Design Principles and Object-Oriented Systems • Design Principle: Modularity (Modularisation): • Decomposing large software into a number of smaller as independent as possible components, usually with the goal of placing different functionalities or responsibilities in different components. • Modularity allows the complexity of large software to be manageable • Object-Oriented Systems – Modularised • Classes and objects as the basic components or modules provides a convenient and effective way to realise and implement the modularisation
Software Design Principles and Object-Oriented Systems • Design Principle: Maximise Information Hiding • Information hiding is a term to describe that components hides the internal details and processing from one another • Object-Oriented Systems – Information hided • Maximising information hiding is achieved as only the information required to be passed to and returned from a module is published. Exactly how a module implements its functionality is not relevant • This also provide the reusable objects
Software Design Principles and Object-Oriented Systems • Design Principle: Minimise Coupling • Coupling is a term to describe the interactions between components. The lower coupling, the less interaction (i.e., the more independence ) between components • Object-Oriented Systems – Loosely coupled: • Encapsulation (i.e., combination of data and process into an entity) minimises the need of coupling between data and process • Information hiding minimises the communication coupling
Software Design Principles and Object-Oriented Systems • Design Principle: Maximise Cohesion • Cohesion is a term to describe the interactions within components. The more cohesive a component, the more related the internal parts of the component to each other and to its whole purpose • Object-Oriented Systems – highly cohesive: • Classes and objects provides highly cohesive units that contain both data and process, as data and process that are strongly related can be grouped together into a class and object
The Unified Modeling Language, Version 2.0 • Structure Diagrams • Behavior Diagrams • Extension Mechanisms • Developers • Grady Booch • Ivar Jacobson • James Rumbaugh
Structure Diagram • Structure Diagrams include • Class • Object • package • Deployment • Component • Composite structure diagrams
Structure Diagrams • Class • relationship between classes • Object • Relationships between objects • Package • Group UML elements together to form higher level constructs
Structure Diagrams Cont. • Deployment • Shows the physical architecture and software components of system • Component • Physical relationships among software components • Composite Structure • Illustrates internal structure of a class
Bahavior Diagrams • Activity • Illustrates business workflows, user case, and procedure or algorithm logic flow • Sequence • Time-based ordering behavior of objects activities in a use case • Communication • Communication among a set of collaborating objects of an activity • Interaction Overview • Overview of flow of control of a process • Time • Interaction among a set of objects and state changes
State Machines • Behavioral State Machine • Examines behavior of one class • Protocol State Machine • Shows dependencies of different interfaces of a class
Use Case Diagrams • Captures Business requirements • Illustrates interaction between a system and its environment • Includes end user • Any external system that interacts with its information system • Documents and clarifies requirements of system being modeled
Object Oriented Systems Analysis and Design with Unified Process
Object Oriented Systems Analysis and Design • Use-case driven • Architecture Centric: support three separate but interrelated architectural views of a system • Functional view • Static (structure) view • Dynamic (behaviour) view • Iterative and Incremental • The Unified Process
Unified Process • A special methodology which uses UML techniques for OO analysis and design • Phases of Unified Process • Inception, elaboration, construction, and transition • Workflows of Unified Process • Engineering workflows: • Business modeling, requirements, analysis, design, implementation, test, deployment • Supporting workflows: • Configuration and change management, project management, environment
A Minimalist Approach to Object Oriented Systems Analysis and Design with UML
A Minimalist Approach • Benefits of Object-Oriented Systems Analysis and Design • The Minimalist Object-Oriented Systems Analysis and Design Approach
Minimalist Approach to Object Oriented Systems Analysis and Design with UML
Minimalist Approach to Object Oriented Systems Analysis and Design with UML
Summary • Basic characteristics of an object oriented system • Unified modeling language (UML) • Object oriented systems analysis and design with unified process • Minimalist approach to object oriented systems analysis and design with UML