AN OBJECT-ORIENTED SYSTEMS ANALYSIS AND DESIGN METHODOLOGY
95
SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
Analysis
Planning Feasibility Study (optional) Requirements Determination
Conceptual
Design
Physical Design Construction and/or Purchase (prototype) Training Conversion - old to new Implementation Evolution - maintenance &
Design
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- now) Methodology (1950s
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, Grid Charts Interviews English Narrative, Playscript, 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 Diagram Data Dictionary, Interviews, Data Structure Diagrams, EntityRelationship Diagrams User Reviews, JAD sessions Decision Tree/Table, Structured English, Structure Charts, Warnier/Orr 102 Diagram
Monthly Account Statements
New or Modified Monthly Statement
(adapted from Systems Analysis and Design Methods, 4th Edition, Whitten and Bentley, McGraw-Hill, 1998)
Prior Monthly Statement
Bank
Monthly Statement
Reconcile Account Balances
Transaction
Creditor
Bill Current Balance
Account Balance
Pay a Bill
Account Transactions
Payment
Bank Accounts
Modified Balance Payment Modified Balance
Account Transactions
Deposit
Withdraw Funds from an Account
Withdraw or transfer Pay
Deposit Funds into an Account
Employer 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 has placed
ORDER Order Number (PK) Order Date Order Total Cost Customer Number (FK)
sold
INVENTORY PRODUCT Product Number (PK) Product Name Product Unit of Measure Product Unit Price sold as
ORDERED PRODUCT 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 datas 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 Area Analysis, Process Model Business Area Analysis, EntityRelationship Diagrams Brainstorming
106
Interviews, User Reviews, JAD Sessions,
Business Systems Design
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 Model Object Model Attributes Interviews, 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
2 eggs 4 cups flour 1 cup milk 1 cup sugar etc.......
cake
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
Person
Student
Faculty
Staff
looks behavior attitudes etc...
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
under similar circumstances
crime scene #1 crime scene #n
115
Billing Statement
crime scene #2
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
Two examples
PRINT PRINT PRINT
TEXT object
25000 20000 B LUE S KY A IR LINE S Sales Report January B LUE S KY A IR LINE S Sales Report February
GRAPH object IMAGE object
15000 10000 5000 S o u th W e st 0 N o r th E ast
Object #1 Object #2 Object #3
Add
PO object
= add a line item to the PO = increase $ Amount Balance = hire a new employee
Add Add
Account object Department object
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...
Groups & Members
Wholes and Parts
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 none
120
Software: Chips Components Controls Models
Reuse
Software Reuse Costs and Payoffs
Orenstein, D. Code reuse: Reality doesnt 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 Problem
Data Model versus Function Model Analysis to Design Transition Maintaining Source Code
122
Function Models
System Behavior
Data Models
North Rim of the Grand Canyon
South Rim of the Grand Canyon
Colorado River
VVVVVVVVVVVV
Classic Software Development Problem #1: Multiple Models
Analysis Models
Design 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
Coads 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
Coads Object-Oriented Methodology Standard Seque
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 systems purpose and features 2. Select the model components objects and organize them by applying patterns 3. Establish responsibilities for model components objects: what the object knows who the object knows what the object does 4. Work out model components 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
Coads Object-Oriented Methodology Summary
Activities
1 2
Identify objects and patterns (behavior, data)
3
Establish object responsibilities (behavior, data, functions)
4
Define service scenarios (behavior, data, functions)
Model Component
Problem Domain (PD) Human Interaction (HI) Data Management (DM) System Interaction (SI)
Identify Purpose and Features
indicates that the activity has been performed for the model component
Iterative View of Coads Methodology
Identify Purpose and Features
Identify objects and patterns
} One for each of:
System Interaction Data Management Human Interaction Problem Domain
Establish object responsibilities
Define service scenarios
130
Spiral View of Coads Methodology
Identify Purpose and Features
System Interaction Data Management Human Interaction Problem Domain (SI) (DM) (HI) (PD)
Identify objects and patterns
Define service scenarios
Establish object responsibilities
131
Coads 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
Coads 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
Coads Object Model Notation
model component
class with objects
class
136
Coads Object Model Notation
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
Attributes
{
{
Services
137
Coads Object Model Notation
whole-part object connection
n-n
generalization-specialization connection
object connection n n
message
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
Game
ConcessionItem
VCR
Transaction
1 n
Employee
1 1-n
StoreLocation
SalesTransaction 1-n 0-1 n
RentalTransaction 1 n 1-n
Vendor n 1 PurchaseOrder 1-n
Member
SaleRentalLineItem
1 POLineItem 1
Note: For simplification purposes, the attribute and service sections of classes and class-with-objects have been omitted from
Inventory
1-n
barCodeNumber description qtyOnHand price cost taxCode orderInventory inquireAboutAvailableInvento ry addNewInventoryItem changeInventoryItemInformati on delete/RemoveInventoryItem updateQuantity-On-Order
1-n
quantitySold qtyOnHand
SaleItem
RentalItem
timesRented dueDate memberNumber updateRentalInformation
updateQuantitySold updateInventoryQty-On-Hand
Video
Game
ConcessionItem
VCR
PD Object Model with Attributes & Services
1 of 3
Transaction
transactionNumber employeeNumber transactionDate transactionTime
1 n
employeeNumber employeeName employeePhone positionCode updateEmployeeInformation
Employee
payForTransaction
quantitySold purchaseForSaleItems
SalesTransaction
0-1 n 1-n
RentalTransaction
memberNumber rentAnItem checking-inRentalItem
1-n
Member
memberNumber creditCardNumber memberName creditCardExpireDate memeberAddress depositAmount memberCity overdueAmount memberState memberZipcode memberPhone acquireMembership verifyMembership updateCreditCardInformation updateMembershipInformation cancelMembership updateOverdueAmount determineIfDelinquent
1
transactionNumber barCodeNumber price salesTax
SaleRentalLineItem
1
PD Object Model with Attributes &
2 of 3
1-n
storeNumber address city state zipcode telephone provideStoreInformation
StoreLocation
vendorNumber vendorName vendorAddress vendorCity vendorState vendorZipcode vendorPhone vendorFaxNumber addNewVendorInformation changeVendorInformation deleteVendor provideVendorInformation
Vendor
n 1
PurchaseOrder
1-n
purchaseOrderNumber purchaseOrderDate purchaseOrderDueDate purchaseOrderCancelDate vendorNumber createNewPurchaseOrder deleteExistingPurchaseOrder
POLineItem
purchaseOrderNumber barCodeNumber quantityOrdered itemCost
PD Object Model with Attributes & Services
3 of 3