Developing and Learning Web Services with Open Source Software: An Experience Report
Matthew W. ReedBenjamin A. Balogh
David C. MillerChia-Chu Chiang
Department of Computer ScienceUniversity of Arkansas at Little Rock
CCSC 2007 2
Outline of the Talk
1. Introduction
2. Project Overview
3. Student Backgrounds
4. Leadership Roles
5. Project Management Plan
6. Project Development Process
7. Technological Hurdles
CCSC 2007 3
Outline of the Talk (Cont.)
8. Open Source Software
9. Scheduling Difficulties
10. Lessons Learned
11. Conclusion
CCSC 2007 4
1. Introduction
Present the experiences of undergraduate students developing and learning web services with open source software
CCSC 2007 5
2. Project Overview
Develop a prototype of a telephone directory web service
CCSC 2007 6
3. Student Backgrounds
Junior- and senior-level undergraduate students
Completed the course prerequisites C/C++ Programming Data Structures and Algorithms File Structures Database Design
CCSC 2007 7
3. Student Backgrounds (Cont.)
No experience with Java No experience with web services Limited exposure to team-based software
development Not claimed as professional programmers
CCSC 2007 8
4. Leadership Roles
A hierarchical structure assumed The only student with experience in a team-
based development environment lead during the Project Management Planning and Requirements and Specification Phases
Other students alternate lead role in the remaining development phases
CCSC 2007 9
5. Project Management Plan
Waterfall Model used Product built with reusable, open-source
tools Uncertainty and discomfort with Java and
the concept of web services
CCSC 2007 10
6. Project Development Process
Phase I: Requirements and Specification Most difficult phase of project
Understanding the product to be developed Locating open source tools for development and
deployment Final version of specifications document was
not completed until after implementation phase
CCSC 2007 11
6. Project Development Process (Cont.)
Phase II: Design Deadline extended a week beyond project plan
Difficulties understanding web service structure Learning how the client and server sides interact
Resulted in reduction of time frames for implementation and testing phases
CCSC 2007 12
6. Project Development Process (Cont.)
Phase III: Implementation Teams’ inexperience caused not only difficulty
but total confusion Distributing code to teammates proved difficult Brought in an IBM WebSphere consultant to assist
CCSC 2007 13
6. Project Development Process (Cont.)
Phase IV: Testing Smoothest and most trouble-free phase
Deadline pressure forced the team into a “divide and conquer” mentality
Used open source software to test the performance of the product
CCSC 2007 14
7. Technological Hurdles
Ignorance of the design and programming needed to complete the project
Installation and configuration issues with the open source software needed to develop and implement the web service
Hosting server configuration issues based on applications already installed
CCSC 2007 15
8. Open Source Software
Advantages Low Cost Highly Flexible Reliable Reduced Development Risks
CCSC 2007 16
8. Open Source Software (Cont.)
Risks Limited Support High Technological Knowledge Needed Difficult to Choose among Options Uncertainty
CCSC 2007 17
9. Scheduling Difficulties
Considerable deviation from the planned project schedule Design went more than a week past schedule Implementation completed a mere six days
before the project’s deadline Testing Phase cut by nearly two weeks Final version of Specification and Design
documents was not submitted until after implementation was completed.
CCSC 2007 18
10. Lessons Learned
Workload were heavy on some particular team member Initial Project Plan Coding
Expect to have a more thorough and detailed education in web services development
CCSC 2007 19
10. Lessons Learned (Cont.)
Practical issues with the open source software for developing web services
Students left with a feeling of completion when the project is done
The project as a good contender for a senior-level capstone course
CCSC 2007 20
11. Conclusion
Intense, self-directed style of learning overwhelmed the students.
Steep learning curve Students satisfied with experience gained
through an intense and thorough education in software engineering
CCSC 2007 21
11. Conclusion (Cont.)
Pride in the final product Reported that never learned more from any
other single course in computer science Highly recommend the course to other
undergraduates