CSG 110 Managing Software Development
Fall 2005

Covers software life cycle models (waterfall, spiral, etc.), domain engineering methods, requirements analysis methods (including formal specifications), software design principles and methods, verification and testing methods, resource and schedule estimation for individual software engineers, component-based software development methods and architecture. Includes a project where some of the software engineering methods (from requirement elicitation to implementation) are applied in an example.

The only prerequisite is a solid background in object-oriented programming.

Schedule

Assignments

General Information

University Policy


Grading

The Midterm Exam counts for 20%, the Final Exam counts for 20% and the the assignments and project count for 60% of the course grade. The exams are open books and notes.


Schedule

This schedule is subject to change depending on class input and complexity of the material on AOSD and Eclipse. We will use a spiral model of software development, meaning that early in the course we will implement simple requirements using Eclipse and AspectJ.

The schedule given below indicates the order in which topics will be covered along with suggested reading assignments.

1/6Introduction to SE and Multi-dimensional Separation of Concerns. Chapter 3
1/13 Introduction to Aspect-Oriented Software Development, Software Lifecycle. Chapters 1,2,5: aspectj.org, aosd.net.
1/20Aspect-Oriented Design/Programming, aspectj.org Chapters 6, 7, 9, 16
1/27Engineering Aspect-Oriented Systems Chapter 17, 18
2/3Visualizing Aspects and Concern Modelling Chapters 19, 20, 21, 22
2/10 Software Architecture and Aspects. Eclipse. Chapter 5, eclipse.org
2/17 Requirements Engineering Chapters 17, 18
2/24Midterm: Design, including Aspect-Oriented Design Chapter 19, 20
3/10Software Security and Aspects Chapter 27
3/17Dependency Management and the Design Structure Matrix Approach (AOSD Conf.) Chapters 24
3/24Checking the Law of Demeter using AspectJ Chapters 7
3/31 Software Reviews Chapter 24
4/7 Project Presentations
4/14 Project Presentations
4/21Final Exam

Assignments

The project is about developing a code refactoring tool for the Law of Demeter. The starting point is a program that is strongly coupled containing many violations of the Law of Demeter and the tool will help the programmer to refactor the program. The project has the external constraint that it must be written in AspectJ (which includes all of Java) and be a plug-in to Eclipse. See aspectj.org and eclipse.org. Other projects are possible either proposed by students or the instructor.

There will be an assignment every week in the first half of the course preparing you for the project.

General Information

My office number is 308A WVH and my telephone number is x2077. My home page is at http://www.ccs.neu.edu/home/lieber. My home page has my current office hours.


Karl Lieberherr
College of Computer and Information Science
Northeastern University
360 Huntington Avenue
Boston, MA 02115