Wikipendium

History Compendium
Log in
This is an old version of the compendium, written Dec. 10, 2015, 4:04 p.m. Changes made in this revision were made by stiaje. View rendered version.
Previous version Next version

TDT4250: Advanced Software Design

TDT4250 : Advanced Software Desing # Introduction
## Curriculum Curriculum Published 23. november 2015 by Trætteberg, Hallvard Overview of curriculum Below is an overview of the curriculum. In general it is the text book "Model-driven software engineering - Introduction and principles", by Brambilla et.a. (shortened to MDSEiP), the lecture notes and exercise project. I've tried to indicate the relation between topics, MDSEiP chapters and slides. In addition, the book OSGi in Practice (shortened to OSGiP) is helpful for understanding OSGi, although itself not part of the curriculum. Enjoy! Part 1. Model-based engineering Model-driven software engineering - Introduction and principles: Model-Driven Software Engineering in Practive (MDSEiP), chapter 1 and 2 (slides: “Introduction to modeling”) - different usages of models - (what is a) methodology - terminology/acronyms: Model-based development/engineering (MBD/MBE), Model-driven development (MDD), Model-driven Engineering (MDE), Model-driven architecture (MDA) - problem space/domain vs, solution space/domain, domain vs. platform - domain-specific (DSLs) vs. general-purpose modeling languages - models and model instances, metamodels, metamodel hierarchy (M0-M3) - transformations - mapping from one model/language to another - models of static structure vs. dynamic behavior MDSE Use Cases - MDSEiP, chapter 3 - executability - code-generation and model interpretation (engine), advantages and differences - interoperability - syntactic and semantic mapping MDA - MDSEiP, chapter 4 - modeling levels (and mapping between): Computation-independent model (CIM), Platform-independent model (PIM), Platform-specific model (PSM) Modeling languages (at a Glance) - MDSEiP, chapter 6 - semantics (concepts and their meaning) abstract syntax and concrete syntax - (static) structure vs. (dynamic) behaviour - DSLs - classification, the role of OCL (not OCL itself) DSLs - MDSEiP, chapter 7 (slides: “DSL”) - abstract syntax and (meta)modeling, development of - concrete syntax, development of -- textual, grammar-based -- graphical, mapping-based - using Eclipse tools for DSL design and implementation -- Ecore for (meta)modeling, including Ecore modeling concepts and role of genmodel (slides: “Introduction to EMF” and “Ecore modelling”) -- Xtext for defining textual DSLs -- Sirius for defining graphical DSLs Model-to-model (M2M) Transformations - MDSEiP, chapter 8 (slides: “Model transformations”) - classification - one-to-one vs. one-to-many vs. many-to-one, exogenous vs. endogenous, out-place vs. in-place (example in Quiz HTML (no.hal.quiz.html) project: from Quiz model instance to HTML as a model instance) - code generation as M2M Model-to-text (M2T) Transformations - MDSEiP, chapter 9 (slides: “Model transformations”) - template-based technique, e.g. as used by genmodel and JET (example in Quiz HTML (no.hal.quiz.html) project: from Quiz model instance to HTML as text) - code generation as M2T -- protected regions (as used by EMF) -- generate abstract classes, and allow hand-written subclasses (as used by Xtext) Part 2. Component-based design and OSGi, partly covered by OSGi in Practice (OSGIiP), Niel Bartlett (http://njbartlett.name/osgibook.html) Components (modules) as self-contained and self-describing artifacts - OSGIiP, chapter 1.4 (slides: “OSGi - bundles and components”, “Eclipse architecture - plugins and extensions”) - declaring components and their dependencies - component naming and versioning - component lifecycle (OSGIiP, chapter 2.8) Runtime components - OSGIiP, part 2 - service consumer, provider and broker - dependency injection (slides: “Game runtime components”) - service-oriented architecture, web services and REST (slides: “Service-oriented architecture (SOA)”, “Web services”) - extension using OSGi components and Eclipse plugins (both examples of the Whiteboard pattern, OSGIiP, chapter 7) - OSGi - OSGIiP, chapter 11.1 and 11.2 -- dependencies, declaring in MANIFEST.MF (OSGIiP, chapter 3) -- declarative/dynamic services and dependency injection (OSGIiP, chapter 4) -- declaring runtime components in MANIFEST.MF and component xml files Part 3. Various topics Building with Maven (slides: “Modules and builds”) - name and version model: https://maven.apache.org/guides/mini/guide-naming-conventions.html - lifecycle: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html Security (slides: “Security”) Testing (slides: “Testing”) Deployment and the Cloud (slides: “Deployment”) # Model-Driven Software Engineering in Practice # OSGI
  • Contact
  • Twitter
  • Statistics
  • Report a bug
  • Wikipendium cc-by-sa
Wikipendium is ad-free and costs nothing to use. Please help keep Wikipendium alive by donating today!