Top Banner
An Intramural Sport Management System A Manuscript Submitted to the Department of Computer Science and the Faculty of the University of Wisconsin-La Crosse La Crosse, Wisconsin by Christopher M. Johnson in Partial Fulfillment of the Requirements for the Degree of Master of Software Engineering May, 2004
58

An Intramural Sport Management System

Jan 16, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Intramural Sport Management System

An Intramural Sport Management System

A Manuscript

Submitted to

the Department of Computer Science

and the Faculty of the

University of Wisconsin-La Crosse

La Crosse Wisconsin

by

Christopher M Johnson

in Partial Fulfillment of the

Requirements for the Degree of

Master of Software Engineering

May 2004

ICVI)

rr q

~r I

UNIVERSITY OF WISCONSIN-LA CROSSE La Crosse Wisconsin

COLLEGE OF SCIENCE AJID ALLIED HEALTH

Candidate Christopher Michael Johnson

We recommend acceptance of this manuscript to the College of Science and Allied Health in partial fulfillment of this candidates requirements for the degree ofMaster of Software Engineering in Computer Science The candidate has completed the oral examination requirement of the capstone project for the degree

o ~ V v - V 01-- _11~~ve f-- J ~y

~

Dr J illman Date --- shyOral Examination Committee Chairperson

~- -- i~- r ( j

~ f- N J 07 J) J~ d to C -I)1-( x-~v~ ~~~-- ~ ft Member Datg~ ~ 7-lt- ) i~ t on CO]Jlm1 e---- D Riley Exarruna 1 ______Dr

r

19 --)7 L-[ ~fnl ~ d vTv

Dr Periy d~ ate

J ~ L -tl 28- 1_ ~ or --I Date Dr K Hu=Afisdr

~- Vl~ I~b 5-g-oi

Dr G Tymeson Date Director University Graduate Studies

ABSTRACT

In todays world software development can be complex and highly competitive

Several factors add to the complexity particularly if the software has a web-based

user interface and is a distributed application In addition to the complexities involved

during development additional complexities arise in maintenance For example the

software product may need to be modified to match with changing technology such as

newer versions of operating systems and hardware Software developers are thus

forced to choose the right development approach while designing and implementing

the software This document describes the development of a web-based intramural

sport management system The product will be used by the Recreational Sports

Department at the University of Wisconsin-La Crosse and hence has some features

specific to the Recreational Sports Department However the product is easily

extendible and modifiable in order to suit other sports management activities This

report describes the various activities in the life cycle of this software It also includes

the challenges faced during the development the current status and future work on

the software

11l

ACK1~OWLEDGEMENTS

I would like to thank my project advisors Dr Kasi Periyasamy and Dr Kenny Hunt

for their profound wisdom insight and guidance I would also like to thank my

project sponsor the University of Wisconsin-La Crosse Recreational Sports

Department for their initiative in formulating this project and their support during the

project I would also like to express my thanks to the Computer Science Department

and the University of Wisconsin-La Crosse for providing the computing environment

and necessary technologies to complete my project I would also like to express my

gratitude to the Saint Marys University of Minnesota community for providing me

the opportunity to pursue this degree Finally I want to express my appreciation to

my wife and kids for their patience understanding and encouragement during the

tenure of this project

IV

TABLE OF CONTENTS

Page

1 Background Information 1

2 A Brief Introduction to Software Life Cycle 4

3 The Development ofIMSMS 8

31 Requirements Gathering Analysis and Specification 8

32 Design 8

33 Implementation Testing and Integration 9

4 The IMSMS Application 10

41 General Architecture ofIMSMS 10

42 User Classifications 11

43 Detailed Architecture ofIMSMS 12

44 Database Design of IMSMS _ 17

45 Graphical User Interface ofIMSMS 19

46 Deploying IMSMS 20

47 Design Decisions of IMSMS 21

5 Limitations 24

6 Continuing Wark 28

7 Conclusion 30

8 Bibliography 32

9 Appendices

A Sample IMSMS Screen Shots 33

B Sample IMSMS Web Interaction Maps 45

C Sample ll-ASv1S Class Dia2Jams 48

v

LIST OF FIGURES

Figure Page

41 The general architecture of IMSMS 10

42 Modules ofIMSMS 12

43 Detailed architecture of the administrative module 14

44 Interaction map for sports administration 15

45 Database entity-relationship modei 18

46 Create league JSP 20

VI

GLOSSARY

ASP

Active Server Pages A web technology developed and supported by Microsoft

Corporation

API

Application Program Interface An interface whereby an application can access

services provided by lower level modules such as an operating system or virtual

machine

HTML

Hypertext Markup Language A markup language used to format text and link

documents that are commonly presented on the World Wide Web

IMSMS

Intramural Sport Management System The web based application that supports the

administration of an intramural sports program

JavaScript

A World Wide Web scripting language developed by Netscape and allows for data

passing between Java and JavaScript

JSP

Java Server Pages 1 web based technology that supports the development of

dynamic web pages

VII

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 2: An Intramural Sport Management System

ICVI)

rr q

~r I

UNIVERSITY OF WISCONSIN-LA CROSSE La Crosse Wisconsin

COLLEGE OF SCIENCE AJID ALLIED HEALTH

Candidate Christopher Michael Johnson

We recommend acceptance of this manuscript to the College of Science and Allied Health in partial fulfillment of this candidates requirements for the degree ofMaster of Software Engineering in Computer Science The candidate has completed the oral examination requirement of the capstone project for the degree

o ~ V v - V 01-- _11~~ve f-- J ~y

~

Dr J illman Date --- shyOral Examination Committee Chairperson

~- -- i~- r ( j

~ f- N J 07 J) J~ d to C -I)1-( x-~v~ ~~~-- ~ ft Member Datg~ ~ 7-lt- ) i~ t on CO]Jlm1 e---- D Riley Exarruna 1 ______Dr

r

