Model-driven Software Development (MSD)University of Southern DenmarkThe Maersk Mc-Kinney Moller Institute, Odense Teaching activity id: RP-MSD-U2. Teacher: Miguel Enrique Campusano Araya - mica@mmmi.sdu.dk
Objective: The goal of this course is to give the participants an insight into the design and implementation of high-level, domain-specific programming languages (DSLs) following the principles of model-driven software development. Ph.D. students are expected to apply the principles introduced in the course to a problem area related to their Ph.D. topic, resulting in a DSL designed to model and ultimately solve tasks in this specific problem area.
Prerequisites: MSc with significant programming experience but limited formal knowledge of compilers and programming languages, i.e., software engineering or robotics. Designed for students working on a topic suitable for formalization using a Domain-Specific Language (DSL). Contact mica@mmmi.sdu.dk for further information.
Knowledge: Explain the process of developing reusable software using models, domain-specific languages, and code generation. Argue for the advantages and disadvantages of using domain-specific languages, both in general and in a specific use case scenario.
Skills: For a specific research problem, make an informed choice of implementation patterns for developing internal DSLs in standard object-oriented languages, and similarly make an informed choice on the design and implementation of an external domain-specific language for this problem. Use a standard object-oriented language to develop an internal DSL, and similarly use a language workbench to develop an external DSL based on code generation.
Competencies: Survey research papers on model-driven software development relevant to a specific research problem and present the results to an audience. Create a formalized model of a specific research problem, in a way that makes it amenable to automatic program generation techniques. Create a novel and useful domain-specific language and accompanying code generator that targets a problem domain centered around a specific research problem. Reflect on the utility of the techniques advocated in the course in relation to a specific research problem.
Contents: Automatic program generation, domain-specific languages, model-driven software development, software product lines, modeling and metamodeling, code generation, formal grammars, semantics, syntax, frameworks, software patterns, generative programming, feature-oriented programming, aspect-oriented programming.
Written report, pass/fail, approval by the teacher.
Notes: Co-taught with MSc-level Software Engineering Course.
Please contact Pia Mønster by email pmkr@mmmi.sdu.dk. Remember course name.
|
|