The course presents the fundamental principles and practices for designing and implementing software applications following the model-driven design methodology. This course introduces model-based engineering techniques, the use of model transformations, and the design patterns for component -based system development.
Expected learning outcomes
At the end of the course students are able to address the design and documentation of medium-size software projects. They have skills on developing complete requirement models and developing object oriented code from models. They have also skills on design and architectural patterns
1. MODEL-DRIVEN ENGINEERING. Principles of the MDE. Models and meta-models. Application contexts of the MDE: MDA (model-driven architecture), UML profiles for Domain-Specific Languages specification. 2. UML MODELLING: STRUCTURAL SPECIFICATION. Class diagrams and object diagrams. Constraint specification in OCL. Design patterns. 3. MODELLAZIONE UML: SPECIFICA COMPORTAMENTALE. Interaction diagrams, state machines, activity diagrams. 4. UNIFIED PROCESS AND ARCHITECTURE DESIGN. Process UP. SW architecture design. UML architecture: component diagram and deployment diagram. Architectural Patterns.
Program of the lab actities: - Use of the MODELIO framework - UML diagrams development in MODELIO - Specifcaition and design of a software system starting from informal requirements - Java code from UML models
Prerequisites for admission
Knowledge and concepts learned in the courses of Programming and Secure Software Design are foundamental for this course. Passing these exams is therefore strongly recommended.
Lessons and lab activities
· Martin Fowler. UML distilled. Guida rapida al linguaggio di modellazione standard, Pearson Education Italia, 2010, 4ª ed. · Luciano Baresi, Luigi Lavazza, Massimiliano Pianciamore. Dall'idea al codice con UML 2. Guida all'utilizzo di UML attraverso esempi. Con CD-ROM., Pearson Education Italia, 2006. · Craig Larman. Applying UML and Patterns. An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) - Prentice Hall (2004).
The exam consists of a written test and a project, both mandatory. The written test, lasting two hours, aims to verify the student's knowledge on the theoretical aspects of the subject (through open-ended questions and / or exercises). The project consists in the development of a UML model and subsequent implementation in Java, of informal requirements provided by the teacher. This test aims to assess the student's skills on software modeling using UML and its implementation in Java. The written test and the UML/Java project are evaluated in thirties and the final mark is the average of the two evaluations.