CSE 990
Advanced Software Architecture
Fall 2011

Home | Course Syllabus

Software Architecture is the discipline of designing and specifying software systems. As we move towards larger and larger (or ultra large scale) systems, having well-designed architecture and system models will be an essential element for producing software that is of high quality and feasible to maintain. Several recent trends such as the adoption of software product line engineering (SPLE) by many sectors of industry, and a move towards designing self-adaptive software that can respond to environmental changes, indicate that software architecture is becoming a more and more important part of the software process.
In this course, students will study software architecture with a focus on software validation techniques that leverage architectural models. Students will learn an architectural description language, will be exposed to feature modeling for SPLE, and learn about self-adaptive software. The course will consist of some individual homework assignments, paper reviews and presentations and as well as a term project. Some additional course slots may be used to accommodate for travel. This will be discussed on day-one.

The course will have a substantial independent project and will require strong class participation. Many of the lectures will not be structured. You are expected to read the material assigned and participate in discussions.


This course is a project based course. The first part of the course will consist of structured lectures. The second part of the course will involve reading current literature on related topics. Students will be responsible for leading presentations. This includes creating supplementary overheads to lead the discussion.

Each student will participate in a group project during the course of the semester. They will be expected to become familiar with a particular body of research beyond the classroom lectures. Students will submit a written report, and give an oral presentation of their findings. A list of suggested projects for this course will be available after the first 6 weeks of classes.

To succeed in this course you should have some prior course work in software engineering, CSE 310 and CSE 235 or equivalent.

This document is available at http://www.cse.unl.edu/~myra/classes/cse990_11/syllabus.html

Course Textbook: There is no official text for this course. I will provide handouts and will have the following books available on short term loan in the library. You may keep the book for a loan period of one day from the short term loan desk in the Math the library. Links to research papers from conferences and journals will be posted on line for you to read. We will be making use of Blackboard for providing some material.

Topics to be Covered:

(This syllabus will be updated and expanded as the semester progresses. You should use your browser reload button each time to make sure you have the most current version). A detailed schedule of lectures and handouts will be provided.

The grading for the class will be as follows:

 

Detailed Class Schedule: (updated as semester progresses)

Class Day/Date Topic
1 Tues. 8/23 Introduction to Course
2 Thurs. 8/25 Future of Software Design/Architecture
3 Fri. 8/26 (Avery 347 11:30-12:45) Introduction to Software Architecture
4 Tues. 8/30 Introduction to Architecture Description Languages
5 Thurs. 9/1 Architecture Description Languages cont.
6 Thurs. 9/15 ADL Framework paper discussion
7 Fri. 9/16 SPLs and Feature Modeling