Startup16 Assignment2

Linguistic architecture

Summary

(i) Select software languages and software technologies in software development or general IT that you 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. You are also welcome to discuss ideas with the lecturer by Facebook or email. Please note, eventually, we are actually interested in usage scenarios of technologies and languages - not just technologies and languages, as is. (ii) The lecturer will assign a more or less specific usage scenario to you while trying to make good use of your proposals. The assigned scenario will be most likely underspecified; you need to refine into something reasonable. (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.

Details

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
    • defines or implements
    • partOf
    • conformsTo or correspondsTo or uses or facilitates

Here are some additional reflections to be taken into account:

  • 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 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.

Candidate usage scenarios:

Here are some technologies (or classes thereof) without hinting at a scenario; you would need to propose something:

Logistics

  1. Communicate by Tuesday, 29 March 2016, EOD concise ideas for usage scenarios of interest (1-3 sentence per idea) by email to the lecturer; make sure to use "startup16" in the subject line; make sure to identify the team in the body of the email. You are much more likely to get what you want, if you send convincing ideas not covered by the items in the list above. You are welcome to express preferences for the items in the list above.
  2. You will get assigned a usage scenario by Thursday, 31 March 2016, EOD.
  3. Your presentation must cover parts (iii) and (iv), as described in the summary section above, must be uploaded to your shared folder by Thursday, 14 April 2016, EOD.
  4. You present your presentation in class on Friday, 15 April 2016.
  5. Please consider using the Facebook group for this course, if you want some help by others including the lecturer.

Material

  • The lecture slides on linguistic architecture.

Per-team assignments

  • Team 1: Process of creating and retrieving posts with the open-source content management system Wordpress. This scenario would involve PHP, MySQL, and the JSON API for CRUD.
  • Team 2: No input received. The following broad scenario is assigned: Enterprise integration with Apache Camel. A more specific scenario to be identified.
  • Team 3: Google Maps API. A useful scenario to be identified. Make sure to sync with the other Google Maps API team to use complementary scenarios.
  • Team 4: Google Maps API. A useful scenario to be identified. Make sure to sync with the other Google Maps API team to use complementary scenarios.
  • Team 5: Microsoft Office. A useful scenario to be identified.
  • Team 6: No input received. The following broad scenario is assigned: Data exchange with external parties in an ERP system. A more specific scenario to be identified. Feel free to pick a different scenario related to ERP systems.
  • Team 7: Web apps with AngularJS.
  • Team 8: No input received. The following broad scenario is assigned: Application of software for business intelligence. A more specific scenario to be identified.
  • Team 9: No input received. The following broad scenario is assigned: Skill endorsement for the social network LinkedIn. Feel free to pick a different scenario related to social networks.
  • Team 10: No input received. The following broad scenario is assigned: Folder sharing with Google Drive. Feel free to pick a different scenario related to file sharing software.
  • Team 11: Recording sound files with Logic Pro.
  • Team 12: No input received. The following broad scenario is assigned: Interactive development with iPython A more specific scenario to be identified. Feel free to pick a different scenario related to interactive development.