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.

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


Reading assignments

Most of the reading assignments are short papers (about 10 pages per paper)  from the following book available in the bookstore: 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