Course Outline

Course: EECS 4090 6.0 Software Development Capstone Project
Term: Fall 2017 and Winter 2018

A well-designed software product is more than just a computer program. A software product consists of quality code, a well thought out design developed via disciplined professional engineering standards, appropriate literate documentation including requirements, design and testing documents, a manual, and the appropriate installation files and instructions needed to get the product to work. The product has to be correct (i.e. it must satisfy all the requirements specified by the client), usable, efficient, safe and maintainable.

The goal of this course is to provide students with an opportunity to integrate what they have learned in earlier computer science courses, deepen their understanding of that material, extend their area of knowledge, and apply their knowledge and skills in a realistic simulation of professional experience. The end result must be a substantial software product.

This course is run on a tight schedule over the Fall and Winter Terms; work is on-going and regular. The course is intended to help with the transition from being a student to being an active professional in industry. During the course students are expected to perform independent study, plan their work, make decisions, and take ownership of the consequences of their mistakes.

A combination of teamwork and individual work is required. The requirements elicitation, requirements analysis, design, coding, testing, and implementation of the product will be a team effort. However, individual responsibilities must be clearly identified in every deliverable.

This project will be of significant size and like most industrial projects it will be time and resource limited. Students must meet the specified deadlines. As a result, they will have to set their goals and plan their work accordingly.

Students must apply sound mathematics, good engineering design, and algorithms throughout the project. However, they will also need to apply heuristics and design patterns, or "rules of thumb", where sound, well-understood algorithms are not available. Any such heuristics must be clearly identified and supported by arguments that justify their choice. The teams will be required to show that the heuristic cannot fail in a way that will violate safety restrictions or other restrictions designated as critical.

Prerequisites: Only open to students in the Software Development Stream. B or higher in LE/EECS 3311 3.00, and completion of LE/EECS 3101 3.00, LE/EECS 3342 3.00
Co-requisites: LE/EECS 4312 3.00, LE/EECS 4313 3.00

Learning Outcomes

By the end of the course, the students will be able to:

Course Design

The very nature of this course supports students in achieving the learning objectives. There are three players in this course: the student Team, a Sponsor, and the course Instructor.

The Sponsor is a client who has expressed a need for a substantial quality software product, and commits to spending a significant chunk of time with the Team needed to elicit the requirements for the product. In addition, the Sponsor signs off on the requirements document and also signs off, via acceptance testing, that the final product satisfies the requirements.

Teams: Students must work in Teams of no less than three members. Team members will evaluate the contribution of other members of the team. Each Team will be required to meet with their Sponsor as required in order to elicit requirements. There will both oral and written deliverables that the students must provide throughout this project.

Project Selection: The Team must develop a significant software product. The Team is responsible for finding a Sponsor. The Sponsor may be any faculty member of the York CSE department who will provide the requirements for the product and do the final acceptance testing. The Instructor may at her or his discretion, appoint as a Sponsor somebody outside of the Department (e.g. a suitable sponsor from industry).

Important Note: The Team is responsible for all aspects of the course from requirements elicitation to production of the final code and testing. The Instructor will meet on a regular basis with the Teams, and will assist where possible to deal with the problems that inevitably arise during an open-ended project of this nature, whether the problems are of a technical nature or of a human, social or organizational nature (team cohesiveness, issues with the Sponsor, etc.). However, Teams doing this project also need to recognize up-front that many things can go wrong. Individual Team members might withdraw. The Sponsor may not provide the input hoped for, or might withdraw prematurely. The project may prove too challenging. If such events happen, and the problems cannot be resolved by the Team (assisted by the Instructor), then students may not be able to pass this course in the first instance. In this sense, this course is "risky", just as is software development in any industrial setting.

Evaluation

The Instructor is responsible for all grades assigned. Where relevant the Instructor will receive evaluative input from the Sponsor or the Teams themselves.

By the end of first term:

  1. (10%) Each Team must present an initial requirements document to the Instructor and the Sponsor. The grade will be assigned based (partially) on feedback from the Sponsor. The Team must provide a technically complete and literate requirements document written to professional standards. This document must be at a level that allows the Sponsor to understand and evaluate whether his or her goals are clearly and completely expressed.
  2. (10%) An oral slide presentation to the Instructor of the preliminary design and documentation. Each team member must present an aspect of the whole design. The team must also provide the Instructor with a technically complete and literate design document at the beginning of the presentation written to professional standards. The grade is based on the presentation and documents.
By the end of the second term:
  1. (10%) The final requirements documents (evaluated as discussed in 1.). The Sponsor must sign-off on this document.
  2. (20%) The usability and correctness of the product via acceptance testing. The Instructor will assign a grade based on feedback from the Sponsor as well as his or her own judgement of the product. The team must provide the Sponsor and the Instructor with the final software product (code, installation procedures, and manual).
  3. (40%) Each team member must present to the Instructor an aspect of the whole project. Complete design and testing documents must be provided to the Instructor at the beginning of the presentation. The grade depends on both the presentation and the documents. This part of the evaluation usually assumes that the product has already been shown to work as in 4.
  4. (10%) Team self-assessment of each other.

Important Dates

Other important dates can be on the Registrar's website.

Academic Honesty

Students are expected to read the Senate Policy on Academic Honesty.

Additional Information

Academic Integrity: There is an academic integrity website with comprehensive information about academic honesty and how to find resources at York to help improve students' research and writing skills, and cope with University life. Students are expected to review the materials on the Academic Integrity website.

Access/Disability: York University is committed to principles of respect, inclusion and equality of all persons with disabilities across campus. The University provides services for students with disabilities (including physical, medical, learning and psychiatric disabilities) needing accommodation related to teaching and evaluation methods/materials. These services are made available to students in all Faculties and programs at York University.

Students in need of these services are asked to register with disability services as early as possible to ensure that appropriate academic accommodation can be provided with advance notice. You are encouraged to schedule a time early in the term to meet with each professor to discuss your accommodation needs. Please note that registering with disabilities services and discussing your needs with your professors is necessary to avoid any impediment to receiving the necessary academic accommodations to meet your needs.

Additional information is available at the following websites:

Ethics Review Process: York students are subject to the York University Policy for the Ethics Review Process for Research Involving Human Participants. In particular, students proposing to undertake research involving human participants (e.g., interviewing the director of a company or government agency, having students complete a questionnaire, etc.) are required to submit an Application for Ethical Approval of Research Involving Human Participants at least one month before you plan to begin the research.If you are in doubt as to whether this requirement applies to you,contact your Course Director immediately.

Religious Observance Accommodation: York University is committed to respecting the religious beliefs and practices of all members of the community, and making accommodations for observances of special significance to adherents. Should any of the dates specified in this syllabus for an in-class test or examination pose such a conflict for you, contact the course director within the first three weeks of class. Similarly, should an assignment to be completed in a lab, practicum placement, workshop, etc., scheduled later in the term pose such a conflict, contact the course director immediately. Please note that to arrange an alternative date or time for an examination scheduled in the formal examination period (August), students must complete an Examination Accommodation Form, which can be obtained from Student Client Services, Student Services Centre or online.

Student Conduct in Academic Situations: Students and instructors are expected to maintain a professional relationship characterized by courtesy and mutual respect. Moreover, it is the responsibility of the instructor to maintain an appropriate academic atmosphere in the classroom and other academic settings, and the responsibility of the student to cooperate in that endeavour. Further, the instructor is the best person to decide, in the first instance, whether such an atmosphere is present in the class. The policy and procedures governing disruptive and/or harassing behaviour by students in academic situations is available online.