No Slide Title - University of Connecticut
Download
Report
Transcript No Slide Title - University of Connecticut
The CT Insurance Department Project
CSE300
Prof. Steven A. Demurjian, Sr.
Computer Science & Engineering Department
The University of Connecticut
191 Auditorium Road, Box U-155
Storrs, CT 06269-3155
[email protected]
http://www.engr.uconn.edu/~steve
(860) 486 - 4818
CTINS-1.1
Overview of Presentation
CSE300
Overview of CT Insurance Project - Concepts
A Quick Review of Java
Software Engineering and Architectural Issues
Language and Database
Evaluation Tools (Design & Development)
Software Architectural Structure
Design Alternatives and Tradeoffs
Applet vs. Application
RMI for System Interactions
Documentation Standards and Design Models
Example GUI/System Functionality
Summary
CTINS-1.2
The CT Insurance Department Project
CSE300
Purposes
Upgrade Computing Environment to 21st
Century Technologies
Support all Existing Capabilities
Add New Functionality that Provide More
Opportunities for Personnel to Perform Their
Jobs in a Cost Effective Manner
Institute Philosophy that Promotes Future
Improvements and Extension to eCommerce
Partnership of
CT Insurance Department Personnel
UConn’s Computer Science & Engrg. Dept.
GentronicsWang Corporation
Merrill Clark Corporation
CTINS-1.3
Software Architectural Structure
A First Licensing Prototyping
Initial Data
Entry Operator
(Scanning &
Posting)
Advanced Data
Entry
Operators
Analyst
Manager
CSE300
10-100MB Network
Document
Server
Stored
Images/CD
Database
Server
Running
Oracle
RMI Registry
RMI Act.
Obj/Server
RMI Act.
Obj/Server
Functional Server
CTINS-1.4
Business Process Model:
Scanning and Initial Data Entry
DB
CSE300
DB
Historical Completed
Records Applications
Licensing
DB
Supervisor
Review
Scanner
DB
..
Licensing
Division
Scanning
Operator
Stored
Images
Licensing Division Printer
Data Entry Operator
DB
Basic
Information
Entered
New Licenses
New Appointments
FOI
Letters (Request
Information, etc.)
CTINS-1.5
Software Engineering and
Architectural Issues
CSE300
Java is Emerging Programming Language of
Choice for Majority of Software Development
Distributed Internet-Based Applications
Legacy/COTS Integration
General-Purpose, Single-CPU Development
Specifically Targeted for eCommerce
Oracle will be Database System Platform
Proven System with Long, Stable History
Underlying Relational Database Management
is Workhorse of Industrial Applications
Ability to Interact with Existing and Emerging
Technologies
Still to be Determined Technologies for Document
Scanning and Storage
CTINS-1.6
Software Engineering and
Architectural Issues
CSE300
Design and Development Tools
GDPro vs. Paradigm vs. Rose vs. Together/J
Vis. Café v. Jbuilder v. Jdeveloper v. WebDB
Software Architectural Structure
Design Alternatives and Tradeoffs
Applet vs. Application
Relevant Issues for Both
Insurance Agents vs. Department Employees
Designing for Today and Tomorrow
Software Engineering Process
Documentation for Users: Contract
Documentation/Design Models for Developers
Standards for Developers: Maintenance
CTINS-1.7
Design and Development Tools
CSE300
GDPro vs. Paradigm vs. Rose vs. Together/J
What are Advantages of Each?
What are Drawbacks of Each?
What are Documentation Capabilities of Each?
Integration of UML Diagrams
Cost vs. Support vs. Training
Visual Café v. Jbuilder v. Jdeveloper v. WebDB
What is Best Tool for Rapid GUI Prototyping?
What is Best Tool for Non-GUI Client Code?
What is Best Tool for RMI/Servlet Code?
What is Best Tool for Database Server Code?
Impact of Tool Choice on Long Term
Maintenance/Evolution - re. Ins. Agent GUI
CTINS-1.8
UML Design Tools
The Players
CSE300
GDPro 3.2
Advanced Software Technologies Inc.
www.advancedsw.com
Paradigm Plus Enterprise Edition 3.6
Computer Associates International
www.cai.com
Rational Rose 98 Enterprise Edition (August 98)
Rational Software Corporation
www.rational.com
Together/J Version 3.0, Developer Edition
TogetherSoft LLC
www.togethersoft.com
CTINS-1.9
UML Design Tools
The Evaluators
CSE300
Scott Craig, Graduate Student, UConn
Strong Background in UML
Long-Time User of Rational Rose
Steven A. Demurjian, Professor, UConn
Software Engineering/Object-Oriented
Researcher
Minimal Experience with Rational Rose
Earl DuBack, Migration Facilitator Manager, CT
Insurance Dept.
Significant Expertise with Numerous Design
and Documentation Methods
Minimal Experience with UML
CTINS-1.10
Comparing UML Design Tools
GDPro and Paradigm Plus
CSE300
Drawbacks of Both:
Awkward to Learn and Use
Neither Provided a Hierarchical View of the
Packages in the Application being Modeled
Hierarchical View Akin to File Hierarchy/Explorer
Necessary to Organize Design into Units
Supports Concurrent Design by Team Members
Facilitates Transition to Implementation
Minimal Code Editing/Generation Capabilities
No Round-Trip Engineering
S. Craig Found Both Difficult to Use Given his
Experience with Rational Rose
Overall, Lacking in Key Facets which are Critical
to Support the Goals of Our Project
CTINS-1.11
Comparing UML Design Tools
Rational Rose
CSE300
Was Expected to be Chosen Tool
Familiarity of Tool with Numerous Team
Members
Rational Influence re. Three Amigos (Booch,
Rumbaugh, Jacobson) who Defined UML
Long Established Product Commercially
Utilized Throughout Industry/Academic/Gov.
But, Significant Drawbacks
Round-Trip Engineering Lacking
Minimal Java Support
JDK 1.1.6 Can be Loaded into Rose
Efforts with JDK 1.2 Unsuccessful
CTINS-1.12
Comparing UML Design Tools
Rational Rose
Significant Drawbacks - Continued
Limited to Design and Documentation
No Support to Edit Generated Code within Rose
Would Require Extensive Bookkeeping for
Migrating Code Changes to Design and Vice-Versa
CSE300
Some Rose Diagrams Violated UML Standard
Dependencies Among Use-Cases Not Allowed
To Achieve, Utilize Generalization and Stereotype
with <<include>> and <<extend>>
Awkward to Use and Counter-Intuitive
Overall, Despite S. Craig’s History with Rose, the
Tool was Inadequate as Compared to Together/J
CTINS-1.13
Comparing UML Design Tools
Together/J
CSE300
Key Benefits and Features:
Integrated Java Code Editor with UML
Diagrams
Changes to Code Immediately Propagate to UML
Diagrams
Changes to Diagrams Immediately Propagate to
Code
Changes to Code in External Tool (Visual Café) are
Reflected in UML Diagrams after File Save
Support for Round-Trip Engineering
As Mentioned in Above Change Propagation
Ability to “Load” Java Source Code Not Created in
Together/J and Tool Generates UML Diagrams
CTINS-1.14
Comparing UML Design Tools
Together/J
Key Benefits and Features:
Hierarchical View of Application
Similar Capability to Rational Rose
Allows Modularization of UML Design
CSE300
Integration with JDK 1.2.2
Ability to Load Zip/JAR File to Bring in All JDK
1.2.2 Classes and APIs
UML Designs can Utilize APIs/Classes
Simplifies Transition to Software Development by
Allowing Specifics to be Included
For Example, GUI Classes, JDBC Interactions, etc.,
can All be Modeled
CTINS-1.15
Choosing Together/J
Other Considerations
CSE300
Support for Version Control
Ships with Concurrent Versions System(CVS)
CVS Allows Multiple Users on Different
Workstations Running Together/J to Share
Common UML Design Repository
Insures Consistency of Application and Its
Model Elements
Ease of Use
For Rose Users, Together/J has Similar Look
and Feel: Easy to Switch to Together/J
For Non-UML Users, One Evaluator Found it
Easier to Learn and Utilize Together/J
Rational Rose - Less Intuitive
Together/J - Easy Transition to UML Design
CTINS-1.16
Evaluating Development Tools
Visual Café/Jbuilder/Jdeveloper/WebDB
CSE300
What is Best Tool for Rapid GUI Prototyping?
Chosen Visual Café re. Project Team
Recommendations and Past Experience
Targeting Visual Café 4.0 Expert Ed. ($799)
Caveat: Café Recently Sold to BEA
What is Best Tool for Non-GUI Client Code?
Exploit Editing Capabilities of Together/J
Transition to Visual Café
What is Best Tool for Database Server Code?
Still Evaluating
Potential for Jbuilder and/or Café
Role of DBDesigner for ER Design and
Relation Generation
CTINS-1.17
Software Architectural Structure
Design Alternatives and Tradeoffs
CSE300
What is Current Software Structure?
How are Components Deployed on Workstations?
How can Components be Redeployed in Future?
What Architecture Facilitates Rapid Prototyping
and Requirements Capture in Short Term?
How do we Transition for “Real” System?
GUI
Client
Servlets
Interaction
Abstraction
RMI
Web Server
at DOIT
Oracle
Database
Server
CTINS-1.18
Current Architecture from Scott Craig
<<Applet>>
client
<<Servlet>>
Licensing
Servlet
CSE300
Updated
Daily
External
Oracle
120-160
(20-30 Licensing)
JDBC
Licensing
RMI
<<Application>>
Licensing
RMIimpl
Internal
Oracle
CTINS-1.19
Design Alternatives and Tradeoffs
What are Critical Design Considerations?
CSE300
Internal Clients vs. External Clients
Evolvability with respect to …
Adding New Clients Over Lifetime of Project
Adding/Changing Post-April 2001
Easily Upgrading Components …
Changes re. New Versions of Java/Browsers
Adding More Web-Servers, Functional Servers,
Database Servers
Supporting External Clients (Mirror Site DOIT)
Replacement of Database/OS (Drastic Changes)
What are Dimensions of Extensibility that are
Supported by Architecture?
Where is Concurrency/Data Consistency Handled?
CTINS-1.20
Software Architectural Structure
Design Alternatives and Tradeoffs
CSE300
What is the “Optimal” Architecture?
For Rapid Prototyping
For “Real” System
For “Long-Term” Maintenance & Evolution
For “Anticipated” Future Users (Agents, etc.)
For “Ease of Adopting” Future Technologies
Do we Need a “Single” Architecture?
How Do we Transition Between Architectures?
Where is Concurrency/Data Consistency Handled?
Any Responsibility in Client?
Is there Functional Server Between Client and
Database?
Will Database System be Sole Arbitrator?
CTINS-1.21
Software Architectural Structure
Applet vs. Application
CSE300
Applet: Web Browser or Applet Viewer
Downloaded from Web Server to Client
Allows Transparent Changes to “Code” -- Next
Download Provides “New” Code
All at Once Download
Incurs Overhead During Initial Download
System Must Handle “Hot” Spots of Activity
During AM, After Lunch
On-Demand Download
Incurs Overhead Throughout Usage of Client
Download from Web Server Still Uses Network
which Competes with Database Queries by Clients
Is One Approach More Complex than Another?
Regardless of Approach, Need Modularization
CTINS-1.22
Software Architectural Structure
Applet vs. Application
CSE300
Application
Standalone Application Installed as Program on
Client Workstations
Startup Incurs Network Traffic Only on Load
of “Custom Parameters and Values” from DB
Changes to Application Require Reinstallation
on Each Platform
Automatic Update for New Releases
Small Number of GUI Clients (30??)
Should AdvDataEntryOp have Application
Due to Size and Complexity of Software?
Will InitDataEntryOp Utilize Downloaded
Applet Due to Lack of Complexity?
CTINS-1.23
Software Architectural Structure
Summary: Applet vs. Application
CSE300
Does Client Software Need to be Incorporated into
Browser?
Any Capabilities Client Can Utilize within
Browser as Applet that Aren’t Available as
Application (or Vice Versa)?
Web Sites Can be Accessed by Applet or
Application
Application Can Load Browser Based on
Situation
Will Browser Version and Incompatibility with
Java Cause Difficulties in Maintenance?
Different Versions use Different Java Versions
Unresolved Sun/Microsoft Suit re. Java
Is Application Approach “Safer”
CTINS-1.24
Software Architectural Structure
Summary: Applet vs. Application
CSE300
What Software will Different Levels of Employees
Require?
Scanner/Basic Client for InitDataEntryOp
Image/Client/Netscape for AdvDataEntryOp
What is Tradeoff re. Screen Space and Number of
Active Programs?
Remove Extra Space Needed for Browser?
Recall Tasks in Separate Windows
Do we Need a Unified Approach for Both Internal
Clients (Dept. Employees) and External Clients
(Insurance Agents and Others)?
Does Frequency of Changes Influence Choice?
How Often Laws Change vs. GUI Changes
CTINS-1.25
Software Architectural Structure
Summary: Expanding Scope
CSE300
We’ve had Two Interfaces so Far …
InitDataEntryOp to Enter Basic Information
AdvDataEntryOp for New/Modified Licenses
For AdvDataEntryOP Not All Users Can Do All Functions
Customizability - via DB or SW Versions?
Other Divisions and Corresponding GUIs
What is Management Challenge for Maintaining
and Distributing …
All at Once Downloaded Applets
On-Demand Downloaded Applets
Installed Applications
How are Various “Approaches” Managed?
CTINS-1.26
Software Architectural Structure
Choice: Application over Applet
CSE300
All GUIs for CT Insurance Department Employees
Chosen for Following Reasons:
Installing Applications Reduces Network
Traffic During Startup
Increases Screen Real-Estate Since Browser
Not Needed
Removes Dependence on Browser Versions
Eliminates Uncertainty re. Microsoft’s Support
of Java within Internet Explorer
Note:
System Still Positioned for Internet Based
Interactions by Insurance Agents/Firms
CTINS-1.27
Software Architectural Structure
A First Licensing Prototyping
Initial Data
Entry Operator
(Scanning &
Posting)
Advanced Data
Entry
Operators
Analyst
Manager
CSE300
10-100MB Network
Document
Server
Stored
Images/CD
Database
Server
Running
Oracle
RMI Registry
RMI Act.
Obj/Server
RMI Act.
Obj/Server
Functional Server
CTINS-1.28
Using RMI in Licensing Prototype
Adv. Data Entry
Analyst
Manager
CSE300
rmid
rmiregistry
Activation Object
ActivatableImplementation.java
Unicast Remote Object
LicensingImpl
rmiregistry 1100
Unicast Remote Object
LicensingImpl
rmiregistry 1101
Unicast Remote Object
LicensingImpl
rmiregistry 1102
CTINS-1.29
Using RMI in Licensing Prototype
Adv. Data Entry
• Client Looks Up Activation Object
• rmid Creates New Activation Object
• rmid Binds Activation Object Interface
to Client
CSE300
rmid
rmiregistry
• Client
Requests
a Unicast
Remote Object
• Client
can Now
Directly
Communicate
with
Unicast Remote Object Implementation
Class(LicenseImpl)
Activation Object
ActivatableImplementation.java
• Client
Can Invoke Methods and Receive
Results
• Activatable Object Returns to
Client All Necessary Info
Unicast Remote Object
LicensingImpl
rmiregistry 1100
• Activatable Object Creates New Unicast
Remote Object and Binds to Unique Name
on a Registry (Round Robin)
CTINS-1.30
Software Engineering Process
Documentation for Users: Contract
CSE300
Existing Documentation and Interviews to
Determine Current and Future User Requirements
Documentation of Business Processes and Rules
Creation of Use Cases by Development Team
Transition From Use Cases to PowerPoint
Presentations
Provide Means to Capture Requirements in
Easy to Understand Medium
Utilized for Give-and-Take and Sign-Off
Need for “Written” Scenario Description to
Accompany PPT
Creation of “How System Works” and “How to
Use System” Documents/GUI Mockups in Café
CTINS-1.31
Software Engineering Process
Doc./Design Models for Developers
CSE300
What is System Documentation?
From Use Cases to …
Scenarios for Developers
Static Views: Class, Object, Component,
Deployment Diagrams
UML Extension: Robustness Diagrams
Dynamic Views: Sequence, Collaboration,
Statechart, Activity Diagrams
Which Diagrams are Relevant at Which Stages of
Design and Development Process?
Are All Diagrams to be Utilized for Project?
What are Most Likely Diagrams?
CTINS-1.32
Software Engineering Process
Standards for Developers: Maintenance
CSE300
What Documentation Requirements and Standards
are Required?
Use Cases Plus Accompanying Textual
Descriptions
Use Case Development Standards
PowerPoint Versions of Use Cases
Others???
What are Software Development Standards?
What are Configuration Management/Version
Control Standards?
Who will Play the Role of Librarian?
CTINS-1.33
Business Process Model:
Scanning and Initial Data Entry
DB
CSE300
DB
Historical Completed
Records Applications
Licensing
DB
Supervisor
Review
Scanner
DB
..
Licensing
Division
Scanning
Operator
Stored
Images
Licensing Division Printer
Data Entry Operator
DB
Basic
Information
Entered
New Licenses
New Appointments
FOI
Letters (Request
Information, etc.)
CTINS-1.34
Utilizing the Work Queue
Next License Application
CSE300
Issue New License
New License
Application
Work Queue
Issue Rejection Letter
Operator
Supervisor Work Queue
Requests Next License
Application in Work Queue
CTINS-1.35
Licensing GUIs
Capabilities and Tasks
CSE300
Scanning Business Process
Scan Documents and Enter Basic Information
Verify Readability of Scanned Documents
Scanned Documents Automatically Enter a
Work Queue for Subsequent Processing
Create Historical Record for Each Action of
Scanning Personnel
Historical Record Allows:
Tracking Productivity by Examining Who
Scanned Which Documents
Ability to Provide History of Application,
License, etc., when Processing Question from
Agent, FOI Request, etc.
CTINS-1.36
Licensing GUIs
Capabilities and Tasks
CSE300
Processing Work Queue Elements Which Contain:
License Applications
Documents Requested by Insurance Dept.
Appointments/Re-appointments
FOI Requests, etc …
Each Work Queue Element Contains One or More
Scanned Images to be Processed
Result of Processing
Modify Historical Record
Create Entry in Oracle Database
Document Sent to CD-Rom Repository
Errors/Problems Forwarded to Analyst
CTINS-1.37
Licensing GUIs
Capabilities and Tasks
CSE300
Additional Capabilities:
Process Problem Work Queue Elements
Route Specific Elements to Advanced Data
Entry Operator
Set Privileges and Capabilities of Personnel
Handle Inquiries: FOI, NAIC, Legislature, etc.
Database Administrator Capabilities (DBA):
Responding to Special Requests
Maintaining Oracle Database
Investigating Data Consistency
CTINS-1.38
GUI Login
CSE300
CTINS-1.39
Application Scanning
CSE300
CTINS-1.40
Work Queue
CSE300
CTINS-1.41
Data Entry
CSE300
CTINS-1.42
Licensing GUIs
Capabilities and Tasks
CSE300
Additional Capabilities:
Set Privileges and Capabilities of Personnel
Handle Inquiries: FOI, NAIC, Legislature, …
Supervisor Review Queue
Reclassify Work Queue Elements
Investigations, Statistics, Analysis Reports
Manager Review Queue, Work Flow
Management Reports
Database Administrator Capabilities (DBA):
Responding to Special Requests
Maintaining Oracle Database
Investigating Data Consistency
CTINS-1.43
Examples of User-Specific Tasks
Customizing GUI Based on User
CSE300
License Applications
Producer
Casualty Adjuster
Public Adjuster
License Change
Producer
Casualty Adjuster
Public Adjuster
Viatical Settlement
Broker
Letter of Certification
License Applications
Producer
Casualty Adjuster
Certified Insurance
Consultant
Public Adjuster
License Change
Producer
Casualty Adjuster
Public Adjuster
Certified Insurance
Consultant
Viatical Settlement Broker
Letter of Certification
Duplicate License
Freedom of Information
CTINS-1.44
GUIs for Other Divisions
CSE300
Exploit Licensing GUI as Blueprint for all Other
GUIs
Utilize Similar Look-and-Feel Across GUIs
Customize GUIs for Business Models and
Desired Processing for Each Division
Reuse Software Components to Speed
Development
Key Issues
Realize Existing Computing Functionality
Offer New Capabilities for Tracking Trends,
Historical Data, Productivity, etc.
CTINS-1.45
Current Software Architecture
Issues and Decisions
CSE300
Utilizing Two-Tiered Approach
RMI Too Costly
Employ Middle Layer to “Hide” Relational
Data and Oracle Platform from GUI/Client
Stage Data To/From “Java” Instances for
Processing by Client
Adopt Strategy Similar to Java Blend
Develop “Classes” to Represent Database Views
Needed by Different Tasks
May Exploit EJB in Future
Still Haven’t Chosen Document Management Sys.
CTINS-1.46
Current Software Architecture
Database/Middle-Tier Interactions
Database
Server
Running
Oracle
CSE300
Java Classes
One Per Relation
Translation
Java Classes
One Per View
DB Server Contains
Relations
Views
Client Application Must
Store/Retrieve Between
GUI and Database
Contrast of
Class vs. Relation
Objects vs. Tuples
Creation of Java Classes
One Class per Relation
License Relation Yields
License Class
Class Contains Gets,
Sets, and Iterator
One Class per View
New Appl. View Yields
New Appl. Class
Gets, Sets, and Iterator
CTINS-1.47
Current Software Architecture
Database/Middle-Tier Interactions
Java Classes
One Per Relation
Utilization
CSE300
Java Classes
One Per View
Java Classes Existing
within “Conceptual
Middle Tier
Allow Information to be
Staged To/From
Database
Utilized by GUI Client
for All Processing
Provides Transparency
of Database to Client
Client Interacts with MiddleTier for Processing
Middle-Tier Provides
Repository for Storing
Information for DB
Information from DB
Client Interacts with
Multiple Relations
Multiple Views
for Each Processing Task
CTINS-1.48
Software Design and Analysis
CSE300
Developing “Reusable” GUI Client for Licensing
Employees
Intend to Reuse Across Different Divisions
In January 2001 Timeframe, Utilize DRE
Initial Evaluation of “Reuse” Potential
Assignment of General and Specific Classes
Incremental Use of DRE on Different
Prototyping Versions
Guide Development Process Towards Future
Reuse
Key Issue: We Understand the Domain!
CTINS-1.49
Summary
CSE300
What Decisions have we Made?
UML Tool - Together/J
Development Tool - Visual Café
Database Tool - DBDesigner
State of Current Prototyping Status
Employing Together, Visual Café
Integrating with Oracle Database Server at
UConn
Utilizing Source Code Control System for
Managing
Database Relations
UML Designs
Java Code
CTINS-1.50