1 / 27

Introduction to Domain Engineering

Introduction to Domain Engineering. Dr Micha ł Antkiewicz mantkiew@gsd.uwaterloo.ca. http://gsd.uwaterloo.ca. http ://necsis.ca. About me…. “researcher” “mentor” “consultant” “entrepreneur” http://gsd.uwaterloo.ca/mantkiew http:// ca.linkedin.com/in/mantkiewicz.

lora
Download Presentation

Introduction to Domain Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Domain Engineering DrMichał Antkiewiczmantkiew@gsd.uwaterloo.ca http://gsd.uwaterloo.ca http://necsis.ca

  2. About me… • “researcher” • “mentor” • “consultant” • “entrepreneur” http://gsd.uwaterloo.ca/mantkiew http://ca.linkedin.com/in/mantkiewicz

  3. 2003 – MSc: “Modeling of Embedded Systems using UML-RT, SDL, and Simulink/Stateflow” • 2004 – Feature Modeling Plugin (271) • 2005 – Feature-based Model Templates (448) • 2008 – PhD: “Engineering of Framework-Specific Modeling Languages” + TSE, JASE (86, 49) • 2008 – Design Space of Heterogeneous Model Transformations (56) • 2011 – Logical Structure Extraction from SRD, Clafer • 2013 – Clafer Formal Semantics, Partial Instances • 2014 – Example-Driven Modeling, Virtual Platform • Currently Clafer Tools + applications • “Haskell Enthusiast”

  4. What is Domain Engineering?

  5. Domain Engineering is “Development for Reuse” Vs. “Application Engineering” which is“Development with Reuse”

  6. Reusable Software • Source code • White-box reuse • Configurable software • Parameters, configuration files • Traditional • Libraries, components, frameworks, platforms • Model-driven • Product-lines • DSLs

  7. Clone & own Component library Framework library Superset platform config complete copy import + easy to use - no sharing (features & fixes) + some sharing - little reuse + substantial reuse - complex customization + substantial reuse - evolution through platform Credit: Krzysztof Czarnecki, used with permission

  8. During Domain Engineering… • Understand the scope • kind of applications that will be developed • Understand the • “commonality” - what’s shared by all applications • “variability “ - what’s different • Develop reusable assets • different approaches and technologies

  9. During Application Engineering… • Understand the requirements • what the specific application is • Use the reusable assets • what can be reused • what has to be developed • Feed back to domain engineering • adjust scope, variability, and contribute assets

  10. Business Strategy CustomerRequirements Domain Engineering Application Engineering

  11. Retroactive Strategy Application Engineering Application Engineering Application Engineering Application Engineering Domain Engineering

  12. Proactive Strategy Domain Engineering Application Engineering

  13. Spectrum of Configurability construction configuration parameters,config files feature modelwith constraints feature modelwith references single product code class model(DSL) frameworks Key: “stay as far to the left as possible” - Markus Völter in “MDSD”

  14. Credit: Andrzej Wąsowski, used with permission

  15. Credit: Andrzej Wąsowski, used with permission

  16. What we are going to do • Example Domain: “Traffic Lights” • Feature-oriented commonality/variability analysis • Domain concept analysis • Application Configuration • Apply “Example-Driven Modeling” • Use Clafer & Web Tools • Tutorial style • Hands-on • Small exercises

  17. Part IFeature-Oriented Domain Modeling

  18. Credit: Andrzej Wąsowski, used with permission

  19. Go to Interactive Tutorial Part Ihttp://t3-necsis.cs.uwaterloo.ca:8098/

  20. Part IIDomain Concept Modeling

  21. Go to Interactive Tutorial Part IIhttp://t3-necsis.cs.uwaterloo.ca:8098/

  22. Future: Behavioral Clafer • LTL formulas • Static constraints are “always globally” • Syntactic sugar • “between” A “and” B • “after” A “until” B • State transitions • Async: “A --> B”, Sync: “A ==> B”, Next: “A ##> B” • With guards: “A –[G]-> B”, “A =[G]=> B”, “A #[G]#> B”

  23. Part IIIApplication Configuration

  24. Go to Interactive Tutorial Part IIIhttp://t3-necsis.cs.uwaterloo.ca:8098/

  25. Conclusions • Formally modeled • Domain features • Domain concepts • Application configurations • Used a reasoner to get insights • Used examples for elicitation & validation • We laid a foundation for further development

  26. Key Clafer-Related References K. Bąk, et al., “Feature and Meta-Models in Clafer: Mixed, Specialized, and Coupled”, SLE’10 J. Liang, “Solving Clafer Models with Choco”, GSD Lab, 12/2012. R. Olaechea, et al., “Modeling and Multi-Objective Optimization of Quality Attributes in Variability-Rich Software”, NFPinDSML’12 J. Liang, “Correcting Clafer Models with Automated Analysis”, GSD Lab, 04/2012. A. Murashkin, et al., “Visualization and Exploration of Optimal Variants in Product Line Engineering”, SPLC’13 K. Bąk, et al., “Partial Instances via Subclassing”, SLE’13 K. Bąk, et al., “Example-Driven Modeling. Model = Abstractions + Examples”, NIER, ICSE’13 M. Antkiewicz, et al., “Example-Driven Modeling Using Clafer”, MDEBE’13 M. Antkiewicz, et al., “ClaferTools for Product Line Engineering”, SPLC’13. K. Bąk, “Modeling and Analysis of Software Product Line Variability in Clafer”, PhD Thesis, University of Waterloo, 11/2013 D. Zayan, et al., “Effects of Using Examples on Structural Model Comprehension“, ICSE'14 J. Guo, et al., “Scaling Exact Multi-Objective Combinatorial Optimization by Parallelization”, ASE’14

More Related