Model Driven Development (MDD) is an emerging but controversial topic both in academic software engineering research and in industrial practice. It shifts the focus of software development from writing code to building models, for example, by automatically generating code from models. The key assumption of MDD is the existence of an appropriate model¾a representation that is sufficiently general to capture the semantics of many different domains, yet precise enough to support eventual transformation into code. This course will provide an overview of MDD. The students are expected to gain a hands-on experience on building precise models that can be used as a basis of MDD, validating them, and transforming them to implementations by exploring recent advances in MDD and related areas, including
• Model-Driven Architecture (MDA)
• Unified Modeling Language (UML)
• Object Constraint Language (OCL)
• Model specification, validation and transformation
• Design techniques for MDD (e.g., design patterns)
• Application development using MDD
Prerequisite(s)
-
Corequisite(s)
-
Special Requisite(s)
-
Instructor(s)
Instructor Mehmet Demir
Course Assistant(s)
- UML Diagram, Object Oriented Modelling
Schedule
Theory Friday 9:00-10:45, Lab(A) Friday 11:00-12:45, Lab(B) Friday 13:00-14:45.
Office Hour(s)
-
Teaching Methods and Techniques
Dersle ilgili teorik bilgiler, sunumlar, bilgisayar başında yapılacak uygulamalar ve dersin ana unsurlarının yer aldığı metinlerle kapsanacaktır. Uygulamalı çalışmalar ise laboratuvarda yapılacak ve Model Güdümlü Geliştirme ile ilgili uygulamalar şeklinde düzenlenecektir.
Principle Sources
"Model-Driven Software Engineering in Practice" Marco Brambilla, Jordi Cabot, Manuel Wimmer; Morgan & Claypool Publishers 2012
Other Sources
Jos Warmer and Anneke Kleppe. "The Object Constraint Language", second edition, Addison-Wesley, 2003.
Grady Booch, James Rumbaugh, and Ivar Jacobson. "The Unified Modeling Language User Guide", second edition, Addison-Wesley, 2005
Course Schedules
Week
Contents
Learning Methods
1. Week
Introduction
Theory
2. Week
MDSE Principles
Theory and laboratory applications
3. Week
MDSE Use Cases
Theory and laboratory applications
4. Week
Model-Driven Architecture (MDA)
Theory and laboratory applications
5. Week
Integration of MDSE in your Development Process
Theory and laboratory applications
6. Week
Modeling Languages at a Glance
Theory and laboratory applications
7. Week
Developing your Own Modeling Language
Theory and laboratory applications
8. Week
Developing your Own Modeling Language
Theory and laboratory applications
9. Week
Model-to-Model Transformations
Theory and laboratory applications
10. Week
Model-to-Text Transformations
Theory and laboratory applications
11. Week
Managing Models
Theory and laboratory applications
12. Week
Term Project Presentations
Theory and laboratory applications
13. Week
14. Week
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
30
Homework / Term Projects / Presentations
1
30
Final Exam
1
40
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
Understanding the concepts, principles, and theories of MDD and MDA
LO-2
Detailed knowledge of UML and OCL, and ability to apply them to precisely model and specify systems of moderate size
LO-3
Being able to use various UML models and other design techniques to define designs of moderate-sized systems
LO-4
Understanding different kinds of model transformations and being able to apply them to systems of moderate size
LO-5
Being able to specify, design and implement medium-sized web applications using MDD