170 likes | 330 Views
Domain-Specific Software Engineering. Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs. January 2006. Domain-Specific Knowledge. Program family: Commonalities Variations Goals Software automation Software robustness Example: telephony services Domain concepts and terminology
E N D
Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006 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 Charles Consel Jan-06
Software components … Libraries Technology-Centric Software Engineering • Knowledge encoded in • Operations • Glue code • Gap between a solution and operations • Policies not enforceable Domain-Specific Knowledge Charles Consel Jan-06
Software components … Libraries Technology-Centric Software Engineering • Knowledge encoded in • Run-time • State • Glue code • Not so domain specific • Policies more enforceable (run time cost) Domain-Specific Knowledge Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Technology-Centric Software Engineering • Knowledge encoded in • Transformations • Program structure • Maybe difficult to • Encode • Debug • Tool trade-off between • Expressivity • Safety • Dependant on program structure Domain-Specific Knowledge Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Technology-Centric Software Engineering • Knowledge encoded in • Design patterns • Coding rules • Policies not enforceable GPL Domain-Specific Knowledge Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Technology-Centric Software Engineering GP Modeling • Knowledge encoded in • Notations (non-std) • Transformations • Nature: mostly graphic • Not executable • Manual code generation • DS verification difficult because GP modeling GPL Domain-Specific Knowledge Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Technology-Centric Software Engineering DS Modeling • Knowledge encoded in • Notations • Transformations • Simple software config. • Rich manual code generation GPL Domain-Specific Knowledge Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Technology-Centric Software Engineering Modeling DS knowledge GPL DS knowledge Domain-Specific Knowledge DS knowledge Middleware DS knowledge DS knowledge Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Generating Code From Models Modeling Domain-Specific Knowledge GPL Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries A Layered Approach To Code Generation DS Modeling What Domain-Specific Knowledge DSL How GPL • DSMLs (more abstract DSLs) • cover sub-domains/views • targets the DSL • DSL • covers a domain • checks domain properties • generate implementation Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries An Example in Telephony Services … VSPL … What Domain-Specific Knowledge SPL How GPL Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Modeling DS Modeling What Modeling (specification) • DS notations • Graphical/textual • DS constraints • DS transformations Domain-Specific Knowledge DSL How GPL Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Domain-Specific Languages DS Modeling What DSL • DS constructs • DS semantics • DS verifications • DS compilation via generative programming • DS architecture/middleware Domain-Specific Knowledge DSL How GPL Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Generative Programming DS Modeling What Generative programming • DS transformations • DS optimizations • DS aspect languages Domain-Specific Knowledge DSL How GPL Middleware Charles Consel Jan-06
Meta programming … AOP Software components … Libraries Software Components DS Modeling What Re-use • Configuration • Optimization Domain-Specific Knowledge DSL How GPL Middleware 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 Charles Consel Jan-06