19 --)7 L-[ ~fnl ~ d vTv

Dr Periy d~ ate

J ~ L -tl 28- 1_ ~ or --I Date Dr K Hu=Afisdr

~- Vl~ I~b 5-g-oi

Dr G Tymeson Date Director University Graduate Studies

ABSTRACT

In todays world software development can be complex and highly competitive

Several factors add to the complexity particularly if the software has a web-based

user interface and is a distributed application In addition to the complexities involved

during development additional complexities arise in maintenance For example the

software product may need to be modified to match with changing technology such as

newer versions of operating systems and hardware Software developers are thus

forced to choose the right development approach while designing and implementing

the software This document describes the development of a web-based intramural

sport management system The product will be used by the Recreational Sports

Department at the University of Wisconsin-La Crosse and hence has some features

specific to the Recreational Sports Department However the product is easily

extendible and modifiable in order to suit other sports management activities This

report describes the various activities in the life cycle of this software It also includes

the challenges faced during the development the current status and future work on

the software

11l

ACK1~OWLEDGEMENTS

I would like to thank my project advisors Dr Kasi Periyasamy and Dr Kenny Hunt

for their profound wisdom insight and guidance I would also like to thank my

project sponsor the University of Wisconsin-La Crosse Recreational Sports

Department for their initiative in formulating this project and their support during the

project I would also like to express my thanks to the Computer Science Department

and the University of Wisconsin-La Crosse for providing the computing environment

and necessary technologies to complete my project I would also like to express my

gratitude to the Saint Marys University of Minnesota community for providing me

the opportunity to pursue this degree Finally I want to express my appreciation to

my wife and kids for their patience understanding and encouragement during the

tenure of this project

IV

TABLE OF CONTENTS

Page

1 Background Information 1

2 A Brief Introduction to Software Life Cycle 4

3 The Development ofIMSMS 8

31 Requirements Gathering Analysis and Specification 8

32 Design 8

33 Implementation Testing and Integration 9

4 The IMSMS Application 10

41 General Architecture ofIMSMS 10

42 User Classifications 11

43 Detailed Architecture ofIMSMS 12

44 Database Design of IMSMS _ 17

45 Graphical User Interface ofIMSMS 19

46 Deploying IMSMS 20

47 Design Decisions of IMSMS 21

5 Limitations 24

6 Continuing Wark 28

7 Conclusion 30

8 Bibliography 32

9 Appendices

A Sample IMSMS Screen Shots 33

B Sample IMSMS Web Interaction Maps 45

C Sample ll-ASv1S Class Dia2Jams 48

v

LIST OF FIGURES

Figure Page

41 The general architecture of IMSMS 10

42 Modules ofIMSMS 12

43 Detailed architecture of the administrative module 14

44 Interaction map for sports administration 15

45 Database entity-relationship modei 18

46 Create league JSP 20

VI

GLOSSARY

ASP

Active Server Pages A web technology developed and supported by Microsoft

Corporation

API

Application Program Interface An interface whereby an application can access

services provided by lower level modules such as an operating system or virtual

machine

HTML

Hypertext Markup Language A markup language used to format text and link

documents that are commonly presented on the World Wide Web

IMSMS

Intramural Sport Management System The web based application that supports the

administration of an intramural sports program

JavaScript

A World Wide Web scripting language developed by Netscape and allows for data

passing between Java and JavaScript

JSP

Java Server Pages 1 web based technology that supports the development of

dynamic web pages

VII

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 3: An Intramural Sport Management System

ABSTRACT

In todays world software development can be complex and highly competitive

Several factors add to the complexity particularly if the software has a web-based

user interface and is a distributed application In addition to the complexities involved

during development additional complexities arise in maintenance For example the

software product may need to be modified to match with changing technology such as

newer versions of operating systems and hardware Software developers are thus

forced to choose the right development approach while designing and implementing

the software This document describes the development of a web-based intramural

sport management system The product will be used by the Recreational Sports

Department at the University of Wisconsin-La Crosse and hence has some features

specific to the Recreational Sports Department However the product is easily

extendible and modifiable in order to suit other sports management activities This

report describes the various activities in the life cycle of this software It also includes

the challenges faced during the development the current status and future work on

the software

11l

ACK1~OWLEDGEMENTS

I would like to thank my project advisors Dr Kasi Periyasamy and Dr Kenny Hunt

for their profound wisdom insight and guidance I would also like to thank my

project sponsor the University of Wisconsin-La Crosse Recreational Sports

Department for their initiative in formulating this project and their support during the

project I would also like to express my thanks to the Computer Science Department

and the University of Wisconsin-La Crosse for providing the computing environment

and necessary technologies to complete my project I would also like to express my

gratitude to the Saint Marys University of Minnesota community for providing me

the opportunity to pursue this degree Finally I want to express my appreciation to

my wife and kids for their patience understanding and encouragement during the

tenure of this project

IV

TABLE OF CONTENTS

Page

1 Background Information 1

2 A Brief Introduction to Software Life Cycle 4

3 The Development ofIMSMS 8

31 Requirements Gathering Analysis and Specification 8

32 Design 8

33 Implementation Testing and Integration 9

4 The IMSMS Application 10

41 General Architecture ofIMSMS 10

42 User Classifications 11

43 Detailed Architecture ofIMSMS 12

44 Database Design of IMSMS _ 17

45 Graphical User Interface ofIMSMS 19

46 Deploying IMSMS 20

47 Design Decisions of IMSMS 21

5 Limitations 24

6 Continuing Wark 28

7 Conclusion 30

8 Bibliography 32

9 Appendices

A Sample IMSMS Screen Shots 33

B Sample IMSMS Web Interaction Maps 45

C Sample ll-ASv1S Class Dia2Jams 48

v

LIST OF FIGURES

Figure Page

41 The general architecture of IMSMS 10

42 Modules ofIMSMS 12

43 Detailed architecture of the administrative module 14

44 Interaction map for sports administration 15

45 Database entity-relationship modei 18

46 Create league JSP 20

VI

GLOSSARY

ASP

Active Server Pages A web technology developed and supported by Microsoft

Corporation

API

Application Program Interface An interface whereby an application can access

services provided by lower level modules such as an operating system or virtual

machine

HTML

Hypertext Markup Language A markup language used to format text and link

documents that are commonly presented on the World Wide Web

IMSMS

Intramural Sport Management System The web based application that supports the

administration of an intramural sports program

JavaScript

A World Wide Web scripting language developed by Netscape and allows for data

passing between Java and JavaScript

JSP

Java Server Pages 1 web based technology that supports the development of

dynamic web pages

VII

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 4: An Intramural Sport Management System

ACK1~OWLEDGEMENTS

I would like to thank my project advisors Dr Kasi Periyasamy and Dr Kenny Hunt

for their profound wisdom insight and guidance I would also like to thank my

project sponsor the University of Wisconsin-La Crosse Recreational Sports

Department for their initiative in formulating this project and their support during the

project I would also like to express my thanks to the Computer Science Department

and the University of Wisconsin-La Crosse for providing the computing environment

and necessary technologies to complete my project I would also like to express my

gratitude to the Saint Marys University of Minnesota community for providing me

the opportunity to pursue this degree Finally I want to express my appreciation to

my wife and kids for their patience understanding and encouragement during the

tenure of this project

IV

TABLE OF CONTENTS

Page

1 Background Information 1

2 A Brief Introduction to Software Life Cycle 4

3 The Development ofIMSMS 8

31 Requirements Gathering Analysis and Specification 8

32 Design 8

33 Implementation Testing and Integration 9

4 The IMSMS Application 10

41 General Architecture ofIMSMS 10

42 User Classifications 11

43 Detailed Architecture ofIMSMS 12

44 Database Design of IMSMS _ 17

45 Graphical User Interface ofIMSMS 19

46 Deploying IMSMS 20

47 Design Decisions of IMSMS 21

5 Limitations 24

6 Continuing Wark 28

7 Conclusion 30

8 Bibliography 32

9 Appendices

A Sample IMSMS Screen Shots 33

B Sample IMSMS Web Interaction Maps 45

C Sample ll-ASv1S Class Dia2Jams 48

v

LIST OF FIGURES

Figure Page

41 The general architecture of IMSMS 10

42 Modules ofIMSMS 12

43 Detailed architecture of the administrative module 14

44 Interaction map for sports administration 15

45 Database entity-relationship modei 18

46 Create league JSP 20

VI

GLOSSARY

ASP

Active Server Pages A web technology developed and supported by Microsoft

Corporation

API

Application Program Interface An interface whereby an application can access

services provided by lower level modules such as an operating system or virtual

machine

HTML

Hypertext Markup Language A markup language used to format text and link

documents that are commonly presented on the World Wide Web

IMSMS

Intramural Sport Management System The web based application that supports the

administration of an intramural sports program

JavaScript

A World Wide Web scripting language developed by Netscape and allows for data

passing between Java and JavaScript

JSP

Java Server Pages 1 web based technology that supports the development of

dynamic web pages

VII

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 5: An Intramural Sport Management System

TABLE OF CONTENTS

Page

1 Background Information 1

2 A Brief Introduction to Software Life Cycle 4

3 The Development ofIMSMS 8

31 Requirements Gathering Analysis and Specification 8

32 Design 8

33 Implementation Testing and Integration 9

4 The IMSMS Application 10

41 General Architecture ofIMSMS 10

42 User Classifications 11

43 Detailed Architecture ofIMSMS 12

44 Database Design of IMSMS _ 17

45 Graphical User Interface ofIMSMS 19

46 Deploying IMSMS 20

47 Design Decisions of IMSMS 21

5 Limitations 24

6 Continuing Wark 28

7 Conclusion 30

8 Bibliography 32

9 Appendices

A Sample IMSMS Screen Shots 33

B Sample IMSMS Web Interaction Maps 45

C Sample ll-ASv1S Class Dia2Jams 48

v

LIST OF FIGURES

Figure Page

41 The general architecture of IMSMS 10

42 Modules ofIMSMS 12

43 Detailed architecture of the administrative module 14

44 Interaction map for sports administration 15

45 Database entity-relationship modei 18

46 Create league JSP 20

VI

GLOSSARY

ASP

Active Server Pages A web technology developed and supported by Microsoft

Corporation

API

Application Program Interface An interface whereby an application can access

services provided by lower level modules such as an operating system or virtual

machine

HTML

Hypertext Markup Language A markup language used to format text and link

documents that are commonly presented on the World Wide Web

IMSMS

Intramural Sport Management System The web based application that supports the

administration of an intramural sports program

JavaScript

A World Wide Web scripting language developed by Netscape and allows for data

passing between Java and JavaScript

JSP

Java Server Pages 1 web based technology that supports the development of

dynamic web pages

VII

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 6: An Intramural Sport Management System

LIST OF FIGURES

Figure Page

41 The general architecture of IMSMS 10

42 Modules ofIMSMS 12

43 Detailed architecture of the administrative module 14

44 Interaction map for sports administration 15

45 Database entity-relationship modei 18

46 Create league JSP 20

VI

GLOSSARY

ASP

Active Server Pages A web technology developed and supported by Microsoft

Corporation

API

Application Program Interface An interface whereby an application can access

services provided by lower level modules such as an operating system or virtual

machine

HTML

Hypertext Markup Language A markup language used to format text and link

documents that are commonly presented on the World Wide Web

IMSMS

Intramural Sport Management System The web based application that supports the

administration of an intramural sports program

JavaScript

A World Wide Web scripting language developed by Netscape and allows for data

passing between Java and JavaScript

JSP

Java Server Pages 1 web based technology that supports the development of

dynamic web pages

VII

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 7: An Intramural Sport Management System

GLOSSARY

ASP

Active Server Pages A web technology developed and supported by Microsoft

Corporation

API

Application Program Interface An interface whereby an application can access

services provided by lower level modules such as an operating system or virtual

machine

HTML

Hypertext Markup Language A markup language used to format text and link

documents that are commonly presented on the World Wide Web

IMSMS

Intramural Sport Management System The web based application that supports the

administration of an intramural sports program

JavaScript

A World Wide Web scripting language developed by Netscape and allows for data

passing between Java and JavaScript

JSP

Java Server Pages 1 web based technology that supports the development of

dynamic web pages

VII

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 8: An Intramural Sport Management System

PHP

A World Wide Web scripting language

SMTP

Simple Mail Transfer Protocol A protocol established to define how to structure and

transfer email between computers and servers

Verification

A process that confirms a development process or activity or task to be correct

Validation

A process that confirms that the product (or partial product) meets the expectations

Vlll

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 9: An Intramural Sport Management System

1 Background Information

Management of an intramural sport program on a college or university campus can

be a daunting task irrespective of whether the institution accommodates a small

student body or a large population Administrators of such a program need to manage

not just the sports activities but also the teams and athletes that participate in the

various sports as well as maintain statistics that are related to the program In

addition coordinating the scheduling of contests facilities and officials as well as

manipulating the large amount of data in various logical formats becomes an

overwhelming task

A typical intramural program includes a set of sports offered at various levels of

competition participatory co-recreational and competitive These are further

classified into several seasons of play that define the beginning and ending dates of

various competitions Fall Winter Spring and Summer or possibly by semester or

other designation Often a given sport offered during a specific season is called a

league in which teams register to participate Facility scheduling is another additional

aspect to be considered to schedule a sport

Outside of sports seasons leagues contests and facilities an intramural

department must coordinate and manage the teams and participants An intramural

department must know which athletes belong to what teams and the name of the team

captain Often communications may t10w from the intramural department to the team

captains and then from the team captain to the athletes on the team

There are two approaches that can be taken to manage an intramural sports

program do it manually using pen and paper or integrate technologies that support

managements needs The first approach requires manually recording all information

with regard to all data and manually creating the contest schedules coordinating

I

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 10: An Intramural Sport Management System

facility usage and hand-registering athletes and teams The dissemination of

information would require that documents be typed photocopied and posted in mail

to the participating individuals

The second approach is the integration of software technologies to help manage the

large amounts of data While technologies that support sport management do exist in

todays market the functionalities each technology supports can be limited and may

vary considerably Some products provide useful facility management tools but lack

the ability to work with teams while others tend to work well with teams but not with

facilities Other products may provide the necessary tools for both team and facility

management but may be a stand alone application loaded on a specific machine For

example the All-Pro League Scheduler 40 software developed by All-Pro Sports

Software provides functionalities for scheduling competitions within a league and

printing schedule reports but does not provide functionalities for online registration

of teams and players within a league [2] Because the All-Pro Sports Software does

not provide the online registration of teams and athletes a department could

incorporate the Active University product by Activecom to provide those

functionalities [1] There are products that do incorporate the desired functionalities

but are extremely complex or may present information in an unclear manner For

example Recreational Solutions has developed several IMTrack modules that when

integrated provide online league registration contest scheduling and facility

management [9] However this solution utilizes several different products using

different interfaces (stand-alone web and instant messenger based) which can cause

confusion Furthermore the IMTrack solution may not present data in a desired

format For example when IMTrack presents the contest schedules for a league it

does not print the team name but instead prints the team ill number This may not be

useful to users of the system who do not know a teams ill number

Vlhen it comes to the management of a full intramural system it TIlay require the

integration of several technologies where each technology provides a set of

functionalities These technologies are assumed to be separate entities that do not

2

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 11: An Intramural Sport Management System

interact or share data The coordinators of the sport system would then be required to

use each technology separately to support the specific tasks and copy common data

between systems to achieve a complete solution

This was the situation in the Recreational Sports Department at the University of

Wisconsin-La Crosse The department was using a combination of manual recording

and different computing technologies to manage data With regard to the

technologies the issue of specificity versus generality plagued the department with

each system One system served the needs for game management but lacked

functionalities for automated team registration while another product supported team

registration but did not manage facility scheduling Some products on the market

provide most of the desired functionalities but have a high cost or are too complex to

be used in a general setting So the department decided to build its own sports

management software customized to suit the departments needs

The Recreational Sports Department desired a system that would manage the

intramural registration process by providing an online interface for athlete interaction

The direct interaction by athletes would alleviate much of the pen and paper work that

currently bogs down employee productivity In addition to the registration process

the system should support the generation and presentation of contest schedules

statistics and provide functionalities to disseminate information to administrators

athletes and the general public

3

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 12: An Intramural Sport Management System

2 A Brief Introduction to Software Life Cycle

The phrase software life cycle is synonymous with the utilization of a wellshy

defined process that is applied to software development In short software life cycle

can be defined as a set of activities or phases that occur as the software moves from

its concept to retirement There is no one specific life cycle that can be followed for

all applications nor is there one specific software application that will always be best

served by a specific life cycle model even though a model may have succeeded in

previous applications Choosing the appropriate approach can be a daunting task due

to several factors such as changing requirements during the development changing

technologies and changing management policies However a life cycle model is

expected to drive the development process with the best solution This should be

supported by sound theory adequate resources experience of developers and should

ultimately lead to customer satisfaction

There are many software life cycle models reported in literature [11 12 15 16]

One of the well-known and traditional models is the waterfall model that defines a

specific set of phases that are followed in a strictly linear sequence Other models

have been developed and are modifications to the waterfall model or utilize the

waterfall model but focus on the iteration of various phases All such models include

the following phases requirements analysis and specification design

implementation testing and integration and maintenance

Thee1nlJiroYMonfrltvIH-rln1ICieo nrl lt o i t~ h 11 d r~+h L e el~~++~lVUULlon~ p jlca lvn pl as Ll VYlIl +h onceme

of customers needs and attempts to determine what the system will do Requirements

can be gathered in several ways customer interviews (most common for customized

software development) literature survey and analysis of competitive market survey

The requirements analysis and specification phase is concluded once a developer

4

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 13: An Intramural Sport Management System

believes all requirements have been collected from the customer These requirements

are then transcribed to a set of formal and rigid requirements and documented in the

Software Requirement Specification (SRS) The SRS formally specifies the exact

functionalities of the application and what the project will do This document will

later be used as the basis for testing to ensure that the final product does what was

initially conceived

Next the development of the project moves to the design phase which is a

transformation from what the project does (the requirements) to how the system will

work The design phase is often a set of iterations whereby the designer attempts to

add more details to the design The first iterations are typically concerned with

identifying the major components of the system and presenting them in a high level

model that graphically depicts how the components will be constructed and relate to

one another In subsequent iterations the designer examines high level components

and breaks them down into more concrete obj ective pieces In the final iteration the

designer fills in the algorithmic details which will provide a roadmap for the

implementation phase

There are two popular design approaches used in practice The first one is called

the functional approach and this approach focuses on breaking the system into a set

of functional modules all elements of a module are related by interacting tasks

common data or processes The other approach is called the object oriented approach

and this approach seeks to break the system into independent objects Each object

encapsulates its data and provides a public interface that all other objects must

interact through

The outcome of the design phase is a set of documents that detail the requirements

for the code that is yet to be written These transition documents are the key to

ensuring that the customers requirements will be met Design documents serve as the

base for implementation 11 fact an implementation should be a naIve translation of

the design towards the syntax of a particular programming language The design

documents relationship to requirements must be traceable With the functional

5

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 14: An Intramural Sport Management System

approach the traceability can be straight-forward Each function has a specific

purpose that typically addresses a single requirement in the SRS With an objectshy

oriented approach however an additional level of complexity is seen Because

object-oriented languages rely on the communications between various instances of

classes a single method mayor may not fulfill a single requirement Many classes

and various communications between instances of those classes may be required to

fulfill a single requirement

The testing and integration phase begins once a portion of the project has been

implemented This phase includes two major tasks One of them is to validate the

product ie to ensure that the product meets customer requirements This is done by

checking the outcome of the product against a set of expected values The other task

is to put together various pieces of source code to build up the final working product

Integration is one of the most difficult phases in software development If the design

is incorrect the integration of pieces will not work because of discrepancies in

interfaces the realization of missing components or problems in the translation of the

design to source code Correcting a mistake during the integration phase by merely

adjusting the code is called patching This process will lead to serious problems in

traceability and maintenance For integration to work correctly and smoothly every

document involved in the mistake should be traced and corrected For example if the

problem lies in design the issue will be traced back from integration to

implementation and then back to design If the design has to undergo major revisions

these changes will then have to be realized in the implementation of the source code

which means repeating completed phases of the work Worse yet if a problem is

traced back to a missing requirement or requirements in the specification the

inclusion of those requirements could require a rework of the architectural design

which means starting over on one or more phases of the project

The successful integration of various modules and components allows for the

solution to be integrated into the clients environment and the software project moves

into the maintenance phase This phase is concerned with resolving problems that

6

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 15: An Intramural Sport Management System

customers find with the final solution often referred to as corrective maintenance

The incorporation of new functionalities that are just now being realized due to

oversight or new corporate needs is also done during maintenance this process is

referred to as perfective maintenance

Testing is one of the most important periods in software development It is testing

that ensures that the product meets customer requirements and each life cycle model

includes one or more specific periods for testing For example one variation of the

waterfall model indicates that testing must be performed at the end of the

implementation and integration phase to discover and eliminate errors in individually

coded modules and integrated subsystems [16] Another version of the waterfall

model specifies that unit testing and system testing are two specific phases that occur

after implementation [II] Other life cycles models such as the spiral model indicate

testing to be an activity at the end of every phase so that the output of each phase is

correct and traceable to previous phases [II] No matter the life cycle models used it

is crucial that testing be incorporated to validate that the solution meets customer

needs and errors in logic or implementation are uncovered and resolved

7

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 16: An Intramural Sport Management System

3 The Development of IMSMS

IMSMS was developed using the waterfall model which follows the life cycle

phases in a strict linear sequence This section describes the various phases of

IMSMS development

31 Requirements Gathering Analysis and Specification

Initially the developer met with representatives from the Recreational Sports

Department at LlW-L (customers) several times to discuss the scope of the project the

customers needs and how the resulting software will help automate several tasks that

are currently handled manually at the Recreational Sports Department As with any

other software development project these initial meetings identified the major

functionalities However a majority of these functionalities were incomplete or

vague The developer had to do an initial analysis to determine the boundaries and

scope of the system to be developed This initial analysis was conducted using a

throw-away prototype A significant additional requirement namely tracking

sportsmanship points was included after this analysis The requirements were then

written into a structured requirements document this document followed the Institute

of Electrical and Electronics Engineers (IEEE) Standards on Requirements

Specification [4]

32 Design

A major challenge in the design of IMSMS was to choose the right technologies

for the project Since a web-based interface was included in the product several webshy

based technologies were analyzed Included in the list of such technologies are PHP

Java Servlets Java Beans Enterprise Java Beans HTML and ASP Based on the

8

-

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 17: An Intramural Sport Management System

developers experience in Java programming and also the availability of several free

resources Java Servlets with Java Beans were selected as the technology for this

project At the time IMSMS was designed there was not sufficient information on

web-based technologies and hence the developer had to spend considerable time

reading and analyzing literature support and prototyping using these technologies

Once research on the selected Java technologies was completed an architectural

design (Appendix C) was derived that supported the functionalities of the

requirements document The developer then iterated on the architectural design filling

in algorithmic details until a detailed design was constructed that would be used

straight away for the implementation

33 Implementation Testing and Integration

The developer chose to do cycles of implementation followed by testing and

integration by developing the modules derived in the architectural design based upon

their importance to the system For the first cycle the developer created the

administrative module and tested it with regard to the functionalities specified in the

requirements document Next the author developed the tearn captain module and

tested it upon completion The tearn captain module was then integrated with the

administrative module and tested to ensure that there were no conflicts between the

two modules Finally the last two modules (participant and public) were developed

tested and then integrated with the previous modules Once all modules had been

developed and integrated a final set of tests were run to validate the integration of the

various modules

9

~

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 18: An Intramural Sport Management System

4 The IMSMS Application

This chapter presents the lMSMS applications general architectural design in

Section 41 and a detailed architectural design in Section 42 The database design is

presented in Section 43 and Section 44 discusses the graphical user interface and

usability issues that help derive its construction

41 General Architecture of IMSMS

The general architectural design of the lMSMS is presented in Figure 41 The

lMSMS architecture is structured so a user interacts with a JSP (Java Server Page) by

providing data for submission into the system requesting data from the system or

invoking an action on the system The JSP in turn communicates with an Apache

Tomcat web container running on a server The Apache Tomcat web container houses

the Java Servlets that drive the lMSMS application and these are contacted by the

web container passing in the request object from the JSP The Java Servlet then

executes the requested action by retrieving updating or deleting data housed in an

Oracle database

Requests infonnation

or submits data

JSP Communicates with Java Server Java Servlet located in

o bull G user

Tamcat web containerPages (JSPs)

Figure 41 The general architecture oflMSMS

The lMSMS application is constructed so that the system can be deployed as a

tVio-tiered application where the Apache Tomcat web container and the Oracle

database are located on one server or as a three-tiered system where the Apache

Tomcat web container and Oracle database are located on different servers

10

~

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 19: An Intramural Sport Management System

42 User Classifications

The Recreational Sports Department at the University of Wisconsin-La Crosse

requested that the system support four types of users

The most general type of user is the public user This user is assumed to be

someone in the general public that is not part of the system This user uses the system

to view information about when and where contests are being held and what teams

are participating in currently open leagues Public users may also request statistics

about teams and players

The second type of user is the participant Participants register with IMSMS by

storing their information in IMSMS Specifically a participant may be a player on a

tearn or a player that is part of a free-agent listing hoping to join a tearn Participants

have the ability to create and update their personal profile and register a team in a

league

The third type of user is the team captain A team captain is one that is not only a

participant but also has been named the captain of a team that is included in the

IMSMS Team captains have the ability to create and update teams by changing the

name of the team or adding players to the team either by entering in an existing

players student ill or by selecting a player that is part of a free-agent waiting list for

the league the team is competing in Also team captains can modify the profiles of

the players on their tearn by updating the information in the profile (except for the

student ill) In addition to these abilities a team captain can send emails to all

participants of tearns for which they captain

The final type of user is the administrator An administrator has full control over

the IMSMS Administrators can create update and delete sports seasons divisions

of play leagues pQrticipants teams contests facilities and courts as veIl as send

email to sports leagues teams or participants Administrators can also print reports

that present statistical information about teams participants schedules and other

relevant information to the administration of the department Administrators also

have the ability to archive data as it is deemed to be outdated

Il

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 20: An Intramural Sport Management System

43 Detailed Architecture of IMSMS

The users interact with the system through JSPs Each JSP provides a single

functionality for a user of the system A set of JSPs therefore has been created for

each type of user Administrator JSPs and Java servlets are restricted to authorized

users of the system only This administrative security has been incorporated through

the use of realms that the Apache Tomcat web container manages The realm for this

application has been configured to use the MD5 algorithm to prevent the passwords

from being passed in plain text Team captain and participant user security is based

on the student ill that is presented during login For future work on authentication

see Chapter 6 on continuing work

The detailed architecture of the IMSMS has been broken into five general modules

as shown in Figure 42 The administrator participant and team captain modules are

concerned with the functionalities associated with the corresponding type of users of

that module and contain Java Servlets that are utilized to support those functionalities

The shared module includes functionalities that are shared among the above three

modules Specifically it contains functionalities for free agent lists as well as

participant and team captain authentication Finally the utils module includes utilities

that support system functionalities Included in the utils module are functionalities to

manage a connection pool used for database connections

admi~istration I

J participant 51 [=~~=-L

team Captain _ --

utils

Figure 42 Modules ofIMSMS

The detailed design for the administrator module is presented in Figure 43 This

module is comprised of several Java servlets diagranuned as rectangles titled vith

servlet in the figure Each Java Servlet provides the services requested through a

subset of JSPs For example when working with the sports in the system an

12

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 21: An Intramural Sport Management System

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionaiity The sport servlet then interacts

with the Gracie database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Gracie database for administrative

sports functionaiities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Gracie database

Therefore each Java servlet maps to a separate table in the Gracie database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

lshy

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 22: An Intramural Sport Management System

administrator interacts with one of the following JSPs createsportjsp

updatesportjsp or deletesportjsp Each of these JSPs contacts the administration

sport servlet that provides the respective functionality The sport servlet then interacts

with the Oracle database performing the requested task Figure 44 depicts the

interactions between the JSPs Java servlet and the Oracle database for administrative

sports functionalities Also because each Java Servlet works with a specific entity in

the system each Java servlet is associated with an entity in the Oracle database

Therefore each Java servlet maps to a separate table in the Oracle database with a

corresponding name

Because JSPs are compiled into Java servlets by Apache Tomcat JSPs have the

ability to use the Java servlets that are part of the system before the corresponding

HTML code is generated for a HTTP Request Because of this each Java servlet in

the IMSMS can create a Java bean which is an object that contains one attribute for

each field in the table corresponding to the Java servlet that instantiates the bean The

Java bean provides accessor and mutator methods for each attribute in the bean Java

beans can be embedded and used by JSPs when generating the HTML that is passed

to the user upon request In the IMSMS Java beans are used for the filling of combo

boxes text boxes and other controls with data that currently exists in the IMSMS

For example when a user attempts to delete a sport a combo box lists the sports that

are currently part of the system and can be deleted The loading of this combo box is

through a small JavaScript located in the deletesportjsp page that utilizes Java

beans returned from a call to the Administrative Sport Servlet

13

L

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 23: An Intramural Sport Management System

C~S--~~~-- - ----PAG-Ec--i0~~t~J~~=-=_ bullbull ~~i-== ~~( ~~~~eMetO ~==~~~(j ErTJ~iSecv_~_ ~=r~~~~~JJr6rpll I~Lee~(l je~t~~) ~mloSerylr Stmp weStgt71CounRelBlOlllIlPl() l~iictAlrttO$1 leleeorte5t(j I Emat3erv~O~NllYgtt~81l0 TeamsO II getNlm~rOfVVeekll() ~O~etFltrlIlVID() eCUta() tA_vllIbJlf~c1L~~ ~OISIO ~~~)a(1 ~~~~)I) ==iPoAddreUSI)~iiIW~tilj ~ eTeamsl1 iViIlIdatePrametersl)

~ - I leIePlavers(1 ~aldateAdltiea5() letePartrwtflgO SIXlrtAddres6oampll

I eConestsO SeaaCfAddreue5l)-- --~ - eFreeAgerts(j DilOrAddresJeI)- ~l~eS~~_ I eleIT~WallJllsO_~ ___ leagueAlilreueso

- - - -- TeamAdOenesl) -Allidaltiervol() ~NeteAOlreueel) lIIllhetaltieVIeIl procenQwryO~uelty( _ euArrayfc$InlO~ajalampParamet~() ~~ ~etNewElerr3Ii 41gerAICIlla() ~~AICBlaOeltrei

-----~-- -- shy IMSMSEJemwTServlst _~ -~f----------c~~~~~__ __

~ -~cent-~ -

____~IS~1I1et ~INSER1 t llrnl _ shy

itoCorrllllSefVeI() ~~JtJ~ tl~r H Smiddot ~JerYI) iVHBLE ~jAME Slrrog laquo

