210 likes | 346 Views
Developing and Learning Web Services with Open Source Software: An Experience Report. Matthew W. Reed Benjamin A. Balogh David C. Miller Chia-Chu Chiang Department of Computer Science University of Arkansas at Little Rock. Outline of the Talk. 1. Introduction 2. Project Overview
E N D
Developing and Learning Web Services with Open Source Software: An Experience Report Matthew W. Reed Benjamin A. Balogh David C. Miller Chia-Chu Chiang Department of Computer Science University of Arkansas at Little Rock
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
Outline of the Talk (Cont.) 8. Open Source Software 9. Scheduling Difficulties 10. Lessons Learned 11. Conclusion
1. Introduction • Present the experiences of undergraduate students developing and learning web services with open source software
2. Project Overview • Develop a prototype of a telephone directory web service
3. Student Backgrounds • Junior- and senior-level undergraduate students • Completed the course prerequisites • C/C++ Programming • Data Structures and Algorithms • File Structures • Database Design
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
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
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
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
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
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
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
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
8. Open Source Software • Advantages • Low Cost • Highly Flexible • Reliable • Reduced Development Risks
8. Open Source Software (Cont.) • Risks • Limited Support • High Technological Knowledge Needed • Difficult to Choose among Options • Uncertainty
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.
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
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
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
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