Eivind Rydningen and Thomas Iversen Ramm
.
├── Assignment_1
│ ├── META-INF
│ │ └── MANIFEST.MF
│ ├── Programme.png
│ ├── bin
│ │ └── Assignment_1
│ │ └── studyplan
│ │ ├── Course.class
│ │ ├── CourseGroup.class
│ │ ├── CourseLevel.class
│ │ ├── CourseStart.class
│ │ ├── CourseType.class
│ │ ├── Degree.class
│ │ ├── Department.class
│ │ ├── Programme.class
│ │ ├── Semester.class
│ │ ├── Specialization.class
│ │ ├── StudyplanFactory.class
│ │ ├── StudyplanPackage$Literals.class
│ │ ├── StudyplanPackage.class
│ │ ├── example
│ │ │ ├── Department.xmi
│ │ │ └── Example.class
│ │ ├── impl
│ │ │ └── All implemantation classes ...
│ │ ├── util
│ │ │ └── All utilities ...
│ ├── build.properties
│ ├── departmentoverview.png
│ ├── model
│ │ ├── Department.xmi
│ │ ├── studyplan.ecore
│ │ └── studyplan.genmodel
│ ├── plugin.properties
│ ├── plugin.xml
│ └── src
│ └── Assignment_1
│ └── studyplan
│ └── Auto generated code ...
├── Assignment_1.tests
│ └── All test code ...
├── images
│ └── ... All images
├── README.md
└── org.eclipse.acceleo.module.sample
├── META-INF
│ └── MANIFEST.MF
├── Studyplan.html
├── bin
│ └── org.eclipse.acceleo.module.sample
│ └── Activator.class
├── build.properties
├── src
│ └── org.eclipse.acceleo.module.sample.main
│ ├── Generate.java
│ └── generate.mtl
└── tasks
└── All task files ...
Limitations of model
- All study programmes must start in autumn
Contains all available courses and programmes.
Contains the name of the programme, I.E Master of Science in Informatics, and the duration of the programme in semesters. Programme derives its duration from its degree type. It also specifies which type of the degree it is, either Integrated Master, 2 Year Master or Bachelor. A programme may contain several specializations/majors or semesters.
A specialization/major holds a specializationCode or keyword in addition to a name. A specialization may also contain several sub specialziations. It also consists of several semesters.
Semesters are indentified by an integer relative to how far along in the programme you are. The float semesterCredits indicate how many credits a given semester has currently, the value is constrained to be at least 30.0 credits per semester. A semester contains one or more course groups. Semester number is an integer >= 1. Season is derived from semester number. Odd numbers -> autumn and even numbers -> spring
A course group is a group of courses with similar rules I.E O, VA, VB, M1A, M2A, EIT (same rules as M1A). The class attribute CourseType is an enumeration representing the mentioned rules. These groups may contain zero or several courses depending on the semester and programme etc.
Holds the course code (unique), its name, how many credits its worth. It also holds the enumerations of course level (level 1, level 2, level 3 and higher level) and an enumeration of course start (autumn, spring or either of the two). A course is constrained to a maximum of 30.0 credits.
We made a few changes to our model, mainly that a Programme may contain a semmester without referencing a Specialziation and that a Semester now contains a derived feature Season (from Semester number). We also implmented the datatype Credits and constrained it to be a float between 0.0 and 30.0.
For assignment 2 we opted to use an acceleo M2T transformation.
To run the generate.mtl file on the model. Apply the following run configuration to the file.



