"oo application tool methodology as applied to groupware/workflow"
TRANSCRIPT
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??