~TABLf=~~ENnFI~~~ --------~ _ ~NeMlemwl(l ~1[8IBj

~~aIPtrarnetellmiddotO

MSMSEIEmer1ServipoundJtl) ~Palr()

~etAKorleampltlrUague() ~roceso IMSMSServJllt ~IllAIDita60f~)

getAlil~~~~JL _ ~-1~~~~lErr($(J ~~Ak~~t=IO

~~C~=f8ltll1) ~~ST OR 1=1 aLRE rt 2 9RepcnServlellO ~aldaeParamelln() ~IMSMSServlel()

--~~~~~--- ~dQLerY() ritO PD tt~NewEIe~0 ~__ loodoPJIIIO getTelIITlPalCi~lY()

- ~---~- ~f-rrnl) rPartc~()~lIlOOSefVlEt(l

IClneamplIO~wry() ~ ~aidale~ardmeterl(1 ~MJrllt~~~~enso OO ~~~cL _ ~etErrOfMesaage()

OnOffCam~IJ lCurer-lntormlllCfl()a~~~~p~~~g) ~Os1mporwl) JltAIPangtCi~RalIJOj

IaldateDateParafTle(~)

tArTeamRalO()~c~~~~~)L--=_~~~~---_ 1get~ara3(()

~FyenlvSerllil~) ivalclileTlmeParametero 1~dQlIlIl) ylIov-illliatelrtParamelet1J

