470 likes | 485 Views
Introduction to Object Orientation System Analysis and Design. Objectives. Understand the basic characteristics of object-oriented systems. Understand the object orientation notation Understand how to analyze and design with OO paradigm. What’s Object Orientation?.
E N D
Introduction to Object Orientation System Analysis and Design
Objectives • Understand the basic characteristics of object-oriented systems. • Understand the object orientation notation • Understand how to analyze and design with OO paradigm
What’s Object Orientation? • A new technology based on objects and classes • A paradigm (way of thingking) to organize software as a collection of discrete objects that incorporate both data and process. • An abstraction of the real world based on objects and their interactions with other objects.
Basic Characteristic (1) Classes and Objects • OO focus on capturing structure and behaviour in little modules that encompass both data and process. These modules are known as OBJECTs. • Class is a general template we use to define and create specific instances or objects. • An object is an instantiation of a class. • Each object has attributes (describe the object) and behaviors (what an object can do).
Class Car • Attributes • Model • Location • #Wheels = 4 • Operations • Start • Accelerate <<instanceOf>> <<instanceOf>> <<instanceOf>>
Basic Characteristic (2) (2) Methods and Messages • Methods implement an object’s behaviour • In other languages, method is known as procedure or function. • A message is a function or procedure call from one object to another object.
Basic Characteristic (4) (3) Encapsulation and Information Hiding • Encapsulation : how to wrap process and data into a single entity. • Only the information required to use a software module is published to the user. Exactly how the module implements the required information is unnecessary.
Basic Characteristic (5) (4) Inheritance • Is a mechanism to create a class from other class. • Related terms : superclass and subclass • Subclass inherit the appropriate attributes and methods from its superclass. • Avoid repeating of writing attributes or methods. • The relationship between the class and its superclass is known as the A-Kind-Of relationship.
(5) Polymorphism and Dynamic Binding • Polymorphism : the same message can be interpreted differently by different classes of objects. • For example : sent message “draw” to an circle object, a square object, and a triangle object will make a different result. • Dynamic Binding : determining the exact implementation of a request based on both the request (operation) name and the receiving object at run-time
Various Methodologies • Shlaer/Mellor methods (Shlaer-1988) • Coad/Yourdon methods (Coad-1991) • Booch methods (Booch-1991) • OMT methods (Rumbaugh-1991) • Wirfs-Brock methods (Wirfs-Brock-1990) • OOSE Objectory methods (Jacobson-1992) • Unified Modelling Languages (UML-1997)
Class and Object • Class • Instantiation relationship • Object instance Class name Attributes Methods Class Name Class Name
Aggregation • Aggregation 1 • Aggregation 2
Association • Association • Multiplicity of association
Analysis and Design Process • Problem statement • System architecture • Object modelling • Identifying object classes • Preparing a data dictionary for classes • Identifying association • Identifying attributes • Refining with inheritance • Grouping classes into model • Dynamic modelling • Functional modelling
Problem Statement • Requirements statement • Problem scope • What’s needed • Application context • Assumptions • Performance needs
Example • Account : a single account in a bank against which transactions can be applied. Account may be of various types, at least checking or savings. A customer can hold more than one account. • Bank : A financial institution that holds accounts for customers and that issues cash cards authorizing access to accounts over the ATM network. • ATM : … • Bank Computer : …. • Customer : … • etc
Refining with Inheritance • This step is to organize classes by using inheritance to share common structure • Inheritance can be added in two directions : • Bottom Up : By generalizing common aspect of existing classes into a superclasses • By searching for classes with similar attributes, associations, or operations • For each generalization, define a superclass to share common features • Top Down : By refining existing classes into specialized subclasses
Grouping Class into Modules • A module is a set of classes that captures some logical subset of entire model • For example: a model of computer operating system might contain modules for process control, device control, file maintenance, and memory management
Example • Tellers : Cashier, Entry Station, Cashier Station, ATM • Account: Account, Cash Card, Card Authorization, Customer, Transaction, Update, Cashier Transaction, Remote Transaction • Banks: Consortium, Bank
Dynamic Model • The dynamic model shows the time-dependent behavior of the system and the objects in it. • Begin dynamic analysis by looking for event, externally visible stimuli and responses. • The dynamic model is important for interactive systems, but insignificant for purely static data repository, such as database.
The following steps are performed in constructing a dynamic model : • Prepare scenarios of typical interaction sequences • Identify events between objects • Prepare an event trace for each scenario • Build a state diagram • Match events between objects to verify consistency
Functional Model • The functional model shows how values are computed, without regard for sequencing, decisions, or object structure • The functional model shows which values depend on which other values and the functions that relate them • Data flow diagrams are useful for showing functional dependencies
Implementation Process • Class Definition • Creating Objects • Calling Operations • Using Inheritance • Implementing Association