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