Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs  January 2006
Domain-Specific Knowledge <ul><li>Program family: </li></ul><ul><ul><li>Commonalities </li></ul></ul><ul><ul><li>Variation...
Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Operations </li></ul></ul><ul><...
Technology-Centric Software Engineering <ul><li>Knowledge encoded in  </li></ul><ul><ul><li>Run-time </li></ul></ul><ul><u...
Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Transformations </li></ul></ul>...
Technology-Centric Software Engineering <ul><li>Knowledge encoded in  </li></ul><ul><ul><li>Design patterns </li></ul></ul...
Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Notations (non-std) </li></ul><...
Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Notations </li></ul></ul><ul><u...
Technology-Centric Software Engineering Domain-Specific Knowledge Modeling Middleware GPL DS knowledge DS knowledge DS kno...
Generating Code From Models Modeling Middleware GPL Domain-Specific Knowledge Libraries Software components … AOP Meta pro...
A Layered Approach To Code Generation Domain-Specific Knowledge DS Modeling Middleware DSL GPL What How <ul><li>DSMLs (mor...
An Example in Telephony Services Domain-Specific Knowledge VSPL Middleware SPL GPL What How … … Libraries Software compone...
Modeling <ul><li>Modeling  (specification) </li></ul><ul><li>DS notations </li></ul><ul><li>Graphical/textual </li></ul><u...
Domain-Specific Languages <ul><li>DSL </li></ul><ul><li>DS constructs </li></ul><ul><li>DS semantics </li></ul><ul><li>DS ...
Generative Programming <ul><li>Generative programming </li></ul><ul><li>DS transformations </li></ul><ul><li>DS optimizati...
Software Components <ul><li>Re-use </li></ul><ul><li>Configuration </li></ul><ul><li>Optimization </li></ul>Domain-Specifi...
Final Remarks <ul><li>Need for DS well-recognized in industry </li></ul><ul><li>Each technology  </li></ul><ul><ul><li>Wel...
Upcoming SlideShare
Loading in …5
×

Domain-Specific Software Engineering

2,077 views

Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

Domain-Specific Software Engineering

  1. 1. Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006
  2. 2. Domain-Specific Knowledge <ul><li>Program family: </li></ul><ul><ul><li>Commonalities </li></ul></ul><ul><ul><li>Variations </li></ul></ul><ul><li>Goals </li></ul><ul><ul><li>Software automation </li></ul></ul><ul><ul><li>Software robustness </li></ul></ul><ul><li>Example: telephony services </li></ul><ul><ul><li>Domain concepts and terminology </li></ul></ul><ul><ul><li>Domain regulations </li></ul></ul><ul><ul><li>Protocol rules </li></ul></ul><ul><ul><li>Programming interfaces </li></ul></ul><ul><ul><li>Frameworks… </li></ul></ul><ul><li>Key observation: </li></ul><ul><li>In software engineering, domain-specific knowledge is technology centric </li></ul>
  3. 3. Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Operations </li></ul></ul><ul><ul><li>Glue code </li></ul></ul><ul><li>Gap between a solution and operations </li></ul><ul><li>Policies not enforceable </li></ul>Domain-Specific Knowledge Libraries Software components …
  4. 4. Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Run-time </li></ul></ul><ul><ul><li>State </li></ul></ul><ul><ul><li>Glue code </li></ul></ul><ul><li>Not so domain specific </li></ul><ul><li>Policies more enforceable (run time cost) </li></ul>Domain-Specific Knowledge Middleware Libraries Software components …
  5. 5. Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Transformations </li></ul></ul><ul><ul><li>Program structure </li></ul></ul><ul><li>Maybe difficult to </li></ul><ul><ul><li>Encode </li></ul></ul><ul><ul><li>Debug </li></ul></ul><ul><li>Tool trade-off between </li></ul><ul><ul><li>Expressivity </li></ul></ul><ul><ul><li>Safety </li></ul></ul><ul><li>Dependant on program structure </li></ul>Domain-Specific Knowledge Middleware Libraries Software components … AOP Meta programming …
  6. 6. Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Design patterns </li></ul></ul><ul><ul><li>Coding rules </li></ul></ul><ul><li>Policies not enforceable </li></ul>Domain-Specific Knowledge Middleware GPL Libraries Software components … AOP Meta programming …
  7. 7. Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Notations (non-std) </li></ul></ul><ul><ul><li>Transformations </li></ul></ul><ul><li>Nature: mostly graphic </li></ul><ul><li>Not executable </li></ul><ul><li>Manual code generation </li></ul><ul><li>DS verification difficult because GP modeling </li></ul>Domain-Specific Knowledge GP Modeling Middleware GPL Libraries Software components … AOP Meta programming …
  8. 8. Technology-Centric Software Engineering <ul><li>Knowledge encoded in </li></ul><ul><ul><li>Notations </li></ul></ul><ul><ul><li>Transformations </li></ul></ul><ul><li>Simple  software config. </li></ul><ul><li>Rich  manual code generation </li></ul>Domain-Specific Knowledge DS Modeling Middleware GPL Libraries Software components … AOP Meta programming …
  9. 9. Technology-Centric Software Engineering Domain-Specific Knowledge Modeling Middleware GPL DS knowledge DS knowledge DS knowledge DS knowledge DS knowledge Libraries Software components … AOP Meta programming …
  10. 10. Generating Code From Models Modeling Middleware GPL Domain-Specific Knowledge Libraries Software components … AOP Meta programming …
  11. 11. A Layered Approach To Code Generation Domain-Specific Knowledge DS Modeling Middleware DSL GPL What How <ul><li>DSMLs (more abstract DSLs) </li></ul><ul><ul><li>cover sub-domains/views </li></ul></ul><ul><ul><li>targets the DSL </li></ul></ul><ul><li>DSL </li></ul><ul><ul><li>covers a domain </li></ul></ul><ul><ul><li>checks domain properties </li></ul></ul><ul><ul><li>generate implementation </li></ul></ul>Libraries Software components … AOP Meta programming …
  12. 12. An Example in Telephony Services Domain-Specific Knowledge VSPL Middleware SPL GPL What How … … Libraries Software components … AOP Meta programming …
  13. 13. Modeling <ul><li>Modeling (specification) </li></ul><ul><li>DS notations </li></ul><ul><li>Graphical/textual </li></ul><ul><li>DS constraints </li></ul><ul><li>DS transformations </li></ul>Domain-Specific Knowledge DS Modeling Middleware DSL GPL What How Libraries Software components … AOP Meta programming …
  14. 14. Domain-Specific Languages <ul><li>DSL </li></ul><ul><li>DS constructs </li></ul><ul><li>DS semantics </li></ul><ul><li>DS verifications </li></ul><ul><li>DS compilation via generative programming </li></ul><ul><li>DS architecture/middleware </li></ul>Domain-Specific Knowledge DS Modeling Middleware DSL GPL What How Libraries Software components … AOP Meta programming …
  15. 15. Generative Programming <ul><li>Generative programming </li></ul><ul><li>DS transformations </li></ul><ul><li>DS optimizations </li></ul><ul><li>DS aspect languages </li></ul>Domain-Specific Knowledge DS Modeling Middleware DSL GPL What How Libraries Software components … AOP Meta programming …
  16. 16. Software Components <ul><li>Re-use </li></ul><ul><li>Configuration </li></ul><ul><li>Optimization </li></ul>Domain-Specific Knowledge DS Modeling Middleware DSL GPL What How Libraries Software components … AOP Meta programming …
  17. 17. Final Remarks <ul><li>Need for DS well-recognized in industry </li></ul><ul><li>Each technology </li></ul><ul><ul><li>Well matured </li></ul></ul><ul><ul><li>Well tooled </li></ul></ul><ul><li>Cross-technology approach: high potentials </li></ul><ul><li>Research topics in </li></ul><ul><ul><li>Bridging the technologies </li></ul></ul><ul><ul><li>Tooling the bridges </li></ul></ul><ul><ul><li>Working on case studies </li></ul></ul>

×