Skip to content
Snippets Groups Projects

Project 2: M2T

Simplifications

  • Lektor i Realfag simplified by just modelling the Informatics and mathematics specialization with Informatics as main topic.
    • Meaning it follows the same path as most informatics / CS study programs.
    • Meaning it chooses among the normal specialization within the CS programs.

Project 1: SPP - StudyProgramProject

  • tdt4250.spp.model contains the model code and source code.
    • model contains the spp.ecore model related genmodel and implementation.
    • src containing the automatically generated and manual written code
      • tdt4250.spp the interfaces and datatypes generated by Ecore
      • tdt4250.spp.examples manually written example code - based on examples given in the lectures
      • tdt4250.spp.impl implementation code mostly generated by Ecore and some details written manually
      • tdt4250.spp.util
  • tdt4250.spp.model.tests contain all tests for the source code.

The model created (subject to change)

model

Rationale

  • A University naturally owns all Study Programs and institutes, meaning it's the root container in the domain.
  • An Institute has ownership or responsibility of any given course, hence courses are contained by Institutes.
  • A Program has a set of Mandatory Courses that must be completed in order to finish the program.
    • Mandatory Courses will be automatically adjusted after the student has chosen a specialization.
    • The general set of mandatory courses will be predefined by a student coordinator.
  • A Program has a set of Elective Courses that may be selected into a semester
    • The set of elective courses will be predefined by a student coordinator.
  • A course has to be chosen from either the set of Mandatory- or Elective Courses.
  • A Program's duration has to be one of Bachelor (3 years), Masters (2 years), or IntegratedMasters (5 years).
  • The level of a given course is either Bachelor level or Masters level
    • Bachelor level courses is one of; Foundation, Intermediate, or ThirdYear.
    • Masters is always Second Degree.
  • A course can be taken either in the semester Fall or Spring, and may or may not be available for both.

Testing

Tests for all current manual code implementation written.

Code coverage run with EclEmma v.3.1.3. https://www.eclemma.org/index.html.

coverage

The tests written are currently very trivial, and vulnerable to changes made to the code. I've copied an xmi example into the test called testFixture which is used in a couple of setUp methods. When a more detailed fixture is created it should be replaced.

Mistakes

  • Typo for specialization -> is currently specialisation.
    • Would like to do a refactor -> don't want to mess up current implementation.