Model-Driven Development

In this course, the significant role of modeling in software development is emphasized. It explains how models assist software engineers in comprehending, specifying, and analyzing software requirements, as well as documenting and understanding software design across different abstraction levels, from high-level architectures to detailed subsystems and functional components. Model-driven development, a crucial software engineering approach, is introduced. This method utilizes tool-supported transformations of requirements models into design models and subsequently into code and related artifacts like databases and configuration files. Throughout the course, we learn to utilize the Unified Modeling Language (UML) and other modeling techniques to capture software requirements, designs, and implementations effectively. They are also instructed in formal modeling methods, which enable them to semi-automatically transform between various models and explore the quality attributes of the software being modeled, including performance, reliability, security, and other important aspects.

As part of the course, we completed a term project focused on developing a paper submission and review system for a conference. This project applied the principles of model-driven development, allowing us to gain practical experience in using models to guide the software development process. Through this hands-on project, we learned to apply theoretical knowledge to real-world scenarios, enhancing our skills in software development.

Topics Covered

Introduction to Software Modeling

Unified Modeling Language

Requirements Modeling

System Behaviour Modeling

Robustness Analysis

Software Architecture Models & Views

ER Modeling & ORM


Copyright © Jheel Patel.