~iE~~~_______ _~B1ialdilePilrameoeramp) ~CIlWliIdl) ~~~le~IJ iell~ueRel~S9QLJefyO ~AICali1I) ~ecgtleOLerYO ~Oii1iesFoltspon~I( ~JBIY~le

---r-amW3illJoISa-~-~~

tampL7slln~ $east _~~95S_eri_

~gt~tSer 1d11 ~ljaceryl)

1eamRosterServIetO Te~RQSlerSerIel( ~Postl)

~ilQleryO

~~~=~Ii~ __ aldaleFaran-eten() ~NoCalhnl) ~gelNe-vEiemert()

____~gtliIIortgtEf~ eISir1Oe()I

~AIDaaO-_ ~_==-~-~ middot---I~~=leto ~ getAlDalaBelcre()n

middoteat~Servleli) 11lvilldalVaramehlrsQ I ~-L~~~t~Q _ bull~Icil(lue-Ser--IetIJ ~NeItlemenjL-~ldQRryJ -- shy~lllilePamders(l lt~N~Iemel1() ~Pan1ClparqTeam6) JetTiJEmWaIlJLiSl()

iFreltA- CcnelilSI)

I TeamScrvielSplrI2l ~~--=~=------

~TeltrT13elllet(j SoasonlQ) ConlDO U3lal) ~TvnSelllel(J

9lAfOJIai ) tgtIllClt2ryOmiddotjIelAlDala8efcreOaef) ~amplilllefarilmelers) getAIVilJldleagte6FJAlJoScedlje() ~gelNeoMemertO galAlJperLeQ9lRSI) - lllaleCaplil) ~L9le1iWttOpenReltJstratIOlllJ )elAlOalao

