TOOLS Europe ‘99 Tutorial Unleashing the Power of Distributed Enterprise Information Systems Trygve Reenskaug, Lasse Bjerde Numerica Taskon Oslo.

Download Report

Transcript TOOLS Europe ‘99 Tutorial Unleashing the Power of Distributed Enterprise Information Systems Trygve Reenskaug, Lasse Bjerde Numerica Taskon Oslo.

TOOLS Europe ‘99 Tutorial
Unleashing the Power
of Distributed
Enterprise Information
Systems
Trygve Reenskaug, Lasse Bjerde
Numerica Taskon
Oslo
Legal Notice
This presentation is copyright
©1998 Trygve Reenskaug, Lasse Bjerde
Oslo, Norway.
All rights reserved.
Unauthorized reproduction prohibited.
TOOLS '99
©1999 Trygve Reenskaug, Lasse
The Connected Enterprise
Content and Communication
Digital
Map
Census
Data
Police
Records
Police
Dispatcher
TOOLS '99
©1999 Trygve Reenskaug, Lasse
House
Drawings
Aerial
Photos
Advantages
Communication-Centered paradigm
• Unlimited Scaling
• Distributed Information Ownership
• Support people’s Tasks
• Flexible Consistency Requirements
TOOLS '99
©1999 Trygve Reenskaug, Lasse
The Real Challenges
The
Connected
Organization
Effective,
Enjoyable
and
Instructive
Tools
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Effective
Partitioning
of
Information
Services
Exercise
Assuming that a great variety of
information services are available:
List users who will benefit from
using this new technology in
performing their tasks.
TOOLS '99
©1999 Trygve Reenskaug, Lasse
The Short-Term Problems
GUI
Java Beans
Business Logic
Enterprise Java Beans
Database
Multithreading/Transactions/Security/…
Enterprise Java Beans
Middleware (distribution)
Java Remote Method Invocation
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction: The connected enterprise
• The powerful communication paradigm
• Divide and conquer.
Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction: The connected enterprise
• The powerful communication paradigm
¤ The new paradigm
¤ An Applet built with Java Beans
¤ Remote Method Invocation (RMI)
• Divide and conquer.
Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
CPU-Centered
paradigm
Output
Input
Central
Processing
Unit
FORTRAN
Algol 60
Tape
Hardware
TOOLS '99
Software
©1999 Trygve Reenskaug, Lasse
Storage-Centered
paradigm
Input
App.1
Output
Shared
database
Central
Processing
Unit
Memory
App.3
Tape
App.4
DB Schema language
e.g. Entity-Relation
e.g. NIAM
Disk
Hardware
TOOLS '99
App.2
©1999 Trygve Reenskaug, Lasse
Software
Communication-Centered
Output
Tape
Central
Processing
Unit
Disk
Object 3
Object 2
Object 4
Memory
Hardware
TOOLS '99
Object 1
Information Bus
Input
Communication Bus
paradigm
Composition tools.
Languages ????
©1999 Trygve Reenskaug, Lasse
Software
The communication age
is based on objects
Object-B
IN
IN
OUT-B
OUT-C
OUT-C
Methods Variables
Object-C
Methods Variables
IN
Object-A
Message (operation)
triggers method
causes response
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Methods Variables
Tutorial plan
• Introduction: The connected enterprise
• The powerful communication paradigm
¤ The new paradigm
¤ An Applet built with Java Beans
¤ Remote Method Invocation (RMI)
• Divide and conquer.
Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
App. for booking meeting rooms
A demo of our illustrative example
TOOLS '99
©1999 Trygve Reenskaug, Lasse
The Objects and Interfaces
of the simple Applet solution
WEB
Browser
Applet
e.g., init(); paint(Graphics);
AppletContext
e.g., getImage(URL)
RoomBooker
e.g., getRooms(); reserve(...);
BookingApplet
(end user tool)
Booking
(business logic)
JComboBox
e.g., addItem(...); getSelectedItem();
Room
Chooser
ActionListener
e.g., actionPerformed(ActionEvent)
Java Beans
TOOLS '99
©1999 Trygve Reenskaug, Lasse
RoomBooker
interface
package EJBWorkshop.Booking;
import javax.ejb.*;
import java.util.*;
public interface RoomBroker {
public void reserve
(String room, String username, Date date
(
, short startIntervalNo, short length);
);
public void release
(String room, String username, Date date
(
, short startIntervalNo, short length);
);
public Vector getReservations
(
(Date
theDate, String room);
);
}
public Vector getRooms();
TOOLS '99
©1999 Trygve Reenskaug, Lasse
The Communication Paradigm
with objects
WEB
Browser
Code
is
invisible!
The object
+ has responsibility
+ knows its collaborators
+ is robust
Nobody knows everything!
BookingApplet
(end user tool)
Room
Chooser
Booking
(business logic)
Objects
References
Interfaces
are visible!
Java Beans
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction: The connected enterprise
• The powerful communication paradigm
¤ The new paradigm
¤ An Applet built with Java Beans
¤ Remote Method Invocation (RMI)
• Divide and conquer.
Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Java RMI
Remote Method Invocation
BookingApplet
(end user tool)
Room
Chooser
Client
Information Bus
WEB
Browser
• Move from centralized
to distributed control
• Move from closed
to open systems
• Catch new exceptions
Booking
(business logic)
Server
Java Beans
TOOLS '99
©1999 Trygve Reenskaug, Lasse
RoomBooker
interface
package EJBWorkshop.Booking;
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
public interface RoomBooker extends Remote {
public void reserve
(String room, String username, Date date
(
, short startIntervalNo, short length)
)
throws RemoteException;
public void release
(String room, String username, Date date
(
, short startIntervalNo, short length)
)
throws RemoteException;
public Vector getReservations
(
(Date
theDate, String room )
throws RemoteException;
}
public Vector getRooms(
throws RemoteException;
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Critical Code Fragments
Server Side
public class BookingServer
extends UnicastRemoteObject
implements RoomBooker{
public static void main (String args[])
throws RemoteException {
System.setSecurityManager(new RMISecurityManager());
try {
Booking serv = new BookingServer();
Naming.rebind(”BookingServer", serv);
} catch (Exception e) {
System.out.println("Server error: " + e.getMessage());
e.printStackTrace();
}
System.out.println("Server started.");
}
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Critical Code Fragments
Client Side
public class BookingApplet extends JApplet {
private RoomBooker serv;
…
private RoomBooker server() {
if (serv == null) {
try {
serv = (RoomBooker) Naming.lookup
( "//” + this.getCodeBase().getHost()
+ "/BookingServer” );
} catch (Exception e) {
System.out.println(”Get_Server_err: " + e.getMessage());
e.printStackTrace();
return;
}
}
return serv;
}
TOOLS '99
©1999 Trygve Reenskaug, Lasse
RMI middleware
(1 second can grow to 3 hours!!)
Booking
Stub
(a proxy)
The
Booking
object
Information Bus
The
BookingApplet
object
Booking
Skeleton
(a proxy)
Java RMI Services (or CORBA or COM)
TCP/IP - Guaranteed end-to-end data stream
Physical communication (ISDN/Ethernet/….)
Client
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Server
What we have learned
• Shared server containing
business logic and information
• Middleware takes care of
communication details
• User interface adapted to task
Many-to-many relationship
between clients and servers
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction
• The powerful communication paradigm
• Separation of concern with role
models, responsibilities, and
interfaces
• Constructing software with components
• Conclusion.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction
• The powerful communication paradigm
• Separation of concern with role models,
responsibilities, and interfaces
– Role-modeling
– Synthesis
• Constructing software with components
• Conclusion.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Method overview
Processes
Deliverables
Concepts/
Notationand
/ techniques
Technology
Reuse
Organizing
People
Concepts/ Notation / techniques
Reuse
Valuechain
Object-oriented system
A system that consists of several objects who knows
other objects, and “talks” to each other through message
passing. Such a system could be the Internet,
organisations, and programs.
The Object Model Abstraction
Mental model
System
aRealWorldPhenomena
Manifest Model
•
•
•
•
A model is created for a purpose
A model is never complete
We think in multiple models
The world is rarely hierarchical
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Objects
“To my taste the main characteristic of intelligent thinking is that
one is willing and able to study in depth an aspect of one's
subject matter in isolation, for the sake of its own consistency, all
the time knowing that one is occupying oneself with only one of
the aspects. ...
- Dijkstra, A discipline of programming, 1976
last chapter, In retrospect
TOOLS '99
©1999 Trygve Reenskaug, Lasse
… Such separation, even if not perfectly possible, is yet the only
available technique for effective ordering of one's thoughts that I
know of. ...
- Dijkstra, A discipline of programming, 1976
last chapter, In retrospect
TOOLS '99
©1999 Trygve Reenskaug, Lasse
… I usually refer to it as ‘separation of concerns’, because one
tries to deal with the difficulties, the obligations, the desires, and
the constraints one by one. ...
- Dijkstra, A discipline of programming, 1976
last chapter, In retrospect
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Roles - Objects
• Role is what an object does in a
context of other objects
• Instead of trying to describe
everything an object can do, we start
with the roles an object can play
• At a later stage we merge these roles
together into full-fledged objects
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Divide and conquer
Synthesis
Separation of concern
Goal
Implementation
model
Use Cases
Collaborations
(Role models)
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Role models
aRealWorldGoal
anObjectModel
RoleModels
anImplementedSystem
• Models a structure of collaborating objects
with static and dynamic properties.
• Covers a particular area of concern for the
structure of objects.
• Each role has a responsibility (attributes and
actions) in the structure of objects.
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Analysis steps
• Determine the area of concern
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Determine the area of concern
Write a free form (prose) description of the issue
under consideration
The area of concern is the communication between
the Person in need of a meeting room and the
RoomBooker in our organization.
We focus on the actual bookings, and do not model
details about other aspects, such as meeting agenda,
transactions, updating etc.
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Analysis steps
• Determine the area of concern
• Understand the problem and
identify the nature of the objects
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Understand the problem and
identify the nature of the objects
Identify the user community and understand their
requirements. Identify the nature of the active participants.
Ruth
(President)
Adam
(Chief Accountant)
Eve
(Software manager)
Beth
(Technical author)
Joyce
(Secretary)
Ruth
(Programmer)
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Pete
(Marketing manager)
Joyce
(Sales)
Ann
(Secretary)
OOram Analysis steps
• Determine the area of concern
• Understand the problem and
identify the nature of the objects
• Determine environment roles
and stimulus / response
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Determine environment roles
and stimulus/response
Describe the messages that are sent from the environment.
Also describe the response; The overall effect of the system.
Stimuli
System
Response
Stimulus message
Response message
Comments
Project Review
Meeting room reserved
The Project Manager is
having a meeting and the
Booker reserves the room
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Analysis steps
• Determine the area of concern
• Understand the problem and
identify the nature of the objects
• Determine environment roles
and stimulus / response
• Identify and understand the roles
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Identify and understand the roles
Separate and idealize the tasks and
responsibility of the actors.
Ruth
(President)
Adam
(Chief Accountant)
1
Eve
(Software manager)
Beth
(Technical author)
2
Joyce
(Secretary)
Pete
(Marketing manager)
Joyce
(Sales)
Ruth
(Programmer)
3
Role
Explanation
Project Reviewer
Project Manager
Booker
The person who is supervising a project
The person who is setting up a meeting
The person who books a meeting room
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Ann
(Secretary)
OOram Analysis steps
• Determine the area of concern
• Understand the problem and
identify the nature of the objects
• Determine environment roles
and stimulus / response
• Identify and understand the roles
• Determine the message
sequences
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Determine the message
sequences
For the stimuli and responses
create a model showing the
message sequences and/or
tasks performed , and the
corresponding work process.
Project
reviewer
Project
Manager
Booker
Tool
setUpMeeting
Room
Date
checkaAvailability
checkaAvailability
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Determine the message
sequences
Project
reviewer
Project
Manager
Project
review
Booker
For the stimuli and responses
create a model showing the
message sequences and/or
tasks performed , and the
corresponding work process.
Tool
Project
meeting
setUpMeeting
<Determine OK>
Room
Request
checkaAvailability
Room
Date
reserveRoom
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Analysis steps
• Determine the area of concern
• Understand the problem and
identify the nature of the objects
• Determine environment roles
and stimulus / response
• Identify and understand the roles
• Determine the message
sequences
• Determine the collaboration
structure
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Determine the collaboration
structure
Show the roles in a structure of collaborating objects.
Project
reviewer
Project
Manager
Booker
Tool
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Analysis steps
• Determine the area of concern
• Understand the problem and
identify the nature of the objects
• Determine environment roles
and stimulus / response
• Identify and understand the roles
• Determine the message
sequences
• Determine the collaboration
structure
• Determine the interfaces
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Determine the interfaces
Determine the messages that each role may send to each
of its collaborators.
Project reviewer > Project Manager
setUpMeeting
Project
reviewer
Project
Manager
Booker > Tool
checkaAvailability
Project Manager > Booker
checkaAvailability
Booker
Tool
TOOLS '99
©1999 Trygve Reenskaug, Lasse
DEMO
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction
• The powerful communication paradigm
• Separation of concern with role models, responsibilities,
and interfaces
– Role-modeling
– Synthesis
• Constructing software with components
• Conclusion.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Synthesis
• Describe other phenomena the objects is to
be found, and then merge them together into
complete descriptions
• One or more of the earlier discovered
objects will also be found in other relevant
phenomena
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Objects play several roles
ProjectManager
ProjectManager
ProjectParticipant
ProjectParticipant
Lasse
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Synthesis of roles
message m1
a1
message m3
method M3
method M1
message m2
message m4
a1
a2
message m1
message m3 method M1
message m2
message m4
TOOLS '99
a2
©1999 Trygve Reenskaug, Lasse
Synthesis of UserBooking and
DistributedBooking
EnterpriseBooking
Project
reviewer
Project
Manager
Booker
Tool
ComputerBooking
BookingTool
RoomBooker
CompositeBooking
Project
reviewer
TOOLS '99
Project
Manager
Booker
©1999 Trygve Reenskaug, Lasse
BookingTool
RoomBooker
DEMO
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction: The connected enterprise
• The powerful communication paradigm
• Divide and conquer.
Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
• Summary:
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction
• The powerful communication paradigm
• Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
¤ The component
- a powerful application of objects
¤ Java Beans
¤ Enterprise Java Beans (EJBs)
¤ Organizing development with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
What is a Component?
• A Component is a (reusable) object
• A Component is an object playing
standardized roles within a container
• A component does not know its
clients
• A component is reused by cloning
• Tools are used to compose systems
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Why use components
Use components to
• Avoid coding
to save time
• Avoid coding
to increase quality
• Use tools
to increase your productivity
• Get remote communication,
transactions, security, etc.
for free
TOOLS '99
©1999 Trygve Reenskaug, Lasse
The competing technologies
CORBA™ Object Management Group (OMG)
Public standards
Java™
SUN Microsystems
Build once, run anywhere
COM™
Microsoft
Dominating on desktops
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Java Bean
• User Interface
• Properties
• Events
• Composition
Information Bus
Component standardization
examples
Enterprise Java Bean
• Naming
• Persistence
• Transactions
• Security
• Load sharing
Client
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Server
Tutorial plan
• Introduction
• The powerful communication paradigm
• Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
¤ The component
- a powerful application of objects
¤ Java Beans
¤ Enterprise Java Beans (EJBs)
¤ Organizing development with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Java Beans characteristics
Introspection
a
Java
Bean
Events
Messages
Properties
TOOLS '99
©1999 Trygve Reenskaug, Lasse
GUI by composition
Java Beans and SUN BeanBox ®
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Compose GUI with Java Beans
and Symantech Visual Café ®
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Compose GUI with Java Beans
and IBM VisualAge®
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Bean object plays
several roles
Composer
Use Case
Run-time
display
Use Case
BeanBox
Booking
Applet
Bean Object
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Two stages
in the Bean Life Cycle
Property
Editor
Bean
Canvas
Assembler
Tool
Assembler
Collaboration
(Sketch)
Release
Button
TOOLS '99
Master
Bean
Runtime
Collaboration
Calendar
Reserve
Button
Bean
Palette
Booking
Applet
Room
Chooser
©1999 Trygve Reenskaug, Lasse
Booking
Tutorial plan
• Introduction
• The powerful communication paradigm
• Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
¤ The component
- a powerful application of objects
¤ Java Beans
¤Enterprise Java Beans (EJBs)
¤ Organizing development with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Enterprise Java Bean (EJB)
Overview
Client
Container:
Multithreading
Transactions
Security
Persistence
TOOLS '99
EJB
EJB:
Simple
Single user
Container
©1999 Trygve Reenskaug, Lasse
EJB Server
The Bean and
Enterprise Java Bean objects
WEB
Browser
Information Bus
Applet
(End user tool)
Name
Server
Booking
Home
Booking
Object
4: getRooms();
Room
Chooser
Booking
Bean
5: getRooms();
Java Beans
TOOLS '99
Factory object
©1999 Trygve Reenskaug, Lasse
The Bean and
Enterprise Java Bean objects
WEB
Browser
Room
Chooser
Java Beans
TOOLS '99
Information Bus
Applet
(End user tool)
Name
Server
Booking
Home
Factory object
Could be Entity Bean
Booking
Object
Booking
Bean
Session Bean
Powerful tools
Clear abstractions
©1999 Trygve Reenskaug, Lasse
DataStore
RoomBooker
(business) interface
package EJBWorkshop.Booking;
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
public interface Booking extends EJBObject {
public void reserve
(String room, String username, Date date
, short startIntervalNo, short length)
throws RemoteException;
public void release
(String room, String username, Date date
, short startIntervalNo, short length)
throws RemoteException;
public Vector getReservations
(Date theDate, String room )
throws RemoteException;
}
public Vector getRooms(
throws RemoteException;
TOOLS '99
©1999 Trygve Reenskaug, Lasse
RoomBookerHome
(factory) interface
package EJBWorkshop.Booking;
import javax.ejb.*;
import java.rmi.*;
public interface BookingHome
extends EJBHome
{
Booking create()
throws
CreateException, RemoteException;
}
}
TOOLS '99
©1999 Trygve Reenskaug, Lasse
RoomBookerBean
class
public class RoomBookerBean implements SessionBean {
protected SessionContext ctx;
// Container managed beans
public void setSessionContext(SessionContext ctx)
throws RemoteException {
this.ctx = ctx;
}
public void ejbCreate()
throws CreateException, RemoteException {
}
public void ejbRemove()
throws RemoteException {
}
// RoomBooker interface operations
public void reserve {… } etc.
}
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Exercise
Assuming that it is straight forward to
program, install and assemble business
components:
Identify useful and interesting
business components
and
discuss their mutual dependencies
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction
• The powerful communication paradigm
• Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
¤ The component
- a powerful application of objects
¤ Java Beans
¤ Enterprise Java Beans (EJBs)
¤Organizing development with
components
• Conclusion.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Method overview
Organizing
Processes and Deliverables
Organizing
People
Technology
Value chain
Concepts/ Notation / techniques
Organizing
People
Reuse
Value chain
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Component Value Chain
Distinguishing Responsibility
Application Assembler
Empower user
Component Deployer
Limit choice & make available
Component Provider
Create capability
Component Container Provider
Provide tools and service environment
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Component Value Chain
Distinguishing Competence
Application Assembler
User expert
Component Deployer
Production Engineer
Component Provider
Domain expert
Component Container Provider
Systems programmer
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Component Value Chain
Distinguishing Tools
Application Assembler
Visual programming & Java
Component Deployer
Component installation tool
Component Provider
UML Collaboration & Java & DB Design
Component Container Provider
Full UML & Java & C++
TOOLS '99
©1999 Trygve Reenskaug, Lasse
OOram Method overview
Processes and Deliverables
Processes and Deliverables
Processes and Deliverables
Technology
Concepts/ Notation / techniques
Organizing
People
Reuse
Value chain
TOOLS '99
©1999 Trygve Reenskaug, Lasse
How to provide new functionality
Consider
Use Cases
Consider business
Components
Architecture
(OOram analysis)
Cost/Benefit
analysis
Study
Develop
GUI
Components
Construct
TOOLS '99
Repeat Studies.
Choose
best solution
Develop
Business
Components
Assemble
©1999 Trygve Reenskaug, Lasse
Tutorial plan
• Introduction: The connected enterprise
• The powerful communication paradigm
• Divide and conquer.
Separation of concern with role models,
responsibilities, and interfaces
• The Lego idea.
Constructing software with components
• Summary.
How do we get from here to there?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Distributed Systems
What you get
•Unlimited scaling
•Distributed ownership
•Information partitioning
•Specific task support
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Distributed Systems
How you do it
• Think in terms of objects, their
responsibilities and
collaboration.
• Think in terms of open systems,
no main program.
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Component-based development
What you get
• Build by composing library objects,
avoid coding.
• Leverage infrastructure mechanisms
(transactions, security, persistence,…)
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Component-based development
How you do it
• Think in terms of objects, their
responsibilities and
collaboration.
• Penetrate vendor fog - find
essentials
(Objects and interfaces)
• Adapt to new layers in value
chain
TOOLS '99
©1999 Trygve Reenskaug, Lasse
The main problems
We spend too much time and effort
on low-level mechanics.
Current offerings are NOT:
• Easy and intuitive to use
• Smooth development platforms
• Reliable
• Secure
• Extensible
TOOLS '99
©1999 Trygve Reenskaug, Lasse
How do we get from here to there?
• Focus on objects
Classes are implementation details
• Learn technology
Java + CORBA + Web + ...
• Do small, but significant project
Illustrating visions
• Plan large scale introduction
What are the information services?
What are the Areas of Concern?
TOOLS '99
©1999 Trygve Reenskaug, Lasse
Distributed systems
Go home and
do it!
http://www.ifi.uio.no/~trygve
TOOLS '99
©1999 Trygve Reenskaug, Lasse