COMP 3004B Project Requirements Winter 2021
You are to develop a web-based Course Management System (hereafter CMS) that deals with multiple academic years and their multiple deadlines, each consisting of 3 terms (Fall, Winter, Summer, in that order, that is, the Fall term starts an academic year).
Part 1: Designing/coding with patterns (50% of project grade) Your design and coding of this web-based system must appropriately use the following patterns:
- – Strategy/Decorator/Composite for a specific kind of monitoring functionality explained in the posted relevant material. (15%)
- – Observer (10%)
- – a Factory: either Factory Method or Abstract Factory (15%)
- – Visitor (10%)
The use of other design and architectural patterns is encouraged and will be taken into account in evaluating Part 2 of your project. More specifically, each use of a design or architectural pattern in your design and code will be rewarded if it is sufficiently motivated and explained.
In order to favor originality and thus differentiation between the submissions of different teams, we do not provide functional requirements for your CMS. You can consider the minimalist functional requirements of assignment 1 as a starting point, but we expect a lot more. Furthermore, given that the abovementioned design patterns will be introduced over several weeks, it is expected that you will have to frequently evolve your design in order to start using a relevant newly studied pattern. As per the agile manifesto, do aim for weekly working tested versions of your system. If running out of time, do less but do it and demo it well!
Do expect weekly deliverables, minimally consisting in an ever-evolving document that:
- – States what functionality has been implemented in the last week: each team member reports time spent and functionality designed/coded
- – Includes the use cases and test plan for what has been achieved
- – Explains your current design (via UML models) and motivates/explains the
use of design and architectural patterns
- – Scopes the functionality you intend to implement as a team in the coming
Further details wrt deliverables, peer evaluations and demos will follow throughout the term. Demos will take place April 13 through 15.
Average time expected working on the project each week per student: 8 hours
Learning objectives for Part 1:
- – efficient team work for continuous integration for working versions
- – constant design/model/code evolution
- – motivated application of design and architectural patterns
COMP 3004B Project Requirements Winter 2021
Part 2: Designing/coding distinguishing features (50% of project grade) Provided you do address each of the 4 requirements of Part 1 satisfactorily in a web application, your mark will improve with each distinguishing feature you include in your project: (N.B.: features are NOT equally rewarded)
- – use of other Go4 and/or architectural patterns beyond those of Part 1
- – use of a database
- – use of a sophisticated UI
- – use of tools beyond JUnit to automate the testing of the CMS
- – use of a framework for the development of web-based applications. Spring and Spring boot are particularly relevant (with Emma being the sole TA who can answer about these frameworks) (most rewarded)
- – addressing security aspects of a CMS
FYI: Spring MVC is a complete HTTP oriented MVC framework managed by the Spring Framework and based on Servlets. The most popular elements in it are classes annotated with @Controller, where you implement methods you can access using different HTTP requests. It has an equivalent @RestController to implement REST-based APIs. Spring bootis a utility for setting up applications quickly, offering an out of the box configuration in order to build Spring-powered applications. In other words, Spring MVC is a framework for web applications and Spring Boot is a Spring based production-ready project initializer. You might find useful visiting the Spring MVC tag wiki (https://stackoverflow.com/tags/spring- mvc/info) and the Spring Boot tag wiki (https://stackoverflow.com/tags/spring- boot/info).
Beyond your weekly team reports, your repository will be monitored on a weekly basis to verify the contribution of each team member to your implementation. To this end, each commit must:
- – state the names of all its contributors
- – be labeled as ‘new functionality’, ‘tests’ or ‘refactoring’
- – describe what functionality is being addressed
Any expected lack of contribution should be communicated in advance to all team members and to me. Any perceived sustained and unexpected lack of contribution by a team member should be signaled as early as possible to me by the rest of the team. Non-contributors will be warned once before being removed from their team.
Be aware that part of the evaluation of your project will be comparative. That is, your design and implementation of a CMS will be compared to those of other teams. Also, please be aware that there is no correction grid for this project. The onus is on you to demonstrate that the functionality you implemented is adequately tested.
Learning objectives for Part 2:
- – initiative in researching tools and technology
- – practice at learning and using new technology with very little support
- – efficient team work in time management
本网站支持淘宝 支付宝 微信支付 paypal等等交易。如果不放心可以用淘宝交易！
E-mail: email@example.com 微信:itcsdx