JClAiDilaBefCJeO ~0OIlaj)

~E~~~~taa~eCale( _ ~PArTealmlnlerigue() lt~~~~tal)

1elTeO ~lJstiL ~

Figure 43 Detailed architecture of the administrative module

14

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 24: An Intramural Sport Management System

I Ma~JSP (AaminjstmtiO~)

I sportmodifyjsp 11-------1

~ SPOrtsj8P I

ll Ie Sportdalelejsp

fI

[I Sportcreatejsp

~ ~--~-I

_bull ebullbullbullbullbullbullbull bullbullbullbullbull I -

~ --YVSn laquogt ~ Figure 44 Interaction map for sports administration

The administrative side of the system has the following Java Servlets to provide the

administrative functionalities

bull Archive Servlet The Archive Servlet provides archival functionalities When

archiving an administrative user can specify a date and archive all data before

that date to a storage medium of their choice (hard disk CD DVD etc)

bull Athlete Servlet The Athlete Servlet allows an administrator to create update

or delete athletes in the system Information located in an athletes profile

15

~--

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 25: An Intramural Sport Management System

include student ill name address city state zip phone number email

address year in school (freshman sophomore junior senior graduate

faculty and staff) sex and residential status indicating living on campus or

off campus

bull Contest Servlet The Contest Servlet allows for the manual creation updating

and deletion of contests for a specific league

bull Contest Auto Schedule Servlet The Contest Auto Schedule Servlet provides

the functionality for auto-scheduling contest for a league after the registration

period has closed and no contests have been scheduled The contest auto

scheduling algorithm is round-robin scheduling and applies the polygon

method [3]

bull Court Servlet The Court Servlet allows for the creation updating and

deletion of courts within a facility Administrators can specify the type of

sports that each court supports

bull Division Servlet The Division Servlet allows for the creation updating and

deletion of divisions in the system Example divisions would be Mens

Womens and Co-Recreational

bull Email Servlet The Email Servlet provides email functionalities

bull Facility Servlet The Facility Servlet allows for the creation updating and

deletion of facilities in the system

bull IMSMS Element Servlet The IMSMS Element Servlet is an abstract class

that contains common actions of several servlets in the administrative side

For example all servlets have a doPost method that is called by the Apache

Tomcat web container This method resides in the IMSMS Element Servlet

since most of all the administrative servlets have a common functionality and

algorithm for this method

bull League Servlct The League Servlet allows for the creation~ updating and

deletion of leagues in the system It also provides functionalities for retrieving

objects associated with leagues contests teams participants etc

16

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 26: An Intramural Sport Management System

bull Report Servlet The Report Servlet allows for the creation of statistical or

schedule reports for administrative uses Examples include team rosters and

malefemale ratios for leagues seasons teams or the system as a whole

bull Season Servlet The Season Servlet provides functionalities for the creation

updating and deletion of seasons Seasons could be Fall Winter Spring and

Summer or could be based upon semesters of the school year

bull Sport Servlet The Sport Servlet allows for the creation updating and deletion

of sports in the system Example sports are Volleyball Hockey Basketball

and Badminton

bull Team Roster Servlet The Team Roster Servlet works with the rosters of

teams Specifically it allows for adding and removing participants from team

rosters as well as general data retrieval for team rosters

bull Team Servlet The Team Servlet provides functionality for creating updating

and deletion of teams in the system

bull Team Wait List Servlet The Team Wait List Servlet provides the ability for

teams that attempt to register for a league that is full to be wait listed and

possibly joined to the league by administration This could occur if teams

withdraw from the league do not pay their dues or if the administration

decides to add more teams to a league beyond the league capacity

44 Database Design of IMSMS

The database for the h1SMS application was developed based on the data for

athletes and additional information furnished by the Recreational Sports Department

Several additional entities were created by the developer in order to facilitate the

services for other entities Figure 45 shows the database design for the IMSMS In

this design each entity is denoted using a rectangular box vith the entity title Belov

each title is a list of attributes that define the entity (right hand column) and modifiers

for each field PK represents the primary key(s) FK represents the foreign key(s) U

identifies that the attributes values must be unique

17

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 27: An Intramural Sport Management System

1i32ii 11

lirWU ~ PK FACILlTYIO i

PK ~ U1 FACILITYNAMEI

FK1U1 FACILliYlD U1 CQURTNAME

t Ii svP~~rs i i~lt IJlaquo i

f- PK lifllflIJQ PK SEASONIP

COURTID U1 SPORTNAME U1 SEASONNAME SPQRTID

t ~

PK LEAGUEIO

1+ FK1U1 SPORTID IFK2U1 SEASQNID

FK3U1 QIVISIONID YEAR LEAGUETIME

I-CQNTESTDURAliON LEAGUESTARTINGDATE

I TEAM LEAGUEENDINGDATE REGISTRATIONSTARTINGDATE

PK ~ 1shyREGISTRATJONENDINGDATE MAXIMUMNUMBERQFTEAMS 9l1lT5ST 7

U1 TEAMNAME ACTIVE

FKl CAPTAINID TIMESTAMP PK CQNTE$Tlp

TIMESTAMP FK1 lEAGUEID FK FACILlTVID FK3 caURTIO

ii HOMETEAMID

PKFK1 LEAGUElp AWAYfEAMID

PKFK2 IEAMIIl CONTESTOAT CONTESTTIME

TIMESTAMP HOMETEAMSCQRE I AWAYTEAMSCQRE TIMESTAMP -I

uSeRRQbESmiddot USER gt

~ l gt

LEPK USER NAME PK USER NAME PK ROLE NAME PK ROLE NAME

PKFK1

IUSER_PASS PKFK2 STUpeNTJO

TIMESTAMP

Figure 45 Database entity-relationship diagram ofIMSMS

During the database design a critical decision was made how the Oracle database

would be used by the IMSMS This decision determined what type of locking

optimistic or pessimistic would be used by the IMSMS application With pessimistic

locking the database would be locked whenever a read occurred on the database with

the intent of updating or deleting the information With this solution however the

database could have one or more records locked for an extended period of time that

would significantly affect the performance of the system With optimistic locking the

I i(ATHLE)E

PK STUpENTIDI

IFIRSTNAME LASTNAME STREETADDRESS I CiiY I STATE ZIPCODE PHQNENUMBER EMAILADDRESS GENDER YEARINSCHQOL QNCAMPUS TIMESTAMP FKl

FK2

I i ONISI gt PK OIVISIONID

U1 DIVISIONNAME

U Ul

PK

FK1U1 FK2U1

PAYER

pLAYERIQ

TEAMIP 5TUOENTID ACTIVE TIMESTAMP

PARTICIPAT~NG 0shy

PKFK1 LEAGUEID PKFK2 IEAMIIl

TIMESTAMP

18

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 28: An Intramural Sport Management System

database would not be locked for read commands with the intent of updating the data

after processing Instead it was assumed that the data would not change between the

time it was read and updated or read and deleted The optimistic locking approach

avoids data corruption by sending users error messages whenever an improper race

condition occurs The IMSMS database uses the optimistic locking approach

45 Graphical User Interface ofIMSMS

The IMSMS contains a web-based graphical user interface This interface is

comprised of several JSPs through which the user interacts JSPs are essentially

HTML pages that can incorporate JavaScript A major difference however between

HTML pages and JSPs is that JSPs are compiled and converted to Java Servlets

Several issues were researched and decisions made about how to handle the user

interactions with the JSPs For example the JSPs were created to minimize user

errors Therefore whenever possible the use of combo boxes calendar controls and

other preloaded form objects are used so that the users of the system are not required

to manually type in data This approach alleviates many of the problems that could

arise from invalid or improperly formatted input For example the create league JSP

depicted in Figure 46 is constructed in such a way that a user never manually types

any data since data is selected from combo boxes and calendar controls

For each JSP custom graphics were created to support navigation between JSPs

These were developed as png files using Macromedia Fireworks optimized to

remove colors that were not being used and then exported as gir files During the

optimization process it was noted that most of the rollover buttons that were

created for navigation were approximately 29 Kb in size After the optimization

process was completed all but one button was 1 Kb in size The optimization of all

graphics helps to improve the pertormance of downloading files across a network

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request object that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

19

lshy

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 29: An Intramural Sport Management System

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

j~~iiiiil fLlJblji]1

jCO-AECA

