MSWE 607 Software Life Cycle Methods and Techniques (UMCP)

I. Catalog Description

Software life cycle models and various methods and technologies for the stages of the life cycle are covered. The emphasis is on the requirements, design and test phases and at least one method and technique in each area is presented in detail. Students are expected to apply the approaches learned on team projects.

Development of a team project is a critical component of this course. You will develop a project, jointly with 2 other class members. The development language is your choice. C++, Visual Basic, or HTML (web pages) have been used int he past. In order to complete this project, some lab periods will be scheduled during the latter half of some of the classes. However, it will probably be necessary for you to meet your other team members outside of class, either at the University or any other place you so choose.

Class is scheduled to meet in AVW 3258 on Mondays, beginning September 11, 2000 from 7:00pm until 10:00pm. Important note: About 2 extra classes will be scheduled at beginning of the semester, and 2 Mondays will be cancelled later in semester. More details about this at first class.

II. Grading Criteria

Paper on method validation (November 6, 2000) (Instructions) 15%
Midterm exam (November 6, 2000) 25%
Final (December 18) 25%
Project (Team effort) Project description 25%
Project data collection form
Homework(s) and Class participation 10%

The midterm exam will be approximately 75 minutes long. The remainder of the time will probably be used as a group lab meeting. The final will be a 2 1/2 hour exam.

III. Class organization

Class is scheduled for Mondays, 7-10pm, in AVW 3258.

We are supposed to meet for 150 minutes per week, so schedule will be:
Approximately 75 minutes -- Lecture
10 minutes -- Break
Approximately 75 minutes -- Lecture or, depending on week, group discussions/lab period

Class will officially end around 9:45pm. You will probably need to spend additional time after class working with your group.

IV. Course contents

No textbook is required. Various readings will be distributed in class or available through this web page. For references from easily accessible journals (Communications of the ACM, IEEE Software, IEEE Computer, IEEE Transactions on Software Engineering) you are expected to obtain your own copy. Many of you or your colleagues should already get some or all of these, a good company technical library should have them, and they are available in the University of Maryland libraries. Note: This is a preliminary schedule, which will be updated over the next few weeks.
September 11 Review of MSWE 601. Software engineering in the large, Software engineering techniques, life cycle, buzz words, methods, risk, ...
Slides related to lecture:Notes-1
"The Road to maturity: Navigating Between Craft and Science" by Christof Ebert, IEEE Software (November, 1997) 77-82.
"Software Risk management: Principles and Practices" by Barry Boehm, IEEE Software (January, 1991) 32-41.
September 18 Process improvement, Software engineering in the small. Personal software process (PSP), Role of measurement, data collection, fault tracking.
Slides related to lecture:Notes-2 (Revised 9-14-00)
"Capability Maturity Model, version 1.1" by Mark Paulk and Mary Beth Chrissis, IEEE Software (July, 1993) 18-27.
"How ISO 9001 compares with the CMM" by Mark Paulk, IEEE Software (January, 1995) 74-83.
"Using a Defined and Measured Personal Software Process" by Watts Humphrey, IEEE Software (May, 1996) 77-88.
September 25 Validation of new software engineering methods; Software engineering technology transfer
Slides related to lecture:Notes-3 (Revised 9-26-00)
"Experimental validation in software engineering" by Marvin V. Zelkowitz and Dolores Wallace" Information and Software Technology (November, 1997) 734-744 (pdf).
"Software Engineering technology infusion within NASA," by M. V. Zelkowitz, IEEE Trans. on Eng. Mgmt. 43, 3 (August, 1996) 250-261 (pdf).
September 27 Resource and change measures.
Slides related to lecture:Notes-4
(pdf) Basili Notes - Chapter 5
B. W. Boehm, Software engineering economics, IEEE Trans. Soft. Eng. 10(1), January 1984, 4-21.
October 2 Process models and metrics, OO and OO metrics
Slides related to lecture:Notes-5 (Revised 9-26-00)
OO Slides related to lecture: (OO notes part 1)
(OO notes part 2)
(pdf)Basili Notes - Chapter 6
Chidamber S. A. and C. F. Kemerer, A metric suite for object oriented design, Transactions on Software Engineering 20, 6 (June, 1994) 476-493.
October 4 Reading techniques, Code reading, reviews, inspections. Lab activity: Project groups meet and begin to plan their development.
Slides related to lecture:Notes-6
"Advances in Software Inspections" by M. Fagan, IEEE Trans. on Software Engineering (12)7 (July, 1986) 744-751.
Notes from Tom Gilb
Check also Prof. Johnson at the University of Hawaii's URL.
Perspective Based reading paper (pdf) by Basili, et al.
October 9No class
October 16 Requirements analysis, Formal specifications, Verification
Slides related to lecture:Notes-7
May 1995 issue of Communications of the ACM (Requirements gathering)
"The role of verification in the software specification process," by M. Zelkowitz, Advances in Computers 36, Academic Press (1993) 43-109 (pdf). Paper is 55 pages. We will probably only discuss 1-17, 28-30, 41-43, 45-46.
C. A. R. Hoare, "An Axiomatic Basic for Computer Programming," Communications of the ACM, Vol. 12, No. 10, 1969, pp. 576-580, 583. (This is the seminal paper on this topic)
Notes on algrebraic data types (pdf)
Notes on axiomatic proofs (pdf)
October 23No class
October 30 Specification languages: VDM, Z, others. Independent verification and validation, Cleanroom.
Slides related to lecture:Notes-8
Slides related to lecture:Notes-9
"Specifying a Real-Time Kernel" by J. M. Spivey, IEEE Software (September, 1990) 21-28. (Introduction to Z)
Ariane 5 failure
Quicktime video of Ariane 5
November 6 Midterm exam
Homework on Z specification due
Paper due
Completion of discussion of IV&V
November 13 Software architecture, data abstractions, design issues
Turn in Design and a sample module
Slides related to lecture:Notes-10
Slides related to lecture:Notes-11
"Comparing architectural design styles" by Mary Shaw, IEEE Software, (November, 1995) 27-41.
"Cleanroom Software Engineering" by H. D. Mills, M. Dyer, and R. C. Linger, IEEE Software (September, 1987) 19-25.
"Software Process Evolution at the SEL" by V. Basili and S. Green, IEEE Software (July, 1994) 58-66.
"Cleanroom process model" by R. C. Linger, IEEE Software, (March, 1994) 50-58.
November 20 Completion of architectural design styles
Code inspection
November 27 Object oriented design, Case tools, Environments
Slides related to lecture:Notes-12
"Architectural styles, design patterns, and objects" by R. Monroe, et al., IEEE Software, (January, 1997) 43-52.
"Tools that bind: Creating integrated environments" by D. Sharon and R. Bell, IEEE Software. (March, 1995) 76-85.
December 4 Defect detection, Orthogonal Defect Classification
Microsoft development:Notes-13
ODC Report
"Software unit test coverage and adequacy" by H. Zhu, et al. ACM Computing Surveys 29, 4 (December, 1997) 366-428.
December 11 Microsoft development; Current issues; Reports on final projects; Demonstrations; Review of semester data collection activities.
Slides related to lecture:
"Microsoft Secrets" by M. Cusumamo and R. Selby, The Free Press, New York, 1995.
December 18 Final exam (2 hours) Comprehensive -- covers material from entire course.

Prepared by: Marvin Zelkowitz

Last Change: December 03, 2000