an object-oriented systems analysis and design methodology

advertisement
AN
OBJECT-ORIENTED
SYSTEMS ANALYSIS AND DESIGN
METHODOLOGY
95
Design
Analysis
SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC

Planning

Feasibility Study (optional)

Requirements Determination
 Conceptual
Design

Physical Design

Construction and/or Purchase
(prototype)

Training

Conversion - old to new

Implementation
METHODOLOGY OVERVIEW
• Methodology defined: The way
something gets done. The strategy, steps,
directions, or actions.
• Methodologies can be:
• purchased
• created
• combination of both
• Thousands available for developing
information systems
97
METHODOLOGY OVERVIEW
• Classifications of Methodologies
• Traditional
• Structured Analysis and Design
• Information Modeling/Engineering
• Object-Oriented
• Prototyping is a technique - (some say that
it is a methodology)
98
The Traditional
Methodology
(1950s - now)
• Applicable for small teams on small projects
• Functional perspective of problem domain
• Informal, unstructured, unrepeatable,
unmeasurable, ad-hoc way
• Tools used to support it are okay
99
Traditional Methodology Tools
-----------TECHNIQUES & TOOLS REPRESENTING----------System
Data
Communication
Process
Flows
with users
Logic
System
Flowcharts
Forms,
Layouts,
Interviews
English
Narrative,
Playscript,
Grid Charts
Program
Flowcharts,
HIPO Charts
100
Structured Analysis and Design
Methodology
(mid-1970s - now)
• Data Flow methodology (synonym)
• Compliments Structured Programming
• Very popular - perhaps the leading one
• Can be repeatable, measurable, & automated
• CASE brought significant assistance
• 1) Yourdon, and 2) Gane & Sarson
• Functional perspective of problem domain
• Describes the real world as data flowing through the
information system, being transformed from inputs to
101
outputs
Structured Analysis and Design
Methodology Tools
-----------TECHNIQUES & TOOLS REPRESENTING----------System
Data
Communication
Process
Flows
with users
Logic
Data Flow
Data Dictionary, Interviews,
Diagram
Data Structure
User Reviews,
Diagrams,
JAD sessions
EntityRelationship
Diagrams
Decision
Tree/Table,
Structured
English,
Structure
Charts,
Warnier/Orr
102
Diagram
New or Modified
Monthly Statement
(adapted from Systems Analysis and
Design Methods, 4th Edition, Whitten
and Bentley, McGraw-Hill, 1998)
Monthly
Statement
Bank
Monthly Account
Statements
Prior Monthly
Statement
Reconcile
Account
Balances
Transaction
Bill
Creditor
Payment
Account
Balance
Current
Balance
Pay
a
Bill
Account
Transactions
Bank Accounts
Modified Balance
Payment
Account
Transactions
Deposit
Modified
Balance
Withdraw
Funds from
an Account
Withdraw or transfer
Employer
Pay
Deposit Funds
into an
Account
Bank
Other
Income
Source
Reimbursement
(adapted from Systems Analysis and
Design Methods, 4th Edition, Whitten
and Bentley, McGraw-Hill, 1998)
CUSTOMER
Customer Number (PK)
Customer Name
Shipping Address
Billing Address
Balance Due
ORDER
has placed
Order Number (PK)
Order Date
Order Total Cost
Customer Number (FK)
sold
ORDERED PRODUCT
INVENTORY PRODUCT
Product Number (PK)
Product Name
Product Unit of Measure
Product Unit Price
sold as
Ordered Product ID (PK)
. Order Number (FK)
. Product Number (FK)
Quantity Ordered
Unit Price at Time of Order
Information Modeling
Methodology
(early-1980s - now)
• Data modeling & information engineering
(synonyms)
• Describes the real world by its data, the data’s
attributes, and the data relationships
• Can be repeatable, measurable, and automated
• Data perspective of the problem domain
105
Information Modeling
Methodology Tools
-----------TECHNIQUES & TOOLS REPRESENTING----------System
Data
Communication
Process
Flows
with users
Logic
Business
Business
Interviews,
Area
Area
User Reviews,
Analysis,
Analysis,
Process
Entity-
Model
Relationship
Diagrams
Business
Systems
Design
JAD Sessions,
Brainstorming
106
Object-Oriented Methodology
(mid/late-1980s - now)
• Object modeling
• Compliments object-oriented programming
• Can be repeatable, measurable, & automated
• Object perspective of the problem domain
• Describes the real world by its objects, the
attributes, services, and relationships
• Data & functions are encapsulated together
107
Object-Oriented
Methodology Tools
-----------TECHNIQUES & TOOLS REPRESENTING----------System
Data
Communication
Process
Flows
with users
Logic
Object
Object Model
Interviews,
Model
Attributes
User Reviews,
JAD Sessions,
Brainstorming
Object
Models
Services,
Scenarios,
Decision
Tree/Tables,
Structured
108
English
Object-Oriented Methodology
• Revolutionary or Evolutionary?
• Most difficult aspect is the transition some people
have to make from a functional or data problem
solving strategy to an object problem solving
strategy. Some people must change from a
“function think” or “data think” to an “object
think” strategy.
109
Object Technology Principles
• Abstraction
• Encapsulation (Information Hiding)
• Inheritance
• Message Communication
• Associations
• Polymorphism
• Common Methods of Organization
• Reuse
110
• Abstraction
A mental ability that permits people to view real-world
problem domains with varying degrees of detail
depending on the current context of the problem.
• Helps people to think about what they are111
doing
• Functional and Data abstraction
• Encapsulation (Information Hiding)
A technique in which data are packaged together
with their corresponding procedures.
 In Object-Oriented Technology the “package” is called an OBJECT
 The interface to each object is defined in such a way as to reveal as little as