[FAil

[~~DMJtHON

DIvision

MuJrnum N~OOr ci Participating TI

~U~ (mPtition Tune

Length ot Conrelltll

LPd4ue Starllrlg [)Ill (datI offlf3t

Ledgue EndIng [Mtd (date of last ront

League Rgistration Stamng Dolte

otilgoe R-giltratlOn Ending Dltlte

$fgt=n

port

fOU IU~ ~u~tly viewms the Cr~te uague Adminim~~vep~~ei ~~~m From bm you =create 1dgUlS for the Intramural seascllS Simply aeiet the Sport ~~aoon and Division you wIsh to create the league for Next ~eot the maxiawm number cl teams that will be aJlcwod to join the league Next Soaieec the ~s 8tarting mi endilJi dam (thj$ ehouId be tM day that the leasues conte$t$ will be held)1lSI well ae the starnng lind ~ciili regiscrarlD) date tNhen yenoo are funl1lelti click SUOTTllt U you seI~t Home yeu will be taken

back to the Admimstlanve Horne Page

--U plt~a Llf~cw~~ ~~ i~ bullbullmiddote_hHmiddot MltI _ bullbullC MlOOltI W u ~_~ c_ v _

Figure 46 Create league JSP

In addition to optimizing the graphics the IMSMS Element Servlet gets the

Accept-Encoding header from the HTTP Request obj ect that is passed into the

doPostO method If the header contains a value then the users browser supports

compression and IMSMS compresses all returned web content to further reduce the

downloaded size of files and network traffic This increases the download speed and

helps to further reduce network traffic

46 Deploying IMSMS

lS stated earlier ~~e n1S1S application rUns In an Apache Tomcat web container

residing on a server The web container needs to be configured to handle several

20

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 30: An Intramural Sport Management System

aspects of the system First the servers configuration file serverxml needs to

include the llvlSMS context This context specifies the path to the application based

upon the root of the web container Also included in the context are the log file

location and the log file name Additionally the context provides the database driver

name the database connection URL and the database account (user ill and

password) that has been created to allow Apache Tomcat to connect and authenticate

Outside of the configuration file the llvlSMS contains two files that need to be

configured in order to establish connections to the database (outside of Realms) and

to an SMTP server These files are located in the llvlSMSWEB-INF folder The first

file is the dbconfig file that specifies the database that the system will use the

llvlSMS account (user ill and password) to connect to and the minimum and

maximum number of connections to the database that the system can establish The

minimum and maximum limits were set so that llvlSMS could not hold and utilize all

the licensed connections to a specified Oracle database if that were not desired This

allows other applications that may also utilize Oracle to have free connections for use

when the llvlSMS has a light load or is sitting idle The second file (located in the

same directory) is the smtpconfig file that includes an entry for the SMTP server to

use when performing email services

Both of these files are used by the llvlSMS during the initialization of the

application The webxml file for the llvlSMS application has been configured to

initialize IMSMS by creating the connection pool and compile and load an instance of

each Java Servlet immediately after the Apache Tomcat web container is started

47 Design Decisions for IMSMS

What follows is a list of major design decisions that were made to support the

architectural database and GUI designs

bull All data that the user enters will be stored in upper case This is because it

would be possible otherwise to enter names in multiple formats (lowercase or

mixed cases)

21

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 31: An Intramural Sport Management System

bull There is a class corresponding to each table in the database with the same

name This decision provides a logical association between classes and tables

bull The deletion of a primary object (facility for example) will delete all

secondary objects associated with it (courts for example that were part of the

facility)

bull All primary objects have a Java Servlet associated with them This means that

each table in the database has a single Java Servlet that manages it (ie if

there is a league table in the database there will be a league Java Servlet that

handles inserts updates and deletes in the league table)

bull The system will use client-side validation for content This is to reduce the

load on the server Note that this requires clients to have JavaScript turned on

to allow the JavaScript validation to occur The system could be changed in

the future to allow server side validation but that could strain the server and

reduce performance

bull The GUT was built to minimize the amount of validation by the application

code Specifically

o Field lengths will be handled by the text fields that are used for entry

The text field will not accept more characters than the max field

length

o Dates can only be selected from a calendar (no manual entry of dates)

so that the format of the date does not need to be validated The only

validation required is to check whether the date is in the future or past

based on the requested operation

o When searching or selecting elements that exists in the system combo

boxes will be used to present valid selections

bull All emails sent by administrative users will utilize a specific administrative

email account for the from address

bull All emails from team captain users will show the team captains email address

in the from address

22

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 32: An Intramural Sport Management System

bull If there is a problem with a recipients email address and there is more than

one recipient of the email the invalid email addressees) will not be emailed

the valid email addressees) will be emailed and a message will indicate the

invalid email addressees)

bull Sport Names Division Names Season Names Team Names Participant IDs

and Facility Names are unique in the system

bull Court Names are not unique in the system Court Name and Facility Name

together will be unique in the system For example in Memorial Gym Court

1 Memorial Gym is the Facility Name and Court 1 is the Court

Name

bull The webxrnl file is configured to load the IMSMS Java Servlets at startup

to prevent errors in accessing the database before initialization of the

connection pool This also has the benefit of pre-compiling all Java Servlets

before they are accessed

bull The IMSMS will not auto-schedule contests until after the registration period

has closed and has validated that no contests have been created for a specific

league

bull An administrative user cannot modify or delete a contest after the league has

been completed

bull An Administrative user cannot send emails to leagues that have completed

23

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 33: An Intramural Sport Management System

5 Limitations

The IMSMS was initially conceived as a general application that could be utilized

by both the Recreational Sports Department at the University of Wisconsin-La Crosse

and other institutions or sports leagues to manage their sports and facilities However

as the project progressed and changes were made based upon the business rules of the

Recreational Sports Department the system design moved towards a customized

system that only supports the needs of the Recreational Sports Department Because

of this there are several limitations with regard to use in a general environment

One limitation of the system revolves around the automated contest scheduling for

a specific league The algorithm for auto scheduling supports the philosophy of the

Recreational Sports Department whereby a league is created for a specific day of the

week and time of day Therefore the auto scheduling algorithm does not vary the

time of day or day of the week when scheduling the contests To be used in a more

generic setting this may be more desirable or required

Another limitation with the automated contest scheduling is the determination of

appropriate facility Currently the product retrieves all facilities that are available

during that date and time and supports the sport of the league This does not take into

account the number of facilities or the number of sports that each facilitycourt

supports This may lead to problems if a facilitycourt F supports two sports say sport

A and sport B where sport A is supported in many facilities but sport B is only

supported in the current facility If an administrator schedules a league of sport A first

and the facilitycourt F is selected by the algorithm and if the administrator attempts

to schedule a league of sport B it is possible that no facility will be available because

no other facilitycourt supports the sport

24

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 34: An Intramural Sport Management System

--

When looking at the team registration by a team captain the system does not

require that the team captain supply a team roster for the team This allows a team

without players to reserve a spot in a league A solution to this would be to force the

team captain to enter the student ill of each student that will be on the team This

however could cause a problem if the athletes never provide their information

through the participant side of the system This is further complicated by the fact that

participants cannot add themselves directly to a team For a team captain to add a

participant the participants information must have been entered into the system

previously or the team captain must enter the information and then add the

individual

The issue of authenticity with regard to participants and team captains exists in the

system This could however be alleviated by allowing IMSMS to validate

information with the universitys database This validation could be handled during

participant registration Furthermore if a tie is successfully added there is no need

for participants to provide the currently required information as the participants

profile could be directly retrieved from the student registration system and the

university database

Another limitation exists in the system with respect to the tracking of team and

player information versus participation The Recreational Sports Department has a

rule that a participant cannot play on two teams in a single league this rule is easily

enforceable However the department also wants the ability to keep entire teams

together so that teams can be tracked for performance data such as the number of

league championships won the number of leagues a team has participated in the

number of different sports a team has participated in and other statistics At present a

player of a team may participate in a basketball league but may decide to not

participate with this same team in a volleyball league The participant may wish to

participate on another team for the volleyball league The issue is to either create

many instances of a single team with different rosters for different leagues or to keep

a single instance of the team and then not include enforcement rules when adding

25

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 35: An Intramural Sport Management System

---

players to the team and teams to leagues Based on the conversations with the

Recreational Sports Department the system currently does not enforce these

participation rules but could at the same time also include invalid data for a

participant of a team

Because the system is transmitting data over the Internet security is another

primary concern The system does not encrypt data that is transmitted and hence it is

possible to intercept plain text information that is being sent or view cached copies of

visited JSPs on a public computer However the data being transmitted was not

considered to be a threat to any individual by the Recreational Sports Department and

therefore the system was not built for the inclusion of encryption or password usage

The Recreational Sports Departments argument for this decision was that they

currently require the team captain to obtain all participant information for each

member of their team and therefore that information was already known to other

athletes and therefore not confidential In addition the TALON system used by the

university requires that users not only enter their student IDs but also a private

password and hence someone that intercepted or viewed that information would not

have access to the individuals records

Limitations exist for students with disabilities For example the system was not

designed or tested for users with visual impairments or other disabilities

Another limitation is the use of the default concurrency mechanisms of the

connection and statement objects These objects have default optimistic locking

mechanisms defined in the Oracle driver where locking occurs at the record level to

maximize database concurrency Each insert update and delete statement that is sent

to the database for execution is then committed upon successful completion of the

statement There are occasions such as working with waiting lists and leagues where

two statements need to be executed in order to complete a transaction In these cases

an improvement would be to lock the associated records through a begin transaction

statement (pessimistic locking) followed by the sequence of statements to perform

the transaction and then followed by a commit or rollback statement Currently if a

26

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 36: An Intramural Sport Management System

failure occurs in the middle of a transaction the IMSMS system automatically

reverses the changes made by the previous statement(s) to return the database to its

previous state By incorporating transaction statements it would be possible to

incorporate a higher lock granularity to utilize the DBMS transaction processing

albeit a reduction in concurrency could occur in the system

27

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 37: An Intramural Sport Management System

6 Continuing Work

At present no validation process exists for intramural participant registration

against university records A module could be designed and integrated into the system

that would automatically verify eligibility based on student registration system

records When an intramural participant attempted to register the system would

interface with the university system to validate the user as a valid student faculty or

staff member With this approach the user would not need to enter IMSMS

registration information separately

In its current configuration the system requires a database administrator to grant or

revoke rights and privileges for access to the administrative functionalities through

the inclusion of user IDs passwords and user roles that the Apache Tomcat Realm

authenticates against The development and integration of administrative management

tools that would allow for the insertion and removal of administrator users of the

system would be beneficial for administrative purposes

Another portion of the system that could be addressed is the SQL statements used

in the solution Currently all SQL statements are created on the fly with a call to a

connection objects getStatementO method It could be advantageous to use

prepared statements for each entity in the database This would allow the system to

have a precompiled statement on the database and simply send the necessary

parameters to improve processing speed on the database server

Lastly some functionalities listed in the requirements document are currently not

completed The bulleted list below denotes requirements not included in the IMSMS

application

bull A public user should be able to view contest schedules and results a listing of

teams and team rosters for a league

28

-shy

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 38: An Intramural Sport Management System

bull Reports that include statistical data including

o Number of active sports in a season

o Number of contests each team has participated in (date based)

o League contest schedules and results printed by day week or season

o View participant information with respect to leagues

bull The number ofteams the participant was part of

bull The number ofleagues the participant participated in

bull The number of championship teams the participant was part of

o A listing of team champions based on

bull Leagues that have completed

bull Division

bull Team name

bull Score sheets are available in the system However they do not print out the

team name or the participant names The JSP page for each score sheet needs

to be updated to include this information for a specific contest

bull The system should develop tournament brackets for a league after the

completion of league competition the department has currently requested that

this be performed manually

bull

29

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 39: An Intramural Sport Management System

7 Conclusion

The IMSMS application has been developed to meet the needs that were specified

by the client in the requirements phase and developed using sound object-oriented

principles The system currently supports the following functionalities accessible

through a web interface

Administrative functionalities

bull Creation modification and deletion of sports

bull Creation modification and deletion of seasons

bull Creation modification and deletion of divisions

bull Creation modification and deletion ofleagues

bull Creation modification and deletion of contests

bull Auto-schedule contests for a league

bull Creation modification and deletion of facilities

bull Creation modification and deletion of courts

bull Creation modification and deletion of teams

bull Creation modification and deletion of athletes

bull Ability to add teams to leagues from team waiting lists

bull Ability to add participants to teams

bull Generation of a report to present teams and their associated roster for

specified leagues

bull Generation of a report to present athletes and their associated infonnation

bull Generation of email by league sport division athlete and team

bull Data archival to reduce the size of the database and to remove unwanted or

outdated data

bull Security to prevent unauthorized use of administrator functionalities

30

shy

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 40: An Intramural Sport Management System

Team Captain Functionalities

bull Create their participant profile

bull Log into the system using their student ill

bull Update their participant profile

o Have the system recognize a user as a team captain through their login and

present team captain functionalities

o Online team registration for league participation

o Join the team waiting lists when league registration is unsuccessful because a

league is full

o Create a team

bull Update a team by changing the team name

o Add participants to a team by student ill or through the free agent lists

bull Send an email to team participants

Participant functionalities

o Create and update their participant profile

o Log into the system using their student ill

o Join a free agent list

This product will assist the Recreational Sports Department at the University of

Wisconsin-La Crosse by streamlining the current intramural administrative practices

Specifically it will remove much of the face-to-face contact that is required with the

captains of teams that participate in the system by providing a team captain and

participant side to the system This will allow the team captains and participants of

the system the ability to create and update personal information that is maintained by

the department Also it will allow the administrators to configure a set of leagues in

the system auto-schedule contests and simply record the results of those contests so

that administrators and the public can track the teams during the course of league

play Finally the product addresses the needs of the department as the IMSMS was

custom built

31

shy

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 41: An Intramural Sport Management System

Bibliography

[I] Activecom Active University The Active Network Inc 2003

[2] All-Pro League Scheduler v 40 All-Pro Sports Software 2004

[3] K Calkins A Review ofBasic Geometry Revised Berrien County Math amp Science

Center Andrews University 2003

[4] Computer SocietySoftware amp Systems Engineering Standards Committee

Recommended Practice for Software Requirements Specifications Std 830shy

1998 IEEE Standards Association Piscataway NJ September 16 1997

[5] Course ILT Macromedia Fireworks 40 Basic Thomson 2002

[6] Course ILT Alacromedia Dreamweaver 40 Basic Thomson 2002

[7] M Hall Core Servlets and JavaServer Pages Prentice Hall PTR 2000

[8] M Hall More Servlets and JavaServer Pages Prentice Hall PTR 2002

[9] IMTrack Recreational Solutions 2002

[10] D Kulak and E Guiney Use Cases Requirements in Context Addison Wesley

2000

[11] S Pfleeger Software Engineering Theory and Practice Prentice Hall 2001

[12] R Pressman Software Engineering A Practitioners Approach McGraw Hill

2005

[13] T Quantrani Visual Modeling with Rational Rose 2002 and UML Addison

Wesley 2003

[14] E Roman Mastering Enterprise JavaBeans 2nd Ed John Wiley and Sons 2002

[15] S Schach Object-Oriented and Classical Software Engineering McGraw Hill

2002

[16] 1 Sommerville Software Engineering 6th Ed Addison Wesley 2001

32

looshy

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 42: An Intramural Sport Management System

_

poundpound

-_ ~ - - ~ middotOI _ll_middot bull~

-C ltie 0 C~l

u~ Igtl uoDS lpJogtjopm lJr Ill W) MJ( lIolSlgtll lVlll oo~nq ltllJl llP A(dU03 ~njl ~OJ lSllu middotJflJl ~o IIOJltJ ~1I0A AJ7JJ~~1O AIiCJ rW ilOlLfl ll~ 0lJ~ flllii J1 llOpWUOJUI lJ(lJl)~ pUP lnpdlllltJ~ ~Jlumodl 8nglnltgt- ll ~J 13rlal9 9wvltr1 ~uooJ mOj 8IJ1~J UOpl1UUOJU PUtl11V~ UNI~ Sll IlM lftoaiS UJ~~ lJOd rltJnWIJJUj lt1 lt11 OW

ilt ~___

~~-JS~s_~uauia6eu_e~HJodS IHhWampJJUi

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 43: An Intramural Sport Management System

17pound

nmiddot ~ _ WX I __middot_middot_~middot__middotW r J 1lt ~~e ~

~- __ _

-ilild IIUICH )~SWlW vcd (YJTlUllIJlUI laquorl OlllmlJI [1 lIOI lllQH gtIi~ 00 1lolUJqM lPtlllll41 pu~ P HlilPrl1 lr~ ~plltud 8SetI1d 11lol ~sJTJl3rlW RM OOQJU0Cgttllq PlllUSal ~ u~ no[ iOl-~ W~M 41aj i18F-J Ul8cl ~lIJ tu11l l~TJuntJ no)

-n FJ

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 44: An Intramural Sport Management System

)~Ild )lUOH U01)IlI)SIUlUPV SWSWI

