A Capstone Project in Software Development For Cis Majors: Dr. Michel Mitri, James Madison University, Mitrimx@jmu - Edu
A Capstone Project in Software Development For Cis Majors: Dr. Michel Mitri, James Madison University, Mitrimx@jmu - Edu
A Capstone Project in Software Development For Cis Majors: Dr. Michel Mitri, James Madison University, Mitrimx@jmu - Edu
48009/1_iis_2006_51-55
A CAPSTONE PROJECT IN SOFTWARE DEVELOPMENT FOR CIS MAJORS
Dr. Michel Mitri, James Madison University, mitrimx@jmu.edu
Table 1. Description of components and applications developed by individual students during first half of capstone
semester. These will be used in the group project during capstone project.
Each team is given a different project. An example (described in Table 1). The italicized components in
project is described below: the figure are created by students as individual
programming assignments prior to the capstone. The
Project Planning Services, Inc. is a business non-italicized portions are created by teams during
consulting firm that provides technical and the capstone project. Details about the development
strategic services to its clients. The company has a process are described in the remainder of this paper.
need to develop a database and an accompanying
application system to capture, store, and PROJECT SCHEDULE
manipulate data pertaining to the activities of its
consultant employees. In particular, PPS, Inc. The group project is divided into four overlapping
needs to know about who the consultants are, the phases: (1) database development (consisting of ER-
projects that they are working on and the clients modeling, relational database design, and data
they are servicing. The company also wants to population); (2) systems analysis tasks (including
track the time that they spend on each task of each requirements gathering, use case construction, and
project that they work on. In addition, any user interface design); (3) software construction
expenses that consultants incur must also be (involving Java programming of applications as well
tracked. Your task is to develop the information as development of UML class diagrams); and (4)
system to satisfy these needs. documentation and presentation (which involves
demonstrating the project results in a public
The general architecture for the systems developed in presentation and creating a users manual).
the capstone projects is shown in Figure 1.
Phase 1: Database Development
Each group creates a database and three separate
application programs geared to fulfilling the needs In the first phase, student teams are presented with a
described in their cases. The application programs verbal description of the business entities and their
communicate with the multithreaded server and use relationships. Based on this description, the team
the client connector and bar chart components must develop a data model followed by a relational
Figure 1. System architecture of capstone project application. Italicized components are developed as individual
assignment during the first half of the semester.
Project teams are also given 4-5 text files containing Phase 3: Software Construction
data which must be inserted into the database. This
data is non-normalized, often duplicated and/or Phase 3 is the most difficult and time-consuming part
involving mixed entities. Students must write a Java of the whole project. This involves actual computer
program to read the text files and programmatically programming and debugging, which is a particular
generate the SQL statements necessary to populate challenge to most students. Here, students write the
the database. Their efforts writing this utility program code for the three application programs. All programs
give students realistic experience. Most systems interface to the multithreaded server that students had
development projects involving construction of new developed earlier in the semester during their
databases require some sort of data extraction and individual assignments; this communication is
collection tasks from disparate data sources in order accomplished via the communication
to produce the initial data in the new database. In ClientComponent that was developed as an
addition, their programming efforts make use of a individual programming assignment (see Table 1).
previously built component, specifically the All three applications also involve an extensive array
DBSource component (see description in Table 1). of GUI programming and event handling routines. In
addition, at least one of the applications involves use
The final deliverable from Phase 1 includes (1) an ER of the bar chart component (Table 1) students had
diagram of the data model, (2) the fully implemented developed during their individual assignments. All
and populated database, and (3) the source code for this reinforces the concept of component-based
the Java utility program. At the end of this phase, design.
these items will be included in the project workbook
for review, grading, and comment by the instructor. During this phase, students often run into difficulty
with bugs in their programs. During previous
Phase 2: Requirements Analysis individual assignments, they had learned debugging
techniques, but this is the first time they are
The second phase involves interviewing the user (a experiencing this in the context of a multi-application
role played by the instructor of the course) in order to system with extensive complexity. Whereas testing in
ascertain the functional requirements of the system. the individual assignments is limited to unit tests,
Unlike Phase 1, in which a fairly complete written testing in the group project extends to systems
description is provided to the students, Phase 2 integration and user acceptance testing.
involves no written document for students to work
with. All information about the desires of the user Figures 3 and 4 show screen shots of one of the
must be obtained via interviews, so students make applications written by students in the group project.
use of oral communication skills and interviewing
techniques they learned in the systems analysis Phase 4: Documentation and Presentation
prerequisite course. This interview process is done in
a series of meetings between the instructor and the In this final phase of the project, students complete a
team members over the period of one week. As a user manual, the technical documentation, and a
result of this process, the team must produce use PowerPoint presentation that is presented during the
cases for the applications that will be developed. final exam period. Compared to Phase 3, this is a
Each project involves three separate application much simpler task and typically is done during the
programs (see Figure 1), geared to three different last week of classes as the programming effort is
types of user. Consequently, the use case diagram coming to an end. Students are required to create a
will display three actors, and will include 3-4 use complete user manual, giving an overview of the
cases for each application of the system. Each use system as a whole, describing each of the three
case must be described in detail in a written use case applications in terms of purpose and functionality,
document. and fully explaining all the menu options and other
interactive controls for each of the applications; thus
The final deliverables for Phase 2 include (1) the use written communication skills are important in this
case diagram, (2) written descriptions for each use phase. Screen shots are a required part of the user
case, and (3) images of the user interface designs. At manual.
the end of this phase, the project workbook is
updated to include these deliverables, and is reviewed
and graded by the instructor.
Figure 3. One screen of an application built by a student team, utilizing several built-in Java components.
Figure 4. A second screen of an application built by a student team, this one involving the bar chart component
developed during the first half of the semester.