Chapter%2003(Part%20A)%20:%20Object-Oriented%20System%20analysis%20and%20Design - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter%2003(Part%20A)%20:%20Object-Oriented%20System%20analysis%20and%20Design

Description:

TO PROVIDE THAT ABILITY OF REPRESENTING THE REAL WORLD AS ... OR FIRST OR SECOND OR THIRD GEAR. UML (Rose): State chart Diagram (state transition diagram) ... – PowerPoint PPT presentation

Number of Views:1087
Avg rating:3.0/5.0
Slides: 90
Provided by: paul53
Category:

less

Transcript and Presenter's Notes

Title: Chapter%2003(Part%20A)%20:%20Object-Oriented%20System%20analysis%20and%20Design


1
Chapter 03(Part A) Object-Oriented System
analysis and Design
  • Instructor Paul K Chen

2
Databases Modeling
Type of Database
New Trend
Constructs
Characteristics
Row/ Column
Relational Database
ERD EER
Dimensional Modeling
Multi-dimensional Database
Cube
OLAP DW
Distributed Database
Distributed Component Object Model
Client Object (DCOM)
XML

Object-Oriented Database
UML
Class Diagram
Object
Object Data Operations(Services) Entity
Data only
3
Topics
  • Whats an Object and an Object Class?
  • Common Themes Underlying An Object
  • Object Technology Domains
  • Object-Oriented Development? What And Why?
  • Object-Oriented Analysis
  • Object-Oriented Design
  • Object-Oriented Modeling
  • UML- A Quick Reference

4
I. WHAT'S AN OBJECT?
  • A DEFINITION
  • AN OBJECT IS A PACKAGE OF INFORMATION AND A
  • DESCRIPTION OF ITS MANIPULATIONS.
  •  
  • TO PROVIDE THAT ABILITY OF REPRESENTING THE
    REAL WORLD AS CLOSELY AS POSSIBLE, AN OBJECT
    MUST CONSIST OF
  •  
  • DATA COUPLED WITH ALL THE OPERATIONS THAT
    CAN ACT AGAINST IT. OPERATIONS REFERRED TO AS
    METHODS. COMMUNICATIONS BETWEEN OBJECTS
    REFERRED TO AS MESSAGES.

5
WHAT'S AN OBJECT? (CONTD)
  • IN OTHER WORDS, MANIPULATIONS OF THE
  • OBJECTS IMPLY A MECHANISM MUST EXIST TO
  •  
  • 1. REPRESENT THE DATA STRUCTURE OF AN OBJECT.
  • 2. SPECIFY THE PROCESS TO ACT UPON THE DATA
    STRUCTURE.
  • 3. INVOKE THE PROCESS PER PRESCRIBED PROCEDURES.

6
WHAT'S AN OBJECT? (CONTD)
Data Operations
Message
Action
  1. Model Entities in the real world.
  2. Have Data Structure.
  3. Have State.
  4. Have Methods to define actions.
  5. Are Messages driven.

7
AN OBJECT CLASS (Abbreviation CLASS)
  • An object class describes a group of objects with
    similar
  • properties (attributes), common behavior
    (operations),
  • common relationships to other objects, and common
  • semantics. --- James Rumbaugh ---
  • My definition
  • A group of like objects make up a class.

UML (Rose)
  • Class diagram (extension of ERD)

8
What's in A Class?
A CLASS HAS A NAME, A COLLECTION OF OPERATIONS
FOR MANIPULATING ITS INSTANCESN AND CHANGING
ITS STATE.   THE OPERATIONS THAT MANIPULATE THE
INSTANCES OF A CLASS ARE CALLED
METHODS.   THE STATE OR REPRESENTATION OF AN
INSTANCE IS STORED IN AN INSTANCE VARIABLE.   THE
METHODS ARE INVOKED THROUGH SENDING MESSAGES TO
THE INSTANCES.
9
Object vs. Class
  • Class refers to a template for a group of
    individual objects with common attributes and
    common behavior
  • The difference between an Object and a Class is
    that the class defines shared attributes and
    behaviors of objects
  • An object is an instance or occurrence of a class

10
A Barn vs. A Horse
  • Even a barn and a horse both have a cost and age,
  • they may belong to different classes. if barn
    and
  • horse were regarded as purely financial assets,
    they
  • may belong to the same class. the interpretation
    of
  • semantics depends on the purpose of each
  • application and is a matter of judgment.
  • --- James Rumbaugh --

