An adventure in software process improvement
Software process improvement concepts, applied in an effort to increase productivity and quality in industry, are also needed in the academic environment. By teaching process improvement we can prepare students for the future and simultaneously improve our own understanding and teaching of the software engineering.
In this paper, the Software Engineering Institute's Capability Maturity Model and the ISO9000 standard are introduced. Our Software Engineering class is described, including two different team organizations which were tried. Technical and process job descriptions are given, together with our experience teaching team skills. The lessons learned are given in the conclusion.
Applying software process concepts gives students a metamodel to understand and help manage project complexity. Having explicit technical and process roles improves students' learning and, while difficult to quantify, seems to effect the quality of the end-products in a substantive way. Teaching and applying quality improvement ideas is a vital part of preparing students for modern software technology.
KeywordsSoftware Process International Standard Organization Class Project Configuration Management Process Team
Unable to display preview. Download preview PDF.
- Crosby79.Crosby, P. B. Quality Is Free. New York: McGraw-Hill, 1979.Google Scholar
- DDT92.Dante's Defect Tracker Reference Manual. Inferno Engineering, The University of Texas at Austin, CS378 Software Engineering Project, Fall 1992.Google Scholar
- Deming86.Deming, W. E. Out of the Crisis. Cambridge, Mass.: MIT Center for Advanced Engineering Study, 1986.Google Scholar
- Denning92.Denning, P. J. “Educating a New Engineer”. Comm. ACM 35, 12 (Dec. 1992), 83–97.Google Scholar
- Dion92.Dion, R. “Elements of a Process-Improvement Program.” IEEE Software (July 1992), 83–85.Google Scholar
- Florac92.Florac, W. Software Quality Measurement: A Framework for Counting Problems and Defects. Tech. Rep. CMU/SEI-92-TR-22, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA, Sept. 1992.Google Scholar
- Henry92.Henry, J. and B. Blasewitz. “Process Definition: Theory and Reality.” IEEE Software (Nov. 1992).Google Scholar
- Humphrey89.Humphrey, W. S. Managing the Software Process. Reading, Mass.: Addison Wesley, 1989.Google Scholar
- Humphrey91.Humphrey, W., T. Snyder, and R. Willis. “Software Process Improvement at Hughes Aircraft.” IEEE Software (July 1991).Google Scholar
- IEEE87.Software Engineering Standards. IEEE Press, 1987.Google Scholar
- ISO 9000.87Quality Management and Quality Assurance Standards— Guidelines for Selection and Use. 1987. Available from Global Engineering Document, Irvine, Calif, andGoogle Scholar
- ISO91.Quality managment and quality assurance standards — Part 3; Guidelines for the application of ISO 9001 to the development, supply and maintenance of software. Available from: American Society for Quality Control, Customer Service Department, P.O. Box 3066, Milwalkee, Wisconsin 53201. 1-800-248-1946, Fax Order to: 1-414-272-1734.Google Scholar
- Juran89.Juran, J. M. Juran on Leadership for Quality. New York: The Free Press, 1989.Google Scholar
- Mays88.Mays, R., E. Jones, G. Holloway, and D. Studinski. “Experiences With Defect Prevention”. IBM Systems Journal 29, 1 (1988), 4–32.Google Scholar
- Paulk93.Paulk, M. C., B. Curtis, M. B. Chrissis, and C. V. Weber. Capability Maturity Model for Software, version 1.1. Tech. Rep. CMU/SEI-93-TR-24, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pa., Feb. 1993.Google Scholar
- Peters82.Peters, T. J. and R. H. Waterman, Jr. In Search of Excellence: Lessons from America's Best-Run Companies. Harper & Row, 1982.Google Scholar
- Rakos90.Rakos, J. Software Project Managment for Small to Medium Sized Projects. Prentice-Hall, 1990.Google Scholar
- SEI91.Measuring Software Quality Using a Problem Management System, Draft for Review. Quality Subgroup of the Software Metrics Definition Working Group, August, 1991.Google Scholar
- Scholtes88.Scholtes, P. The Team Handbook: How to Use Teams to Improve Quality. Madison, Wis. Joiner Associates, 1988.Google Scholar
- Tomayko87.Tomayko, J. E. Teaching a Project-Intensive Introduction to Software Engineering. Tech. Rep. CMU/SEI-87-TR-20,ADA200603, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pa., 1987.Google Scholar
- Weber91.Weber, C. V., M. C. Paulk, C. J. Wise, and J. V. Withey. Key Practices of the Capability Maturity Model. Tech. Rep. CMU/SEI-91-TR-25, ADA240604, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pa., Aug. 1991.Google Scholar
- Werth88.Werth, L. H. “Software Tools at the University: Why, What and How”. Software Engineering Education, Ford, G., ed. New York: Springer-Verlag, Apr. 1988,169–186.Google Scholar
- Werth89.Werth, L. H. “Preparing Students for Programming-in-the-Large”. Proc. 20th SIGCSE Tech. Symp. Computer Science Education, Barrett, R. A. and M. J. Mansfield, eds. New York: ACM, Feb. 1989, 37–41.Google Scholar
- Werth90.Werth, L. H. “Object Oriented Programming and Design Class Projects.” J. Object Oriented Programming (Nov./Dec. 1990).Google Scholar
- Werth91.Werth, L. H. “Industrial-Strength CASE Tools for Software Engineering Classes”. Software Engineering Education, Tomayko, J. E., ed. New York: Springer-Verlag, Oct. 1991, 245–256.Google Scholar
- Werth93.Werth, L. H. Lectures in Software Process. Tech. Rep. CMU/SEI/EM8 Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pa., Feb. 1993.Google Scholar