cse2102 ctins-1 the ct insurance department project prof. steven a. demurjian, sr. computer science...
TRANSCRIPT
CSE2102
CTINS-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
CSE2102
CTINS-2
What is the State of CT Insurance What is the State of CT Insurance Department?Department?
CT Insurance Department is a quasi-state Agency CT Insurance Department is a quasi-state Agency that is Responsible for Licensing:that is Responsible for Licensing: Insurance Agents (people) Insurance Agencies Insurance Companies (insurance products)
The Agency Consists of around 100+ Employees The Agency Consists of around 100+ Employees in Numerous Divisionsin Numerous Divisions Administration, Consumer Affairs Financial Regulation, Licensing Life & Health, Property & Casualty Market Conduct
CSE2102
CTINS-3
Brief Explanation of DivisionsBrief Explanation of Divisions
Licensing: Issue Licenses to Sell Insurance to Licensing: Issue Licenses to Sell Insurance to Individuals and Insurance AgenciesIndividuals and Insurance Agencies
Financial Regulation: Issue Licenses to Companies Financial Regulation: Issue Licenses to Companies and Audit their Booksand Audit their Books
Life & Health and Property & Casualty: Approve Life & Health and Property & Casualty: Approve the Insurance Products (Policies) Sold in CTthe Insurance Products (Policies) Sold in CT
Consumer Affairs: Take Complaints from Consumer Affairs: Take Complaints from Individuals, etc., Against Insurance Agents, Individuals, etc., Against Insurance Agents, Agencies, and CompaniesAgencies, and Companies
Market Conduct: Investigate Potential Illegal Market Conduct: Investigate Potential Illegal Activities by Agents, Agencies, and CompaniesActivities by Agents, Agencies, and Companies
CSE2102
CTINS-4
What Does Licensing Do?What Does Licensing Do?
License Agents, Agencies, and CompaniesLicense Agents, Agencies, and Companies Many Different Licenses - IncludingMany Different Licenses - Including
Producer (Life, Health, Accident, Property, …) Bail Bond Casualty Adjuster MV Physical Damage Appriaser
Basically, Handling anything to do With the Basically, Handling anything to do With the Ability to Sell Insurance in CTAbility to Sell Insurance in CT
CSE2102
CTINS-5
What Does Consumer Affairs Do?What Does Consumer Affairs Do?
Review & Respond to Complaints from State Review & Respond to Complaints from State ResidentsResidents
Pursue & Resolve ComplaintsPursue & Resolve Complaints Educate & Redirect Consumer if OutsideEducate & Redirect Consumer if Outside
JurisdictionJurisdiction ProvideProvide Informational Pamphlets & BookletsInformational Pamphlets & Booklets Document & Provide Commissioner with Document & Provide Commissioner with
Quarterly ReportsQuarterly Reports PublishPublish Rankings of Insurance CompaniesRankings of Insurance Companies
FOI RequestsFOI Requests
CSE2102
CTINS-6
Complaint Master FileComplaint Master File
Current Back End- Wang Proprietary Software Current Back End- Wang Proprietary Software with Interfaces to MS-DOS-Screens (COBOL)with Interfaces to MS-DOS-Screens (COBOL)
CSE2102
CTINS-9
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 Since February 1999
CSE2102
CTINS-10
Transitioning Capabilities for MigrationTransitioning Capabilities for MigrationTwo Objectives for Consumer AffairsTwo Objectives for Consumer Affairs
Capture “Core/Critical” Functionality of WangCapture “Core/Critical” Functionality of Wang Identify Wang Functions to be Transitioned Include Batch and Other Processing Jobs
Provide “Added” Value that Improves ProcessProvide “Added” Value that Improves Process Employees are More Productive Tracking of Current Documents More Precise Recall of Historical Documents Elimination of “Paper”
What Else do you Wish to Achieve?What Else do you Wish to Achieve?
CSE2102
CTINS-11
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
CSE2102
CTINS-12
Business Process for LicensingBusiness Process for Licensing
Scanner
Licensing
..
LicensingDivisionScanningOperator
StoredImages
BasicInformationEntered
DB
CompletedApplications
HistoricalRecords
Printer
New LicensesNew AppointmentsFOI
Letters (RequestInformation, etc.)
Licensing DivisionData Entry Operator
SupervisorReview
DB
DB DB
DB
CSE2102
CTINS-13
Business Process for Consumer AffairsBusiness Process for Consumer Affairs
ScannerComplaints, Letters, Responses, etc.
ConsumerAffairsDivisionScanningOperator
StoredImages
BasicInformation
Filenet
Documents to be Processed
HistoricalRecords
Generated Letters
Data Entry by CA Clerical
Oracle
Oracle Oracle
Sorting by Examiner
New Complaints
Processing byExaminers
Data Entry
CSE2102
CTINS-14
Important ConceptsImportant Concepts
Work Queue (WQ)Work Queue (WQ) Set of All Tasks to be Performed by All
Employees of State of CT Insurance Dept. Composed of Work Queue Elements which are
Identified Tasks that are Processed by Users Bar CodesBar Codes
Utilized to Automatically Classify Particular Documents by Type, Identifier, Division, etc.
Scanning/Sorting/IndexingScanning/Sorting/Indexing Categorizing Documents During Scanning into
Work Queue as Work Queue Elements Historical Record - Activity FileHistorical Record - Activity File
A Record of Any “Relevant” Activity or Action taken by User or System
CSE2102
CTINS-15
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 QueueLicensingLicensing
CSE2102
CTINS-16
Utilizing the Work QueueUtilizing the Work QueueConsumer AffairsConsumer Affairs
Examiner orClerical Staff
Consumer AffairsWork Queue
Return Next CA Work Queue Document
Request Next CA Work Queue Document
Generate/Print Letters
Update Complaint
Forward to Examiner
CSE2102
CTINS-17
Strategies for Processing Mail/DocumentsStrategies for Processing Mail/DocumentsThree StagesThree Stages
SortingSorting Classification of Mail by Document Type Scan by Type or Just with Separators
ScanningScanning Processing of Documents into Work Queue
Elements Create WQ Elements for CA Personnel
AssignmentAssignment Detailed Classification of Documents by Some
Type of Identifier (Name, Case#, SSN, etc.) Assigning CA Employee(s) to Process Specific
Work Queue Elements Is Automatic Assignment Possible?
CSE2102
CTINS-18
Scanning ConceptsScanning Concepts
Bar Codes (previously discussed)Bar Codes (previously discussed) On Forms that are Distributed to “Customers” Generated as Labels Added to Incoming Mail
Separators Separators Piece of Paper or Bar Code to Distinguish One
Document from Next Inserted During Mail Sorting Process Prior to
ScanningSeparators
CSE2102
CTINS-19
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.
CSE2102
CTINS-20
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
CSE2102
CTINS-21
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
CSE2102
CTINS-22
Software PlatformsSoftware Platforms
Java is Emerging Programming Language of Java is Emerging Programming Language of Choice for Majority of Software DevelopmentChoice for Majority of Software Development Desktop and Web-Based Applications Easy to Interact with DB Platforms
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 FileNet:FileNet:
Document Scanning and Storage Tracks all Documents Received of All Types
CSE2102
CTINS-23
The CT Insurance Department ProjectThe CT Insurance Department Project
Current TeamCurrent Team Storrs:
Professors Demurjian and Shin Three Software Engineers (Full-Time) Four 20 hour/week Graduate Student Developers
Hartford One Database Administrator (Getronics) One Manager (State of CT Insurance Department) One Developer
CSE2102
CTINS-28
Classify
Process re. ClassificationProcess re. Classification
Lic. Processors
SupervisorReviewClassify
Classified
Forward for Reclassification
Forward forProblemsSup. Rev. Lic. Appl.Sup. Rev. FOIetc.Misc.
Supervisor
Known Document Types
CSE2102
CTINS-29
Revised Licensing Classification - Revised Licensing Classification - Reorganization Reorganization
CSE2102
CTINS-30
Next Set of SlidesNext Set of Slides
Following Slides are Screens for Processing the Following Slides are Screens for Processing the Various LicensesVarious Licenses
Each Window/Screen has an Appropriate TitleEach Window/Screen has an Appropriate Title
CSE2102
CTINS-39
Licensing Inquiry Screen for SearchingLicensing Inquiry Screen for Searching
Current Licensing Work has Developed an Inquiry Current Licensing Work has Developed an Inquiry Capability Capability
To Replace Lookup Capabilities in WangTo Replace Lookup Capabilities in Wang Note This is a General Search/Inquiry CapabilityNote This is a General Search/Inquiry Capability
Some Divisions may Only Need This Other Divisions May Need Specific Inquiry
Capability CA: Inquiry on Cases/Complaints
Goals:Goals: Understand What is Currently Provided Think About if it Meets your Needs Suggest Changes/Additions - New Tabs Argue for a Specific Inquiry Capability
CSE2102
CTINS-44
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
CSE2102
CTINS-45
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
CSE2102
CTINS-46
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.
CSE2102
CTINS-60
Software Engineering IssuesSoftware Engineering IssuesCase Study in CT Insurance ProjectCase Study in CT Insurance Project
Ghezzi – Chap 2: Software QualitiesGhezzi – Chap 2: Software Qualities Ghezzi – Chap 3: Software PrinciplesGhezzi – Chap 3: Software Principles Ghezzi – Chap 4: Software Architectural StructureGhezzi – Chap 4: Software Architectural Structure
Design Tradeoffs/Design for Today/Tomorrow Ghezzi – Chap 5: Specification ProcessGhezzi – Chap 5: Specification Process
Interviews and Visio Ghezzi – Chap 9: Design and Development ToolsGhezzi – Chap 9: Design and Development Tools
Evaluating UML Tools and Java IDEs Ghezzi – Chap 7/8: Software Engineering ProcessGhezzi – Chap 7/8: Software Engineering Process
Documentation for Users: Contract Documentation/Design Models for Developers Standards for Developers: Maintenance
CSE2102
CTINS-61
Software QualitiesSoftware QualitiesGhezzi Chapter 2Ghezzi Chapter 2
RecallRecall Correctness Correctness andand Reliability Reliability Robustness Robustness andand Performance Performance User Friendliness User Friendliness andand Verifiability Verifiability Maintenance Maintenance andand Reusability Reusability Repairability Repairability andand Evolvability Evolvability Portability, Understandability, Portability, Understandability, andand
InteroperabilityInteroperability Productivity, Timeliness, Productivity, Timeliness, andand Visibility Visibility
Which Qualities are Most Important for CT Which Qualities are Most Important for CT Insurance Department Project and Why?Insurance Department Project and Why?
CSE2102
CTINS-62
Software QualitiesSoftware Qualities
CorrectnessCorrectness Critical Issue – We are Handling both Money
and also Sensitive Data (SSNs) We Must Insure that Agents are Licensed if
Satisfy Requirements More Importantly, they are Denied if Don’t!
User Community Diverse and Computer-PhobicUser Community Diverse and Computer-Phobic Dealing with Mistrust, Not Used to Computers,
etc. Examiners Give Written Material for Clerical
to Enter – They Don’t Type Over Time, Turned them Around with
Increased Productivity and Accuracy
CSE2102
CTINS-63
Software QualitiesSoftware Qualities
ReliabilityReliability Consistent Behavior, Always Up Currently, Renewing 70,000 Agents/Agencies Third Cycle with our Software – Very Reliable
RobustnessRobustness Critical for so Many Novice Users Critical to Insure Licensing Occurs if all
Conditions are met PerformancePerformance
We’ve Faced Database Slowdowns that have Required Optimizations and Redoing Queries
Network Slowdowns Related to their Topology No Issues Re Java Speed
CSE2102
CTINS-64
Software QualitiesSoftware Qualities
MaintenanceMaintenance Already in Mode for Licensing/Consumer Aff. Constantly Making Changes and Upgrades Corrections and Perfections as Well
ReusabilityReusability Better Now than Before Large Usage of Beans/Components Many Large Scale Infrastructure as Well
Document Printing/Output Shared Query Tools have Same format – Instantiated from
Single Set of Code Reusing Tab of Functionality Across Multiple
Tools and Multiple Divisions
CSE2102
CTINS-65
Software QualitiesSoftware Qualities
RepairabilityRepairability Changes Tend to be Targeted within Division Change to Licensing – No Impact on ConAff Java– Along with Our Task Based Approach
Evolvability Evolvability Again – Changes Continue to be Made Multiple Releases (2 Builds/week) Facilitated by:
Prototype System at Storrs Prototype System at Hartford Production System at Hartford
All Changes are “Tried” out First
CSE2102
CTINS-66
Software QualitiesSoftware Qualities
Portability - Mostly Success – Some Problems Portability - Mostly Success – Some Problems Win 98 to Win 2K to Win XP w.r.t. Java Interactions of Java with MS Office Suite (via
VB and VC++) Variable Depending on OS Inability to Replicate Errors Incorporated Massive Error Tracking
UnderstandabilityUnderstandability Consistent Tool Look and Feel All Scanning, Classify, Inquiry, and Processing
Tools have Similar Structure Driven by User Input (Design/Spec by Visio)
CSE2102
CTINS-67
Software QualitiesSoftware Qualities
InteroperabilityInteroperability Currently we have: Win 2K and XP (Client) Win NT, 2K, XP (Servers) Two versions of Oracle, FileNet DMS Java 1.5 plus VC++ plus VB Integration with Fax Server and Outlook Interface to External off-site DBs
User FriendlinessUser Friendliness Strongly Influence by User Community Similar Look and Feel Across Tools Minimal Key Strokes and Short Cuts from MS
Office Suite Replicated in Java GUIs
CSE2102
CTINS-68
Software PrinciplesSoftware PrinciplesGhezzi Chapter 3Ghezzi Chapter 3
RecallRecall Rigor and Formality Separation of Concerns Modularity Abstraction Anticipation of Change Generality Incrementality
Which Qualities have been Uzed for CT Insurance Which Qualities have been Uzed for CT Insurance Department Project and Why?Department Project and Why?
CSE2102
CTINS-69
Software PrinciplesSoftware Principles
Rigor and FormalityRigor and Formality Least Utilized Principle Interviews Captured in Visio, Word, Screen
Shots Feedback/Change List Tracked in Word Weekly Meetings and Report of Changes System Specification Driven by GUI and User
Business Logic No Attempt to Verify Correctness of Business
Logic (w.r.t. Spec) in Actually Code Overall ProcessOverall Process
User Driven – Capabilities of GUIs/Tools Data Driven – Database Content/Queries
CSE2102
CTINS-72
Software PrinciplesSoftware Principles
Separation of ConcernsSeparation of Concerns Separation of Software by Divisions Development of Separate Tools by Division Within Each Division,
Differentiate Among Tasks Within Each Task, Subtasks With Each Subtask, Separate
GUI Database GUI/DB Interactions
Customize Lists of Tasks/Subtasks on User-by-User Basis
CSE2102
CTINS-73
Software PrinciplesSoftware Principles
Modularity and Abstraction Modularity and Abstraction Both Utilized as Implementation Vehicles Division/Tool/Task/Subtask Realized in
Modular (Package-Based) Architecture Architecture Influences Organization of
Software in Source Code Control System Strive for Max Cohesion/Min Coupling
Anticipation of ChangeAnticipation of Change Built to Change
In One Division – Many Changes (Yo-Yoing) In Another – Simply Improve and Refine
Technologies (Java, Oracle, HTML) Chosen due to their Long-Term Stability
CSE2102
CTINS-74
Software PrinciplesSoftware Principles
GeneralityGenerality Strongly Utilized at Different Levels Beans (from Dates to Addresses) Tabs in GUIs – Reused in Multiple Tools
Many Tabs for Consumer Affairs Generalized Resulting Tabs Reused in other Divisions/Tools
Entire Inquiry Tool All Inquiries have Same Format Top and Bottom Portions very Similar Use of Dates and Drop Downs
Overall – Strong Use of Generality w.r.t. Reusing Overall – Strong Use of Generality w.r.t. Reusing the Same Code in Multiple Contextsthe Same Code in Multiple Contexts
CSE2102
CTINS-83
Life & Health/Property & Casualty ITLife & Health/Property & Casualty IT
What Else are all These Inquiry Tools Example of?What Else are all These Inquiry Tools Example of?
Program Family!Program Family!
CSE2102
CTINS-84
Software PrinciplesSoftware Principles
IncrementalityIncrementality True at All Levels for Project Incremental Development by Division
Licensing, Consumer Affairs, Market Conduct, . . . Incremental Development within Division
Different License Applications (12 Kinds) Different Subtasks Code Same Task for User and Supervisor
Incremental Development with Subtask Deploy GUI for Testing Deploy GUI with DB for Testing Deploy Full Subtask for Testing
CSE2102
CTINS-85
Software SpecificationSoftware SpecificationGhezzi Chapter 5Ghezzi Chapter 5
Diverse User Community with Almost No Diverse User Community with Almost No Computer Expertise and NomenclatureComputer Expertise and Nomenclature
Needed to Find a Way to Bridge GapNeeded to Find a Way to Bridge Gap Original Manager ConductedOriginal Manager Conducted
Interviews with Each Division Director + Employees Asked them to Document their Current
Business Processes Manager then LeftManager then Left
Seek Another Alternative with new Manager Use Documents as Basis for Interactive
Interviews that Produce Vision Screen Mockups + Written Documentation
CSE2102
CTINS-86
Software SpecificationSoftware SpecificationGhezzi Chapter 5Ghezzi Chapter 5
Diverse User Community with Almost No Diverse User Community with Almost No Computer Expertise and NomenclatureComputer Expertise and Nomenclature
Needed to Find a Way to Bridge GapNeeded to Find a Way to Bridge Gap Original Manager ConductedOriginal Manager Conducted
Interviews with Each Division Director + Employees Asked them to Document their Current
Business Processes Manager then LeftManager then Left
Seek Another Alternative with new Manager Use Documents as Basis for Interactive
Interviews that Produce Vision Screen Mockups + Written Documentation
CSE2102
CTINS-87
Processing of Producer License Processing of Producer License ApplicationApplication
Operator Enters BasicInformation on Application
Rejection Letter/License Issued
Operator Enters InformationContained on Attachments
Computer AutomaticallyGenerates Rejection Reasons/Pass
Operator Modifies Rejection Reasons/Pass
The slides that followaddress the dialog boxesthat the operator uses toenter information containedon the attachments
25 July 00 Version
CSE2102
CTINS-89
Interviews, Scenarios, and VisioInterviews, Scenarios, and VisioInteractive Specification ProcessInteractive Specification Process
In 2002 of Team Met with Various DivisionsIn 2002 of Team Met with Various Divisions Consumer Affairs Life & Health Property & Casualty Market Conduct
Two Hour Interview Meetings toTwo Hour Interview Meetings to Listen to their Processing Pull-Out Requirements Brainstorm Think for Future without Limits
Result: Visios Reviewed, Edited and Expanded Result: Visios Reviewed, Edited and Expanded Overall 6 Month ProcessOverall 6 Month Process Created 10s of Screens and Scenario of UsageCreated 10s of Screens and Scenario of Usage
CSE2102
CTINS-93
Supplementing VisiosSupplementing Visios
Once Visio’s Stabilized for a Division, Created Once Visio’s Stabilized for a Division, Created Written DocumentationWritten Documentation
Sample Specification for Consumer Affairs Sample Specification for Consumer Affairs Processing Tool is On LineProcessing Tool is On Line
Process Continuing TodayProcess Continuing Today Implementing Screens from L&H and P&C Replaced Visios with Rapid Prototyping with
Java Screens Java Screens allow Users to Look, Feel, Play No Functionality Behind Tool – only GUI
CSE2102
CTINS-94
Software Architectural StructureSoftware Architectural Structure Design Alternatives and Tradeoffs Design Alternatives and Tradeoffs
Ghezzi Chapter 5 + SW Architecture MaterialGhezzi Chapter 5 + SW Architecture Material 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 and What Architecture Facilitates Rapid Prototyping and
Requirements Capture in Short Term?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
CSE2102
CTINS-95
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
CSE2102
CTINS-96
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?
CSE2102
CTINS-97
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?
CSE2102
CTINS-98
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
CSE2102
CTINS-99
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?
CSE2102
CTINS-100
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”
CSE2102
CTINS-101
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
CSE2102
CTINS-102
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?
CSE2102
CTINS-103
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
CSE2102
CTINS-104
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
CSE2102
CTINS-105
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
CSE2102
CTINS-106
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
CSE2102
CTINS-107
Ghezzi Chapter 6 - TestingGhezzi Chapter 6 - Testing
Participators in TestingParticipators in Testing Domain Specialists to Formulate Test Cases Software Engineers Involved in Spec & Design Software Developers Software Testers
Sample TestingSample Testing State of CT Insurance Department Project Constant Renewal of Agents and Agencies
Renewal Scenarios to Process “Batches” Single vs. Multiple Renewals Scan 1/3 page w Bar Code + Check
Develop Scenarios, Testing Procedures, and Cases
CSE2102
CTINS-108
Recall Testing ScenarioRecall Testing Scenario
See Course Web Page at:See Course Web Page at:http://www.engr.uconn.edu/~steve/Cse230/TestScenario.pdf
Scenario Outlines:Scenario Outlines: Purpose of Test Resources Required Test Duration Test Procedure
Input(s) Intermediate Results Expected Outputs
Testing Graded on Pass/Fail
CSE2102
CTINS-112
Overall Test ProcessOverall Test Process
Supported by Different Computing InfrastructureSupported by Different Computing Infrastructure Storrs:Storrs:
Java Appl, Oracle, FileNet DB Server Hartford:Hartford:
Production System with J, O, FN Prototype System with J, O, FN Ability to Deploy Images on Both Systems
Alpha/Beta Testing at Hartford on PrototypeAlpha/Beta Testing at Hartford on Prototype Users Employ CTRL-ALT-PrtScreen for
Screen Shots if Errors Return Debug File from Local Machine Storrs: Try to Recreate Situation and Error
CSE2102
CTINS-113
Ghezzi Chapter 7 – MethodologiesGhezzi Chapter 7 – Methodologies
Methodologically Methodologically User and Business Process Model Driven Work is Task Driven (Jump to Next Slides)
Task Tree Defines Units of FunctionalityTask Tree Defines Units of Functionality Each Task Corresponds to Java Class Each Task Specified via Combination of
Business Logic + Database Prepared by Users and DB Admin
DevelopersDevelopers Code GUI of Task (get Input for Changes) Work on Backend (DB) Interactions Iterate Until Testable Version Available Deploy Pre-Alpha for Testing at Hartford
CSE2102
CTINS-119
Ghezzi Chapter 8 – ManagementGhezzi Chapter 8 – Management
Insurance Department (Hartford)Insurance Department (Hartford) Project Manager Full-Time Consultant 2 Support Developers (Web, Testing, etc.)
UConn (Storrs)UConn (Storrs) 3 Software Engineers (1 in Waterbury -
Remote) 4 - 20 hour/week Grad Students S. Demurjian and D.G. Shin (UConn
Managers) We Utilized Mixed Control – How?We Utilized Mixed Control – How?
CSE2102
CTINS-120
Ghezzi Chapter 9Ghezzi Chapter 9Design 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
CSE2102
CTINS-121
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
CSE2102
CTINS-122
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
CSE2102
CTINS-123
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
CSE2102
CTINS-124
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
CSE2102
CTINS-125
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
CSE2102
CTINS-126
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
CSE2102
CTINS-127
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
CSE2102
CTINS-128
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
CSE2102
CTINS-129
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
CSE2102
CTINS-130
Software Engineering ProcessSoftware Engineering Process Documentation for Users: Contract Documentation for Users: Contract
Ghezzi Chapters 7 and 8Ghezzi Chapters 7 and 8 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: Use Cases to PowerPoint PresentationsTransition: 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 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é
CSE2102
CTINS-131
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
CSE2102
CTINS-132
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?
CSE2102
CTINS-133
Summary of Initial DecisionsSummary of Initial Decisions
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
CSE2102
CTINS-134
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.
CSE2102
CTINS-135
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
CSE2102
CTINS-136
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
CSE2102
CTINS-137
Status and ProgressStatus and Progress
What Actually has Occurred?What Actually has Occurred? UML Tool - Together/J – Not Used Development Tool - Visual Café – Now
JBuilder Database Tool – DBDesigner – Mostly Visio
State of Current Prototyping StatusState of Current Prototyping Status Almost 6 Years – we have
Deployed Licensing and Consumer Affairs Will be Deploying Market Conduct P&C and L&H In Progress All Employees Using various Inquiry Tools
CSE2102
CTINS-138
Status and ProgressStatus and Progress
What Issues have we Faced?What Issues have we Faced? User Community Rapidly Changing Technologies
Java 1.2 to 1.3 to 1.4 to 1.5 From Win 98 to Win NT to Win 2K to Win XP Changes in Oracle and FileNet Versions
What have we left to Face?What have we left to Face?