11
STATE
  • ASSOCIATED WITH AN OBJECT TO SATISFY
  • SOME CONDITION. IT REPRESENTS THE GROSS
  • BEHAVIOR OF AN OBJECT. FOR EXAMPLE
  • THE LAUNCHING OF A SATELLITE
  • IT GOES THRU THE FOLLOWING STATES
  • READY
  • FIRING
  • ASCENING
  • ON THE ORBIT.
  •  
  • AN AUTOMOBILE TRANSMISSION MIGHT
  • BE IN THE STATE OF REVERSE OR NEUTRAL
  • OR FIRST OR SECOND OR THIRD GEAR.
  • UML (Rose) State chart Diagram (state transition
    diagram)

12
METHODS AND MESSAGES
  • METHOD IS PART OF AN OBJECT. ONLY THE METHODS
  • OF AN OBJECT HAVE ACCESS TO ITS STATE, AND A
  • METHOD CAN ONLY BE INVOKED BY SENDING THE OBJECT
  • A MESSAGE.
  •  
  • FOR EX
  • SENDING THE DRAW MESSAGE TO A LINE INVOKES
    ITS DRAW METHOD SENDING THE SAME MESSAGE TO A
    CIRCLE INVOKES A DIFFERENT METHOD.

UML Rose Collaboration Diagram
13
CLASS vs. INSTANCE
  • A CLASS DEFINITION DEFINES BOTH THE INSTANCE
  • VARIABLE (STATE OR REPRESENTATION) AND THE
  • METHODS (OPERATIONS) FOR OBJECTS OF THAT TYPE.

14
II. COMMON THEMES UNDERLYING AN OBJECT
1. DATA ABSTRACTION   2.
ENCAPSULATION (INFORMATION HIDING)   3.
INHERITANCE (SHARING BOTH DATA STRUCTURE
AND BEHAVIOR)  
4. DYNAMIC BINDING
15
DATA ABSTRACTION
The process and mechanism to suppress irrelevant
implementation detail and to treat data as a
representation of some worldly subject matter.  
Automobile
Automobile class Object
Data Abstraction Attributes

Frame size

Wheel size

Engine power
Operations

Start Stop Move


16
ABSTRACT DATA TYPES
  • - DESCRIBE A SET OF OBJECTS (DATA) WITH THE
  • SAME REPRESENTATION AND BEHAVIOR.
  •  
  • -- REPRESENT A CLEAR SEPARATION BETWEEN THE
    EXTERNAL INTERFACES OF A DATA TYPE AND ITS
    INTERNAL IMPLEMENTATIONS.
  • -- ARE IMPLEMENTED THROUGH CLASSES.

17
ENCAPSULATION
THE STATE OF A SOFTWARE MODULE IS
REPRESENTED BY PRIVATE VARIABLES THAT ARE
VISIBLE AND ACCESSIBLE ONLY WITHIN THE SCOPE
OF THE MODULE. THE INTERNAL STRUCTURE OF THE
PRIVATE VARIABLES IS INACCESSIBLE OUTSIDE
THE SCOPE OF THE MODULE.   A SET OF
PROCEDURES OR FUNCTIONS LOCAL TO THE MODULE
MAY DIRECTLY MANIPULATE THE PRIVATE DATA. THESE
PROCEDURES OR FUNCTIONS ARE PUBLIC AND MAY BE
INVOKED OUTSIDE THE MODULE.
18
ENCAPSULATION
  • Encapsulation changes the manner in which data is
    updated by programs because data can only be
    changed via the services that encapsulate the data

19
ENCAPSULATION
The principle that an object should hide things
from other Objects, limiting visibility about
what I know and do.
Data
Private Functions
Public Functions
20
C in CLASS
  • A class definition (abstract data type) defines
    both the
  • instance variable (state or representation) and
    the
  • methods (operations) for objects of that type.
    For ex
  • Class Date
  • // the default is private
  • Int DAY
  • Int MONTH
  • Int YEAR
  • Public
  • Date (Void) / an inline constructor /
  • daymonthyear 0
  • Date int Da, int Mo, Int Yr
  • -Date () / null destructor /
  • Void display(void)

21
C in CLASS
IN THIS EXAMPLE, WE HAVE DECLARED
THREE PRIVATE INSTANCE VARIABLES CALLED
DAY, MONTH, YEAR.   THESE PRIVATE INSTANCE
VARIABLES can only be read and changed by
functions that are themselves members of
the class.   Usually, the private parts are
variables and public parts are functions.  
THIS CONSTRUCTOR FUNCTION EXECUTES WHEN YOU
DECLARE A DATE OBJECT WITHOUT INITIALIZING
VALUES   DATE DATE_BORN / Create an
Object / DATE DATE_retired (25, 6, 97)
/ Create another object /
22
INHERITANCE
A CLASS IS A TEMPLATE FROM WHICH OBJECTS ARE
CREATED.   AN OBJECT CLASS DESCRIBES A GROUP OF
OBJECTS WITH SIMILAR PROPERTIES(ATTRIBUTES) AND
COMMON BEHAVIOR (OPERATIONS). FOR EX AUTOMOBILE,
PERSON. EACH AUTOMOBILE HAS AN ENGINE, BODY
FRAME AND A SET OF WHEELS. A PERSON HAS AN AGE
AND OTHER PHYSICAL PROPERTIES SUCH AS EYES, HANDS
AND ETC.
23
INHERITANCE
  • The principle that a class can extend from
    another previously defined class. The guiding
    principle is to organize the classes according to
    generalization/specialization.

