




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Its about thesis for the student who will be needing this.
Typology: Study Guides, Projects, Research
1 / 108
This page cannot be seen from the preview
Don't miss anything!





























































































A Manuscript Submitted to the Department of Computer Science and the Faculty of the University of Wisconsin- La Crosse La Crosse, Wisconsin
by Kirk Thomas Wienkes in Partial Fulfillment of the Requirements for the Degree of
By Kirk Thomas Wienkes
We recommend acceptance of this manuscript in partial fulfillment of this candidate’s requirements for the degree of Master of Software Engineering in Computer Science. The candidate has completed the oral examination requirement of the capstone project for the degree.
Dr. Kenny Hunt Date Examination Committee Chairperson
Dr. Kasi Periyasamy Date Examination Committee Member
Dr. Mao Zheng Date Examination Committee Member
iv
ACKNOWLEDGEMENTS
There are so many people I would like to acknowledge for being instrumental in the completion and success of my capstone. First, I would like to give my sincere thanks to my project advisor Dr. Kenny Hunt for his invaluable advice in developing the project and his innumerable contributions in writing this thesis. Special thanks go to Mark Brockberg, Erin Smith, and the rest of Campus Crusade for Christ ministry here for being both my project sponsors and for being a very influential part of my six years at UWL. I would also like to thank all the professors that I had in the computer science and math departments for all the valuable knowledge that they taught me while in La Crosse. Additional thanks goes to Dr. Thomas Gendreau, Dr. Kasi Periyasamy, Dr. David Riley, and Becky Yoshizumi for their direct contributions to my capstone. I would also like to thank the people who acted as consultants and advisors to me during this project especially David Paul Ellenwood, Tylor Ardnt, James Domagalski, and Jonathan Borre. I give my deepest thanks to my friends and family for being so supportive of me during this time and for giving me encouragement when I was in need of it. Your contributions to my capstone although not direct were not overlooked or unappreciated. Finally, I want to thank Renee for her tremendous patience, understanding, and kindness while I worked on this project. I would not have completed it on time without you. Thank you all for your support! I appreciate all of you very much.
v
TABLE OF CONTENTS
Page ABSTRACT....................................................................................................................... iii
ACKNOWLEDGEMENTS ............................................................................................... iv
TABLE OF CONTENTS.................................................................................................... v
LIST OF TABLES ........................................................................................................... viii
LIST OF FIGURES ........................................................................................................... ix
GLOSSARY ..................................................................................................................... xii
1.1 Background Information ........................................................................................... 1 1.2 Project Scope............................................................................................................. 3
2.1 Life Cycle Model ...................................................................................................... 5 2.2 Software Developer Tools ........................................................................................ 6
3.1 Stakeholders .............................................................................................................. 9 3.2 Domain Analysis..................................................................................................... 10 3.3 Prototype I............................................................................................................... 10 3.3.1 Requirements Gathering and Analysis............................................................. 11 3.3.2 Non-functional Requirements .......................................................................... 13
viii
LIST OF TABLES
Table Page Table 1. Results from Use Case Point Analysis ............................................................... 17 Table 2. Actors in Use Case Point Analysis ..................................................................... 76 Table 3. Use Cases ............................................................................................................ 81 Table 4. Technical Factors ................................................................................................ 82 Table 5. Environmental Factors ........................................................................................ 82 Table 6. Use Case Point Analysis Results ........................................................................ 82
- 3.3.3 Use Cases Model.............................................................................................. - 3.3.4 Cost Estimation - 3.3.5 Summary xiii
A reusable software component in java that conforms to certain restrictions that provides an interface for which a page written using JSP or JSF can interact with java code on the server. Often beans are used to pass application domain data between JSP and JSF pages. A backing bean is a bean that acts as a container for a web page and provides mechanisms to store the page data and provides methods to initiate actions for the webpage.
CCC An acronym used to describe the organization, Campus Crusade for Christ, for which the capstone was created for. This acronym will be used frequently in the remainder of this paper in lieu of providing the full name of the organization.
Class Diagram A diagram described by UML that provides the static structure of classes, their attributes, their methods, and their relationships with other classes.
CRU An acronym used to describe the most common national movement within the Campus Crusade for Christ organization. It is often used interchangeably with Campus Crusade for Christ and its acronym CCC even though it is a narrower term.
CSS An acronym standing for Cascading Style Sheets used to describe a style sheet language that provides presentation formatting for a mark- up language most commonly HTML and XHTML.
EclipseLink The open source JPA implementation developed by the Eclipse Foundation based on Oracle's TopLink framework.
xiv
Facelets An open source web framework used to provide an alternate view handler for JSF. Facelets acts as a substitute for JSP which is JSF's default view handler. Facelets is XML-based and promotes the idea of reusable components in defining a view within JSF.
Hibernate An open source JPA implementation used to provide an ORM library for Java developers to aid in the interaction between Java POJO classes and a database.
Hibernate Validator An additional library alongside Hibernate used to validate data defined in entity classes used in Hibernate.
HTML An acronym standing for HyperText Markup Language used to name a mark-up language that is the most popular way to publish web pages on the internet.
IceFaces An open source framework and custom JSF tag library used to create rich internet applications. IceFaces provides additional user components that provide easily defined AJAX interaction between the client and server.
LARA An acronym used to name the product being created in this capstone project. LARA stands for the Leadership and Alumni Records Archive.
JavaScript
xvi
An acronym standing for Object-Relational Mapping used to describe a programming technique for mapping the conversion between objects within a programming language and the data stored in a relational database.
PHP An acronym originally standing for Personal Home Page that current recursively stands for PHP Hypertext Preprocessor used to create dynamically generated web pages.
POJO An acronym standing for Plan Old Java Object used to describe a regular Java object. This term is frequently used in discussions of persistence between Java objects and a relational database.
RichFaces An open source framework and custom JSF tag library used to create rich internet applications. RichFaces provides additional user components that provide easily defined AJAX interaction between the client and server.
Ruby A programming language generally used with Ruby on Rails to develop web applications. Ruby was intended to support an agile development lifecycle.
Seam A web application framework developed by JBoss. This web application framework is meant to be used with JSF and provides additional features to manage a JSF web application emphasizing the interaction of JSF with JPA. Seam's main features include the introduction of a conversation context residing between an http session and http
xvii
request and uses a conversation as the base unit of length for maintaining a persistence unit.
Spring A web application framework for Java used to provide additional features to Java web applications. Some features of Spring include inversion of control, aspect-oriented programming, transaction management, authentication and authorization.
An acronym standing for Structured Query Language used to manage data within a relational database.
An acronym standing for Secure Sockets Layer used to provide security and encryption between a client and a server. It is evident SSL is being used on a web site by the use of HTTPS.
Use Case Diagram A diagram described by UML used to graphically represent functional requirements within a software system.
An acronym standing for Unified Modeling Language used to describe a general-purpose modeling language used to specify and visualize various aspects of the software development process.
1. Introduction
Within any organization, growth is generally considered a good thing. Growth reflects a greater awareness of an organization's cause or purpose. Growth aids in an organizations ability to obtain resources and to achieve its goals. Growth allows an organization to broaden its scope and to tackle issues related to its original cause. Unfortunately, growth also brings challenges and requires flexibility. Like a teenager acclimating to a growth spurt, an organization must acclimate to its growth so it does not trip over its own feet, metaphorically speaking. As an organization grows, it must adapt to its new size in order to succeed and continue growing. It must provide new structures to guarantee efficiency in managing its workload. It must prevent unnecessarily duplicating work while ensuring that all necessary work is completed. One such growing pain for an organization is information and human resources management. As more information is generated and more personnel employed, the paper record keeping becomes increasingly cumbersome and unmanageable. Developing a digital records management system for these records becomes an important step in the maturing of an organization in the digital age.
For the University of Wisconsin - La Crosse chapter of Campus Crusade for Christ growth in the ministry within the last decade has been a huge blessing, but this blessing has also brought challenges. As the chapter has increased in both student involvement and the full- time staff employed on campus, additional logistical problems have arisen in
managing student leaders within the organization and with keeping in contact with alumni who have moved away from La Crosse. Over the last decade as the number of students involved in leadership has increased, it has become increasingly difficult to prevent student leaders from "falling through the cracks" in the current system. Despite the best efforts of the staff and senior student leaders, students are not receiving the support that they need to be effective within the organization. It has become apparent that it is important to ensure that the student leaders have had the proper training and have had the proper spiritual guidance to ensure their effectiveness in this CCC ministry as well as for their involvement in ministries later in life. Currently, the CCC staff has no means to track this type of important information for their ministry. Additionally the task of figuring out the structure of the next semester’s leaders has become a huge logistical challenge. At present the whole process is done with pencil and paper from application to appointment. As difficult as it is to track vital information for current student leaders, it is even more difficult to retain reliable information about alumni once they leave the ministry at graduation. At present, almost nothing is being done to ensure the ministry stays connected with these graduates. Since alumni have been a big part of the ministry, they have an interest in the current state of this organization on this campus. As an outlet for financial and prayer support, alumni at UWL have been left relatively untapped. As a result, the community of the greater La Crosse area has supplied the majority of the financial and spiritual support for their ministry. If the CCC movement could tap into the alumni resource, it could lead to an increase in available funds with which to support full- time staff, to pay for additional outreach events, and to provide better training for the student leaders. Additionally within the last few years, the regional office has passed down a paradigm shift for the goals for this CCC chapter. In the past, this chapter was only responsible for ministering on the three college campuses in city of La Crosse, but now the local chapter is responsible for ministering to over 15 campuses in the greater La Crosse area from Winona to Mauston. They have been transformed from a campus ministry to an area