Tuesdays
and
Thursdays, 1:30 - 3:00pm, College of Computing
Building, room 17
Klaus 2404,
404.894.8450
![]()
Office
Hours: Tuesdays 12:30-1:30; Thursdays 3:00-5:00
Ogechi
Nnadi (ogechi.nnadi@gatech.edu)
Office
Hours: Tuesdays and Thursdays, 3 - 4pm
Location:
Klaus 2405
Class Newsgroup: news:git.cc.class.cs6300
Class Swiki: http://swiki.cc.gatech.edu/cs6300-fa08
The
process of
developing software systems. Includes development and assessment of
processes,
their instantiation in actual product development, and techniques
ensuring
quality of developed products.
There
is no
required
text for the course. Students should have access to a Software
Engineering
introductory text
such as Pressman
or Sommerville.
Outside readings are specified in the Readings column of the
class schedule.
References for outside reading are in the Syllabus
References section at the end of this web page.
|
Projects |
60% |
|
Exam |
30% |
|
Class
Participation |
10% |
|
Date |
Subject |
|
Assignments |
|
8/19 |
Introduction |
||
|
8/21 |
Waterfall |
McConnell Chapter 7 |
|
|
8/26 |
Requirements |
Assignment
1 (due) |
|
|
8/28 |
Capabilitity Maturity Model (PDF) |
|
|
|
9/2 |
Data flow
diagrams (PDF) |
|
|
|
9/4 |
Specifications
(PDF) |
Project 1
deliverables (due) |
|
|
9/9 |
Personal
Software Process |
Project 1
Process Assessment (due) |
|
|
9/11 |
Estimation
(PDF) |
|
|
|
9/16 |
Reviews (PDF) |
|
Project 2 Process Plan (due) |
|
9/18 |
Team Software Process (TSP) (PDF) |
|
|
|
9/23 |
Project 1
debriefing (spreadsheet) |
|
Project 2
deliverables (due) |
|
9/25 |
Unified
Software Process |
Project 2
Process Assessment (due) |
|
|
9/30 |
Object-oriented
analysis |
Project 3 Process Plan (due) |
|
|
10/2 |
Library exercise Use cases |
||
|
10/7 |
No class |
|
|
|
10/9 |
Software
architecture (PDF) |
Project 3
deliverables (due) |
|
|
10/14 |
Fall break
- no class |
|
|
|
10/16 |
Cleanroom
Software Engineering |
Project 3
Process Assessment (due) |
|
|
10/21 |
Reliability based testing (PDF) Formal Methods (PDF) |
Project 4
Process Plan (due) |
|
|
10/23 |
OCL (PDF) |
OCL (reference) |
|
|
10/28 |
Cleanroom verification (PDF) |
Dyer, Chapter 5 |
|
|
10/30 |
|
||
|
11/4 |
Complete
proof example |
|
|
|
11/6 |
Mutation
Testing (PDF) |
|
Project 4 deliverables (due) |
|
11/11 |
Extreme
programming |
Project 4
Process Assessment (due) |
|
|
11/13 |
XP Rules (PDF) |
|
|
|
11/18 |
Guest
Lecture on SCRUM (PDF) |
||
|
11/20 |
Refactoring
(PDF) |
||
|
11/25 |
Williams
(IEEE
Software) |
||
|
11/27 |
Thanksgiving
- No class |
|
|
|
12/2 |
Process Improvement
(PDF) |
Project 5 deliverables (due) |
|
|
12/4 |
Project 5 Demos |
|
Project
5
Process Assessment (due) |
Steve
McConnell.
Rapid
Development.
Microsoft Press, 1993.
Alan M. Davis.
Software
Requirements / Revision.
Prentice Hall, 1993.
Mark
C. Paulk,
Bill Curtis, Mary Beth Chrissis, and Charles V. Weber.
"Capability Maturity Model, Version 1.1."
IEEE Software, 10(4):18-27, July 1993.
Mark C. Paulk, Bill Curtis, Mary Beth Chrissis, and Charles V.
Weber.
"Capability
Maturity Model for Software, Version 1.1."
Software Engineering Institute, CMU/SEI-93-TR-24, DTIC Number
ADA263403,
February 1993.
Mark Paulk, Charlie Weber, Suzanne Garcia, Mary Beth Chrissis, and
Marilyn
Bush.
"Key
Practices
of the Capability Maturity Model / Version 1.1. "
Software Engineering Institute Technical Report, CMU/SEI-93-TR-025,
ESC-TR-93-178, February, 1993.
Mark C. Paulk, Dennis Goldenson, and David M. White.
"The
1999 Survey of High Maturity Organizations. "
Software Engineering Institute,
A
Discipline for Software Engineering.
Addison-Wesley, 1995.
Introduction
to the Personal Software Process.
Addison Wesley, 1997.
Introduction
to the Team Software Process.
Addison Wesley, 2000.
"Using a Defined and Measured Personal
Software
Process. "
IEEE Software, 13(3):77-88, May 1996.
"The
Personal Software Process."
CMU/SEI Technical Report 2000-TR-022, November 2000.
"The
Team Software Process (TSP). "
Technical Report CMU/SEI-2000-TR-023, ESC-TR-2000-023, December 2000.
PSP Scripts (Note: all subordinate links within scripts are broken)
Ivar
Jacobson,
Grady Booch, and James Rumbaugh.
The
Unified Software Development Process.
Addison-Wesley, 1999.
Grady Booch, James Rumbaugh, and Ivar Jacobson.
The
Unified Modeling Language User Guide.
Addison-Wesley, 1999.
James Rumbaugh, Ivar Jacobson, and Grady Booch.
Unified Modeling
Language Reference
Manual,
2nd Edition.
Addison-Wesley,
2004.
Martin Fowler.
UML
Distilled: Applying the Standard Object Modeling Language (2nd Edition).
Addison Wesley, 1997.
David Garlan and Mary Shaw.
"An Introduction to Software Architecture."
Advances in Software Engineering and Knowledge Engineering, Volume
1,
World Scientific Publishing Company,1993.
David Garlan and Mary Shaw.
Software
Architecture: Perspectives on an Emerging Discipline.
Prentice Hall, 1995.
D. Parnas.
"On the Criteria
to be Used in Decomposing Systems into Modules."
Communications of the ACM, 15(12):1053-1058, December, 1972.
Philippe B. Kruchten.
"The 4+1 View Model of Architecture."
IEEE Software, 12(6):42-50, November, 1995.
Stacy
J. Prowell, Carmen J.
Trammell, Richard C. Linger, and Jesse
H. Poore.
Cleanroom
Software Engineering.
Addison Wesley, 1999.
Allan M. Stavely.
Toward
Zero-Defect Programming.
Addison Wesley, 1999.
Michael G. Dyer.
The
Cleanroom Approach to Quality Software Development.
Wiley Series in Software Engineering Practice, 1992.
Shirley A. Becker, James A. Whittaker.
Cleanroom
Software Engineering Practices.
Series in Software Engineering Management, 1996.
James A. Whittaker and J. H. Poore.
"Markov Analysis of Software
Specifications."
ACM Transactions on Software Engineering and Methodology,
2(1):93-106,
January 1993.
Richard C. Linger.
"Cleanroom Process Model."
IEEE Software, 11(2):50-58, March 1994.
Object Management Group.
"Object
Constraint
Language."
OMG Available Specification, Version 2.0, #formal/06-05-01.
Kent
Beck.
Extreme
Programming Explained: Embrace Change.
Addison Wesley, 2000.
Ron Jeffries, Ann Anderson, and Chet
Hendrickson.
Extreme
Programming Installed.
Addison Wesley, 2001.
PDF.
Martin Fowler.
Refactoring:
Improving the Design of Existing Code.
Addison Wesley, 1999.
William
C. Wake.
Refactoring
Workbook.
Addison-Wesley Professional; 1st edition, August 22, 2003.
Andy Hunt and
Dave Thomas.
Pragmatic
Unit Testing in Java with JUnit.
The Pragmatic
Programmers,
September 2003.
Alistair Cockburn and Laurie Williams.
"The Costs and Benefits of Pair
Programming."
Humans and Technology technical report 2000.01, January 2000.
Laurie Williams and Robert R. Kessler.
"All I Really Need to Know about Pair
Programming I Learned in
Kindergarten."
Communications of the ACM, 43(5):108-114, May 2000.
Laurie Williams, Robert R. Kessler, Ward
Cunningham, and Ron
Jeffries.
"Strengthening the Case for Pair
Programming."
IEEE Software, 17(4):19-25, July/August 2000.
Alistair Cockburn.
"Learning From Agile Software Development."
(Part
1; Part
2), October, November 2002.
Tom Mens and Tom Tourwe.
"A Survey of Software Refactoring."
IEEE Transactions on Software
Engineering, 30(2):126-139, February, 2004.
Alan MacCormack, Chris F. Kemerer, Michael
Cusumano and Bill
Crandall.
"Trade-offs between Productivity and
Quality in Selecting Software
Development
Practices."
IEEE Software, 20(5):78-85, September / October 2003.
Priscilla Fowler and Stan Rifkin.
"Software Engineering Process Group
Guide."
Technical Report, CMU/SEI-90-TR-24, ESD-90-TR-225, September 1990.
SEI:
Basic SPIN Information.
SEI: Frequently Asked
Questions about SPINs.
P. Armenise, S. Bandinelli, C. Ghezzi and A. Morzenti.
"Software Processes Representation
Languages: Survey and Assessment."
Proceedings of the Fourth
International Conference on Software Engineering and Knowledge
Engineering, Capri (Italy), June 1992.
Stanlye M. Sutton Jr., Barbara Staudt Lerner and Leon J. Osterweil.
"Experience using the JIL
Process Programming Language to Specify Design Processes."
Technical Report 96-30.
Comuter Science Department, University of Massachussets, 1995.
Victor R. Basili,
Gianluigi Caldiera and H. Dieter Rombach.
"The Goal Question Metric Approach."
In John J. Marciniak, editor,
Encyclopedia of Software Engineering,
volume 1, pages 469-476. John Wiley
& Sons, 1994.
Michael A. Cusumano.
"Extreme Programming Compared with
Microsoft-Style Iterative Development."
Communications of the ACM,
ACM Press, 50(10):15-18, October, 2007.
Barry W. Boehm and Richard Turner.
"Observations
on Balancing Discipline and Agility.."
Proceedings of the Agile Development Conference ADC'03,
IEEE Computer Society, 2003.
Barry Boehm and Richard
Turner.
Balancing Agility and Discipline.
Addison-Wesley, 2004.