The CT Insurance Department Project

advertisement
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
steve@engr.uconn.edu
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
Download