Basic Characteristics of Object-Oriented Systems
Basic Characteristics of Object Oriented Systems Classes and Objects Methods and Messages Encapsulation and Information Hiding Inheritance Polymorphism and Dynamic Binding
Class – Template to define specific instances or objects 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
Classes and Objects
Methods implement an object’s behavior 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
Messages and Methods
Encapsulation and Information Hiding 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
Subclasses or specific classes are at the bottom 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
Class Hierarchy
Inheritance
Polymorphism and Dynamic Binding 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
Polymorphism and Dynamic Binding
Polymorphism and Dynamic Binding
Software Design Principles and Object-Oriented Systems
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 Modelling Language, Version 2.0
The Unified Modeling Language, Version 2.0 Structure Diagrams Behavior Diagrams Extension Mechanisms Developers Grady Booch Ivar Jacobson James Rumbaugh
Structure Diagrams include Class Object package Deployment Component Composite structure diagrams
Class Object Package Structure Diagrams relationship between classes 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
UML 2.0 Diagram Summary
Bahavior Diagrams Activity Sequence Communication Interaction Overview 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
Behavioral State Machine Protocol State Machine State Machines Behavioral State Machine Examines behavior of one class Protocol State Machine Shows dependencies of different interfaces of a class
Captures Business requirements 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
UML 2.0 Diagram Summary
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
Engineering Workflows
Supporting Workflows
A Minimalist Approach to Object Oriented Systems Analysis and Design with UML
Benefits of Object-Oriented Systems Analysis and Design A Minimalist Approach Benefits of Object-Oriented Systems Analysis and Design The Minimalist Object-Oriented Systems Analysis and Design Approach
Benefits of the Object-Oriented Approach
Benefits of the Object-Oriented Approach
MOOSAD Approach
Minimalist Approach to Object Oriented Systems Analysis and Design with UML Chapter Steps Deliverable 3 Identifying business value System request Analyze feasibility Feasibility Study 4 Develop workplan Work plan Staff the project Staff plan Control and direct project GANTT Chart 5 Requirements determination Information 6 Functional modeling Function Models 7 Structural modeling Structure Models 8 Behavioral modeling Dynamic Models 9 Moving on to design Factored Models
Minimalist Approach to Object Oriented Systems Analysis and Design with UML Chapter Steps Deliverable 10 Class and method design logic design 11 Data management layer design Database design 12 Human computer interaction layer design Interface design 13 Physical architecture layer design Architecture design 14 Construction and verification Completed syst 15 Installation Training plan Operations and support Support plan
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