MDSE In Practice - Chapter 3 - Reading Notes

Chapter 3 - MDSE Use Cases
  • Premier use-case - software development automation (or MDD).
  • Most common use-case in organisations.
3.1 Automating Software Development
  • Typical process: Requirements (M2M)=> Analysis (M2M)=> Design (M2T)=> Implementation
  • Bridging communication gaps in an organisation
  • Code Generators - range of capabilities
  • Executable UML. ALF - Action Language for fUML
  • Code Generation & Model Interpreters
3.1.1 Code Generation
  • Can be seen as being a similar process to the compilation of source code into object code.
  • Partial Vs Full Generation - Pros & Cons
  • Advantages of Code Generation
    • Intellectual Property of model is easier to maintain - currently.
    • Standard output (i.e. a programming language)
    • Choice of runtime environments
    • Reuse of existing programming artifacts
    • Easier to maintain vs an interpreter
    • Partial generation an option
    • Better performance vs an interpreter
  • Cons
    • Output usually looks different to what developers are used to.
      • Interesting idea of a applying a turing test for generated code.
3.1.2 Model Interpretation
  • Pros
    • Enables faster changes to turnaround a change to requirements.
    • Changes at runtime are possible.
    • Model is the code
    • Opportunity for the improvement/change of interpreter (e.g. in security concerns handling)
    • Higher level of abstraction
    • Easier debugging of model vs code generation
    • No deployment phase
  • Cons
    • Dependent on MDSE vendor
    • Performance concerns
    • Usually requires proprietary  platform.
3.1.3 Combining Code Generation & Model Interpretation
  • Internal code generation, but outwardly feels like interpreted approach to developer.
  • Code generation at higher levels, but use of predefined components at lower levels.
3.2 System Interoperability
  • Forward & Reverse Engineering
  • Syntactic & Semantic challenge
  • MDI - Model Driven Interoperability
    • Use of meta-models
  • Syntactic Mapping
    • Projector - Injectors (input -> model)
    • Projector - Extractor (model -> output)
  • Semantic Mapping
    • Model Transformation (A->B)
  • Overall Process
    • Injection
    • Transformation
    • Extraction
3.3 Reverse Engineering
  • Opportunity with regards to legacy systems
  • MDRE - Model Driven Reverse Engineering
    • Model Discovery
    • Model Understanding
    • Model (Re) Generation
  • Example: Cobol To Java
3.4 Modeling The Organisaiton
3.4.1 Business Process Modeling
  • BPMN / BPEL
3.4.2 Enterprise Architecture
  • A collection of models
  • Zachman Framework, TOGAF

Comments

Popular posts from this blog

Creating Items in Sparx EA via Java

Module Management - Part 1 - getModule() Pattern

Traversing a EA Model via Java