.: SWE699/IT821 Model Driven Software Development
Thurs 7.20-10pm, Innovation Hall, 134
Instructor: Dr. Jon Whittle
Prerequisite: swe621 (or permission of instructor)
Note to PhD Students: this is SWE699 but is cross-listed as IT821
Dr. Jon Whittle
email: jwhittle(at)ise.gmu.edu
www: http://ise.gmu.edu/~jwhittle
Dr Whittle's Office Hours: Wed 2:30-4:30, 357 S&T II
(No office hours on Oct 4)
TA: Aynur Abdurazik, swe699ta(at)gmail.com
Course Description:
Software modeling languages such as UML are now ubiquitous across software development industries. Software models raise the level of abstraction at which software architects and designers express themselves, communicate with others and implement their designs. The next phase in software development will be model-driven software development wherein the models themselves become precise artifacts from which complete or semi-complete applications can be automatically generated. Many existing programming tasks will become obsolete as tools automate developers' rote tasks. This vision of model-driven development is shared both by the Object Management Group in its Model Driven Architecture, and by Microsoft in its Software Factories. This course will examine state-of-the-art and state-of-practice approaches to model-driven development. Some of these approaches are already being used in industry; others are at the research stage.
Topics Covered:
Topics will include the following. (See the schedule for exact details.)
- Model Driven Architecture (MDA):
- Advanced UML
- UML Profiles
- UML's Constraint Language OCL
- MDA Transformations
- Executable Software Modeling Languages
- Microsoft's Software Factories and Domain-Specific Modeling
- Domain-Specific Modeling
- How to Define a Modeling Language
- Semantics of Modeling Languages
- Code Generation from Domain-specific models
- Generative Programming
- Aspect-Oriented Modeling
- The Future of Software Modeling
Required Course Text:
"MDA Explained. The Model Driven Architecture: Practice and Promise," Anneke Kleppe, Jos Warmer, Wim Bast
Additional papers will be assigned each week. See the schedule for details.
Optional Course Texts:
The following optional course texts deal with issues presented in the lectures. It is not necessary to read all of these for this class but the serious student will obtain copies of all of them and use them as supplementary material as necessary.
"Model Driven Architecture: Applying MDA to Enterprise Computing," David Frankel
"Executable UML: A Foundation for Model Driven Architecture," Stephen Mellor and Marc Balcer
("Aspect Oriented Analysis and Design: the Theme Approach," Siobhan Clarke and Elissa Banissiad OR
"Aspect Oriented Software Development with Use Cases," Ivar Jacobson and Pan-Wei Ng)
"The Object Constraint Language: Getting your Models Ready for MDA," Jos Warmer and Anneke Kleppe
"Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools," Jack Greenfield, Keith Short, Steve Cook and Stuart Kent
"The MDA Journal: Straight from the Masters," David Frankel and John Parodi (eds)
(Of these books, I recommend all of them but do have some reservations about "Software Factories." It is the original text on software factories but is rather high-level and vague except for an excellent chapter by Stuart Kent.)
("The MDA Journal" is good bedtime reading - it is almost completely non-technical but summarizes many of the arguments over the future of MDA that rage through the community today.)
Grading:
There will be no exams in this course! Grading will instead be based on a number of assignments:
- Assignment 1 (20%): Evaluation of a Model-Driven Development Tool (Rose Realtime)
- Assignment 2 (30%): Presentation of a Model-Driven Development Tool. Students will work in pairs and will each evaluate and present a tool from a list provided by the instructor. Choice of tool for each group will be made in discussion with the instructor.
- Assignment 3 (50%): Identification and Solution of a small research problem in model-driven software development. In collaboration with the instructor, students will work in pairs to identify a small research problem, produce a sh0rt literature survey related to the problem, write a research report documenting a proposed solution to the problem, and present the problem and its solution to the class.
Who Should Take This Course :
This course is primarily intended for students interested in pursuing research in model-driven software development either at the PhD or Masters level. Students interested in or carrying out jobs related to software modeling/software architecture/software design are also encouraged.
GMU Honor Code Please be fully aware of the GMU Honor Code. Any violations will be dealt with strictly in accordance with school policy. |