24
INHERITANCE (continued)
INHERITANCE ALLOWS SUBCLASS TO BE FORMED FROM AN
ABSTRACT DATA TYPE. ALL THE MEMBERS OF A
SUBCLASS INHERIT THE PROPERTIES OF THE PARENT
CLASS (ABSTRACT DATA TYPE).   FOR EXAMPLE, A
PROBLEM DOMAIN MAY CONTAIN, IN ADDITION TO THE
GENERAL CONCEPT OF SHAPE, THE SLIGHTLY LESS
GENERAL CONCEPTS OF CIRCLES AND TRIANGLES. THE
CONCEPTS OF CIRCLES AND TRIANGLES ARE RELATED, IN
THE SENSE THEY ARE BOTH SHAPES.
25
INHERITANCE (continued)
  • The two types of classes are involved in any
    inheritance relationship are the base class and
    the derived class
  • Multiple inheritance means there will be multiple
    occurrences of the base type of class in the
    inheritance relationship
  • Polymorphism only occurs where there is
    inheritance

26
INHERITANCE IN C
CLASS PERSON PUBLIC
CHAR NAME20 CHAR ADDRESS20
INT AGE   CLASS EMPLOYEE
PUBLIC PERSON PUBLIC
INT EMPLOYID
27
INHERITANCE IN C
EMPLOYEE WANG ...... STRCPY
(WANG.NAME, 'JOHN WANG') STRCPY (
WANG.ADDRESS, ' SOMEWHERE') WANG.AGE
23 WANG.EMPLOYID 1222
  THE
ABOVE OBJECT WANG INHERITS MEMBERS FROM THE
PERSON BASE CLASS.
28
MULTIPLE INHERITANCE IN C
IN THE FOLLOWING EXAMPLE, DERIVED CLASS Z
INHERITS MEMBERS FROM BOTH X Y
CLASSES.   CLASS X
PUBLIC INT
X CLASS Y PUBLIC INT X CLASS
Z PUBLIC X, PUBLIC Y PUBLIC INT X
F() X1 Y 2 Z 3
29
CODE SHARING
INHERITANCE INCREASES CODE SHARING BY ALLOWING
THE LANGUAGE RATHER THAN THE PROGRAMMER TO REUSE
CODE FROM ONE CLASS IN ANOTHER RELATED
CLASS.   USE THE ACCOUNT CLASS FOR EX EACH
ACCOUNT TYPE INCLUDES AN ACCOUNT NUMBER, AN
ACCOUNT OWNER, A BALANCE, AND AN INTEREST RATE.
SAVINGS ACCOUNT DO NOT ALLOW CHECK WITHDRAWALS
BONUS SAVINGS ACCOUNTS HAVE A HIGHER RATE.
30
CODE SHARING-Continued
USE INHERITANCE TO CAPTURE THE SIMILARITY AND
DIFFERENCES IN THE ACCOUNT TYPES.   WHAT ARE
INHERITED METHODS DEPOSIT, WITHDRAW AND
CHECK REPRESENTATION ACCOUNTNUMBER,
ACCOUNTOWNER, BALANCE AND RATE.
31
POLYMORPHISM
POLYMORPHISM (OVERLOADING) ALLOWS A PROGRAMMER
TO HAVE THE SAME INTERFACE TO DIFFERENT
OBJECTS.   FOR EX THE CLASS FILE MAY HAVE
AN OPERATION CALLED PRINT. DIFFERENT
METHODS (OPERATIONS) COULD BE IMPLEMENTED TO
PRINT ASCII FILES OR BINARY FILES.
POLYMORPHISM IS CLOSELY RELATED TO
LATE-BINDING (DYNAMIC BINDING).
32
POLYMORPHISM
  • The principle that objects in different classes
    may understand the same message yet respond in
    different ways.