possible about its inner workings
 Encapsulation allows [software] changes to be reliably made with limited effort
[Gannon, Hamlet, & Mills, 1987]
One cake please!
Ingredients
cake
2 eggs
4 cups flour
1 cup milk 1 cup sugar
etc.......
Directions
Pre-heat oven to 350; Put
milk, eggs, and sugar
in 2 quart mixing bowl...
112
• Inheritance
A mechanism for expressing similarity
between things thus simplifying their definition.
Inheritance
Student
• looks
• behavior
• attitudes
• etc...
Person
Faculty
Staff
113
• Message Communication
Objects communicate via messages
OBJECT
OBJECT
OBJECT
OBJECT
114
• Associations
The union or connection of ideas or things.
(Objects need to interact with each other)
• same point in time
Advertisement #2
Advertisement #1
Billing Statement
• under similar circumstances
crime
scene
#2
crime
scene
#1
crime
scene
#n
115
• Polymorphism (“many forms”)
The ability to hide different implementations
behind a common interface.
The ability for two or more objects to respond
to the same request, each in its own way.
• H 2 O = water, ice, steam (liquid, solid, vapor)
• Eating
Door
#1
Door
#2
Door
#3
versus
Door
#1
#2
#3
116
• Polymorphism
PRINT
Two examples
TEXT object
25000
PRINT
BLUE SKY
AIRLINES
Sales Report
January
20000
15000
GRAPH object
10000
5000
East
West
North
PRINT
South
0
BLUE SKY
AIRLINES
Sales Report
February
IMAGE object
Object #1
Add
PO object
Object #2
Add
Account object
Object #3
Add
Department object
= add a line item to the PO
= increase $ Amount Balance
= hire a new employee
O-O Systems Analysis & Design Methodology
Classification Theory
(Common Methods of Organization)
• Objects and their characteristics
• Wholes and Parts
• Groups (Classes) and Members
118
• Common Methods of Organization
People are accustomed to thinking in terms of...
Objects & Attributes
• color
• price
• weight
• engine
• options...
Wholes and Parts
Groups & Members
VANS:
• light utility
• utility
• passenger
• etc...
• number of doors
• number of wheels
• number of windows
• number of lights
• number of bolt type 1
• number of bolt type 2
• etc....
119
• Reuse
The ability to reuse objects
Varying Degrees of Reuse:
• complete or sharing
• copy, purchase or cloning
• partial or adjusting
Software:
• “Chips”
• Components
• Controls
• Models
• none
120
• Reuse
Software Reuse Costs and Payoffs
Orenstein, D. “Code reuse: Reality doesn’t match promise”,
Computerworld, August 24, 1998, page 8.
• Components must be reused three to five
times before the costs of creating and
supporting them are recovered
• It costs one and a half to three times as much
to create and support a single reusable
component as to create a component for just
one use
• It costs 25% as much to use a reusable
component as it does to create a new one
• It takes two to three product cycles (about
three years) before the benefits of reuse
become significant
121
O-O Systems Analysis & Design Methodology
Three Classic Systems Analysis and Design Proble
• Data Model versus Function Model
• Analysis to Design Transition
• Maintaining Source Code
122
Function
Models
System
Behavior
North Rim of the
Grand Canyon
Data
Models
South Rim of the
Grand Canyon
Colorado River
VVVVVVVVVVVV
Classic Software Development Problem #1:
Multiple Models
Design
Models
Analysis
Models
North Rim of the
Grand Canyon
South Rim of the
Grand Canyon
Colorado River
VVVVVVVVVVVV
Classic Software Development Problem #2:
Model Transformation
Who wrote
this code?
Begin “Caller” Program
Init x,y,z...
Open (files/database)
Read...
Compute...
DO “Callee” with x,y,z
Spaghetti?
Update (files/database)
Close (files/database)
End Main Program
Procedure Callee
Parameters x,y,z
Compute...
End Procedure
End Program
Classic Software Development Problem #3:
Maintaining Source Code
SOLUTION
INTEGRATED MODEL(S)
(function, data, behavior)
(analysis, design and
implementation)
ROUND-TRIP
ENGINEERING
Object
Technology
Colorado River
126
O-O Systems Analysis & Design Methodology
Coad’s Object-Oriented
Systems Analysis & Design
Methodology*
* formerly, Coad and Yourdon
* based on Coad, P., North, D., and Mayfield M.,
Object Models: Strategies, Patterns, and Applications,
Prentice Hall, Englewood Cliffs, NJ, 1995.
127
Coad’s Object-Oriented Methodology Standard Sequ
Use four object model components (Problem Domain [PD],
Human Interaction [HI], Data Management [DM], and
System Interaction [SI]) to guide and organize the work.
For each of PD, HI, DM, and SI repeat the following:
1. Identify the information system’s purpose and features
2. Select the model component’s objects and organize
them by applying patterns
3. Establish responsibilities for model component’s
objects:
• what the object knows
• who the object knows
• what the object does
4. Work out model component’s dynamics using scenarios
Variation notes for
activities 2, 3 and 4:
1. They may be done
in any sequence
that is appropriate
2. One or more of them
may be omitted
3. One or more of them
may be done in parallel
4. Model components
may be done in any
order that is appropriate
Coad’s Object-Oriented Methodology Summar
Activities
1
Model
Component
Identify
Purpose
and
Features
2
Identify
objects
and
patterns
(behavior,
data)
3
4
Establish
object
responsibilities
Define
service
scenarios
(behavior,
data,
functions)
(behavior, data,
functions)
Problem Domain
(PD)




