Computer Science

ECS 260 Software Engineering


Lecture: 3 hours

Project: 1 hour

Prerequisite: Course 142; course 160 recommended

Grading: Letter; homework (50%), project (50%)

Catalog Description:
Advanced techniques for domain-specific software reuse.


  1. To learn about domain-specific techniques in software reuse.
  2. Apply some these techniques to implement a domain-specific platform to facilitate the development of applications in a particular domain

Expanded Course Description:

This course will address the issues involved in software development for reuse. The course will expose students to technical topics relating to software reuse: design patterns, component-based development, domain-specific languages, and code generation techniques such as: syntactic and scoping hygene, partial evaluation, de-forestation. Concepts will be re-enforced via the case-study of specific languages and systems.

Students will undertake 2 assignments and a project. The project, which will carry the bulk of the credit, will involve implementing a domain-specific platform which enable the rapid development of a class of applications for a specific domain.

A collection of papers and notes that will be distributed by the instructor.

Design Statement:
ECS 260 students will undertake a significant project, counting for 50% of the credit of the course, where they will design a domain-specific language (or extensions thereof) and an implementation of the language by writing a compiler. This project will require the students to exercise design judgement, balancing such goals as ease-of-use, evolvability, and performance. Examples from the past include: a policy language for security policies, and compiler that generates wrappers to enforce such policies; a language to specify curriculum requirements and a compiler that generates a checker to validate an individual student’s academic plans.

Instructor: P. Devanbu

Prepared by: P. Devanbu (April 2000)