Ptt16 Assignment4

A megamodel


Model some scenario of language and technology usage.


(i) Select software languages and software technologies in software development or general IT that you are or may want to or should be knowledgeable about for some reason. A list is provided below for inspiration. You are very much welcome to propose additional languages and technologies. Please note, eventually, we are actually interested in usage scenarios of technologies and languages - not just technologies and languages, as is. (ii) Teaching staff and students will discuss usage scenarios during the assignment meeting; students need to refine these initial ideas into some reasonable scenario for their actual assignment work. (iii) Describe the usage scenario informally while making appropriate use of illustrations (such as screen shots, explanatory diagrams, or sample code) and references to online resources (such as technical documentation or Wikipedia pages). (iv) Apply linguistic architecture modeling (megamodeling) to the scenario. Represent your model in the MegaL language, as presented on the lecture slides. That is, you need to list entity declarations, relationship declarations, entity (sub-) type declarations, and possibly (if really necessary) relationship type declarations.


Your megamodel must meet a certain minimum complexity:

  • 7+ entities must be declared.
  • These entity types (or subtypes thereof) must be exercised in entity declarations:
    • Language
    • Technology
    • Artifact
    • Function
    • Concept
  • These relationship symbols must be exercised in relationship declarations:
    • elementOf
    • function application
    • implements or defines
    • partOf
    • conformsTo or correspondsTo
    • uses or facilitates

Here are some additional reflections to be taken into account:

  • Don't make your megamodel too complex. Focus on one important usage scenario. (If you have more than 25 entities, you are most likely not abstracting enough.)
  • You are welcome to introduces sub-languages ("subsetOf"), but it is nor required. If you identify an interesting case of a sub-language, this could be regarded as a plus, but there is some risk of getting this wrong.
  • You are welcome to introduce new sub-types of existing entity types, but maybe you don't need that because there is again some risk of getting this wrong.
  • You are welcome to introduce new top-level types of entities (in addition to system, language, technology, artifact, function, and concept) and new relationship types/symbols, but this is absolutely not required and may just add too much complexity and it may lead too easily to inconsistency; so be thoughtful about it. (Don't do it!!!)


  • 30 June-3 July (Preparation)
    • Make sure you are familiar with the "megamodeling" lecture.
    • Prioritize approx. 3 options of those listed below so that you can speak up during the meeting on 4 July. By all means, we should be able to assign one of your preferred options to your team.
    • If you want to propose another option, bring this idea of yours to the meeting.
  • 4 July (Option assignment during lab)
    • 2-3 team representatives must attend the first lab (14:15-15:45).
    • Ask questions on your preferred options.
    • Participate in the audition for the available options.
    • You can get more consultation during the second lab slot.
  • 13 July (Deadline for assignment)

Technology options

This list may be revised by 4 July.

Simpler options

(For use by small teams.)

Regular options


  • Use a new git repo, as in the case of the previous assignnments.
  • Submit your assignment solution as a PDF file.


This assignment is not eligible for collecting a bonus.

Further reading