CS 492
Senior Design Project II

Description: Continuation of the capstone design project started in the CS 491 course, with the same team. Technical and innovative group project emphasizing engineering design principles on a specific topic in any field of computer science and engineering. Documentation on the low level design and the implementation of the project and an oral presentation, including a demo. Credit units: 3, Prerequisite: CS 491.

Details for the Current Academic Year


Students continue the project they started in CS 491 course, with the same team. In this course, students refine their high-level design that they have produced at the end of CS491 into a low-level design. Then, the students implement and test their design. The students submit two reports (here is a Word template you may use) and make a presentation and demo of their project at the and of the semester.

Low-Level Design Report: {Due: 5pm, Monday, 3rd week of the semester}
The high-level design produced at the end of CS 491 course is refined into the detailed low-level design document. Extent and validity of the design principles that were used to carry out this phase of the project must be explained in detail. Also, creativity, that is the extent to which the team developed a novel solution to the design problem while still achieving a functional design, at the low-level design phase, must be clear. In addition, engineering standards made use of during design need to be mentioned. The report must be available on the web page of the project.

The following applies to object-oriented software-oriented projects for the most part; for other types of projects, the tasks are somewhat different, and the contents of the report must be decided in consultation with the project advisor.

During analysis, we describe the purpose of the system. This results in the identification of application objects that represent user concepts. In system design, we describe the system in terms of its architecture, such as its subsystem decomposition, its global control flow, and its persistency management. During system design, we also define the hardware/software platform on which we build the system. This results in the selection of off-the-shelf components that provide a higher level of abstraction than the hardware. Through object design, we close the gap between the application objects and the off-the-shelf components by identifying additional solution objects and refining existing objects.

A sample way to organize low-level or object design document would be as follows:

1. Introduction
1.1 Object design trade-offs
1.2 Interface documentation guidelines
1.3 Engineering standards (e.g., UML and IEEE)
1.4 Definitions, acronyms, and abbreviations
2. Packages
3. Class Interfaces
4. Glossary
5. References
Reference: Object-Oriented Software Engineering, Using UML, Patterns, and Java, 2nd Edition, by Bernd Bruegge and Allen H. Dutoit, Prentice-Hall, 2004, ISBN: 0-13-047110-0.

Final Report: {Due: 5pm, Thursday, 13th week of the semester}
The final report is the culmination of the project. The final architecture and design of your system as well as the final status of the project is presented in this report.

Your final report should include also your refined analysis and requirements, and the details of your design. It should be a self-contained document that is giving complete information about your system or solution. It should include details about your implementation and tests, and your maintenance plan as well. All these should be the major part of your final report.

Additionally, you should write the following in your final report.

In a section (called Ethics and Professional Responsibilities), you should write and discuss the ethical and professional responsibilities that you recognized, observed and fulfilled during the project.

In a section (named Judgements and Impacts in Various Contexts), you will write which informed judgments you made during your project that consider the impact of your solution in global, economic, environmental, and societal contexts. In other words, you need to write how considering the impact of your solution in various contexts influenced your various decisions. It is not necessary for every engineering situation to require that each of these contexts be a major consideration. Considering of the impact as the judgment is made is key. For each judgement you should include a table summarizing the impacts in four contexts.

In a separate section (named Teamwork Details) you should write how the teamwork has been done during the project. You will explain, how each member a) contributed and functioned in the team; b) helped creating a collaborative and inclusive environment; c) took the lead role in some part of the project and in this way shared the leadership. Additionally, you should also state and discuss (in a sub-section named Meeting Objectives) which of the objectives (milestones, etc.) that you initially set in the project-plan (as part of your Analysis report) are met and at which level. You should consider and refer to your project plan while writing this section.

In a section (named New knowledge Acquired and Applied) you should explain the new knowledge you acquired and applied during the whole project and which learning strategies you used to acquire that knowledge.

The report is to be accompanied by the software/hardware system itself along with a User's Manual including installation instructions.

A sample outline of your final report can be like the following. Section 4 and 5 should be very detailed.

1. Introduction
2. Requirements Details
3. Final Architecture and Design Details
4. Development/Implementation Details
5. Testing Details
6. Maintenance Plan and Details
7. Other Project Elements
7.1.Consideration of Various Factors in Engineering Design
7.2.Ethics and Professional Responsibilities
7.3.Judgements and Impacts to Various Contexts
7.4 Teamwork Details
7.4.1) Contributing and functioning effectively on the team
7.4.2) Helping creating a collaborative and inclusive environment
7.4.3) Taking lead role and sharing leadership on the team
7.4.4) Meeting objectives
7.5 New Knowledge Acquired and Applied
8. Conclusion and Future Work
9. Glossary
10. References

User Manual: {Due: 5pm, Thursday, 13th week of the semester}
You will write a user manual for your application/system. The manual will help the users of the application/system to use your application/system easily.

Presentation and Demo: {Last week of the semester}
Students are to present their work at the end of the semester. They are required to turn up on time and are properly prepared. Computer projectors will be available if they want to use them. Each team will have 25 minutes for their presentations. It is strongly suggested that team members practice their talk at least a couple of times beforehand, to ensure they can get the major points across in the given time. The team is required to dedicate 5-10 minutes of their time for a demonstration of their project. Students may bring their own hardware or use the notebook available in room of presentation.

Return of materials {Due: 5pm last day of the semester}
Students are required to return all materials which they may have borrowed from their supervisor, including books, research papers, notes, software, etc. by 5pm on the last day of the semester. Additionally the supervisor may require copies of any software that was developed as part of the project to be handed in at the same time. Failure to do this may mean that graduation is delayed!

Total grade has three components:

The last four grading items (each 5%) will be evaluated by the supervisor for each student. The supervisor may use some tools for that purpose (can monitor the progress of students with some tools) or can also do peer grading if he/she wishes. He/she does not have to use the peer grades as they are; he/she has the right to use his/her own judgement.

The letter grades will be assigned according to the following table:


Project Evaluation Form: Excel file.