CS389 Software Engineering
||Dr. Lixin Tao, firstname.lastname@example.org, http://csis.pace.edu/~lixin
||GC Office: GC416A, (914)422-4463
PLV Office: G320, (914)773-3449
|| PLV Goldstein 315, Tuesdays and Thursdays, 5:35PM-7:25PM
|| Tuesdays and Thursdays, 3PM–5:30PM at PLV G320
|| CS371 Operating Systems and Computer Architecture I
|| Software engineering as an engineering discipline. Role and ethics of an engineer. Software processes. Project management. Domain analysis. Problem specification. Object-oriented analysis. Object-oriented design. Testing and quality control. Software maintenance. Software framework and reuse. Component-based software engineering. Software design patterns and architectures. Engineering ethics and software copyright.
- Understanding the software processes, the major stages of these processes, and the major roles in them;
- Effectively conducting software modeling with the universal modeling language UML ;
- Effectively conducting object-oriented analysis, design, implementation, and testing;
- Familiar with software frameworks, components, reusable patterns, and major software architectures;
- Being able to work in a team, communicating with each other effectively both verbally and in technical writing;
- Effectively conducting project management: project scheduling, role assignment, peer review, project coordination, version control, quality control;
- Mastering the major computer-aided-software-engineering (CASE) tools including Rational Rose, Borland JBuilder, and Microsoft Visual Studio .NET.
- Understanding the importance of engineering ethics and software copyright.
- Object-Oriented Software Engineering: Practical Software Development Using UML and Java , by Timothy C. Lethbridge and Robert Laganiere. McGraw-Hill, Inc. 2002. ISBN 0072834951. (http://www.site.uottawa.ca/school/research/lloseng/)
- UML Distilled, 2 nd Edition, by Martin Fowler with Kendall Scott. Addison-Wesley, 2000. ISBN 0-201-65783-X
- Class notes and course material posted on Pace Blackboard (http://blackboard.pace.edu/)
Major Teaching Tools
- Rational Rose Enterprise
- JBuilder Enterprise
- Visual Studio .NET Professional 2003
- Microsoft Project
There will be two quizzes on fundamental concepts, both administered through Pace Blackboard 6 (http://blackboard.pace.edu). The quizzes will be on March 24 and May 3 respectively.
- Online University Registration Systems
As the head of information systems for Pace University you are tasked
with developing a new student registration system. The university would
like a new client-server system to replace its much older system
developed around mainframe technology.
The new system will allow
students to register for courses and view report cards from personal
computers attached to the campus LAN as well as over the Internet.
Professors will be able to access the system to sign up to teach
courses as well as record grades.
Due to a decrease in federal funding, the university cannot afford to
replace the entire system at once. The university will keep the existing
course catalog database where all course information is maintained.
This database is an Ingres relational database running on a DEC V AX.
Fortunately the university has invested in an open SQL interface that allows access to this database from university's Unix servers. The
legacy system performance is rather poor, so the new system must
ensure that access to the data on the legacy system occurs in a
timely manner. The new system will access course information from the
legacy database but will not update it. The registrar's office will
continue to maintain course information through another system.
At the beginning of each semester, students may request a course
catalogue containing a list of course offerings for the semester.
Information about each course, such as professor, department, and
prerequisites, will be included to help students make informed
The new system will allow students to select five course offerings
for the coming semester. In addition, each student will indicate two
alternative choices in case the student cannot be assigned to a
primary selection. Course offerings will have a maximum of thirty
students and a minimum of three students. A course offering with
fewer than three students will be canceled. For each semester, there
is a period of time that students can change their schedule. Students
must be able to access the system during this time to add or drop
courses. Once the registration process is completed for a student,
the registration system sends information to the billing system so
the student can be billed for the semester. If a course fills up
during the actual registration process, the student must be notified
of the change before submitting the schedule for processing.
At the end of the semester, the student will be able to access the
system to view an electronic report card. Since student grades are
sensitive information, the system must employ extra security measures
to prevent unauthorized access.
Professors must be able to access the on-line system to indicate
which courses they will be teaching. They will also need to see which
students signed up for their course offerings. In addition, the
professors will be able to record the grades for the students in each
- You have to refine the above draft to get your own Problem Statement, which
will be an important component of your project deliverable.
- While the draft is talking about a more specific course registration system,
you should try to separate mechanisms from policies, the latter may change
with time, and make your system reusable at as high level as possible.
- You will use two or more Cloudscape databases, one representing the legacy
course catalog database, the others for course registration related
- You will use JSP and Servlet to implement the presentation logic layer, and
Enterprise JavaBeans to implement the business logic layer. Use JavaBeans to
abstract computations from JSP pages.
- WYSWYG Web Collaboration Systems
Students will be organized into two teams to work in parallel on a major course project: a Web-based collaboration system for brainstorming that functions like JWiki. Students in each team will be assigned different roles of a typical software engineering process, and responsible for the project management, project specification, object-oriented analysis, object-oriented design, implementation, and testing. Students will learn J2EE technologies that will be used to implement the project. Each team will submit a joint project report, including the project objectives, approaches, role and task assignment as well as workload percentage of each team member in the project’s total effort (default is the equal distribution of workload), major software process documentations, installation manual, user manual, and known problems. Each team will present its project at least twice. The final project presentation and demonstration should be no later than April 27. Some technical subjects relevant to the project design and implementation will also be assigned to teams to study and present and such presentations are considered part of the project effort. The evaluation of the course project is based on the quality of project report, quality of implementation source code, quality of team presentations, and quality of the final project demo.
- Server-Based Online Games Based on an Object-Client-Server Framwork
Students will be organized into teams of 5-6 students each. Each team will propose and complete a major course project based on the Object Client-Server Framework (OCSF) that can provide practice for the students in all stages of a software process. Example projects include network-based communication utilities and distributed games.
Students in each team will be assigned various roles of a typical software engineering process, and responsible for the project management, project specification, object-oriented analysis, object-oriented design, implementation, and testing. Each team will submit a joint project report, including the project objectives, approaches, role and task assignment as well as workload percentage of each team member in the project's total effort (default is the equal distribution of workload), major software process documentations, installation manual, user manual, and known problems. Each team will formally present its project at least twice, and each student must be involved in such oral presentations. The final project presentation and demonstration should be no later than April 28. Some technical subjects relevant to the project design and implementation, including OCSF , will also be assigned to teams to study and present and such presentations are considered part of the project effort. The evaluation of the course project is based on the quality of project report, quality of project design and implementation, quality of oral presentations, and quality of the final project demo.
Each week, some course activities, including discussion participation and project work, will be assigned on the Blackboard Discussion Board for the week. The deadline for each weekly assignment is the following Sunday evening. All deliverables for the weekly assignment must be posted on the Blackboard Discussion Board for the week by the deadline.
Weekly Participation Grade (PG)
Each week a student will get a Participation Grade based on (1) whether the student attends the lectures of the week (up to 2 points); (2) whether the student complete the weekly assignment for the week (up to 2 points); and (3) whether the student actively participates in classroom and Blackboard Discussion Board discussion (up to 2 points).
||20% (10% each)
- Quality of design and implementation
- Project oral presentations
- Project written reports
Selected Public Course Material
Current teaching schedule and course material are avaialble in Pace Blackboard