CS446 - Tools and Processes for Software
Fall 1999 Monday, Wednesday: 3:15 - 4:30,
Building 260, Room 113
slides for some of the talks)
If you want to participate in this class, please send an email to email@example.com
with your name as subject and with the body containing your email
address, your department, degree pursuing, if you take the class for credits
and for how many credits. If you have prior knowledge or experience with
UML, other modeling techniques or design patterns, or have taken other
classes about software engineering, please note that down as well.
News about CS446
Handouts for assignment 5a and 5b are in the box outside the office of
You can substitute assignment 4c by either 5a and 5b, details see email
I sent you.
Assignment 5 is posted (you can choose between 5a and 5b).
Additional office hour on Monday, Oct 25, from 1 to 2:30pm. No office
hours on Wednesday, Oct 27 and Friday, Oct 29.
Assignment 3 is up on the web, its new due date is Oct 27.
Whoever does not receive emails about cs446 should send an email to
Assignment 2 is due Oct 20 instead of Oct 18. Additional office hours from
1 to 3 pm on Oct 18.
As an exception the lecture on Oct 13 is in Gates 104 and
not in 260-113.
Office hour on Wednesday, Oct 13, is from 2 to 3 instead of 1 to 2 pm.
Additional reading assignment for Monday, Oct 11. If you have signed up,
you should have gotten an email about it.
You can get handouts that cannot be printed out from the schedule web page
from the box in front of the office Gates 418.
By appointment through
Marianne Siroker (siroker@cs).
Wednesday 1:00 to 2:00
Friday 2:00 to 3:00 (most Fridays)
Monday, Wednesday: 4:45 to 6 pm, or by appointment
CS446 course has the goal to give you an overview of the most important
elements of software engineering. We will not be able to expand on all
the various topics in depth, but we will give you the necessary foundation
for further studies in specific topics of software engineering during your
career as software engineers. Topics that we will cover more in depth are
modeling software systems with UML, software development processes, software
cost estimation, component oriented software development, and software
reuse. To some of the topics there will be additional reading and assignments.
This course is primarily for graduate students and it requires some prior
experience in developing software in order to facilitate the understanding
why processes and tools are needed in larger software projects. Knowing
object-oriented programming and either Java or C++ is strongly encouraged,
some assignments require the knowledge of the basic object-oriented concepts
(classes, objects, inheritance, polymorphism, encapsulation, composition).
Three units for the whole course.
One unit for the classes about UML and software development methodologies,
reading about UML, and the assignments about UML and Reverse Engineering,
and the first 4 weeks of lectures.
There will be no final. The grades will be based on the assignments and
The following two books are mandatory for taking this class:
The following papers have to be read as preparation for certain lectures
(they will be distributed in the class):
"UML distilled", by Martin Fowler, second edition 1999 (ISBN: 020165783X)or
first edition 1997 (ISBN: 0201325632) (contains just the essentials, good
introduction). Alternatives to "UML distilled" are: "UML Toolkit",
by Eriksson and Penker, 1998 (more in depth), "Using UML", by R. Pooley
and P.Stevens, 1999, or another UML book covering the basic UML notations
and preferably also the Unified Process
"Design Patterns, Elements of Reusable Object-Oriented Software",
(ISBN: 0201633612) by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,
1994/95 (this is a high quality and the classic book about design
patterns, also called the GoF book). Alternatives to the Design Pattern
book of the GoF are: "Patterns in Java, Volume 1" by Mark Grand, 1998 (contains
all of the GoF design patterns and applies them to Java, not as good as
the other book)
"No Silver Bullet: Essence and Accidents of Software Engineering", for
"A Spiral Model of Software Development and Enhancement", for Oct.
A case study for the lecture on software reuse organizations, for Oct.
"Risk Management for Software Development", for Oct. 16
"Software Cost Estimation", "Estimating work with use cases", for Nov.
"Reviews and Audits"
The assignments differ heavily in the amount of time required. It is up
to you to plan your assignment work so you can finish them in time.
Put your assignments either into the box in front of the office Gates
418 before 3pm, or bring them to the class.
see Mandatory Reading, you need the reading for
the other assignments, so I recommend you to read the UML book in week
2 and 3, and to read the Design Pattern book in week 5 and 6.
Modeling with UML
Assignment 1: Actors and Use
Cases, Domain Model, to work on in week 2 and 3 (due Oct. 11, 3:15pm)
Assignment 2: Design Model and
Interaction diagrams, to work on in week 4 (due Oct. 20, 3:15pm)
Assignment 3: Given a small
software package and an incomplete use case model, make the interaction
diagrams, the class diagram, a state chart, and try to model two additional
features, to work on in week 4 and 5 (due Oct. 27, 3:15 pm)
Assignment 4 (to work on in
week 6, 7 and 8):
Design Pattern Summary
Creating credit card objects: use design patterns
Minesweeper: model the minesweeper and detect what design patterns you
Assignment 4a and 4b: due Nov. 8, 3:15 pm
Assignment 4c: due Nov. 15, 3:15 pm. If you do not want to do another
assignment on design patterns, you can substitute assignment 4c by either
5a or 5b (and hand in 5a as well as 5b to Anca-Juliana Stoica by Dec. 3).
Tools for Software
Assignment 5 (to work on in
week 9, 10 and 11):Use an existing tool for implementing software cost
estimation techniques or build a tool implementing sofware risk management
techniques. You can choose between solving 5a or 5b.
Due date: Friday, Dec.3 at 3:15 pm (assignments handed in
after Dec. 3, 3:15, cannot be considered for the final grade!). Hand in
the assignment to Anca-Juliana Stoica.
Please address questions about this assignment to Anca-Juliana Stoica,
and not to Dorothea Beringer.
The due dates given are the latest possible date for turning in the assignments.
The assignments are given well in advance, and I recommend you to start
early and to hand them in the Friday before they are due. So you have three
more days in case something does not work out as planned.
The Mythical Man Month, by Brooks: a short and very entertaining book containing
many lessons still true nowadays about a large, complex software project
- a classic book every computer scientist should have read
Software Architecture : Perspectives on an Emerging Discipline, by Mary
Shaw, Garlan David, David Garlan
Pattern Oriented Software Architecture : A System of Patterns, by Frank
Buschmann et. al
Software Engineering - A Holistic View, by Bruce I. Blum
Software Engineering - A Practitioner's Approach, by Roger S. Pressman
Software Engineering, by Ian Sommerville