CSE300 CTINS-1.1 The CT Insurance Department Project Prof. Steven A. Demurjian, Sr. Computer Science...
-
Upload
lila-nazworth -
Category
Documents
-
view
212 -
download
0
Transcript of CSE300 CTINS-1.1 The CT Insurance Department Project Prof. Steven A. Demurjian, Sr. Computer Science...
CSE300
CTINS-1.1
The CT Insurance Department ProjectThe CT Insurance Department Project
Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department
The University of Connecticut191 Auditorium Road, Box U-155
Storrs, CT 06269-3155
[email protected]://www.engr.uconn.edu/~steve
(860) 486 - 4818
CSE300
CTINS-1.2
Overview of PresentationOverview of Presentation
Overview of CT Insurance Project - ConceptsOverview of CT Insurance Project - Concepts A Quick Review of JavaA Quick Review of Java Software Engineering and Architectural IssuesSoftware Engineering and Architectural Issues
Language and Database Evaluation Tools (Design & Development)
Software Architectural StructureSoftware Architectural Structure Design Alternatives and Tradeoffs Applet vs. Application RMI for System Interactions Documentation Standards and Design Models
Example GUI/System FunctionalityExample GUI/System Functionality SummarySummary
CSE300
CTINS-1.3
The CT Insurance Department ProjectThe CT Insurance Department Project
PurposesPurposes 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 ofPartnership of CT Insurance Department Personnel UConn’s Computer Science & Engrg. Dept. GentronicsWang Corporation Merrill Clark Corporation
CSE300
CTINS-1.4
Software Architectural StructureSoftware Architectural Structure A First Licensing Prototyping A First Licensing Prototyping
Initial Data Entry Operator(Scanning & Posting)
10-100MB Network
Advanced Data Entry
Operators
DocumentServerStored
Images/CD
DatabaseServerRunningOracle
RMI Registry
Functional Server
RMI Act.Obj/Server
RMI Act.Obj/Server
Analyst Manager
CSE300
CTINS-1.5
Business Process Model: Business Process Model: Scanning and Initial Data EntryScanning and Initial Data Entry
Scanner
Licensing
..
LicensingDivisionScanningOperator
StoredImages
BasicInformationEntered
DB
CompletedApplications
HistoricalRecords
Printer
New LicensesNew AppointmentsFOI
Letters (RequestInformation, etc.)
Licensing DivisionData Entry Operator
SupervisorReview
DB
DB DB
DB
CSE300
CTINS-1.6
Software Engineering andSoftware Engineering and Architectural Issues Architectural Issues
Java is Emerging Programming Language of Choice Java is Emerging Programming Language of Choice for Majority of Software Developmentfor 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 PlatformOracle 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 Still to be Determined Technologies for Document
Scanning and StorageScanning and Storage
CSE300
CTINS-1.7
Software Engineering andSoftware Engineering and Architectural Issues Architectural Issues
Design and Development ToolsDesign and Development Tools GDPro vs. Paradigm vs. Rose vs. Together/J Vis. Café v. Jbuilder v. Jdeveloper v. WebDB
Software Architectural StructureSoftware 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 ProcessSoftware Engineering Process Documentation for Users: Contract Documentation/Design Models for Developers Standards for Developers: Maintenance
CSE300
CTINS-1.8
Design and Development ToolsDesign and Development Tools
GDPro vs. Paradigm vs. Rose vs. Together/JGDPro 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. WebDBVisual 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
CSE300
CTINS-1.9
UML Design ToolsUML Design ToolsThe PlayersThe Players
GDPro 3.2GDPro 3.2 Advanced Software Technologies Inc. www.advancedsw.com
Paradigm Plus Enterprise Edition 3.6Paradigm Plus Enterprise Edition 3.6 Computer Associates International www.cai.com
Rational Rose 98 Enterprise Edition (August 98)Rational Rose 98 Enterprise Edition (August 98) Rational Software Corporation www.rational.com
Together/J Version 3.0, Developer EditionTogether/J Version 3.0, Developer Edition TogetherSoft LLC www.togethersoft.com
CSE300
CTINS-1.10
UML Design ToolsUML Design ToolsThe EvaluatorsThe Evaluators
Scott Craig, Graduate Student, UConnScott Craig, Graduate Student, UConn Strong Background in UML Long-Time User of Rational Rose
Steven A. Demurjian, Professor, UConnSteven A. Demurjian, Professor, UConn Software Engineering/Object-Oriented
Researcher Minimal Experience with Rational Rose
Earl DuBack, Migration Facilitator Manager, CT Earl DuBack, Migration Facilitator Manager, CT Insurance Dept.Insurance Dept. Significant Expertise with Numerous Design
and Documentation Methods Minimal Experience with UML
CSE300
CTINS-1.11
Comparing UML Design ToolsComparing UML Design ToolsGDPro and Paradigm PlusGDPro and Paradigm Plus
Drawbacks of Both: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 S. Craig Found Both Difficult to Use Given his Experience with Rational RoseExperience with Rational Rose
Overall, Lacking in Key Facets which are Critical to Overall, Lacking in Key Facets which are Critical to Support the Goals of Our ProjectSupport the Goals of Our Project
CSE300
CTINS-1.12
Comparing UML Design ToolsComparing UML Design ToolsRational RoseRational Rose
Was Expected to be Chosen ToolWas 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 DrawbacksBut, Significant Drawbacks
Round-Trip Engineering Lacking Minimal Java Support
JDK 1.1.6 Can be Loaded into Rose Efforts with JDK 1.2 Unsuccessful
CSE300
CTINS-1.13
Comparing UML Design ToolsComparing UML Design ToolsRational RoseRational Rose
Significant Drawbacks - ContinuedSignificant 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 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 Overall, Despite S. Craig’s History with Rose, the Tool was Inadequate as Compared to Together/JTool was Inadequate as Compared to Together/J
CSE300
CTINS-1.14
Comparing UML Design ToolsComparing UML Design ToolsTogether/JTogether/J
Key Benefits and Features: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
CSE300
CTINS-1.15
Comparing UML Design ToolsComparing UML Design ToolsTogether/JTogether/J
Key Benefits and Features:Key Benefits and Features: Hierarchical View of Application
Similar Capability to Rational Rose Allows Modularization of UML Design
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
CSE300
CTINS-1.16
Choosing Together/JChoosing Together/JOther ConsiderationsOther Considerations
Support for Version ControlSupport 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 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
CSE300
CTINS-1.17
Evaluating Development ToolsEvaluating Development Tools Visual Café/Jbuilder/Jdeveloper/WebDB Visual Café/Jbuilder/Jdeveloper/WebDB What is Best Tool for Rapid GUI Prototyping?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?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?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
CSE300
CTINS-1.18
Software Architectural StructureSoftware Architectural Structure Design Alternatives and Tradeoffs Design Alternatives and Tradeoffs
What is Current Software Structure?What is Current Software Structure? How are Components Deployed on Workstations?How are Components Deployed on Workstations? How can Components be Redeployed in Future?How can Components be Redeployed in Future? What Architecture Facilitates Rapid Prototyping What Architecture Facilitates Rapid Prototyping
and Requirements Capture in Short Term?and Requirements Capture in Short Term? How do we Transition for “Real” System?How do we Transition for “Real” System?
GUI Client
Servlets
RMI
InteractionAbstraction
Web Serverat DOIT
OracleDatabaseServer
CSE300
CTINS-1.19
client<<Applet>>
LicensingServlet
<<Servlet>>
LicensingRMIimpl
<<Application>>
LicensingRMI
InternalOracle
ExternalOracle
JDBC
Updated Daily
120-160(20-30 Licensing)
Current Architecture from Scott CraigCurrent Architecture from Scott Craig
CSE300
CTINS-1.20
Design Alternatives and TradeoffsDesign Alternatives and Tradeoffs What are Critical Design Considerations? What are Critical Design Considerations? Internal Clients vs. External ClientsInternal Clients vs. External Clients Evolvability with respect to …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?Where is Concurrency/Data Consistency Handled?
CSE300
CTINS-1.21
Software Architectural Structure Software Architectural Structure Design Alternatives and TradeoffsDesign Alternatives and Tradeoffs
What is the “Optimal” Architecture?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?Do we Need a “Single” Architecture? How Do we Transition Between Architectures?How Do we Transition Between Architectures? Where is Concurrency/Data Consistency Handled?Where is Concurrency/Data Consistency Handled?
Any Responsibility in Client? Is there Functional Server Between Client and
Database? Will Database System be Sole Arbitrator?
CSE300
CTINS-1.22
Software Architectural StructureSoftware Architectural Structure Applet vs. Application Applet vs. Application
Applet: Web Browser or Applet ViewerApplet: 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
CSE300
CTINS-1.23
Software Architectural StructureSoftware Architectural Structure Applet vs. Application Applet vs. Application
ApplicationApplication 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?
CSE300
CTINS-1.24
Software Architectural StructureSoftware Architectural Structure Summary: Applet vs. Application Summary: Applet vs. Application
Does Client Software Need to be Incorporated into Does Client Software Need to be Incorporated into Browser?Browser?
Any Capabilities Client Can Utilize within Browser Any Capabilities Client Can Utilize within Browser as Applet that Aren’t Available as Application (or as Applet that Aren’t Available as Application (or Vice Versa)?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 Will Browser Version and Incompatibility with Java
Cause Difficulties in Maintenance?Cause Difficulties in Maintenance? Different Versions use Different Java Versions Unresolved Sun/Microsoft Suit re. Java Is Application Approach “Safer”
CSE300
CTINS-1.25
Software Architectural StructureSoftware Architectural Structure Summary: Applet vs. Application Summary: Applet vs. Application
What Software will Different Levels of Employees What Software will Different Levels of Employees Require?Require? Scanner/Basic Client for InitDataEntryOp Image/Client/Netscape for AdvDataEntryOp
What is Tradeoff re. Screen Space and Number of What is Tradeoff re. Screen Space and Number of Active Programs?Active Programs? Remove Extra Space Needed for Browser? Recall Tasks in Separate Windows
Do we Need a Unified Approach for Both Internal Do we Need a Unified Approach for Both Internal Clients (Dept. Employees) and External Clients Clients (Dept. Employees) and External Clients (Insurance Agents and Others)?(Insurance Agents and Others)?
Does Frequency of Changes Influence Choice?Does Frequency of Changes Influence Choice? How Often Laws Change vs. GUI Changes
CSE300
CTINS-1.26
Software Architectural StructureSoftware Architectural Structure Summary: Expanding Scope Summary: Expanding Scope
We’ve had Two Interfaces so Far … We’ve had Two Interfaces so Far … InitDataEntryOp to Enter Basic Information AdvDataEntryOp for New/Modified Licenses
For For AdvDataEntryOPAdvDataEntryOP - - Not All Users Can Do All Functions Customizability - via DB or SW Versions?
Other Divisions and Corresponding GUIsOther Divisions and Corresponding GUIs What is Management Challenge for Maintaining What is Management Challenge for Maintaining
and Distributing … and Distributing … All at Once Downloaded Applets On-Demand Downloaded Applets Installed Applications
How are Various “Approaches” Managed?How are Various “Approaches” Managed?
CSE300
CTINS-1.27
Software Architectural StructureSoftware Architectural Structure Choice: Application over Applet Choice: Application over Applet
All GUIs for CT Insurance Department EmployeesAll GUIs for CT Insurance Department Employees Chosen for Following Reasons: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: Note:
System Still Positioned for Internet Based Interactions by Insurance Agents/Firms
CSE300
CTINS-1.28
Software Architectural StructureSoftware Architectural Structure A First Licensing Prototyping A First Licensing Prototyping
Initial Data Entry Operator(Scanning & Posting)
10-100MB Network
Advanced Data Entry
Operators
DocumentServerStored
Images/CD
DatabaseServerRunningOracle
RMI Registry
Functional Server
RMI Act.Obj/Server
RMI Act.Obj/Server
Analyst Manager
CSE300
CTINS-1.29
Adv. Data Entry ManagerAnalyst
rmid rmiregistry
Activation ObjectActivatableImplementation.java
rmiregistry 1100 rmiregistry 1101 rmiregistry 1102
Unicast Remote ObjectLicensingImpl
Unicast Remote ObjectLicensingImpl
Unicast Remote ObjectLicensingImpl
Using RMI in Licensing PrototypeUsing RMI in Licensing Prototype
CSE300
CTINS-1.30
Adv. Data Entry
rmid rmiregistry
Activation ObjectActivatableImplementation.java
rmiregistry 1100
Unicast Remote ObjectLicensingImpl
Using RMI in Licensing PrototypeUsing RMI in Licensing Prototype
• Client Looks Up Activation Object • rmid Creates New Activation Object• rmid Binds Activation Object Interface to Client
• Client Requests a Unicast Remote Object
• Activatable Object Creates New Unicast Remote Object and Binds to Unique Name on a Registry (Round Robin)
• Activatable Object Returns to Client All Necessary Info
• Client can Now Directly Communicate with
Unicast Remote Object Implementation Class(LicenseImpl) • Client Can Invoke Methods and Receive Results
CSE300
CTINS-1.31
Software Engineering ProcessSoftware Engineering Process Documentation for Users: Contract Documentation for Users: Contract
Existing Documentation and Interviews to Existing Documentation and Interviews to Determine Current and Future User RequirementsDetermine Current and Future User Requirements
Documentation of Business Processes and RulesDocumentation of Business Processes and Rules Creation of Use Cases by Development TeamCreation of Use Cases by Development Team Transition From Use Cases to PowerPoint Transition From Use Cases to PowerPoint
PresentationsPresentations Provide Means to Capture Requirements in
Easy to Understand Medium Utilized for Give-and-Take and Sign-Off
Need for “Written” Scenario Description to Need for “Written” Scenario Description to Accompany PPTAccompany PPT
Creation of “How System Works” and “How to Creation of “How System Works” and “How to Use System” Documents/GUI Mockups in Café Use System” Documents/GUI Mockups in Café
CSE300
CTINS-1.32
What is System Documentation?What is System Documentation? From Use Cases to …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 Which Diagrams are Relevant at Which Stages of
Design and Development Process?Design and Development Process? Are All Diagrams to be Utilized for Project?Are All Diagrams to be Utilized for Project? What are Most Likely Diagrams?What are Most Likely Diagrams?
Software Engineering ProcessSoftware Engineering Process Doc./Design Models for Developers Doc./Design Models for Developers
CSE300
CTINS-1.33
Software Engineering ProcessSoftware Engineering Process Standards for Developers: Maintenance Standards for Developers: Maintenance
What Documentation Requirements and Standards What Documentation Requirements and Standards are Required?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 Software Development Standards? What are Configuration Management/Version What are Configuration Management/Version
Control Standards?Control Standards? Who will Play the Role of Librarian?Who will Play the Role of Librarian?
CSE300
CTINS-1.34
Business Process Model: Business Process Model: Scanning and Initial Data EntryScanning and Initial Data Entry
Scanner
Licensing
..
LicensingDivisionScanningOperator
StoredImages
BasicInformationEntered
DB
CompletedApplications
HistoricalRecords
Printer
New LicensesNew AppointmentsFOI
Letters (RequestInformation, etc.)
Licensing DivisionData Entry Operator
SupervisorReview
DB
DB DB
DB
CSE300
CTINS-1.35
OperatorNew LicenseApplicationWork Queue
Next License Application
Requests Next LicenseApplication in Work Queue
Issue New License
Issue Rejection Letter
Supervisor Work Queue
Utilizing the Work QueueUtilizing the Work Queue
CSE300
CTINS-1.36
Licensing GUIsLicensing GUIs Capabilities and TasksCapabilities and Tasks
Scanning Business ProcessScanning 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: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.
CSE300
CTINS-1.37
Licensing GUIsLicensing GUIs Capabilities and TasksCapabilities and Tasks
Processing Work Queue Elements Which Contain: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 Each Work Queue Element Contains One or More Scanned Images to be ProcessedScanned Images to be Processed
Result of ProcessingResult of Processing Modify Historical Record Create Entry in Oracle Database Document Sent to CD-Rom Repository Errors/Problems Forwarded to Analyst
CSE300
CTINS-1.38
Licensing GUIsLicensing GUIs Capabilities and TasksCapabilities and Tasks
Additional Capabilities: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):Database Administrator Capabilities (DBA): Responding to Special Requests Maintaining Oracle Database Investigating Data Consistency
CSE300
CTINS-1.39
GUI LoginGUI Login
CSE300
CTINS-1.40
Application ScanningApplication Scanning
CSE300
CTINS-1.41
Work QueueWork Queue
CSE300
CTINS-1.42
Data EntryData Entry
CSE300
CTINS-1.43
Licensing GUIsLicensing GUIs Capabilities and TasksCapabilities and Tasks
Additional Capabilities: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):Database Administrator Capabilities (DBA): Responding to Special Requests Maintaining Oracle Database Investigating Data Consistency
CSE300
CTINS-1.44
Examples of User-Specific TasksExamples of User-Specific TasksCustomizing GUI Based on UserCustomizing GUI Based on User
License ApplicationsLicense Applications Producer Casualty Adjuster Public Adjuster
License ChangeLicense Change Producer Casualty Adjuster Public Adjuster Viatical Settlement
Broker Letter of CertificationLetter of Certification
License ApplicationsLicense Applications Producer Casualty Adjuster Certified Insurance
Consultant Public Adjuster
License ChangeLicense Change Producer Casualty Adjuster Public Adjuster Certified Insurance
Consultant Viatical Settlement Broker
Letter of CertificationLetter of Certification Duplicate LicenseDuplicate License Freedom of InformationFreedom of Information
CSE300
CTINS-1.45
GUIs for Other DivisionsGUIs for Other Divisions
Exploit Licensing GUI as Blueprint for all Other Exploit Licensing GUI as Blueprint for all Other GUIsGUIs 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 IssuesKey Issues
Realize Existing Computing Functionality Offer New Capabilities for Tracking Trends,
Historical Data, Productivity, etc.
CSE300
CTINS-1.46
Current Software ArchitectureCurrent Software ArchitectureIssues and DecisionsIssues and Decisions
Utilizing Two-Tiered ApproachUtilizing 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.Still Haven’t Chosen Document Management Sys.
CSE300
CTINS-1.47
Current Software ArchitectureCurrent Software ArchitectureDatabase/Middle-Tier InteractionsDatabase/Middle-Tier Interactions
DatabaseServerRunningOracle
DB Server Contains DB Server Contains Relations Views
Client Application Must Client Application Must Store/Retrieve Between Store/Retrieve Between GUI and Database GUI and Database
Contrast ofContrast of Class vs. Relation Objects vs. Tuples
Creation of Java ClassesCreation of Java Classes One Class per RelationOne Class per Relation
License Relation Yields License Class
Class Contains Gets, Sets, and Iterator
One Class per ViewOne Class per View New Appl. View Yields
New Appl. Class Gets, Sets, and Iterator
Translation
Java ClassesOne Per Relation
Java ClassesOne Per View
CSE300
CTINS-1.48
Current Software ArchitectureCurrent Software ArchitectureDatabase/Middle-Tier InteractionsDatabase/Middle-Tier Interactions
Client Interacts with Middle-Client Interacts with Middle-Tier for ProcessingTier for Processing
Middle-Tier Provides Middle-Tier Provides Repository for StoringRepository for Storing Information for DB Information from DB
Client Interacts withClient Interacts withMultiple RelationsMultiple Views
for Each Processing Taskfor Each Processing Task
Java Classes Existing Java Classes Existing within “Conceptual within “Conceptual Middle TierMiddle Tier
Allow Information to be Allow Information to be Staged To/From Staged To/From DatabaseDatabase
Utilized by GUI Client Utilized by GUI Client for All Processingfor All Processing
Provides Transparency Provides Transparency of Database to Clientof Database to Client
Utilization
Java ClassesOne Per Relation
Java ClassesOne Per View
CSE300
CTINS-1.49
Software Design and AnalysisSoftware Design and Analysis
Developing “Reusable” GUI Client for Licensing Developing “Reusable” GUI Client for Licensing EmployeesEmployees
Intend to Reuse Across Different DivisionsIntend to Reuse Across Different Divisions In January 2001 Timeframe, Utilize DREIn 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!Key Issue: We Understand the Domain!
CSE300
CTINS-1.50
SummarySummary
What Decisions have we Made?What Decisions have we Made? UML Tool - Together/J Development Tool - Visual Café Database Tool - DBDesigner
State of Current Prototyping StatusState 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