"OO Application Tool Methodology as Applied to Groupware/Workflow"

Preview:

Citation preview

Object Technology with Applications to Object Technology with Applications to GroupWare & WorkflowGroupWare & Workflow

Frank SingletarySystem Development Methodologies

Dr. Geoff Howard

AgendaAgenda

Introduction What is Object-Oriented Programming? Objects Messages Classes Traditional Software Development Methodology & Development Live Example Business Issues Standards Conclusion

What is Object-Oriented Programming?What is Object-Oriented Programming?

Object-oriented programming (OOP) is more a new way of looking at programming rather than a new manner of programming.

3 Key Attributes underlying Object 3 Key Attributes underlying Object TechnologyTechnology

ObjectsMessagesClasses

Objects DefinedObjects Defined

Definition:

An object is a grouping of data and logic to represent a real world item. Examples are employees, calculators, or a paycheck.

INGREDIENTS1 pkg. (8 oz) PHILADELPHIA Cream Cheese3 cups powdered sugar1 1/2 pkg. (12 oz) Baker's Semi-Sweet Baking Chocolate, melted1 1/2 tsp. vanilla

DIRECTIONSBeat cream cheese in large bowl with wire whisk or electric mixer until smooth. Gradually add sugar, beating until well blended.

Add melted chocolate and vanilla; mix well. Refrigerate about 1 hour.

Shape into 1-inch balls. Store in refrigerator. Makes about 5 dozen candies

Data

Logic

Chocolate Truffles

Example of Real World “Object”: A Recipe

Characteristics of Object TechnologyCharacteristics of Object Technology

ModularityReal World CorrespondenceLoose CouplingIncremental DeliveryReuse

Objects ExplainedObjects Explained

ModularityIn a PC system, every element is modular.

Real World CorrespondenceEach module has a single purpose and is easily explained.

Loose CouplingEach module doesn’t require the other to be a specific brand in order to work together.

Objects Explained (cont..)Objects Explained (cont..)

Incremental DeliveryCan use a subset of the modules now and add others later

ReuseEach module is created so that it can be reused in many different scenarios

Explaining Objects using a real world Explaining Objects using a real world example: A Home PCexample: A Home PC

A Home PC designed using “Objects”A Home PC designed using “Objects”

Example of Software “Objects”Example of Software “Objects”

In a software, data is represented by variables, and logic is performed by routines called “methods” (known as functions in traditional programming languages)

Methods VariablesGet_Name NamePrint_Appraisal Social Security #Compute_Salary AddressCalculate_Retirement Date of Hire

Salary

Employee

Methods VariablesPrintEmployee NameGetEmpBal Employee_AccountChargeDeptAcct Dept_BudgetPrintItenarary Travel_DatesMonthlyReports

Expense Report

Objects can contain other ObjectsObjects can contain other Objects

A computer’s system unit contains:

Motherboard

Expansion Board

Memory Chips

And other components!!

CompositionCompositionExample of a software object containing multiple objectsExample of a software object containing multiple objects

Composite objects are objects containing other objects

Objects contained within object are component objects

Composite object contains a reference (address) to component object

Expense ReportTrip AuthorizationMgt ApprovalItineraryTravel Receipts

Definition of MessagesDefinition of Messages

Definition:

A request from one object (sender) asking the second object (receiver) to perform one of its methods. The protocol for communication between objects; the mechanism to invoke behavior.

Example of message: E-mailExample of message: E-mail

To: FrankFrom: LarrySubject: Y2K Inventory

Please update your inventory list to include plant floor PC devices.

Sending ObjectReceiving Object

Method

MessagesMessages

A method that can be invoked by other objects

Methods and variables are private to object