Group Exercise
I do it my way
I do it my way
33
DYNAMIC BINDING
DYNAMIC BINDING MEANS THE SYSTEM BINDS
MESSAGE SELECTORS TO THE METHODS THAT IMPLEMENT
THEM AT RUN TIME INSTEAD OF COMPILE TIME.
WHY IT'S NEEDED.   1. THE DETERMINATION OF THE
PARTICULAR METHOD TO BE EXECUTED FOR A MESSAGE
IS DONE DYNAMICALLY AT RUN TIME.   2. A
VARIABLE'S OBJECT CLASS OR TYPE MAY NOT BE KNOWN
UNTIL AT RUN TIME.
34
DYNAMIC BINDING IN C
YOU CAN HAVE SEVERAL FUNCTIONS WITH THE SAME
NAME IN THE SAME SCOPE. THE COMPILER
DISTINGUISHES THE FUNCTIONS BASED ON THE
ARGUMENT TYPES. THIS IS CALLED OVERLOADING.
VOID DISPLAY (INT) //DISPLAY AN
INTEGER VOID DISPLAY (CHAR) //DISPLAY A
CHARACTER VOID DISPLAY (LONG) //DISPLAY
A LONG VOID DISPLAY (DOUBLE) //DISPLAY
A DOUBLE   SUPPORT FOR OVERLOADING IS ONE
REASON WHY C NEEDS PROTOTYPES FOR
EVERYTHING.
35
DYNAMIC BINDING IN C
C SUPPORTS DYNAMIC BINDING THROUGH
VIRTUAL FUNCTIONS. A VIRTUAL FUNCTION ALLOWS
OVERRIDING OF THE SAME MEMBER FUNCTION NAME
FOR ALL CLASSES WITHIN THE HIERARCHY.
CLASS SHAPE ......
PUBLIC VIRTUAL VOID DRAW()
......
36
DYNAMIC BINDING IN C
DURING EXECUTION, THE RUN TIME ENVIRONMENT
DECIDES WHICH FUNCTIONS TO INVOKE. THE
DECISION IS BASED ON THE OBJECT TYPE.  
CLASS CIRCLE PUBLIC SHAPE VOID
DRAW() ......
CLASS TRIANGLE PUBLIC SHAPE
VOID DRAW() ......
37
C OBJECT-ORIENTED PROPERTIES
FOR EACH CLASS, A PREDEFINED STRUCT IS
INITIALIZED WITH POINTERS TO EACH METHOD
AVAILABLE TO THE CLASS. EACH OBJECT CONTAINS A
POINTER TO THE METHOD STRUCTURE FOR ITS CLASS.
  C SUPPORTS DYNAMIC BINDING THROUGH VIRTUAL
