CSG 110 Managing Software Development
Fall 2002

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

Project

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. This means that we will do analysis and design much earlier than indicated by the schedule.

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

9/26Introduction Software Engineering, Requirement Elicitation, Law of Demeter (LoD). Chapter 7: Before the project + 5.26 (LoD)
10/3 Aspect-Oriented Software Development, Software Lifecycle. Chapter 8: Pragmatic Projects, aspectj.org, aosd.net.
10/10Communication, aspectj.org Chapter 2: A Pragmatic Approach
10/17Project Management Chapter 1, A Pragmatic Philosophy.
10/24Software Lifecycle continued. Chapter 8
10/31Mid-Term Exam. Software Architecture, ArchJava. Chapter 5, eclipse.org
11/7Analysis, including Aspect-Oriented Analysis
11/14Design, including Aspect-Oriented Design Chapter 4: Pragmatic Paranoia.
11/21Objects and Aspects Chapter 6: While You Are Coding. Chapter 3: Basic Tools.
12/5 Tool Demonstrations using Eclipse
12/12Final Exam

Assignments

There will be several assignments, each corresponding to a phase of a project. 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.

There will be an assignment every week related to the project.

There is no provision for late submissions. If you haven't completed the documents, then turn in what you have on the due date. If nothing is turned in by the due date, then your score for the assignment is 0. The grader will acknowledge receipt of all assignments.

General Information

My office number is 237 CN and telephone number is x2077. My email address is lieber@ccs.neu.edu. My home page is at http://www.ccs.neu.edu/home/lieber. My home page has my current office hours. The course home page is http://www.ccs.neu.edu/home/lieber/com3205/f02/f02.html.

If you have questions about the course material, please send me email. I will usually post my response to the course home page. If you request it in your question ("hide my identity please"), no trace of your identity will appear in the posting.


Karl Lieberherr
237 Cullinane Hall
College of Computer Science
Northeastern University
360 Huntington Avenue
Boston, MA 02115