Code sample:PrintEmployee(SS#)

Request Traveler's Name

---------------------------->Expense Report Employee

Definition of ClassDefinition of Class

Definition:

A template for a particular type of object; A grouping of similar objects so that the same logic and data can be shared.A specific object belonging to a class is called an instance.

Examples of ClassExamples of Class

Honda Accord Jaguar Saturn Coupe

Class : Automobile

Instance:

ClassesClasses

Objects grouped as a class

InheritanceWhen a class is a subset of another class it inherits all methods and variables

ClassMethods VariablesAssignManager ManagerPrepareBudget BudgetAppraisals Employees

SubClassMethods VariablesALL ABOVE PLUS ALL ABOVE PLUSCostReport DeptMgrMonthlEndClose DeptsActualsProductionForecast ProductionCount

Department

Financial Department

VariablesNameEmployee_BalanceDept_Budget

Travel_Dates

Expense Report

Frank R$0$5,00010/5/98 to 10/7/98

Sally M$125$75010/20/98 to 10/23/98

Larry L($150)($890)12/7/98 to 12/11/98

Instances of the Expense Report Class

Requirements for Information SystemsRequirements for Information Systems Complexity

SW requirements must match needs of business Flexibility

Adaptability to new platforms Responsiveness

Need to generate new apps (OOT, CASE tools) Quality

1. Absence of defects2. Fitness to purpose3. Usability

Traditional Application DevelopmentTraditional Application Development

Uses functional Decomposition as design technique

Final product is very specific to problem usually not portable

Tried and true method, easily understood by traditional programmers

Typical implementation of system is 20% of development life cycle

BusinessProblem

SoftwareSolutionX, Y, Z

SolutionTo Problem X

SolutionTo Problem Z

SolutionTo Problem Y

A, B, C

SolutionTo Problem A

SolutionTo Problem B

SolutionTo Problem C

Traditional Application Development (cont..)

Building Software Like HardwareBuilding Software Like Hardware

ClassesContains components representing business functions. Ex. Purchase order, expense report.

ModelsReusable models of business applications. Made up of classes. Ex. Customer billing, inventory control.

ApplicationsCode that performs business functions. Ex. Monthly cost reports, generate payroll

Methodologies For Object DevelopmentMethodologies For Object Development

OMT (Object Modeling Technique) OOSE (Object-Oriented Software Engineering) RDD (Responsibility-Driven Design) The Booch Method The Fusion Method UML (Unified Modeling Language) VMT (Visual Modeling Technique)

Object Oriented LanguagesObject Oriented Languages

PureBuilt from the ground up to be object oriented. Everything in it consists of objects, methods, and classes

Smalltalk JAVA

HybridAn existing programming language with extensions

C++ LotusScript

(LotusNotes)

An OOL is not absolutely necessary to implement OOP. An OOLenforces the constraints necessary to support OO programming and managethe mechanical tasks. It provides an environment in which OO programsneed to operate.

Object Oriented ModelingObject Oriented Modeling

Fundamental construct is the object Systems methodology using models organized

around real world concepts. Captures the logical objects, processes, and

business rules. Independent of a programming language Developed by James Rumbaugh and colleagues

at General Electric Research and Development Center

Model Based SystemsModel Based Systems

Software models (components) that represent structure and operations of business

Models of different components can be combined to create new components

AutoCADDrawing

Employees

Budget Report Training Class Bill of Materials

ExpenseReports

PressOperations

Shipping

Machine

Capital Projects

PurchaseOrders

ComputerWorkstation

Sample Business Objects

Manufacturing Plant

Object: Manufacturing Plant

ManufacturingPlant

Accounting Quality

Production

MaterialsHumanResourcesMantenance

MIS

Engineering

Objects of Manufacturing Plant

Accounting

AccountsPayables

HourlyPayroll

Budgets &Forecasts

CostAccountingAuditingComptroller's

Office

SalariedPayroll

AccountsReceivables

Objects of Accounting Department

Stages of Development for OMTStages of Development for OMT

Analysis System design Object Design Implementation

Developing an Expense Report using OMTDeveloping an Expense Report using OMT

Analysis1. Get receipts and forms2. Fill out multi-part form3. Manually calculate totals4. Make copies for yourself5. Send to your Boss for approval6. A week later your boss signs it7. It goes to Accounts Payable8. Accounting clerk re-checks all your figures9. Accounting sends it back because of missing receipts!10. You re-do all the previous steps and return it to Accounting11. Because of questionable charges your Boss’s Boss has to see it.12. It finally gets approved13. Finally 6 weeks later you get your check.

Benefits of Electronic FormsBenefits of Electronic Forms(Analysis cont..)(Analysis cont..)

Electronic forms are “intelligent”, identifying incomplete and incorrect entries before passing them to the next recipient

Electronic forms contain routing information, automatically handling exceptions

Electronic forms can proceed through a workflow in sequential order or parallel order

Electronic forms provide a level of security that paper cannot match

Additional Benefits of Electronic FormsAdditional Benefits of Electronic Forms(Analysis cont..)(Analysis cont..)

Improve business processes by reducing time to action, and ensuring quality and accuracy of data

Manager can review status and audit trail via the database

Helps identify bottlenecks and inefficiencies Reduce the cost of acquiring, storing and

managing paper forms

Problems with PaperProblems with Paper(Analysis cont..)(Analysis cont..)

Paper forms do not catch and correct errors Paper forms do not alert the recipient to incomplete fields Paper forms do not always include routing instructions Only one person can work on a paper form at a time Paper forms cannot guarantee confidentiality or protect

against forgery Paper forms spend non-value-added time in transit from

one recipient to the next Paper forms are misplaced, ignored, or destroyed

accidentally

Developing an Expense Report using OMTDeveloping an Expense Report using OMT

System Design

1. Employee requests authorization to go on business trip2. Manager approves3. Employee submits itinerary4. Employee returns from trip and fills out expense report5. Submits expense report to manager for approval6. Expense report sent to Accounting for processing

Developing an Expense Report using OMTDeveloping an Expense Report using OMT

Object Design

1. Employee requests authorization to go on business trip2. Manager approves3. Employee submits itinerary4. Employee returns from trip and fills out expense report5. Submits expense report to manager for approval6. Expense report sent to Accounting for processing

Methods VariablesPrintEmployee NameGetEmpBal Employee_AccountChargeDeptAcct Dept_BudgetPrintItenarary Travel_DatesMonthlyReports

Expense Report

Methods VariablesGet_Name NamePrint_Appraisal Social Security #Compute_Salary AddressCalculate_Retirement Date of Hire

Salary

Employee

Business Trip ManagerAuthorization

Itinerary AccountingApprovals

Processing

Developing an Expense Report using OMTObject design (cont..)

9 candidates for object development:

Example of using Lotus Notes to Create an employee Expense Report

Object Oriented TechnologyObject Oriented Technology

Benefits Reduces software

development costs Improves quality Easier maintenance

and modification

Costs Training Investment in new

technology Educating

management Costs of developing

future software components

Standardizing Object ManagementStandardizing Object Management

OMG (Object Management Group) organized in 1989 to define standards

CORBA (Common Object Request Broker Architecture)

OLE (Object Linking and Embedding)

Web SitesWeb Sites

OBJECT METHODOLOGIEShttp://www-cat.ncsa.uiuc.edu/~yoder/Research/objectMethod/#Object Modeling Technique

OBJECT ORIENTED PROGRAMMINGhttp://www.geocities.com/SiliconValley/Bay/1055/oop.htm

OBJECT MODELING TECHNIQUE - SUMMARY NOTE http://arkhp1.kek.jp/managers/computing/activities/OO_CollectInfor/Methodologies/OMT/OMTBook/OMTBook.html

QUESTIONS??

Recommended