| Course Description: |
This course is one of three courses (COMP2100, COMP2110, COMP3110) which address constructive aspects of the software development process. It has a primary focus on modeling and its central role in eliciting, analysing, understanding and communicating software requirements and design. In the first part of the course, students will learn to use several different modeling approaches to describe complex subject matters. While most of the approaches will seem straight forward and even conceptually simple, students will discover that a good deal of effort and diligence is required to produce useful, accurate, meaningful, understandable and easily maintainable models. Through a series of practical workshops, students will develop an appreciation for the characteristics and capabilities of each approach, and will learn to make decisions as to the best approach to use in a given situation. Students will then learn how to integrate several modeling approaches to form software requirements specifications that are unambiguous, consistent and understandable.
During the second part of the course, students will be introduced to various approaches for translating specifications (models) into operational software systems. This will include consideration of architectural and design issues, model translation, code generation, and an overview of active research in the area of model-driven engineering. |
| Prescribed Texts: |
There are no prescribed textbooks for COMP3110, but the following book covers many of the concepts addressed in the course. Mellor, Stephen J. & Balcer, Marc J. Executable UML - A foundation for Model-Driven Architecture, (2002). Additional references will posted as appropriate on the course web page. |