Merging Object-Oriented Programming, Database Design, Requirements Analysis, and Web Technologies in an Active Learning Environment Paul Kovacs kovacs@rmu.edu Jeanne Baugh baugh@rmu.edu Computer Information Systems Robert Morris University Moon Township, PA 15108-1189, USA Abstract This paper details a project appropriate for use in an upper level course requiring the completion of the design and implementation of a Web-based client/server database application. It is especially useful for integrating key concepts from a number of essential knowledge clusters or skill sets in a typical undergraduate Information Technology program of study. These skill sets include object-oriented programming principles, database management, requirements analysis, web technologies, and project development. Keywords: client/server applications, Web technologies, database design, database Web interaction, object-oriented programming 1. INTRODUCTION Information Technology is an extremely dynamic field and continues to evolve at a rapid rate. This speedy evolution of the discipline has a tremendous effect on Information Technology education, affecting both course content and pedagogy. The quick acceptance of the World Wide and Web based client/server networks have replaced conventional wide-area networks (WANS) and local-area networks (LANs) as the foundation of mainstream computer information technology. As a result, an essential knowledge cluster or skill set for upper-level Computer Information Systems majors to acquire is software development for a database-oriented, Web-based client/server applications. Cheatham indicates that new technologies can bring new challenges that make computing exiting and sometimes very frustrating (Cheatham, 2000). Nevertheless, if one of the learning outcomes of an information technology program is to provide skills sets to students in software development using mature technologies, then it is important for information technology educators to provide relevant courses of study. Because client/server database applications on the Web are common in society, students will need these skills to compete in the job market. (Seyed-Abbassi, 2002). Keeping Information Technology students current with Web-based client/server database applications should be a priority for those teaching Information Systems students. (Barker, 1994). This paper details the features of a project requiring the design and implementation of a Web-based client/server application. The project utilizes object-oriented programming and requirements analysis to merge database design and web technologies in an active learning environment for upper-level Computer Information Systems majors. 2. CLIENT/SERVER ARCHITECTURE AND WEB TECHNOLOGIES Client/server architecture is the structural design of a computer network. The architecture involves a client computer, a server computer, and the relationship between them. Client/server architecture has evolved from a one-tier design in the era of mainframe computing, through a two-tiered design using personal computers to a three-tier design, which includes an application server between the client personal computer and the server Mainframe. Web-based client/server database applications result from the integration of the three-tiered client/server architecture and the develop of mature technologies for access such as Open Data base Connectivity (ODBC), Java Database Connectivity (JDBC) and ActiveX Data Objects (ADO). The design of a Web-based client/server database application using the three-tiered client/server architecture includes the browser presentation layer, the application server layer, and the database layer. The approach described in this paper relies on the three-tiered client/server architecture and component development and assembly of the browser presentation layer, the application server layer, and the database layer. 3. CLIENT/SERVER LAYER PREREQUISITS SKILL SETS In order to successful completed this course project, students must use multiple skill sets. This requires that students have had exposure to many of these skills sets in previous courses. The intent of this course project is not to teach specific skills but to allow the student to merge previously learned skills. The following are recommendations concerning the necessary prerequisite skill sets for the three-tiered client/server architecture Browser Presentation Layer This Browser Presentation Layer is the human to computer interface and HTML files generally underline this layer. Students should have previous experience in creating and publishing a Web site that includes text, hyperlinks, images, tables, forms and possibility sound, and video. An Introductory web design course that includes coverage of HTML, Cascading Style Sheets, JavaScript, XML, Graphics and other web media is necessary. Additional helpful topics may include web server overview, internet protocols and ISP connections, HTTP and FTP protocols, web server planning and O/S platforms, server configuration, client/server and GCI security. Application Server Layer The application server layer enables the Web server to take requests from a client browser and process and forward them to the database layer; then the server collects the responses from the database and passes them to the waiting client. HTML is a markup language and alone will not allow interactivity required at this layer. Several common programming languages that accomplish this are Java, Perl, PHP, ColdFusion, and ASP.NET which includes Visual Basic and C#. Therefore, student exposure to a course that focuses on one of these programming languages is essential for this layer 4. DATABASE LAYER It is clear that the project is based on the database design and students need more than a limited exposure to database systems. “Students need to be introduced to all the components of the database system and the role each plays.”(Springsteel, Robbert, and Riccardo, 2000, pp.41-45). Students need instruction in a course that provides experience with database design and implementation based on a thorough analysis of requirements and information modeling. The design of the database is the heart of the database implementation (Riccardi, 2003). C.J. Date, in his book, An Introduction to Database Systems believes firmly that one must get the foundation right, and understand that foundation properly, before trying to build on that foundation in any way. (Date and Darwen, 2000). It is essential that a core area of database topics be addressed. (Robbert, Wang, Guimaraes, and Myers, 2000). The student must thoroughly understand the user’s requirements. As a review for the students, examples of user specifications and the related database designs should be presented to the student during the first few class meetings. The course should include hands-on experience with the design of and interaction with a working database management system in which students learn to create data models of user's needs, gain foundation skills in database design, and learn to use standard Structured Query Language (SQL) to interact with databases. The process of defining the scope of the project enforced many of the concepts of database theory, including relationships, attribute definition, key values and user requirements. Database topics the students should have mastered before taking this course include those found it the Body of Knowledge for a Database course in an Information Systems Curriculum (IS2002, Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems, 2002) 5. PROJECT SELECTION AND WORKGROUP ASSIGNMENTS This course does not follow the traditional textbook/lecture approach but rather a project approach. Research indicates that the project approach to be effective in increasing student motivation and improving student problem solving , providing students with an integrated learning situation, and addressing different learning styles. (Albanese and Mitchell, 1992; Buck Institute, 1999; Hutchings and Wutzdorff, 1998; Tretten, and Zachariou, 1995). The project selected for this application can be theoretical or real world. The instructor initiates a theoretical project and acts as the sole end-user. All requirements are those of the instructor and implementation of the project is on the student’s or school’s computer. Conversely, the initiation of a reality-based project is the result of an end-user, who is seeking to solve an actual Information Technology problem. A real world project allows the students to learn better through a particular domain of their interest and to understand the practical value of what they learned (Robbert, Wang, Guimaraes, and Myers, 2000). However, real-world projects involve risk in a non-controlled environment and an incomplete project can be a major issue for the end-user as well as the instructor. If the selection of a real-world project is desirable, scope and time constraint issues deserve considerable attention because the students have only a semester to complete the application. Additionally, given the level of student expertise, it may be impractical to implement some requirements of real-world projects. An approach to these concerns could be for the student to complete the design of the entire web database project, but implement only a portion of the design. With the design being the core of the project, the student will be able to complete other specifications at a later date. A correct design is especially critical if the student is working with a real-world end-user. At the initial course meetings, a project is selected. The instructor informs the students that the project will consisted of an implemented and fully documented Web site driven by a working database and that successful completion of their project requires final acceptance by the instructor and/or end user. If the project is not completed, the student will receive an “Incomplete” grade and must complete the project to change this grade. The completed Web site and the contribution of individuals to each group, comprises the basis for grading. Each student’s individual contribution to the group is the basis for 30 percent of the final grade. Rather than having the instructor make this determination, individual group members will evaluate each other as per an anonymous evaluation sheet constructed by the instructor. The completed project will consist of 70 percent of the final grade. Following project selection, the students are assigned to project teams. If necessary, to assist the instructor in establishing the project teams, the instructor can construct an assessment checklist and have the students indicate their strengths and weaknesses in regard to database design, graphics, and programming skills. Additionally, the class size and the number of projects determine the size of the project team. A recommendation is to avoid groups that are too small or too large. Experience suggests that no more than eight per work group is an ideal number. Following the initial meetings, the project teams are required to complete a concept deliverable. This document outlines the student understanding of the project concerning project scope, the suggested approach to developing the system, and the time-management restrictions. 6. PROJECT SCHEDULE This course takes place as a series of 3 phases: (1) Database Design; (2) Software Construction and Client/server interface design; (3) Site Testing and Documentation Database Design In the database design phase, the students receive a description of the business entities and their relationships. Based on this description, the students develop complete data and work flow analysis followed by a creation of a data model. Based on the data model the students translate the design into a complete relational database implementation and all of it components. This involves defining both primary and foreign keys, normalizing all tables, and populating the database using various SQL statements, and testing if the design is in a specific Normal form. If the students are working with a real end-user, it is highly recommended that the instructor be part of at least some of the student meetings with the end-user. This will insure that the students truly have the design correct before the implementation phase of the project is initiated. Depending upon the requirements, a typical database for this project should contain at least three tables not including and name and password table. Microsoft Access, SQL server, MySQL, and Oracle are all Web-compatible databases that are similar in functionally and recommended for use for the project. The instructor’s role in this phase is that of a project leader and the final deliverables include an ER diagram of the data model, a fully implemented and populated database. Even though the database is somewhat small in terms of the number of tables implemented, the design of the database should be reviewed by the instructor to ensure at a ll functional dependencies have been declared according to the user’s specifications. At the end of this phase, these deliverables are included in the project workbook for grading and instructor comments. The database design process should not take more than four weeks. Software Construction-Client/Server Interface Design. The phase involves the construction of the application software that enables dynamic, data-driven activities between the database and the user as the well as the layout and design of the Web form. Depending upon the requirements of the project, an example of data-driven activities can include the checking for usernames and passwords, data searches, inserting, modifying and deleting of data. In addition to the software construction, the design of the Web interface takes place. This involves the construction of the Web site structure including home and content pages and the navigational links between these pages as well as Web site appearance in relation to text fonts, style sheets, color, and graphics, and if necessary, client-side scripting in JavaScript. Use can be made of software editors and site management tools such as FrontPage or Macromedia Dreamweaver to allow for Rapid Application Development. During this phase, the instructor’s role may shift from being only a project leader to one of a semi-instructor. Although the students had completed a number of prerequisite courses, some of these courses may have been taken several semesters ago. Depending upon course content and coverage, students may encounter technical problems not realized in those courses. This does not mean that the instructor should “spoon feed” the students but rather lecture material should be made available on a need-to-know basis. The design should take place locally whether that is selected computers in the school’s computer lab running Web server software, the school’s test web server or on an individual student’s personal computer running Web serve software. Although there are different platforms such as Linux/ Apache servers with PHP as opposed to the Windows solution with ASP.NET, the design of all projects should be done in identical environments. Teams often come upon issues encountered by other teams and working on the same platform eliminates many software problems. A deadline should be set for the completion of the project design approximately two weeks before the end of the semester. This allows for extra time particularly if the project is reality-based because the end-user may have necessary changes early in the use of the system the students can incorporate them. At this time, all groups post their respective Web sites to the Web server. In the case of a theoretical project, the Web server may be the schools or the instructors. Conversely, with the reality-based project, the Web server may be the end user’s own server or a commercial hosting service. Each group then will have approximately two weeks to "test" and document the web site. This testing should be on both the client-side as well as the server-side. Site Testing and Documentation A deadline should be set for the completion of the Web site approximately two weeks before the end of the semester. At this time, testing takes place on both the client-side as well as the server-side. Following the testing, students are required to create a complete user manual, giving an overview of the project. 7. PREVIOUS PROJECTS IMPLEMENTED This course has made use of both group and individual projects. Each project has had no more then five components and no more than five related database tables. All projects were developed on a dedicated department Web sever running Windows 2003 server and IIS 6.0. The primary database used was Microsoft Access 2003 but students also had access to a departmental MS SQL server. The programming language used was Microsoft Visual Studio using ASP.NET and either Visual Basic.NET, C#, or Java.NET. The Web authoring and site management tool was Microsoft FrontPage. An example of a theoretical group project involved the construction of a shopping application for Bill’s electronics store. The project contained two parts. Part 1 was to develop web-based site store front or front office application where customers can place orders on-line. Part 2 involved the development of a back office application for Bill’s Electronics where authorized personnel can add products and process orders on-line. An example of a reality-based project was the design of a Web-based application for an Auto parts store. The application allowed users to search for an auto parts providing availability and pricing information. Other subject areas in which students have implemented projects include: Home Remodeling Business, Beauty Saloon Scheduling System, Fraternity Membership System, Wedding Planner System, Family Ebay Selling Organization, and Memorabilia Collecitons. Almost any subject suitable for a database project can be used with this course format. 8. CONCLUSION As new technologies continue to emerge, Information Technology departments at institutions of higher educations must continually add programs of study to develop the necessary skills sets. With the development of the three-tiered client/server architecture and other Web technologies, the internet has evolved from displaying static, informational pages to using databases and other mature technologies for interactive Web access. This paper details the features of course model that merges object-oriented programming, database design, and web technologies in an active learning environment as developed for upper-level Computer Information Systems majors. Hopefully, the described project in this paper is a realistic guide for students and can provide the merging of skill sets in a technology in high demand. Because technology areas such as web-based applications using databases are being increasingly used by organizations to support their work, students will need these skills to compete in the job market. (Seyed-Abbassi, 2002) Keeping Information Students current with Database Technology should be a priority for those teaching Database Web applications. 9. REFERENCES Albanese, M. & Mitchell, S. (1993). Problem-based learning: A review of literature on its outcomes and implementation issues. Academic Medicine, 68(1), 52-81. Barker ,Donald I., 1994, A Technological Revolution in Higher Education, Journal of Educational Technology Systems, Volume 23, Number 2 Buck Institute (1999). Project based learning. [Online]. http://www.bie.org/pbl [8 May 2000]. Cheatham, Thomas J., 2000. “A Web-Based Lab Manual for CS 1: An Experiment”, SIGCSE Technical Symposium on Computer Science Education, March, pp 105-106 Date, C. J. and H. Darwen, (2000), Foundation for Future Database Systems: The Third Manifesto. Addison-Wesley. Date, C.J. 2000, “An Introduction to Database Systems”, 7th ed., Addison Wesley Hutchings, P. and A. Wutzdorff, 1988, “Experimental learning across the curriculum: Assumptions and principals.” New Directions for Teaching and Learning, 35, 5-19. IS2002, Model Curriculum and Guidelines for Undergraduate Degree Programs in Information Systems, 2002, curriculum effort of Association for Computing Machinery (ACM), Association for Information Systems (AIS), Association of Information Technology Professionals (AITP) Mannio, V. Michael, (2004), Database: De sign, Application, Development, & Ad ministration. Irwin, McGraw Hill. Morrison, M. and Joline Morrison, (2002), Data base-Driven Web Sites. Course Technology. Riccardi, G., (2003), Database Management with Web Site Development Applications. Addison Wesley. Robbert, Mary Ann, Ming Wang, Mario Guimaraes, and Martha Myers, 2000, "The Database Course: What Must Be Taught," SIGCSE Bulletin Proceedings of 31st SIGCSE Technical Symposium on Computer Science Education, March, pp. 403-404 Seyed-Abbassi, Behrooz, 2002 “The Evolution of an Advanced Database Course in an Information Systems Curriculum” ISECON 2002 19th Annual Conference on Information Systems Education Springsteel, Frederick, Mary Ann Robbert, and Catherine Riccardo,2000. “The Next Decade of The Database Course: Three Decades Speak to the Next” SIGCSE Technical Symposium on Computer Science Education, March, pp.41-45 Tretten, R. & P., Zachariou, 1995, “Learning about project based learning.” Paper prepared for the Autodesk Foundation, San Rafael, CA.