Project 1 Check-in 2A (group part, Proposal)
- Due Jan 24 by 5p.m.
- Points 0
(Please see the corresponding project description for full notes about Check-ins, including discussion with your TA and how to submit). Note that submitting your check-ins on time is one factor we'll take into account when determining your grade.
Check-in 2 has three parts. The group part of the check in includes: (1) the regular check in report, and (2) a project proposal, both to be submitted on GitHub. The individual part of the check-in includes (3) a qualtrics survey.
Check-in 2 Report Items
You should aim to have a version of the main discussion points below ready to discuss with your TA in your assigned slot. If they are not all ready by then, discuss those you do have proposed answers for, as well as any questions you have about the other points. In all cases, briefly reflect the main points of feedback you receive from your TA.
- Planned division of main responsibilities between team members, considering how to enable working in parallel as much as possible. Consider the following points:
- Modular design for the software system: what is the input, output of each component? Who is responsible for each component? Do you want to be jointly responsible for some components?
- What is the data at each interface point? Are there invariants over the data other than the class structure?
- How will you be able to build component X independently? Can you write tests for component X independently of its dependent components?
- Who will be responsible for writing which tests, and when (will the same people write the tests as the code)?
- Are there design or other project tasks (possibly including team management), other than these components, that need to be assigned/completed?
- Roadmap/timeline(s) for what should be done when, and how you will synchronise/check-in with each other to make sure progress is on-track. Talk clearly with your team members about your expectations for communication and progress, and what you will do as a team if someone falls behind.
- Summary of progress so far.
Check-in 2 Submission Items
Following your discussion with your TA from Check-in 1, please submit on github a proposal pdf for your planned DSL. The proposal serves as a form of contract between your project group and the course staff; we will give you feedback as to whether the proposal meets the project specifications, and how it can be altered if it does not meet specifications. If your proposal does not meet the project specifications, this reduces the maximum grade you can get on the project.
Proposal Structure
The proposal should be submitted as a pdf on github. The proposal has the following information.
- Group Number, Members.
- DSL Purpose: What is the purpose of the DSL? (what will it allow users to do?)
- DSL Users: What is your expected user-base? (what assumptions do you have about your expected users? how does this affect your design?)
- Rich Features: for each of the 3 rich features of your DSL:
- What does this feature allow users to do?
- How does this feature interact with (at least one of) the other rich features in a complex way? (E.g., loops are more complicated to implement in a programming language that has mutable state, are more complex if they have boolean expressions as guards rather than a fixed number of repetitions). If feature 1 and 3 interact in a complex way, you need only list this once (i.e., not repeat the same text for feature 1 and for features 3)