CS389 Software Engineering



Instructor: Dr. Lixin Tao, ltao@pace.edu, http://csis.pace.edu/~lixin
  GC Office: GC416A, (914)422-4463
PLV Office: G320, (914)773-3449

Lectures: PLV Goldstein 315, Tuesdays and Thursdays, 5:35PM-7:25PM

Office Hours: Tuesdays and Thursdays, 3PM–5:30PM at PLV G320

Prerequisite: CS371 Operating Systems and Computer Architecture I

Syllabus: 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.

Learning Objectives

  • 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.

Textbook

  • 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/)

References

  • 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

Quizzes

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.

Projects

  • 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 decisions.

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 class.

Note:

  • 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
    information.
  • 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.

Weekly Assignment

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).

Grading Scheme

Quizzes 20% (10% each)
Weekly Participation 20%
Project 60%
  • Quality of design and implementation
  • Project oral presentations
  • Project written reports
30%
15%
15%

Selected Public Course Material

Current teaching schedule and course material are avaialble in Pace Blackboard

 

Home Education Professional Experience Research Teaching Dissertation Supervision Selected Links

Copyright ©2006 Lixin Tao