C&C Project Consulting University of Washington 80% is under the hood…Moving From Prototype Web...
-
Upload
brandon-nailor -
Category
Documents
-
view
213 -
download
0
Transcript of C&C Project Consulting University of Washington 80% is under the hood…Moving From Prototype Web...
C&C Project Consulting
University of Washington
80% is under the hood…Moving From Prototype Web Pages to a Working
Administrative Application Copyright University of Washington , Marcia Tufarolo and Scott Stephenson 2004. This work is the intellectual property of the Authors. Permission is granted for this material to be shared for non-commercial, educational purposes, provided that this copyright statement appears on the reproduced materials and notice is given that the copying is by permission of the author. To disseminate otherwise or to republish requires written permission from the authors.
May 2004 Cumrec 2004
C&C Project Consulting
University of Washington
Marcia Tufarolo - Technology ManagerScott Stephenson - System Engineer
Computing & CommunicationsProject Consulting
May 2004 Cumrec 2004
C&C Project Consulting
Presentation
Moving From PrototypeWeb Pages to a Working
Administrative Application
80% is Under the Hood
ApplicationDevelopment Project
Prototype
C&C TravelApplication Project
Prototype toApplication
Typical ProjectApproach
May 2004 Cumrec 2004
C&C Project Consulting
University of Washington
• State Research University
• 3 Major Campuses
• 40,000 Students
• 24,000 Faculty & Staff
May 2004 Cumrec 2004
C&C Project Consulting
C&C Project Consulting
• Computing & Communications
• Consulting group for UW
• Self-sustaining operation
• C&C Project Consulting hired for work
May 2004 Cumrec 2004
C&C Project Consulting
Types of Consulting
• Web-based Database Applications
• Web-site Design
• Usability/Accessibility Studies
• Computing Needs Assessment
• Unix/Win2x Server/Network Assistance
May 2004 Cumrec 2004
C&C Project Consulting
Typical Project Approach
• Contacted by UW area with a need
• User meeting
• Prepare proposal with estimates
• System specifications & prototype
• Development & implementation
• On-going support
May 2004 Cumrec 2004
C&C Project Consulting
Sample Projects
• UW Web Credit Card
• MyChem (Lab Safety System)
• UW Web Conference
• UW Web Store
• Training & Development Registration
May 2004 Cumrec 2004
C&C Project Consulting
C&C Travel Application Project
• Contacted by C&C Business and Finance
• Provide a common way for C&C staff to request, plan and complete travel
• Meet UW Travel requirements
May 2004 Cumrec 2004
C&C Project Consulting
C&C Travel Application Project
• Application prototype ‘completed’
• Ready to develop the application
May 2004 Cumrec 2004
C&C Project Consulting
C&C Travel Application Project
• Not our typical approach to a project
• Start much earlier in the process
May 2004 Cumrec 2004
C&C Project Consulting
C&C Travel Application Project
• Prototype review meeting
• Significant work had been completed
May 2004 Cumrec 2004
C&C Project Consulting
Prototype
May 2004 Cumrec 2004
C&C Project Consulting
Prototype
May 2004 Cumrec 2004
C&C Project Consulting
Prototype
May 2004 Cumrec 2004
C&C Project Consulting
Prototype
May 2004 Cumrec 2004
C&C Project Consulting
Prototype
May 2004 Cumrec 2004
C&C Project Consulting
Prototype
May 2004 Cumrec 2004
C&C Project Consulting
C&C Travel Application Project
• Prototype focused on the user experience
• Four major functions
May 2004 Cumrec 2004
C&C Project Consulting
User Experience
• Traveler Profile
• Travel Authorizations
• Trip Planning
• Travel Reimbursement
May 2004 Cumrec 2004
C&C Project Consulting
Traveler Profile
• Set of data about a traveler
• Personal preferences
• Travel preferences
May 2004 Cumrec 2004
C&C Project Consulting
User Experience
• Traveler Profile
• Travel Authorizations
• Trip Planning
• Travel Reimbursement
May 2004 Cumrec 2004
C&C Project Consulting
Travel Authorization
• Request a business trip
• Director’s trip approval
May 2004 Cumrec 2004
C&C Project Consulting
User Experience
• Traveler Profile
• Travel Authorizations
• Trip Planning
• Travel Reimbursement
May 2004 Cumrec 2004
C&C Project Consulting
Trip Planning
• After approval
–Plan flights, hotel, rental car, registration…
May 2004 Cumrec 2004
C&C Project Consulting
User Experience
• Traveler Profile
• Travel Authorizations
• Trip Planning
• Travel Reimbursement
May 2004 Cumrec 2004
C&C Project Consulting
Reimbursement
• Receive reimbursement for travel expense
–Full reimbursement
–Misc reimbursement
May 2004 Cumrec 2004
C&C Project Consulting
User Experience
• Traveler Profile
• Travel Authorizations
• Trip Planning
• Travel Reimbursement
May 2004 Cumrec 2004
C&C Project Consulting
C&C Travel Application
• To support the four User functions… what administrative pieces are needed?
• Complex parts of the application were missing
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Authentication/Authorization
• Maintenance/Actions
• State and State Transitions
• Reports
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Authentication: who
• Authorization: what
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Authorization level drives:
–Application functionality access
–Menu structure
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Authentication/Authorization
• Maintenance/Actions
• State and State Transitions
• Reports
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Maintenance/Actions
– Maintain Trip– Maintain Travel Agents– Forward Travel Reservations– Approve Travel Auth Request– Process Travel Reimbursement– Maintain Administrators– Maintain Travel Auth Administrators
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Authentication/Authorization
• Maintenance/Actions
• State and State Transitions
• Reports
May 2004 Cumrec 2004
C&C Project Consulting
State and State Transitions Status Code Description
• AUTH_SUBMITTED Travel authorization request submitted• AUTH_APPROVED Travel authorization request approved• AUTH_DENIED Travel authorization request denied• AUTH_ERROR Travel authorization request error• TRIP_INITIAL Travel reservation request saved• TRIP_SUBMITTED Travel reservation request submitted• TRIP_FORWARDED Travel reservation request forwarded• TRIP_ERROR Travel reservation request forward error• TRIP_CLOSED Travel reservation request closed• FULL_REIM_INITIAL Full reimbursement request saved• FULL_REIM_SUBMITTED Full reimbursement request submitted• FULL_REIM_TEV_SENT Full reimbursement request TEV sent to traveler• FULL_REIM_TEV_RETURNED Full reimbursement request TEV returned by traveler• FULL_REIM_ISSUED Full reimbursement issued• FULL_REIM_CLOSED Full reimbursement request closed• MISC _REIM_SUBMITTED Misc. reimbursement request submitted• MISC_REIM_TEV_SENT Misc. reimbursement request TEV sent to traveler• MISC_REIM_TEV_RETURNED Misc. reimbursement request TEV returned by traveler• MISC_REIM_ISSUED Misc. reimbursement issued• MISC_REIM_CLOSED Misc. reimbursement request closed.
May 2004 Cumrec 2004
C&C Project Consulting
State and State Transitions
TRIP_SUBMITTED
TRIP_FORWARDED
Admin
TRIP_CLOSED
Admin
Admin
TRIP_INITIAL
Traveler
Admin
Admin
Trip Records
Admin
MISC_REIM_SUBMITTED
MISC_REIM_TEV_SENT
MISC_REIM_TEV_RETURNED
MISC_REIM_ISSUED
Admin
Admin
Admin
Admin
MiscReimburse Records
FULL_REIM_SUBMITTED
FULL_REIM_TEV_SENT
FULL_REIM_TEV_RETURNED
Admin
Admin
FULL_REIM_ISSUED
Admin
Admin
FULL_REIM_INITIAL
Traveler Admin
FullReimburse Records
Traveler
AUTH_SUBMITTED
AUTH_APPROVED AUTH_DENIED
Traveler(Pre-approved)
or AdminAdmin
Auth Records
TRIP_ERROR
Application
AUTH_ERROR
Application(Copies to Trip
Table)
Application
Admin
MISC_REIM_CLOSED
Admin
Admin
Admin
FULL_REIM_CLOSED
Admin
Admin
Admin
Admin
Admin
Traveler
CCBF Travel ApplicationAllowable States and Transitions
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Authentication/Authorization
• Maintenance/Actions
• State and State Transitions
• Reports
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Reports –Travel History–Travel Status–Traveler Summary Travel –Authorization History–Travel Authorization Summary
May 2004 Cumrec 2004
C&C Project Consulting
Administrative Functions
• Filtering and search screens
• Links between reports and maintenance functions
• Transaction change tracking
May 2004 Cumrec 2004
C&C Project Consulting
C&C Travel Application
• User Functions - 20%
• Administrative Functions - 80%
May 2004 Cumrec 2004
C&C Project Consulting
Prototype to Application
How did we get there…
Scott Stephenson
May 2004 Cumrec 2004
C&C Project Consulting
How Did We Get There?
• Design
• Develop/Implement
• Test and Release
• Support
May 2004 Cumrec 2004
C&C Project Consulting
Design Process
Client/UserInterviews
FunctionalSpecification
ApplicationPrototype
UsabilityTesting
Client/UserDesign
Sessions
DevelopmentTeam Design
Sessions
May 2004 Cumrec 2004
C&C Project Consulting
Don’t Forget the Client/Users!
• Engage the client to make them feel ownership in the process
• Demonstrate that real progress is being made– Generate excitement!
• Make sure what we’re doing is what the client and users want/need– Contain scope creep– Avoid wasted time and money– Catch “hidden” requirements early in the process
• Discuss outstanding issues and problems
May 2004 Cumrec 2004
C&C Project Consulting
Design Process
• Client and user interviews– Involve them early and often– Discover key business processes to be
included in the application– Discover “hidden” requirements early
• Development Team design sessions– What are the functional elements of the
system?– How do these elements work together?
May 2004 Cumrec 2004
C&C Project Consulting
Design Process cont’d
• Client/user design sessions
– Discuss outstanding issues/questions– Create/review application prototype– Refine prototype after each session
• Usability testing
– Scope of application and user base determines if it’s needed
• Write detailed functional specification
May 2004 Cumrec 2004
C&C Project Consulting
Functional Specifications
• UML use cases for each functional element
– Prototype screen shots
– Detailed documentation of integration points
– Document any issues
May 2004 Cumrec 2004
C&C Project Consulting
UML Use Case
• Actor is an entity (people or systems) that interacts with the system to achieve a desired goal.
• Summary describes the interaction between the actor and the system and the value that the use case adds to the system.
• Preconditions are external conditions outside the scope of the use case that must be satisfied before the use case can occur.
• Postconditions are actions that must be satisfied after the use case has completed successfully.
• Trigger describes conditions that are expected to be true when an actor enters a use case. The trigger may describe a business need or be time-related, or could be the completion of another use case.
May 2004 Cumrec 2004
C&C Project Consulting
UML Use Case cont’d
• Normal Flow describes the steps that the actor and the system go through to satisfy the goal of the use case. Normal flow describes the most common scenario for the use case.
• Alternate Flow describes the less common or unusual events of the use case, although it does not include errors or exceptions.
• Exception Flow shows the interactions that occur when an error or exception is encountered.
• Issues document assumptions, external conditions, unresolved issues, or possible future enhancements related to the use case.
May 2004 Cumrec 2004
C&C Project Consulting
Example Use CaseActor
World
Summary
UW NetID and password are entered in order to authenticate as a valid UW NetID holder.
Preconditions
Actor must already have a UW NetID in order to log in.
Postconditions
None.
Trigger
Actor requests a page in the application that requires UW Authentication.
Normal Flow
The System presents the UW NetID login page.
Actor enters UW NetID and password.
The System authenticates the Actor as a UW Affiliate and continues on to Authorization.
May 2004 Cumrec 2004
C&C Project Consulting
Example Use Case cont’dAlternate Flow
None.
Exception Flow 1
Actor does not have a UW NetID. A link is already provided on the UW Authentication Page which presents information on how to obtain a UW NetID.
Exception Flow 2
Actor has a UW NetID but has forgotten the password. A link is already provided on the UW Authentication Page which explains how to get a new password assigned.
Issues
On the C&C IIS servers, this page is displayed automatically if the destination URL is beneath a secured directory and the Actor has not already authenticated. Secured directories are named ‘uwnetid’.
Authentication functionality is already in place using central resources.
May 2004 Cumrec 2004
C&C Project Consulting
Functional Specifications cont’d
• Miscellaneous processes
– e.g. batch processes and external system dependencies
• Database schema discussion
– Schema diagram– Purpose statement for each table– Detailed description of all table columns
May 2004 Cumrec 2004
C&C Project Consulting
Database Schema Diagram
TravelStatus
PK status_code
group_namedisplay_valuedescriptioninitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
TravelAgent
PK travel_agent_id
agent_name_firstagent_name_lastagent_phoneagent_emailagent_faxagency_nameactiveinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
FullReimburse
PK,FK1 trip_id
special_considerationscar_rentaltaxi_shuttlepers_vehicle_to_locpers_vehicle_to_milespers_vehicle_from_locpers_vehicle_from_milesparkingairfareother_transportlodginguse_per_diemmeals_no_reimburseevent_reg_feephoneinternet_hookuplaundryother_expenses
FK2 status_codeinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
MiscReimburse
PK misc_reimburse_id
FK1 trip_iddescription
FK2 status_codeinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
CentralSecurity
PK uwnetid
FK1 security_levelname_firstname_lastinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
SecurityLevel
PK security_level
descriptionreportadministersuperuserinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
Division
PK division_code
short_namelong_nameactiveinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
AuthSecurity
PK auth_security_id
FK1 division_codeuwnetidname_firstname_lastemailactiveinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
Trip
PK trip_id
FK1 traveler_idFK2 auth_id
destinationdeparture_monthdeparture_daydeparture_yeardeparture_timereturn_monthreturn_dayreturn_yearreturn_timepurposeevent_nameevent_urluse_leaveleave_datesuse_air_travelair_originair_destinationair_departure_monthair_departure_dayair_departure_yearair_departure_timeair_return_monthair_return_dayair_return_yearair_return_timeair_number_ticketsair_number_stopsair_trip_typeuse_lodginglodging_checkin_monthlodging_checkin_daylodging_checkin_yearlodging_checkin_timelodging_checkout_monthlodging_checkout_daylodging_checkout_yearlodging_checkout_timelodging_preferred_hotellodging_is_event_hotellodging_number_guestsuse_rental_carcar_pickup_locationcar_dropoff_locationcar_pickup_monthcar_pickup_daycar_pickup_yearcar_pickup_timecar_dropoff_monthcar_dropoff_daycar_dropoff_yearcar_dropoff_timecar_sizecar_othercar_explanationspecial_considerations
FK3 status_codepo_numbertravel_coordinatornotes
FK4 travel_agent_idforward_timestamperror_messageinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
Traveler
PK traveler_id
name_firstname_lastuwnetidphoneemail
FK1 division_codemailboxuse_corporate_cardemerg_contact_nameemerg_contact_phonespecial_considerationsrestrictionsseat_aftseat_aisleseat_bulkheadseat_exit_rowseat_forwardseat_windowdiet_dairy_freediet_diabeticdiet_fruit_platediet_kosherdiet_low_fatdiet_low_sodiumdiet_vegandiet_vegetarianff_airline1ff_number1ff_airline2ff_number2ff_airline3ff_number3room_typebed_typeroom_handicaplodging_othercar_sizecar_otherinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
Auth
PK auth_id
FK1 traveler_iddestinationdeparture_monthdeparture_daydeparture_yeardeparture_timereturn_monthreturn_dayreturn_yearreturn_timepurposeevent_nameevent_urluse_leaveleave_datesuse_air_traveluse_lodginguse_rental_carcar_explanationuse_event_regspecial_considerationspre_approveddecision_uwnetiddecision_commentdecision_timestamp
FK2 status_codeerror_messageinitial_uwnetidinitial_timestampupdate_uwnetidupdate_timestamp
CCBF TravelApplication
Database Schema
May 2004 Cumrec 2004
C&C Project Consulting
Database Schema Descriptions
MiscReimburse
This table stores the traveler’s miscellaneous reimbursement request information. There can be one or more of these per trip.
Field Description Type Meaning
misc_reimburse_id integer unique id assigned by the application
trip_id integer unique id of trip in the Trip table
description varchar(2048) description of miscellaneous expense
status_code varchar(25) unique status code from the TravelStatus table
initial_uwnetid varchar(12) UWNetID of person who created the record
initial_timestamp datetime date and time the record was created
update_uwnetid varchar(12) UWNetID of person who last modified the record
update_timestamp datetime date and time the record was last modified
May 2004 Cumrec 2004
C&C Project Consulting
Functional Specifications cont’d
• List of all assumptions
– What is and what is not in the application
• List of outstanding issues
– Discussion points for client meetings– May result in additional assumptions
• List of future enhancements
– Desired functionality not in the first version.
May 2004 Cumrec 2004
C&C Project Consulting
How Did We Get There?
• Design
• Develop/Implement
• Test and Release
• Support
May 2004 Cumrec 2004
C&C Project Consulting
Development Process
• Regular client meetings (as before)
• Iterative code<- ->test cycle
– Code to the specification!– Employ collaborative coding where
useful– Peer code reviews– Write and run unit tests
May 2004 Cumrec 2004
C&C Project Consulting
Development Process cont’d
• Peer code review– Does my coding approach/design make sense?– What did I miss?
• In-code documentation– Standard file headers (copyright, author, date, notes,
etc.)– Modification notes (in version control too)– Javadoc or similar
• Use Common Application Architecture
May 2004 Cumrec 2004
C&C Project Consulting
Common Application Architecture
• A structured, common set of development “best practices” and reusable classes (Java and C#) with a “standard” API.– Makes 2+/3-tier Web development realizable
despite tight schedules– Simplifies XML generation and XSLT
transformations– Minimizes dependencies on platform dependent
code– Provides sophisticated logging capabilities to help
diagnose problems
May 2004 Cumrec 2004
C&C Project Consulting
Common Application Architecture cont’d
– Eases application cross-training– Provides design and coding efficiencies– Helps provide better application support– Helps manage change– Handles multiple computing environments
May 2004 Cumrec 2004
C&C Project Consulting
Computing Environment
• Primarily a Microsoft shop
• “Yesterday”: ASP, Java, JavaScript, ADO, SQL Server
• “Today”: ASP.net, C#, ADO.net, SQL Server
• “Tomorrow”: ????
May 2004 Cumrec 2004
C&C Project Consulting
Computing Environment cont’d
DEVELOPMENT EVALUATION RELEASECANDIDATE
PRODUCTION
DesktopMachine
RCServer
Eval.Database
Dev.Server
Eval.Server
Dev.Database
Read-Only
Dev. VSS
Prod.Server 1
Eval.VSS
RC VSS
Prod.Database
Prod.Server N
Prod.Server 2
ooo
Automated Process
Read-Only
Prod.Database
May 2004 Cumrec 2004
C&C Project Consulting
Tools We Use
• C# and Java
• XML and XSLT
• ASP.net, ASP and JavaScript.
• Visual Studio.net and Visual Studio
• Visual Source Safe (version control)
• ADO.net and ADO
May 2004 Cumrec 2004
C&C Project Consulting
How Did We Get There?
• Design
• Develop/Implement
• Test and Release
• Support
May 2004 Cumrec 2004
C&C Project Consulting
Test and Release Process
• Evaluation release for testing
• Track bugs in a database and prioritize
• Iterative beta testing with client
• Write and execute detailed functional test plans (integration testing)
May 2004 Cumrec 2004
C&C Project Consulting
Bug Tracking
May 2004 Cumrec 2004
C&C Project Consulting
Test Plans
May 2004 Cumrec 2004
C&C Project Consulting
Test and Release Process cont’d
• Use unit test suite as element of regression testing
• Release candidate testing
• Client/user training sessions
• Production!
• Refresh documentation
May 2004 Cumrec 2004
C&C Project Consulting
How Did We Get There?
• Design
• Develop/Implement
• Test and Release
• Support
May 2004 Cumrec 2004
C&C Project Consulting
Support Process
• Additional client/user training sessions, as required (train the trainers)
• Application health monitoring
• Bug tracking and resolution
• General computing infrastructure support
May 2004 Cumrec 2004
C&C Project Consulting
Lessons Learned
• Stick with a proven process
• Don’t skip the client/user interviews
– Start with the need, not the solution
• Don’t be afraid to “over communicate”
• Always have a project wrap-up
May 2004 Cumrec 2004
C&C Project Consulting
Project Wrap-up
[email protected]://depts.washington.edu/cac/projects