___Mmiddot~middotbullbullbull4~_ _ ltOOlt gt _l_Oltgtgt__~ middot _ OW

q~~ ~ g~ ~-

middot~ljVIlOPUlll 11Ifl SlJOltldns lVp ~8fd lIll1 tRlIrI iilCIlI TIl) ~nJ UO~ ftOgt UIiqM gtPI GIllJ(gtnUltllU~p woJt fgtl~lJgtIPUllt ~ raquol~ tlllQIPUI J1lrxuro ~ oll ~~ ~lI~PSPlwopJtl~ ailPV~~lJIl ~Oj ~~lUulllnQf ltgtlI1j woJj middottUltlsh~lltJonltgtd ~0Il +I ~ fnllllJtll u~ lICA

v ~ --ltlt i-iiltgtlt d

~HJO~SfUI~~~H

9pound

aj3lld aAllll11S1U1lUPV s1Jo dS SWSJIU ~~~~lyenJj~U~~t~otiiy~) -iJ~2~Hriljmiddoty~lif f ~itlto~~rI~~~I~ J~~~~1ct~s iVrfi~~i$11~[1KWiikf4~rY1iigf~ltiis~sI middot~_~Ccc__~~~~~ bull __j_~gt~~ bull- --C Cimiddotr0i

F ltf

l ____~~~__~eoat~ I _ ___- _Il~ ~- bull HI ~~I

i3ld IIIDH ~1FtI~u1lllpf tp J ~~ ~~~ [lli]IO LtIDl-llS no n aSrolf1O IIpl1Jlllfl UQnlml GJ WOJj UIrojJ- Ol 1fli no IlOP~ lfllTgtS (jdu~s W~~1p

_l~ -IW v0 llp nlodl ~ ~1P pLl~~l~ lIPIILJ Urgtnc(~ tIDIJ ~~ 9lf1l0J l8i1d lIotl~tI3flHlJllIt SU-rJ q glUU ~llueunJJl noJ

~~~~~middot~i-~~attio~aM

Lpound

laUd )lodS l1Ul1J SWSWI

middot _ - j _~)j~ C ltylt - __ - ~~t- _ From tl~~ ~ycu an mOOlfJ a ~rr In rhgt lnrramura15=orr J--lal1illlerMI1t yem Simply reltlotbe flolT1ltl oItM sprt m the liOJt t~ ~Oll

~tt ~he 3JXgt-r llaIDllllrld then click eubmit

Select thcprt t) modify SeltlAS~DIl

Jntltgt the ne name flr th~ Iilrt 811D~NTON

~

~~_FpIifrf1i ~~~= KIIKtJAU AACOUETBili SOCCER shyTENNIS U~ IMATE RISBEE

~~Ch 0 ~ 110 _

~o ~ _ _ o--c ~ ~ _ _

IMSMS Modify Sport Page

38

6S

_ _ ~ bull~ _ __ 0 bullbullbull mgtt w I_lOl_ _ lt~

~cmiddot middotmiddot0 lt middotfOO -

---

