CSE 496/896 Fall 2008
Software Design Methodologies


Home | Course Syllabus | Resources | News and Announcements

As software and hardware boundaries melt, the development of large very complex systems has moved away from an ad-hoc individual approach to that of an architecturally modeled family based approach. Many multi-billion dollar corporations such as Boeing, Raytheon, General Motors, Philips and Nokia are moving towards a software development paradigm called software product line engineering (SPLE). In SPLE software systems are modeled as families of software products, rather than individual programs through the use of a well-defined architectural models that define points of commonality and variability. SPLE provides a way to re-use development artifacts resulting in the reduction of both time to market and overall development costs.

In this course, students will learn about the field of software architecture. We will examine core architectural styles and learn an architectural description language to express these. We will focus on the state of the art in software product line development including software validation techniques that leverage the architectural model. Students will learn through several case studies and assignments. Additional topics on software modeling will be included as time permits.

The course will have a project component. Project choices will include a team development project as well as individual research projects.

Each student will complete a course project during the semester. The projects will be of two types, group based software development or research. Students will submit a written report, and give an oral presentation during the last week two weeks of classes. A list of suggested projects for this course will be available after the first 4 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/cse896_08/syllabus.html

Course Textbook: There is no official text for this course. I will provide handouts and will have the following book 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. Other readings will be posted on-line on our website or through e-reserves from our library.

Topics to be Covered: (Jump to Schedule)

(This syllabus will be updated and modified/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 can be found below. If time permits:

The grading for the class will be as follows:

 

Detailed Class Schedule

Class Day/Date Topic and Lecture Notes Reading/Handouts Assignments
1 Mon. 8/25 Introduction to the Course (Suzette Person)
lecture1.pdf
2 Wed. 8/27 No regular class mtg.   Start Reading "Introduction to Software Architecture" and start Assignment 1
3 Fri. 8/29 No regular class mtg.   Information Form Emailed to Instructor (5PM)
  Mon. 9/1 Labor Day  
4 Wed. 9/3 Overview of Software Architecture Lecture Notes Additional Reference on Celsius Tech
Handout on the SAE AADL standard
5 Fri. 9/5 Introduction to OSATE Lecture Notes   Assign 1 Due: 5PM (via webhandin)
6 Mon. 9/8 Software Architecture Slides from student presentation on architectural styles    
7 Wed. 9/10 AADL (see Friday's notes)    
8 Fri. 9/12 Modeling a System Lecture Notes
Other Resources:
Reading for Wed, Sept. 17th D. Garlan, R. Allen and J. Ockerbloom,
Architectural Mismatch: Why Reuse Is So Hard
IEEE Software, Nov. 1995
Due Wed 9/17 in class: Paper summary
9 Mon. 9/15 Modeling a Middleware System Lecture
References for today: Description of System
Example model
 
10 Wed. 9/17 Student Presentation on Security Checking and Arch. Mismatch
Lecture notes
Reading for Mon, Sept. 22nd Modeling Variability Paper summary due Monday in class
11 Fri. 9/19 Intro to Software Product Lines Lecture Notes References: Clements and Northrup (on reserve in library), Reading for Monday on OVM posted online Assign 2: Handout
Technical Report on Modeling Product Families in AADL
12 Mon. 9/22 SPLs cont. and Feature Modeling (OVM)    
13 Wed. 9/24 SPLs cont. and Feature Modeling (OVM) Lecture Notes Reading on Staged Configurations
Reading for Friday Testing SPLs
 
14 Fri. 9/26 Student Demo of VARMOD
Lecture on Testing SPLs Lecutre Notes
  Reading for Wednesday SPL testing
15 Mon. 9/28 Discussion and Presentation of Course Projects Project Formatting Information  
16 Wed. 10/01 Student Demo of FMP
Short Lecture Announcements and Reminders
  Paper to Review for next Friday
Paper for Wed 10/22
Paper for Fri 10/24
17 Fri. 10/03 SPL Testing Lecutre Notes    
18 Mon. 10/06 Continue SPL testing Paper for Wednesday (no review) Assign 2 due (via web handin)
19 Wed. 10/08 Testing and Inspecting Reusable Product Line Components Lecture Notes
Discussion of Upcoming Exam
   
20 Fri. 10/10 Soft. Architecture for Code Testing Lecture Notes   Paper Review due in Class
21 Mon. 10/13 SPL Modeling Through Change Sets Lecture Notes Paper on Change Sets  
22 Wed. 10/15 Midterm Exam    
23 Fri. 10/17 SPL Modeling Through Change Sets (cont.)   Course project proposal due: 5PM (web handin and hard copy)
  Mon. 10/20 Fall Break    
24 Wed. 10/22 Student Presentation of PLUTO Lecture Notes
Notes on TSL
   
25 Fri. 10/24 Student presentation of Evolving SPLs slides   Reading for Monday
26 Mon. 10/27 xADL Lecture notes    
27 Wed. 10/29 xADL cont. Reading for Monday pdf Hand in review on Monday 11/3 in class
28 Fri. 10/31 xADL cont.    
29 Mon. 11/03 Scaling Stepwise Refinement Lecture notes    
30 Wed. 11/05 Scaling Cont.   Reading for Friday Safe Comp
31 Fri. 11/07 Safe Composition slides    
32 Mon. 11/10 Student Presentation: Incremental Testing slides    
  Wed. 11/12 No Class    
33 Fri. 11/14 Student Presentation: AHEAD and Discussion of Final Reports/Presentations
AHEAD slides ,
Lecture Notes (re-posted on 11/18 with presentation schedule)
  Paper for Monday: Aspect Oriented Programming
Additional reading on AspectJ
34 Mon. 11/17 Aspect Oriented Programming Lecture Notes    
35 Wed. 11/19 AOP Cont. AspectJ   Paper for Friday Sample Spaces
36 Fri. 11/21 Sample Spaces Lecture Notes    
37 Mon. 11/24 Wrap-up and Discussion Lecture Notes    
  Wed. 11/26 Thanksgiving Break    
  Fri. 11/28 Thanksgiving Break    
38 Mon. 12/1 project presentations H.Z. and G.Y. - VARMOD Ext.
I.C. - SOA
Y.T. - CE
 
39 Wed. 12/3 project presentations K.S. SPL - Mac
Y.T. SPL - implementation Additional Notes on project/final
 
40 Fri. 12/5 project presentations B.G. - SPL Testing
I.C. and Z.X. - Regr. Testing
P.Z. - Design Assist
Final Project Due: 5PM Sunday (via webhandin)
41 Mon. 12/8 project presentations S.I. - AOP
C.T. - OVM const.
F.R. - SOA
 
42 Wed. 12/10 project presentations W.M. - Repository
X.C. and P.D. - OVM and AADL
R.V. and R.N. - Visual Studio
 
43 Fri. 12/12 project presentation and course wrapup D.L. - SPL testing Final Exam and lecture notes on specifications for handin etc.
         
Thur. 12/18 Final Exam: 10 AM

Grade Assignments are made based on the following as a guideline (graduate and undergraduate students will be evaluated separately):
A: 93-100 A-: 90-92  
B+: 87-89 B: 83-86 B-: 80-82
C+: 77-79 C: 73-76 C-: 70-72
D+: 67-69 D: 63-66 D-: 60-62 F: 0-59

**See UNL 15th week policies for more information