CS446 - Tools and Processes for Software
Autumn 1998 Monday, Wednesday: 3:15 -
4:30, Math Building, Room 380-380X or Gates 100
Schedule
(plus
slides for some of the talks)
News about CS446
If you take this course, check this section of our web-page regularly.
-
Slides from the project presentations can be found here.
Instructors
|
Gio Wiederhold
|
Dorothea
Beringer
|
Ron Burback
|
Email |
gio@cs.stanford.edu
|
beringer@db.stanford.edu
|
burback@cs.stanford.edu
|
Office |
Gates 433
|
Gates 435
|
Gates 424
|
Office Hours |
By appointment through Marianne Siroker (siroker@cs).
|
By appointment (email) or Wednesday 4:30 to 6:00 (except of Sept
30 and Oct 7).
|
By appointment.
|
Course Description
CS446 course has a two-fold goal. Our first goal is to give you an overview
of the most important elements of software engineering. We will not be
able to expand on 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 in software engineering. In the first part
of the course we will talk about what makes up the discipline of software
engineering and how the various elements relate to each other, we will
give an overview on life-cycle models, the basic phases in a software development
project, the use of quality assurance and metrics, and we will give you
an introduction into UML, one of the most used semi-formal modeling techniques
for software systems.
Our second goal is to introduce you to some advanced concepts and tools
currently being investigated in software engineering, with the focus on
large-scale software development. These topics include local research projects
like CHAIMS (an approach for large-scale software composition), Rapide,
DADL, NOEMA, and SEAM (an enhanced scenario modeling technique). Furthermore,
we will have some invited speakers. This part will introduce you to open
topics in Software Engineering research.
Prerequisites
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.
Credits
-
Three units for the whole course.
-
One unit for the first part (inclusive classes from Sept 23 to Oct
26, reading assignments for these classes, UML-exercise and
maybe a midterm, but without project).
-
There will be no final. The grades will be based on the UML-exercise, the
project, class-participation, and maybe a midterm.
Reading assignments
Most of the reading assignments are short papers (about 10 pages per paper)
from the following book available in the bookstore:
-
"Software Engineering" by M. Dorfman and R. H. Thayer, 1997
The reading assignments correspond to the various classes mainly of the
first part of the course.
Introduction: "Software's Chronic Crisis" and "No Silver Bullet:
Essence and Accidents of Software Engineering"
UML and Phases: Chapters 1 to 10 from the book "UML distilled",
by Martin Fowler, 1997
Methodologies: "A Spiral Model of Software Development and Enhancement"
and chapter 2 of the book "UML distilled" by Marting Fowler
Requirements Engineering: "Software Requirements: A Tutorial"
and "Computer Human Interface Software Development Survey", "Prototyping:
Alternative Systems Development Methodology"
Reuse and Composition: Pages 44 to 59 of IEEE Computer, June
1998 (will be distributed)
Architecture: "Component Architectures" by Tom Spitzer, DBMS
September 1997
Testing: "Reviews and Audits", "Software Quality Assurance: A
Survey of an Emerging View"
Implementation and Maintenance: "Software Maintenance: A Tutorial"
Quality Assurance and Cost Estimation: "Capability Maturity Model
for Software", "The Mythical Man-Month, "Why Does Software Cost so Much?",
"Software Cost Estimation"
____________________________
Business of Software: "Risk Management for Software Development",
"Software Engineering Project Management"
SEAM: "A Review of Formal Methods"
Standards: "Evaluating Software Engineering Standards"
Midterm or discussion of papers
There will be no midterm, instead, we will have a discussion on some papers
that will be presented by those not doing a project.
UML exercise
The assignment consists of modeling the system EBook (detailed
description). The assignment has to be handed in to Dorothea
Beringer latest Oct 26, but you are free to hand it in earlier. You can
do the assignment in pairs of two.
Project
Please sign up for projects up to Nov 6 (email to Dorothea Beringer
with name of project, name of student(s), name of contact-person).
Possible projects:
Some projects can be done by groups of two.
We will give you the opportunity to work on your projects over the Christmas
break. Every project has to give a short
presentation in the first week of December, and has to be finished
with a short
report laying out what has been done. They will have to be handed in
by January 5 (to the person overseeing the project with a copy of the report
to Gio Wiederhold or Dorothea Beringer). Some of the projects can also
be continued as personal research projects in the winter term.
Further recommended reading
see also talk of Erik Townsend about "Component-based
Systems Integration" on Oct 14.
Year 2000: "Time Bomb" (pages 32 to 42 from Software Magazine, March 1997),
Year 2000 Risk Assessment and Planning for Individuals
(http://gartner4.gartnerweb.com/public/static/home/00073955.html)
Standards: "The Essential Paradigm for Successful IT Standards"
http://www.wiscorp.com/p115.htm#117
More articles from "Software Engineering" by M.Dorfman and R.Thayer
Software Engineering - A Holistic View, by Bruce I. Blum
Software Engineering - A Practitioner's Approach, by Roger S. Pressman
Software Engineering, by Ian Sommerville
UML Toolkit, by Hans-Erik Eriksson and Magnus Penker
further references
(look for the ones marked with SW)
Last modified: Sept 25, 1998