The course is delivered to MIPT DIHT first year graduate students in Spring 2015 as an alternative course.
Professor: Anton Khritankov (contact: prog.autom (at) gmail.com)
TAs: None
Course includes three major topics that automate software development:
Lectures are complemented with three labs:
There are 32 lecture hours and 16 lab hours in the course (a 2-hour lab each two weeks).
Course starts February 12th, 2015.
Extended course syllabus can be downloaded here (in Russian).
Exam questions from year 2014 can be found here (in Russian)
| Date | Topic | Lab (odd) | Lab (even) |
|---|---|---|---|
| 02/12 | Introduction to Model-Driven Software Development | No class | |
| 02/19 | UML 2. Classes. Review | UML Basics | |
| 02/26 | UML 2. Statecharts. Review | UML Basics | |
| 03/05 | Executable UML. | UML Basics Due | |
| 03/12 | Foundational UML (fUML). Action Language for fUML (ALF) | UML Basics Due | |
| 03/19 | Meta-modeling. Model-to-Model Transformation. Query-View-Transformation | xUML Lab | |
| 03/26 | Developing Model-to-Text transformations | xUML Lab | |
| 04/02 | Topic - TBA | xUML Lab Due | |
| 04/09 | Developing Domain-Specific Languages | xUML Lab Due | |
| 04/16 | Introduction to DSM and Domain-Driven Design | DSL Lab | |
| 04/23 | Software product lines | DSL Lab | |
| 04/30 | Applications of MDD. Software Factories. Embedded software. Case studies | DSL Lab Due | |
| 05/07 | Software testing. Model-based Testing overview. Test generation | DSL Lab Due | |
| 05/14 | Testing from state-based and rule-based models. | Extra time | |
| 05/21 | Automation in the small. Tools | Extra time | |
| 05/28 | Course review | Assignments Due | Assignments Due |
| 06/03 | Final Exam - TBA |
Individual assignments are given throughout the course. A list of available assignments to choose from is TBD (e.g. read a paper). See also Model-Driven Software Development Library (in Russian)
There is a final exam for the course. Exam schedule will be announced later.
Unless a “fast win” the final grade (FG) includes:
(sum is 125%)
In particular, the following formula is applied FG = 0,5 * (Lab1 + Lab2 + Lab3) / 3 + 0,25*(attendance) + 0,25*(exam) + 0,25*(assignments) when Lab1 >= 3 && Lab2 >= 3 && Lab3 >= 3 && assignments >= 5.
Students with FG > 7 before exam may skip the exam.
Fast win is an assignment, completion of which is equivalent to getting the final grade.
Code generator
Implement an MDA tool chain for UML 2 using XMI, XML and Groovy as target platform. Follow the ideas of Executable UML.
Note: A proof-of-concept implementation (PoC) is sufficient
DDD framework
Implement a DDD framework that generates Web pages and DB schema from ECore data model.
State-transition test generator
Develop a test generator tool from state machines that uses SCXML and support all-states coverage criteria. Assume that conditions and triggers are written in Java.
Functional test generator
Develop a DSL for specifying use-cases and develop a functional test generator from models in this DSL
Statechart code generator
Implement a UML-like statechart execution engine using Java, SCXML, xText and xTend2.
Configuration generator
Implement a Spring XML configuration code generator from UML structure diagrams (via XMI) using M2M transformation or XML toolkit
Model mutator
Implement model-level mutations for Lab3 (entities + gherkin) models using Ecore and QVT.
ERD model editor and generator
Implement an ERD model editor with GMF and a code generator to SQL DDL using xText and xTend2.
Main books:
Additional books: