![]() |
Instructor | Prof. Don Batory | batory@cs.utexas.edu |
| Office Hours | Batory |
ACES 5.252 Tuesday 3:30-4:30pm |
|
| Room | GEA 114 | ||
| Time | Tuesday-Thursday 9:30-11am | ||
| Unique# | 53195 (ECE 16915) | ||
| Ground Rules | Rules of Conduct and Academic Honesty | ||
| Your Grades | UT Blackboard Grade Book | ||
| Final Exam | Thursday, May 10th, 2-5pm (location
TBA) | ||
| Day | Group (Leader) |
| Tuesday (in class) | Group 2 (Abraham) |
| Group 5 (Puffe) | |
|
Wednesday evening Painter 3.14 6-8pm |
Group 4 (Lin) |
| Thursday (in class) | Group 1 (Berg) |
| Group 3 (Flinchbaugh) |
Prerequisites, Overview, and Goals |
The integration of the above seems
daunting. Yet a spectacular example of their integration was realized thirty 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.
The
prerequisites of this course are:
Course Prerequisites
Lecture Notes, Texts, and Software |
Lecture notes will be presented online (after the lecture) as downloadable PPTX files. A special font is used in the titles of lecture slides -- you can download it here. Links to the lectures are given below in the Course Outline. There is an optional text for this course:
We will use prototype Java-based tools that may be updated periodically during the course. Some of the tools that we will use are posted below. Note that you'll need about 500MB+ for this software.
YUML -- this is a neat, free, web-based tool for drawing UML diagrams.
More may be added.
Class Grades, Projects, and Homework |
Each student (or 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.
This year, group projects will be assigned at the beginning of the semester, where the first few lectures (past the introductory lecture) will be on various projects that could be worked on in groups. I will entertain singleton projects (meaning specific projects that an individual student will propose) that are outside the group projects I present in class.
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.
| Topic (# of lectures + days of discussion) | Assignments |
|
Complete pre-course Survey |
|
Semester Projects (3) |
Homework 1 Due Fri Jan 27 12noon Program 1 Due Fri, Feb 3 12noon Project Readings |
| Basic Concepts of Software Product Lines and Feature Modularity (3) |
Collect into Project Groups Homework 2 Due Tuesday, Feb 7th 6pm Program 2 (FeatureIDE) Due Tuesday, Feburary 14th, 8pm |
| Feature Models (2) |
Program 3 Due Monday, Feburary 20th, 8pm Begin Working on Group Projects |
|
Category Theory, Product Lines, and Model Driven Engineering (4) |
1st Project Report Due Monday 27th, 12noon Homework 3 Due Wednesday, February 29th, 8pm Solution |
|
Separation of Concerns (2) |
Program P4 Due Wednesday, March 21, 8pm 2nd Project Report Due Saturday, March 24th, 8pm |
| Spring Break | |
|
Feature Interactions (4)
|
Program P5 Due Monday, April 2, 8pm |
| Program Kubes (2) | |
|
Design By Transformation (3)
|
|
|
Optional Lectures (3) time permitting
|
|
|
Student Project Presentations (3) |