Overview


Contents of this page:


Course Objective

The students will work through the Software Development Life Cycle (SDLC) to complete a team project. Specific objectives are:

  1. prepare students for industrial projects,
  2. develop ability to work in group in a project of substantial size and complexity,
  3. enhance project planning skills,
  4. develop writing skills,
  5. apply and consolidate what students have learned in these three programming courses: CS1101, CS1102 and CS2103,
  6. follow the SDLC according to the "best software engineering practices",
  7. develop a well-tested, production quality software system.

Conduct of the Project Course

In this course, you will design and implement a tool called Static Program Analyzer (SPA). A detailed description of the problem, technical hints, SDLC for the project and project schedule will be given to you in the Project Handbook. Project stages include analysis and architectural design and three iterations in which you will develop SPA incrementally. The details of what you should deliver in each stage are described in five assignments that include analysis, architecture design and three development iterations. Assignment due dates mark project milestones. You will submit the final project report together with the last assignment.

You will develop a SPA in teams of 4-6 students. Each team will be further divided into two groups of 2-3 students. Each group will deliver a different subsystem of the SPA. These subsystems communicate through a non-trivial interface. While each group will have to complete an independent piece of work, groups in a team will have to communicate a lot to integrate their work and to get the SPA product right.

You will implement the project in C++.


Grading Policy

All team members are expected to equally contribute to the project. At the end of the project, we shall ask each team member to evaluate contributions of other members of his/her team. The final grade for the course will be computed as follows:

The first 4 assignments will be given 5, 4 or 0 marks based on the following criteria:

Evaluating and grading the project:

Policy on Project Work


Pre-requisites

Completed CS2103.


CS3215 vs CS3214

CS3215 and CS3214 are similar in that both are project courses, based on team development of a software system, following a rigorous SDLC. The two courses differ in the type of the software system students develop and in the details of the corresponding SDLC. In this course (CS3215), you will develop a software tool, with much emphasis on architecture, complex design problems, data structures, algorithms and incremental development. In CS3214, you will develop a business information system, with much emphasis on requirement analysis, user interface design and database design. CS3215 is suitable for students with interest in Computer Science, while CS3214 is suitable for students with interest in business Information Systems.


Planning for CS3215

Because of the heavy workload in this course, in the term you take CS3215, your are advised to take only THREE other courses. Particularly, you should avoid taking courses that involve a lot of practicals in the term you take CS3215.