|
Instructor | Prof. Don Batory | batory@cs.utexas.edu |
| Office Hours | GDC 5.826 Tuesday 3:30-4:30pm | ||
| Room |
GDC 2.210 | ||
| Time | MW 3:30-5:00pm | ||
| Unique# | CS 54123 (ECE 17294) | ||
| Ground Rules | Rules of Conduct and Academic Honesty | ||
| Your Grades | UT Blackboard Grade Book | ||
| Final Exam | TBA. | ||
Prerequisites, Overview, and Goals |
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 -- not all -- are listed below:
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, A. Terrel, J. Poulson, R. van de Geijn, and D. Batory. Mechanizing the Expert Dense Linear Algebra Developer (Poster Paper), PPoPP, February 2012
All programming assignments will use Java or Prolog. I expect
proficiency in Java; you can pick up what you need in 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
Microlab, which is in ENS 1 & 2, and
PAI 5.38. 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!
Prerequisites,
Overview,
and Goals
NetBeans 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
Course Prerequisites |
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, we will use Prolog in assignments. I expect that you'll pick up what you need.
Lecture Notes and Texts |
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:
Class Grades, Projects, and Homework |
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.
Extenuating Circumstances |
If you have difficulty meeting the requirements of this course, fail to hand in an assignment, or miss an exam because of extenuating circumstances, please advise the instructor in writing at the earliest possible date so that your situation can be discussed. If you encounter an unexpected medical or family emergency or a random act of Nature that causes you to miss the due date for homework or miss a quiz or exam, you must present suitable documentation in writing to the instructor before special consideration will be given. A file of all written correspondence will be kept by the instructor and decisions regarding them will be made at the end of the semester.
Schedule
|
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 in yellow are required readings and are
accessible via a web link. Required
papers are to be read prior to each class.
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.
Be aware: I reserve the option to replace a series of lectures below with another that I feel may be better and will improve the course further.
| Topic (# of lectures + days of discussion) | Assignments |
|
Introduction to Model Driven Engineering (and material you should know for this course) (4)
|
Course Survey H1: Mapping to Tables Due Friday, January 18, 10pm P1: Model-2-Text Transformations Due Monday, January 21, 10pm H2: Meta Model Constraints Due Friday, January 25th, 10pm P2: Writing Model Constraints and Transformations in Prolog Due Monday, January 28, 10pm H3: Meta-Meta-Model Constraints Due:TBD P3: Violet to Prolog and the FSM Tool Due: TBD |
Software Product Lines and Feature
Modularity (3)
|
P4: Feature Refactoring Due: TBD P5: Use of FeatureIDE Due TBD |
| Feature Models (2) | |
|
Category Theory, Product Lines, and Model Driven Engineering (4) |
|
|
Separation of Concerns (2) |
|
| Midterm | |
| Spring Break | |
|
Feature Interactions (4)
|
|
| Program Kubes (2) | |
|
Design By Transformation (4)
|
|
|
Student Project Presentations (4) |