||Instructor||Prof. Don Batoryfirstname.lastname@example.org|
|Office Hours||GDC 5.826 Thursday 3:30-5:00pm|
|TA Office Hours||TBA|
|Unique#||CS 54123 (ECE 17294)|
|Ground Rules||Rules of Conduct and Academic Honesty|
|Your Grades||UT Blackboard Grade Book|
|Final Exam||No exam -- class Project presentations
Friday, Dec 13, 7-11pm, GDC 1.304
|Presentation Schedule for Friday, Dec 13, 7-11pm, GDC 1.304|
|Constraint Propagation in Next Generation Feature Models|
A spectacular example of the integration of these areas was realized thirty-five years ago: relational query optimization (RQO). A relational query is specified in SQL, a parser maps it to an inefficient relational algebra expression, a query optimizer optimizes the expression automatically, and an efficient query evaluation program is generated from the optimized expression. SQL is a prototypical declarative DSL. Query evaluation programs are specified as compositions of relational algebra operations; relational algebra is a prototype for compositional programming. Query optimizers achieve automatic programming by rewriting an inefficient expression/program to a semantically equivalent but more efficient expression/program. The cost models that drive expression optimization are examples of program analysis. Mapping a relational algebra expression to an efficient program is generative programming and is an elementary example of model driven engineering.
A "holy grail" of Software Engineering is to replicate the success of RQO in other domains. Feature Oriented Software Development is a generalization, and its ideas are at the confluence next-generation research topics in software modularity, program design and program synthesis: OO design, product-lines, program refactoring, model driven engineering, program evolution, and program transformations.
Prior offerings of this course lead to student publications and research degrees (M.Sc. and Ph.D). Some publications -- not all -- are listed below, the most recent listed last.
S. Trujillo, D. Batory, and O. Diaz. Feature Oriented Model Driven Development: A Case Study for Portlets. International Conference on Software Engineering (ICSE), 2007.
S. Apel. How AspectJ is Used: An Analysis of Eleven AspectJ Programs. Journal of Object Technology, 2008.
G. Freeman, D. Batory, G. Lavender, and J.N. Sarvela. Lifting Transformational Models of Product Lines: A Case Study. Software and Systems Modeling. October 2009. Best papers in ICMT'08.
B. Delaware, W. Cook, and D. Batory. Fitting the Pieces Together: A Machine-Checked Model of Safe Composition. ACM SIGSOFT FSE, August 2009.
B. Delaware, W. Cook, and D. Batory. Product Lines of Theorems. SPLASH/OOPSLA Conference, October 2011
B. Marker, D. Batory, R. van de Geijn. Code Generation and Optimization of Distributed-Memory Dense Linear Algebra Kernels . International Workshop on Automatic Performance Tuning (IWAPT), June 2013.
All programming assignments will use Java or Prolog. You can pick up what you need in Prolog, if you are unfamiliar with Prolog. We will use the following software, all of which is free to UTCS students, and all of which has been installed in the UTCS public labs. The following is for Windows Platforms. If you use Apple machines, well, I will try to help as much as I can, but no promises!
IDE 7+ -- I prefer NetBeans to Eclipse for program
development as it is a simpler environment.
Microsoft Visio 2010/2013 -- for drawing UML diagrams. If you are a CS student, you can gain access to Visio via Software Downloads, read the MSDN/AA agreement, click the secure download site link, and follow the instructions. For ECE students, do the same at the ECE-MSDN/AA web page.
VLC Media Player -- to view .MOV videos shown in class. (You can use Windows Media Player, but its video resolution is awful). No need for this software if you are a Mac user.
SWI Prolog --
for writing metamodel constraints and model-to-model transformations.
Basic familiarity with the following topics are assumed -- all that is needed will be covered, but some prior experience will help greatly:
As mentioned above, Prolog
will be used in assignments. I expect that you'll pick up what you need.
Lecture notes will be presented online (after the lecture) as downloadable PPTX files. Links to the lectures are given below in the Course Outline. There is an optional text for this course:
Each group of students will complete an approved project by the end of the class. A classroom presentation on every project is expected. Details on the projects will be announced later.
Numbers in [brackets] indicates the estimated number of lectures on a topic. The number indicated is a lower-bound, as there will be class room discussions to work on problems and review of homework assignments. Papers that are listed below are required readings and are accessible via a web link. The order in which topics are presented might be changed as the class progresses. (#) indicates approximate number of class dates per subject. indicates code examples can be downloaded.
I am refreshing the course with exciting new material. There is a
lot to tell you. Most of the new material is in the 2nd half of
the course, and will come on line later. The topics from which I
will choose are posted below, although the exact length of each topic
has yet to be determined. This is where the "Under Construction"
[# of lectures + days of discussion]
|Pre-course survey||Complete Course Survey|
Introduction to Model Driven Engineering 
| H1: Mapping to Tables
Due Saturday, Sept 7, 3pm
H2: Meta Model Constraints
Due Thurs, Sept 12th, 10pm
Due: Wed, Sept 18th, 10pm
| P1: Model-2-Text
Due Saturday, Sept 7th,10pm
P2: Writing Model Constraints and Transformations in Prolog
Due Monday, Sept 16th, 12noon
Product Lines and Feature Modularity (3)
| H4: Model Evolution
Due: Monday, Sept 30th, 12noon
| P3: Feature Refactoring
Due: Tuesday, Sept 24th, 12noon
P4: AHEAD and Feature Modeling
Due Wednesday, October 2th, 12noon
Feature Models (3)
Due: Friday, Oct 18th, 12noon
| P5: Violet to Prolog and
the FSM Tool
Due: Wednesday,Oct 16th, 12noon
Category Theory, Product Lines, and Model Driven Engineering (4)
|H6: Examples of Categorical Constructions
Due Monday, Nov 4th, 12noon
H8: An Interesting Discussion
Due Monday Nov 4th, 12noon
|P6: Preparation for Bootstrapping
Due Wednesday, Oct 23th, 12noon
P7: Bootstrapping the FSMLite Tool
Due Monday Nov 4, 12noon
|Midterm Monday Nov 4th||H9: Class Projects|
Due Monday Nov 4th, 12noon
Feature Interactions (2)
|Class Project Web Page
|Program Kubes (1)||H10: Review of Letter
Due Sunday Nov 17, 12noon
Due Friday, Nov 11, 12noon
Design By Transformation (3)
Due Wed, Dec 4th, 12noon
|Guest lecture: Ben Delaware|
Group Project Presentations (4)