lii5ilfW lJJN WBcent(iJUm E~r~=pound~~s~~ 3~~~~1~E~fF~~~J~~~~0i~~i +~~ itc~jJ

i IWbeshy

1 Cgt1 cu l~ - ~D~ 10

_ ~ mjltgtlaquo gtgt w ar ~UITltIll1tJy veWUlfl the Add Tdam to ~ dmmiitTatlve p fur the SYISI~m Fmm here yvtl can add teams co 41 1~~Ce in tn~

nr4ffiural Sport Ma~ent System Slmpl~ ~~ec ttamp IM8U~YOU WlOO to add a LNm 10 RlllCt the team from amp wllltllJlllS(and clI~k wbmlt [f you Sllet Hme )iNI will be taken bad t the Adllllflis[la~~e Horr Pase

ele-t L~lJU~ ISleIl Select TMm Prom Walttr~ list B

Rnsil SiiJVI

_shyI lto u _ o _ _ gtltm t

~ iTti- ~poundTt-c~fIth~~~-~_middot---4gt~~)middot--~~ ~_gt +0n~1fif4~~rn~c0 gt4Wsi5L~~Jt~~i5tgtt ~~ 0+~~~)lt$fl-_13)6-e~iilWotltl~Jj11l~W tl~iLIJ~middot tt[oiilt~fiJil middotrlI~~ym~1d~~

IMSMS Add Team to League Page

40

___

It

_ _ _u _ r~

lt bull~ ~~

wmiddot nmiddot bull _gt __~Omiddot middot

Kmne arM~d PPf illll~ lR~ ppI Ollj3lil na1 11 middot~p1lqns ~ ~ltpdnJn(l ~P8 0l Ulldro ~ Ilp lCP1WuJlU lllW illlt angtpdn trnr tregt llC Iq

lQ( 4_ tUltgtlJ Wlil~ ~1lt ~ ~_~~_uml~ ~ 0 w~ ltl~poundkgtutnl JlaquoS l~JtJu~nllJ lItlll tu~ n bJPCW = m~ ~1p WOJi

_1 __ _ 0 _ _ 0 coxI

_~Lmiddot_-_-middotmiddot_middot~PW ~ middotDO~

~ 1Q1OO 1M ~~ ~loJq

pp~ U~J mA 1M Im uJCJj

bull~ ~11lQ1QSlIWP(~fl 01lpiq ~l 1 Ill no lUIDH ~1~ not 1 ~l ~P

0) Jl~llfl PP~ll tlJIJ3J u~lp PU R1d IItp l~Ol ~IJ 1SJ nclSlXil10U $ltlOp w~dlfl]I lwq~ lpptre J~

XO~ Imt~ U) ~ illlJ_JilIllI1l1_~lraquol tJdUl)~~~lMS ~~WllJlXS lJntU~uTJl ~~ J wvl Ql ~AVld ~

Et

~__~A___C~ _ -_ _ _ ~~~

~~C~ j-Vp -bull

______~-olIItN

r-~I ~ gtltl0

~lxIlrLIIPill

(1 ~S~gOi1 rIqWlN llOlld

Cor~ u

I~~ middot~-tull SS4V ln

~___~~ ___ _IISlt__t= -~o

~ lt-omiddot j ~

I~~$f-I _8~Qi

_______---J 1 ~U ill1J ~1 Jltgt1u

middot8~d lUlOH QtlJiQ1IIJIUIjJlf ~ laquollf3lill UOO~l illtlll IOJ ~IOOH lraquops 1j(1 middotJlwqns plp pUR~tllfT3VJ fllCgt ~llMll111 f-olN iljWl ll~1_J yen iIlWJ) C~ ~ lU1u1i~_lJod-yenJIlWyenLIU1_vll u-e-j W1cWltllilill lPfJ ~lar~ uro 10 ~ ~n[lllOIJ

Appendix B Sample IMSMS Web Interaction Maps

~ CQJlt~tsfmainj8P

middotliIJ ~9rtSiiruljnfjjp

foT

~ 1 EmaiUmainjspIi +

~ Nchivwmainjsp

~ Courtsmeirijsp~

~ PublicLogoutjsp

~ Facilitieslmainjspmiddot

i Mainjsp

t~r~almaioj8P Ei ~

~ ~ lil I Leaguesmainmiddotisp IDivisionsmainisp Sp~rtsJl1lajfljSp Athlat8Stmamjsp

lMSMS Administrative Main Web Map

Lsallll8Mcdilyjsp ~

Ibinjsp LeagueCrealejlp

Th1SMS League ldministration Veb ~yfap

45

I CMCre I I J I C middot11------

~

IMSMS Contest Administration Web Map

~IOJ Imiddot~ middotCOUrtMOdifyjSpr Mainjsp I CourtDQlete~

I

j I

I i I

1 ccLi] _==cd~=II I

I rt---l i bullbullbullbullbull bullbullbullbullbull II ~ ~ bull imiddotmiddotmiddotmiddotmiddot

~

I I I

~ ~ IMSMS Court Administration Web Map

46

Lv

dllW qlM UOlllllSlUlUIJlY [lllUlt[ SWSWI

a

o

~--_f-- f------Ibullbullbull ~[Hmiddot~~middotmiddotP L~gtT

r----jd~~~~SISIU~Oe----+---_----

e_---1 dSf~n~laAPtfI----+-------~ -bull I

I -I

1-----1idsI~ugd3giBdfNe_------shyL ~

e_----j damp(middotrreui3IeJaUa~

rei ds[uew

i

817

O~ll o--~ OoomiddotlIo i

D-l~lIIoOOl~ ~lWo O~= ~_~ 0_1 O~_ oa_OLlOlIol

000 lraquoOl~-40 (lWoua oa-u S~ ()WoOl ~ ~lJ-e

lluJ1~ all ~flaquo)1IoJ~s_N

I)OIlIOltlVOOS 1

~ 0IuwraquoQoWOolIMlS

(lrnAm -I ----c------- 0- (luIgtpuIo1~ ~l~

oowu~

Oll~ OOl~ -- 0 1

0 11Os ~IJCo_ IWs1JouIJOI__

o-oo~Y~ ()ollllJ~__Y_

OOlliQl_ ~ 0ltgtl0cllILIl8l_ OO~~~ O-O~~ )InoollJ_-~

()oJIC)lIJ_~

O~ O~ 0l11_waL~ i (lIO1oMi

Oo~~

OOluOlmiddotl(J oa_S~

OCIu-S

~ OilIOOS~ OOlon~

OQronllu1OlJl~S I 1Jo _~

(Iou =1P ltl ~ I ltla1~lIo

OOI ~ r-----C~C_= -shy

(j

lorIW~

lOI1 ~ f-~--~~bull~ DJUlS ~~

lor)~= IUI~ ---~

SJ~

_=--j

rS 1O(Ie-3_~1 aS~~~1

lIl4qS~ ~1

IkJQS lIl4qs_~

)J11JIUl~ lIl4ql1__

~Otlaquo_1

DuQS ~==I ~I==~== - lU 0IfiooN O~SlOImiddotIIII (_OSlClOJJOH

1 (~JOOIIo ()IIolU

_ ()oo~ I

-~I

~S_ 1oII(JI~ JIIra_

-

1lIOlIo [101

~Igt~ OP )J J_~

)J1001_~

)JI-l_~ (0001_ OltgtJo

u~

ON~

)JJ~

sJ IluuIS~

i UIS~ Ua~

iI

ampJLIlS )JI CI-lA f QIl

+ =

I~ -_

--__--~

~ -shy

smUJ~h~a SSUD SWSI~I ltlldmus gt xpUltlddV

------------

AthleteSerlet (from aaminiCf1Jtionj

l-c--TeamCaptainProfileSenAet

-reamCaplainProilSeNetO ~PostO ~Pnolle()

TeamCaptainleagueSeNel

Team~inLaagueSenAetO ~dateUSOl()

~ LeagueSerlet

(from aaminiarationj~

EmailSerlet (Irom admini5lrBlion)1== ---

-

TeamCaptainEmailSeNet

TeamCaptainEmailSel4elO -postMailO

jOgelPageO

1

_~e~~~~~~~~~ ---shyi ~~~~PtainseNetO

I

etAliTeamsO

J---Te~~SeNet (rom administrallon)----_ -_-------- shy-------_--

TeamCaptainRosterSeNet

TeamCaplainRostelSaNelO ~oPo10 tAIiDataO

1 l If

ITeamRosterSaNt I (Irom aaminlCallonl

llvlSMS Team Captain Package Class Diagram

cs__

IMSMSServiet (fmm dmmtfon)

F-gentSaNet ~IN String =join ~ENLlST String =enlist

middotF-gentSeNetO ~oPostO

sParticipatirgO ~oinUstO tremo~FromUstO ~OinTeamO IIhandle80LError() ~IIDataO etAIiDataB_l etAIIF-gentsI1LeagueO ~etFreeAgentUSlO

AuthenticationSenAet -~PARTlCIPAN1MAtN String - ParticioanttpartiCipantModifyjsd =gtlEAMCAPTAINMAJN String =ITeamGaptainimain IsO QpPAR1lCIPANT String = Participant elEAMCAPTA1N String = TeamCaetain

-AuthenticationSerJetO ~oGeiO ~oPoslO

iisValidUser() igetProfileO

llvlSMS Shared Package Class Diagram

49

Page 45: An Intramural Sport Management System
Page 46: An Intramural Sport Management System
Page 47: An Intramural Sport Management System
Page 48: An Intramural Sport Management System
Page 49: An Intramural Sport Management System
Page 50: An Intramural Sport Management System
Page 51: An Intramural Sport Management System
Page 52: An Intramural Sport Management System
Page 53: An Intramural Sport Management System
Page 54: An Intramural Sport Management System
Page 55: An Intramural Sport Management System
Page 56: An Intramural Sport Management System
Page 57: An Intramural Sport Management System
Page 58: An Intramural Sport Management System