apmdd:spring2014

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
apmdd:spring2014 [2014/05/17 13:09] – [Fast wins] userapmdd:spring2014 [2026/08/29 07:59] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Course "Automation of Programming" ======
 +
 +The course is delivered to MIPT DIHT first year graduate students in Spring 2014 groups 993, 994.
 +
 +Professor: Anton Khritankov (contact: prog.autom (at) gmail.com)
 +
 +TAs: Sergey Tsarkov
 +
 +===== Course Syllabus =====
 +
 +Course includes three major topics that automate software development: 
 +  * model driven software development (MDSD) via generic modeling techniques (e.g. Executable UML, xtUML etc.)
 +  * MDSD via domain-specific models (DSM)
 +  * model-based testing (MBT) 
 +
 +Lectures are complemented with three labs:
 +  * UML Basics lab introduces students to UML modeling
 +  * in xUML Lab students develop a sample application using model-driven technology with UML
 +  * in DSL Lab students build a metamodel and implement a custom domain-specific language
 +
 +There are 30 lecture hours and 16 lab hours in the course (a 2-hour lab each two weeks).
 +
 +Course starts **February 27th, 2014**.
 +
 +Extended course syllabus can be downloaded {{:apmdd:apmdd-spring2014.doc|here}} (in Russian).
 +
 +Exam questions can be found {{:apmdd:билеты.doc|here}} (in Russian)
 +
 +===== Schedule =====
 +
 +^Date^Topic^Lab (odd)^Lab (even)^
 +|02/27|Introduction to Model-Driven Software Development|UML Basics| |
 +|03/06|Executable UML.|  |UML Basics|
 +|03/13|Foundational UML (fUML). Action Language for fUML (ALF)|UML Basics Due|  |
 +|03/20|Meta-modeling. Model-to-Model Transformation. Query-View-Transformation| | UML Basics Due|
 +|03/27|Developing Model-to-Text transformations |xUML Lab| |
 +|04/03|Invited lecture - Implementing business strategy in architecture | |xUML Lab|
 +|04/10|Introduction to DSM and Domain-Driven Design|xUML Lab Due| |
 +|04/17|Applications of MDD. Software Factories. Embedded software. Case studies| |xUML Lab Due|
 +|04/24|Software testing. Model-based Testing overview. Test generation| |DSL Lab|
 +|05/01|No class| No class |No class|
 +|05/08|Testing from state-based and rule-based models. | |DSL Lab|
 +|05/15|Course review |DSL Lab Due | |
 +|05/22|Additional class - Labs| |DSL Lab Due|
 +|05/29|Preparation for exam| Assignments due | Assignments due |
 +|06/03|Final Exam| | |
 +
 +===== Individual assignments =====
 +
 +Individual assignments are given throughout the course. A list of available assignments to choose from is TBD (e.g. read a paper).
 +
 +===== Grading =====
 +
 +There is a final exam for the course. Exam schedule will be specified later.
 +
 +Unless a "fast win" the final grade CG includes:
 +  * labs - 50%
 +  * attendance - 25%
 +  * exam - 25%
 +  * individual assignments - 25%
 +(sum is 125%)
 +
 +===== Fast wins =====
 +
 +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.
 +
 +===== Course books =====
 +
 +Main books:
 +  - Mellor S.J., Balcer M.J. Executable UML. A Foundation for Model-Driven Architecture
 +  - M. Fowler. Domain-Specific Languages
 +  - M. Utting, B. Legeard. Practical Model-Based Testing. A Tools Approach
 +
 +Additional books:
 +  - Greenfield J., Kent S. Software Factories Assembling Applications with Patterns, Models, Frameworks, and Tools.
 +  - Evans E. Domain-Driven Design Tackling Complexity In The Heart Of Software
 +  - L. Bettini. Implementing Domain Specific Languages with Xtext and Xtend
 +