Teaching a Software Project Course Using the Team Software Process Robert Cannon Department of Computer Science University of South Carolina cannon@sc.edu Thomas B. Hilburn Department of Computing and Mathematics Embry-Riddle Aeronautical University hilburn@db.erau.edu Jorge Diaz-Herrera Department of Computer Science, Southern Polytechnic State University jdiaz@spsu.edu Abstract effective teams, task scheduling and tracking, quality assurance, software metrics, configuration management and risk planning. The tutorial is intended for faculty that will be teaching or have taught a software project course. It provides attendees with ideas, concepts, guidelines and experiences for teaching such a course using the introductory Team Software Process. 1 The tutorial is intended for faculty that will be teaching or have taught a software project course. It provides the attendee with ideas, concepts, guidelines and experiences for effective teaching o f such a course. The tutorial concentrates upon planning, organization, and execution of a software project course. A focus o f the tutorial is an overview of the introductory Team Software Process (TSPi). The TSPi is based upon the Personal Software Process sM (PSP sm) [3] md the Team Software Process sM (TSP sM) [4] which were developed to help to improve software engineering practices at the individual and team level. The tutorial shows faculty how the TSPi can be used to guide students through the steps of a team software project course. Using an incremental development model, it provides course designers with detailed direction about team formation, team roles and tasks, and explicit process guidance and support for planning, requirements specification, design specification, implementation and testing. The tutorial also exposes faculty to the wealth of data and metrics that can be used for an in-depth quality analysis of the both product and the process. Tutorial Objectives The objectives o f the tutorial are as follows: Provide information, ideas, and discussion about teaching a team project course. Provide an overview understanding of the TSPi Inform faculty how to use the TSPi to develop such a team project course or help them improve a course they are currently teaching. - 2 Expectations For quite some time now, there has been increasing interest in how we can better prepare graduates of computing programs for careers in software development [2]. Many, if not most, programs have a capstone project course in software engineering. In fact, Volume II o f the steelman version of Computing Curricula 2001 recommends that all programs have such a capstone project course; also there is an entire chapter devoted to Professional Practice that emphasizes the importance of including "work environment" type activities in a computing curriculum [1]. The project course is not just about producing computer programs that work, but it is concerned with the use o f accepted software engineering practices. These practices involve phased development, which includes planning, requirements analysis and requirements specification, high level design and detailed design, construction, and testing. Attention is also being devoted to the so-called process issues: how to build The presenters share their experience in using the TSPi to teach a project course, and discuss lessons learned and ideas and suggestions for course implementation. They also share opinion and experiences in this area from faculty at other schools. 3 Tutorial Outline The following is an outline o f the topics covered in the tutorial: - Copyright is held by the author/owner(s). SIGCSE'02, February 27- March 3, 2002, Covington, Kentucky, USA. ACM 1-58113-473-8/02/0002. 369 Introduction * Discussion o f software project course issues and problems * ii. Software Processes Description and Overview o f the TSPi * TSPi objectives * Key features o f the TSPi * Development Structure and Process * Team Structure and Roles * Data and Metrics * TSPi support > Textbook and Instructor's Manual > TSPi Tool TSPi Implementation and Experiences * at University o f South Carolina * at Southern Polytechnic University * at Embry-Riddle Aeronautical University Open Discussion References [1] ACM/IEEE-CS Joint Task Force on Computing Curricula,. Computing Curricula 2001, Volume l IComputer Science, Steelman version (August 2001). Available W W W : httn:t/www.acm.org/sigcse/cc200 l/steelman/ [2] Coulter, N.S., Gibbs, N.E. editors. The Annals o f Software Engineering. Vol. 6, (April 1999) [special issue on software engineering education] [3] Humphrey, W. S. Introduction to the Personal Software Process, Addison-Wesley, Reading, Massachusetts (1997). [4] Humphrey, W. S. Introduction to the Team $oj~ware Process, Addison-Wesley, Reading, Massachusetts (2000). SMpersonal Software Process, PSP, Team Software Process, and TSP are service marks of Carnegie Mellon University. 370