User Tools

Site Tools


start

LE/EECS 4090 6.0

LE/EECS 4090 6.0: Software Project

Capstone Project for students in the Software Development Stream

Description

Large-scale project involving all stages of the software development life cycle: requirements, analysis and design, implementation, testing and delivery. Team work. Open only to students in the Software Development Stream. Prerequisites: LE/EECS 3311 3.00 (with minimum grade of B), LE/EECS 3101 3.00, LE/EECS 3342 3.00. Corequisites: LE/EECS 4312 3.00, LE/EECS 4313 3.00.

Expanded Description

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

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

Milestones and Evaluation 2019-20

By the end of first term Dec. 20th:

  • (10%): An initial requirements document. The Team must provide a technically complete and literate requirements document written to professional standards.
  • (5%): An oral slide presentation to the Instructor of the preliminary design and documentation. Each team member must present an aspect of the whole design.

By the end of the second term April 30:

  • (10%): The final requirements documents
  • (40%): Proof of usability and correctness of the actual product via acceptance testing and a Test document.
  • (25%): A professional Design Document
  • (5%): Final slide presentation (this is organized by the course coordinator for EECS4080)
  • (5%): Team self-assessment of each other.

Regular weekly or biweekly meetings will be held with with the Project Supervisor.

start.txt · Last modified: 2020/04/13 16:13 by jonathan