METHOD RESOLUTION AND THE ABILITY TO OVERRIDE AN
OPERATION IN A SUBCLASS ARE ONLY AVAILABLE IF THE
OPERATION IS DECLARED VIRTUAL IN THE SUPERCLASS.
38
Example Pointer To Methods
FOR EACH CLASS, A PREDEFINED STRUCT IS
INITIALIZED WITH POINTERS TO EACH METHOD
AVAILABLE TO THE CLASS. EACH OBJECT CONTAINS A
POINTER TO THE METHOD STRUCTURE FOR ITS CLASS.
CLASS PERSON INT AGE
CHAR SEX PUBLIC
VOID GET(INT A, CHAR S) A AGE S SEX
VOID SET (INT A, CHAR S) AGE A
SEX S VOID PRINT()
(PRINTF("AGE D SEX C", AGE,
SEX) TWO PRIVATE INSTANCE VARIABLES, AGE
AND SEX, ARE DECLARED. THEY ARE ONLY
ACCESSIBLE THRU GET AND SET METHODS.
39
Example The This Pointer
TO THE THE THIS POINTER   CLASS PERSON
PERSON SPOUSE PUBLIC
GOTMARRIEDTO (PERSON P)
THIS -gt SPOUSE P   GIVEN AN
INSTANCE VARIABLE CALLED SPOUSE IN THE PERSON
CLASS, THE GOTMARRIEDTO METHOD MODIFIES THIS
INSTANCE VARIABLE'S POINT PERSON IDENTIFIED AS
THE SPOUSE.
40
III. OBJECT TECHNOLOGY DOMAINS
  • 1. OBJECT ENVIRONMENTS
  • FOR EXAMPLE MS-WINDOWS OS/2 THE APPLE
    MACINTOSH HEWLETT-PACKARD'S NEW WAVE.
  •   
  • 2. OBJECT TOOLS AND METHODOLOGY
  • PROMOTING THE USE OF OBJECT-ORIENTED
    APPROACH TO THE SYSTEMS DEVELOPMENT THRU THE
    USE OF OBJECT-ORIENTED ANALYSIS AND DESIGN

41
OBJECT TECHNOLOGY DOMAINS
  • 3. OBJECT-ORIENTED DATABASE MANAGEMENT
  • PROVIDING A MECHANISM FOR THE STORAGE
    AND MGT OF OBJECTS WHICH CONTAIN BOTH DATA
    AND
  • BEHAVIOR.
  •  
  • 4. OBJECT-ORIENTED LANGUAGES
  • PROVIDING THE FACILITIES OF ENFORCING
    THE BASIC CONCEPTS OF OBJECTS IN THE
    ABOVE THREE
  • APPLICATIONS.

42
IV. THE OBJECT-ORIENTED DEVELOPMENT
  • 1. WHAT 'S A OBJECT-ORIENTED DEVELOPMENT?
  •  
  • 2. OBJECT-ORIENTED ANALYSIS
  • 3. OBJECT-ORIENTED DESIGN
  •  
  • 4. SUMMARY AND MAJOR METHODOLOGIES FOR OOAD

43
WHAT'S AN OBJECT-ORIENTED DEVELOPMENT
  • AN OBJECT-ORIENTED DEVELOPMENT IS A MODEL
    BUILDING STYLE CLOSELY RELATED TO THE
    FUNCTIONALITY AND STATE OF THE REAL WORLD.
  •  
  • FACTS
  • THE IMPLEMENTATION DETAILS OF REAL-WORLD
    THINGS ARE LIKELY TO CHANGE OVER TIME.
  •  
  • ADVANTAGES
  • AN OBJECT-ORIENTED MODEL IS BUILT AROUND,
    AND
  • HIDES THE DETAILS OF THESE REAL-WORLD
    THINGS. AS A RESULT, CHANGES TO THESE THINGS
    WILL BE LOCALIZED IN THE MODEL.

44
How Objects Make Programming More effectively
Structured Development Analysis, design and
coding take place in The traditional waterfall
way. Each step is isolated from the other.
(Waterfall Approach)
A
D
P
Object-oriented development One multifaceted
model is used from Concept to code. Because one
underlying model is used, teams apply Analysis,
design And programming Concurrently.
A
D
P
(Spiral Approach)
45
WHY?
  • 1. INCREASED PRODUCTIVITY- OBJECT ORIENTED
    PARADIGM CLOSELY RELATED TO THE BEHAVIOR OF THE
    ELEMENTS OF THE WORLD WE LIVE IN.
  •  
  • 2. SHORTEN THE TIME AND LOWER THE COST
    OF DEVELOPMENT AND SOFTWARE MAINTENANCE BY
  • USING REUSABLE SOFTWARE COMPONENTS --
  • ACHIEVED THRU INHERITANCE AND BY
  • CREATING OBJECTS AND SHARING PROPERTIES
  • WITH SIMILAR OBJECTS.
  •  
  • 3. LOCALIZING CHANGES TO THE
  • IMPLEMENTATION OF ONE OR MORE CLASSES.

46
MORE CLOSELY RELATED TO THE REAL WORLD
1. WE PERCEIVE THE REAL WORLD AS A
VARIETY OF OBJECTS. 2. A CLASS
IS A TEMPLATE FROM WHICH OBJECTS ARE
CREATED.   3. AN OBJECT MODEL (DEPICTING
THE REAL WORLD) CONSISTS OF ONE OR
MORE MODULES. 4. A MODULE IS A
LOGICAL CONSTRUCT FOR GROUPING CLASSES,
ASSOCIATIONS, AND GENERALIZATIONS.
47
Major Methodologies for OOAD
  • 1. Coad and Yourdon Object-Oriented Analysis
  • 2. Rumbaugh/Blaha/Premerlani/Eddy/Lorensen
  • Object-Oriented Modeling and Design Prentice
    Hall,
  • Englewood Cliffs, New Jersey, 1991.
  • 3. Shlaer and Mellor Object-Oriented
    Analysis/Design.
  • Object-Oriented Systems Analysis Yourdon
    Press,
  • Englewood Cliffs, New Jersey, 1988.
  • 4. Grady Booch Object-Oriented Design.
  • Object-ORIENTED DESIGN REDWOOD CITY,
    CALIF.
  • BENJAMIN/CUMMINGS, 1991

48
OO Development Consists of Two Areas
  • Object-Oriented Analysis
  • Object-Oriented Design

49
V. OOA (OBJECT-ORIENTED ANALYSIS
  • The Class/Object Layerthe classes and objects
  • The Structure Layerrelationship and inheritance
  • The Service Layermessages and behavior
  • The Attribute Layer--attributes
  • The Subject Layergroup of classes

UML Rose Component Diagram
50
Object-Oriented Analysis
  • Class Level pertaining to an object class
    documenting
  •  
  • Data what information must be included for an
    object
  • class.
  • Process (services) provided by an object class
    such as
  • Occur (instances add, change, delete and select)
  • Calculate Monitor.
  • Behavior an event which may change a significant
    change
  • in the state of an object.
  •  
  • System Level pertaining to a group of objects
    documenting
  • Their relationships and communications among
    them.
  •  

51
Class Level-Object Class
Operations
Behavior
Data Structure
52
System Level-Object Class
Object Class A
Object Class A
1M
11
Event
Message
MM
1M
Object Class B
Object Class C
Object Class B
Object Class C
53
V.1 The Class/Object Layer Analyzing Classes and
Objects
  • Identify Objects and Classes
  • 1. Tangible things such as vehicles or books
  •  
  • 2 Roles enacted by persons and organizations
    such as customers or owners.
  •  
  • 3. Incidents or Events-- such as flight or
    meeting.
  •  
  • 4. Interactions-such as a sale or a marriage
  •  
  • 5. Specifications-such as insurance policy.
  •  

54
V.2 The Structure Layer-Analyzing Structure
(Organize The Objects and Classes)
  • 1. PARTS/WHOLE RELATIONSHIPS
  •  
  • 2 Generalization Specialization

55
PARTS/WHOLE RELATIONSHIPS
56
PARTS/WHOLE RELATIONSHIPS
  • THE PART-WHOLE OR A-PART-OF RELATIONSHIP
    IS AN
  • AGGREGATION RELATIONSHIP. AGGREGATION IS A
  • STRONG FORM OF ASSOCIATION IN WHICH AN
  • AGGREGATE OBJECT IS MADE OF COMPONENTS.
  • COMPONENTS ARE PART OF THE AGGREGATE.
  •  
  • OFTEN IT IS NOT OBVIOUS IF AN ASSOCIATION
    SHOULD
  • BE MODELED AS AGGREGATION.

57
Generalization Specialization
Aircraft
Specialization
Generalization
Commercial
Military
B52
B-1B
747
777
58
SUBTYPES SUBCLASSES
Faculty
Full Time Faculty
Part Time Faculty
Part (day) Time Faculty
Part (Night)Time Faculty
59
V.3 The Service Layer-Analyzing Services
(Specifying the Method)
  • 1. IDENTIFY PUBLIC VS PRIVATE METHODS.
  •  
  • 2. DIVIDE OPERATIONS INTO THE BASE
    (PRIMITIVE)
  • AND EXTENDED OPERATIONS.
  •  
  • 3. DETERMINE THAT THE OPERATIONS CAN BE
    INHERITED IN WHOLE OR IN PART FROM A CLASS
    ALREADY IN THE SYSTEM.
  • 4. DEVELOP A SPECIFICATION FOR EACH METHOD.

60
V.4 The Attribute Layer-Analyzing Attributes
  • Points to consider.
  •  
  • Each attribute represents a single meaningful
    fact pertinent to, and necessary for all
    instances of that object class.
  • 2. Every attribute has a specific domain, the
    set of legal values and instances of the object
    class may assume.
  • Every attribute must be normalized with respect
    to the object class.

61
V. The Subject Layer
  • This layer provides a means of dividing a complex
    specification into logical work units.

62
VI. OOD (OBJECT-ORIENTED DESIGN)-From
ComponentsViewpoint
  • The Problem Component.
  • Reuse Design
  • Implementation Structure
  • Language Accommodation
  •  2. The Human Interface Component-GUI .
  • 3. The Data Management Component (DMC).
  • 4. The Task Component (TMC).
  • DMC TMC are closely related.
  • UML (Rose) Deployment Diagram

63
Object-Oriented Preliminary Design
  • Input processing- translating incoming real-world
    events and data into a form usable by the
    essential core.
  • Output processing- translating outgoing data and
    event from the essential core into a form usable
    by the real world.

3. Control and system management- providing
internal computational support services to the
essential core. 4. User interface- provides
interface between the user and the system. Two
kinds person-computer interfaces and
system-to-system interfaces
64
User Interface
Customer
Input processing
Customer commands
Status Display
Output Processing
Affiliated Bank
Bank account OK
Dispense Cash Print Receipt Eject Card
Cash Machine
ATM
Account OK
Bank Consortium
Control and System Management
65
What is a 3-Tier Application (Web Architecture)?
(MTS Example)
Tier 3
Tier 2
Tier 1
Control/System Mgt
Input processing
Output Processing
User Interface
Internet Explorer
Internet Information Server and ASP
SQL Server
MTS
HTTP
Microsoft Exchange
Other Browsers
DCOM
MSMQ
Lan-Based Clients
DCOM
ASP Active Server Pages
MSMQ Message Queue
Oracle
66
Object-Oriented Detail Design
  • Data Structure Design OODBMS
  • Procedure Structure Design-Algorithm
  • Performance Optimization-Fine-tuning
    process-combining objects to reduce
    communications or splitting objects when
    computing resources are fragmented.

67
Summary Object-Oriented Design
SELECT AN APPROPRIATE ARCHITECTURE TO IMPLEMENT
THE SYSTEM. THE DESIGN IS A MAPPING OF THE
SPECIFICATION. 1. HOW IS DATA ORGANIZED
AND STORED? OPTIMIZE ACCESS PATHS TO
DATA.   2. DESIGN ALGORITHMS TO IMPLEMENT
OPERATIONS. 3. ADJUST
CLASS STRUCTURE TO INCREASE INHERITANCE.   4.
HOW ARE PROCESSES GENERALIZED TO MAXIMIZE
REUSE?   5. PACKAGE CLASSES AND ASSOCIATIONS
INTO MODULE.
68
USER INTERFACES
MS WINDOWS RESOURCES-- USED TO MANAGE WINDOWS AND
USER-DEFINED OBJECTS DEFINED IN A TEXT FILE
CALLED A RESOURCE SCRIPT. THEY ARE COMPILED THRU
A UTILITY CALLED THE RESOURCE COMPILER AND LINKED
WITH THE WINDOW APPLICATIONS.   1. ICONS AND
CURSORS 2. MENUS 3. DIALOG BOXES 4. FONTS 5.
BITMAPS 6. CHARACTER STRINGS 7. USER-DEFINED
RESOURCES 8. KEYBOARD ACCELERATORS
69
USER INTERFACES
TWO POPULAR GUI'S-- MICROSOFT WINDOWS AND
MACINTOSH (IMAC, POWERMAC) TOOLBOX. GUIS PROVIDE
AN API (APPLICATION PROGRAMMING INTERFACE)
TO   1. CREATE SCREEN OBJECTS 2. DRAW SCREEN
OBJECTS 3. MONITOR MOUSE ACTIVATION   TO CREATE
SCREEN OBJECTS, THE DEVELOPER DEFINES A CLASS
SPECIFYING THE NECESSARY PROPERTIES. INSTANCES
OF THE WINDOW CLASS CAN THEN BE CREATED. TO
COMMUNICATE WITH INSTANCES OF A WINDOW CLASS,
MESSAGES ARE SENT AND RECEIVED BY A SPECIAL
FUNCTION CALLED THE WINDOW FUNCTION.
70
OBJECT-ORIENTED DATABASES
1. WHY? OODBMS   2. OODBMS FUNCTIONALITY
3. OODBMS VS RELATIONAL DB   4. OBJECT SQL
EXAMPLES  
71
WHY? OBJECT-ORIENTED DATABASES
1. SERVING AS AN INTEGRATOR IN THE INTEGRATED
ENVIRONMENT, OODBMS PROVIDES SHARING OF
DATA AND INFORMATION ACROSS COMPONENTS,
PRODUCTS, AND COMPUTING ENVIRONMENT.   2.
PROVIDING PERMANENT STORAGE FOR OBJECTS-
PERSISTENCE. 3. HANDLING
COMPLEX DATA STRUCTURES AND ABSTRACT DATA
TYPES.
72
OODBMS VS RELATIONAL DB
RELATIONAL
OODBMS -------------------------
--------------------------------------------------
------------------ CONSTRUCT DATA STRUCTURE
DATA STRUCTURE

BEHAVIOR ------------------------------
--------------------------------------------------
-------------- STRUCTURE TABLES
APPLICATION-DEFINED

INHERITANCE



AGGREGATION

ASSOCIATION ------------------------
--------------------------------------------------
-------------------- ACCESS SQL
METHODS
OBJECT SQL ---
73
OBJECT SQL EXAMPLE
FIND NAMES OF ALL STUDENTS LESS THAN 25 YEARS
OLD...
SELECT S.STUNAME
FROM STUDENT S WHERE
S.AGE lt 25
USING METHODS  
SELECT S.STUNAME FROM STUDENT
S WHERE S.GETAGE () lt 25
74
OBJECT SQL EXAMPLE
FIND NAMES OF PARTS THAT ARE ON ORDER.

SELECT P-gt PARTNAME () FROM
PART P WHERE P -gt
QTYONORDER() gt 0
FIND NAMES OF PARTS THAT
ARE ON ORDER AND COST lt 10  
SELECT P.PARTNAME() FROM PART
P WHERE P.COST () lt 10
75
FEATURES OF OOP SYSTEMS
1. CLASS LIBRARY OF REUSABLE
DATATYPES. 2. INHERITANCE OF
VARIABLES AND METHODS.   3. EARLY OR
DELAYED BINDING OF METHODS BASED ON
TYPES.   4. IMPLICIT/EXPLICIT STORAGE
DEALLOCATION (GARBAGE
COLLECTION)   5. EXPLICIT REPRESENTATION OF
STATE FOR VARIABLES (PRIVATE/PUBLIC/PROT
ECTED).   6. METHODS ASSOCIATED WITH
CLASSES
76
FEATURES OF OOP ENVIRONMENT
1. INTEGRATED AND INTERACTIVE PROGRAMMING
ENV. 2. INCREMENTAL COMPILATION AND
EXECUTION   3. BROWSERS FOR CLASS AND
METHOD LIBRARIES 4. PROGRAMMING
BY MODIFICATION 5.
METALEVEL FACILITIES FOR BUILDING PROGRAMMING
TOOLS
77
OBJECT-ORIENTED PROGRAMMING LANGUAGES
1. FEATURES OF OOP SYSTEMS   2. FEATURES OF
OOP ENVIRONMENT 3. CLASSES IN C AND
EXAMPLES   4. INHERITANCE IN C AND
EXAMPLES   5. DYNAMIC BINDING IN C AND
EXAMPLES
78
Current Directions
1. PROTOTYPES VS CLASSES   2. TOOLKITS,
FRAMEWORK AND VISUAL PROGRAMMING   3.
PERSISTENT OBJECTS AND DATABASES
79
PROTOTYPE
PROTOTYPE SYSTEMS ALLOW CREATING CONCEPTS
FIRST. THEN GENERALIZING THEM BY SAYING WHAT
ASPECTS OF THE CONCEPT ARE ALLOWED TO VARY.  
OBJECTS DELEGATE MESSAGES TO ONE ANOTHER,
THEREBY INHERITING METHODS OR VALUES
STORED IN OTHER OBJECTS.
80
TOOLKITS/FRAMEWORK/VISUAL PROGRAMMING
TOOLKIT PROGRAM CONSTRUCTION BY
COMPOSING EXISTING PARTS.   FRAMEWORK
PROGRAM CONSTRUCTION BY SPECIALIZING A LIBRARY
OF CLASSES.   VISUAL PROGRAMMING
PROGRAM CONSTRUCTION BY DIRECT MANIPULATING
A VISUAL REPRESENTATION OF THE APPLICATION
DOMAIN.
81
FRAMEWORK
  • A set of classes that embodies an abstract
    design for solutions to a family of related
    problems
  • defined by Ralph Johnson Brian Foote, 1988
  • Frameworks are not simply collections of
    classes. Rather, frameworks come with rich
    functionality and strong wired-in
    interconnections between object classes that
    provide an infrastructure for the developer

82
FRAMEWORK
  • Framework is not a complete application, only
    part of one. Developers must extend a framework
    to create an application, a process that is tied
    closely to the way the framework is encapsulated
  • At the lowest level, some framework support
    system-level functionality, while others support
    network access, user interfaces or database
    access. Microsoft Foundation classes (MFC) or
    Javas Abstract Window toolkit (AWT) are examples
    of frameworks at this level.

83
Object Linking and Embedding for Databases (OLE
DB)
  • Microsoft has defined set of data objects,
    collectively known as OLE DB.
  • Allows OLE-oriented applications to share and
    manipulate sets of data as objects.
  • OLE DB is an object-oriented specification based
    on C API.
  • Components can be treated as data consumers and
    data providers. Consumers take data from OLE DB
    interfaces and providers expose OLE DB
    interfaces.

84
OLE DB
85
Common Gateway Interface (CGI)
  • Specification for transferring information
    between a Web server and a CGI program.
  • Server only intelligent enough to send documents
    and to tell browser what kind of document it is.
  • But server also knows how to launch other
    programs.
  • When server sees that URL points to a program
    (script), it executes script and sends back
    scripts output to browser as if it were a file.

86
Common Gateway Interface (CGI)
  • CGI defines how scripts communicate with Web
    servers.
  • A CGI script is any script designed to accept and
    return data that conforms to the CGI
    specification.
  • Before server launches script, prepares number of
    environment variables representing current state
    of the server, who is requesting the information,
    and so on.
  • Script picks this up and reads STDIN.

87
Common Gateway Interface (CGI)
  • Then performs necessary processing and writes its
    output to STDOUT.
  • Script responsible for sending MIME header, which
    allows browser to differentiate between
    components.
  • CGI scripts can be written in almost any
    language, provided it supports reading and
    writing of an operating systems environment
    variables.

88
Common Gateway Interface (CGI)
  • Four primary methods for passing information from
    browser to a CGI script
  • Passing parameters on the command line.
  • Passing environment variables to CGI programs.
  • Passing data to CGI programs via standard input.
  • Using extra path information.

89
SUMMARY
1. OBJECT-ORIENTED ANALYSIS IS AN APPROACH TO
UNDERSTANDING A PROBLEM DEMAIN.   2.
OBJECT-ORIENTED DESIGN IS REALLY AN
ARCHITECTURE.   3. THE TRANSITION TO DESIGN IS
THE SELECTION OF AN ARCHITECTURE AND A
MAPPING OF THE ANALYSIS INTO THE CHOSEN
ARCHITECTURE.
Write a Comment
User Comments (0)
About PowerShow.com