Human Interaction
(HI)




Data Management
(DM)








System Interaction
(SI)
 indicates that the activity has been performed for the model component
Iterative View of Coad’s
Methodology
Identify
Purpose and
Features
Identify
objects and
patterns
} One for each of:
• System Interaction
• Data Management
Establish
object
responsibilities
• Human Interaction
• Problem Domain
Define
service
scenarios
130
Spiral View of Coad’s
Methodology
Identify
Purpose and
Features
System Interaction
Data Management
Human Interaction
Problem Domain
(SI)
(DM)
(HI)
(PD)
Define
service
scenarios
Identify
objects and
patterns
Establish
object
responsibilities
131
Coad’s Object Model Components
Information System
Human Interaction
Problem Domain
Data Management
System Interaction
Note: PD, HI, and SI are similar to Smalltalk
programming language concept called
Model-View-Controller (MVC)
Model Components
• Problem domain -- directly correspond to the
problem being modeled
• Human interaction -- provide interface between
the PD objects and people
• Data management -- provide interface between
PD objects and a database or file management
system
• System interaction -- provide interface between
PD objects and other systems or devices
133
O-O Systems Analysis & Design Methodology
Coad’s Object-Oriented
Systems Analysis & Design
Notation*
* formerly, Coad and Yourdon
* based on Coad, P., North, D., and Mayfield M.,
Object Models: Strategies, Patterns, and Applications,
Prentice Hall, Englewood Cliffs, NJ, 1995.
134
Subject Matter Expert & Notation
• Can you draw a stick figure of a person?
• Can you draw a picture of an automobile?
• Can you draw a picture of the space shuttle?
• Can you draw a picture of an Oopsla?
• Why not?
• Subject Matter Expert (SME)
• Notation - symbols used to communicate
135
Coad’s Object Model Notation
model component
class with objects
class
136
Coad’s Object Model Notation
Attributes
{
Services
{
Member
memberNumber
firstName
lastName
telephone
address
city
etc...
checkOutVideo
checkInVideo
buyItem
etc...
Expanded view
of a class or
class with objects
into its three
sections:
top: Class Name
middle: attributes
bottom: services
137
Coad’s Object Model Notation
generalization-specialization
connection
whole-part
object connection
n-n
1
object connection
n
message
n
n
138
The Problem Domain
Object Model
“The Big Picture”
139
Video Store - Problem Domain (PD) Object Model
1-n
Inventory
1-n
SaleItem
RentalItem
Video
Transaction
1
Employee
n
1
0-1
n
1
1-n
StoreLocation
RentalTransaction
SalesTransaction
1-n
VCR
ConcessionItem
Game
Vendor
1-n
n
1
Member
n
PurchaseOrder
1-n
1
1
SaleRentalLineItem
1
1
POLineItem
1
Note: For simplification purposes, the attribute and service sections of classes and class-with-objects have been omitted fro
Inventory
barCodeNumber
description
qtyOnHand
price
cost
taxCode
orderInventory
inquireAboutAvailableInvento
ry
addNewInventoryItem
changeInventoryItemInformati
on
delete/RemoveInventoryItem
updateQuantity-On-Order
1-n
SaleItem
quantitySold
qtyOnHand
updateQuantitySold
updateInventoryQty-On-Hand
Video
Game
1-n
RentalItem
timesRented
dueDate
memberNumber
updateRentalInformation
ConcessionItem
VCR
PD Object Model with Attributes & Services
1 of 3
Transaction
transactionNumber
employeeNumber
transactionDate
transactionTime
Employee
1
n
employeeNumber
employeeName
employeePhone
positionCode
updateEmployeeInformation
1
payForTransaction
SalesTransaction
RentalTransaction
quantitySold
purchaseForSaleItems
0-1
memberNumber
rentAnItem
checking-inRentalItem
1-n
1
n
1-n
Member
memberNumber
creditCardNumber
memberName
creditCardExpireDate
memeberAddress
depositAmount
memberCity
overdueAmount
memberState
memberZipcode
memberPhone
acquireMembership
verifyMembership
updateCreditCardInformation
updateMembershipInformation
cancelMembership
updateOverdueAmount
determineIfDelinquent
n
1
1
SaleRentalLineItem
transactionNumber
barCodeNumber
price
salesTax
PD Object Model
with
Attributes &
1
2 of 3
Vendor
vendorNumber
vendorName
vendorAddress
vendorCity
vendorState
vendorZipcode
vendorPhone
vendorFaxNumber
addNewVendorInformation
changeVendorInformation
deleteVendor
provideVendorInformation
StoreLocation
1-n
storeNumber
address
city
state
zipcode
telephone
provideStoreInformation
n
1
PurchaseOrder
1-n
purchaseOrderNumber
purchaseOrderDate
purchaseOrderDueDate
purchaseOrderCancelDate
vendorNumber
1
createNewPurchaseOrder
deleteExistingPurchaseOrder
POLineItem
purchaseOrderNumber
barCodeNumber
quantityOrdered
itemCost
1
PD Object Model with Attributes & Services
3 of 3
Download