A market-driven approach to teaching software components engineering

  • Authors:
  • Nick V. Flor;F. Javier Lerch;Se-Joon Hong

  • Affiliations:
  • Graduate School of Industrial Administration, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA 15213, USA E-mail: flor@andrew.cmu.edu;Graduate School of Industrial Administration, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA 15213, USA E-mail: flor@andrew.cmu.edu;Graduate School of Industrial Administration, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh, PA 15213, USA E-mail: flor@andrew.cmu.edu

  • Venue:
  • Annals of Software Engineering - Special issue on software engineering education
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

The emergence of software component standards and tools for creating software components is leading to an increasing number of software component developers. Traditional software engineering education, however, emphasizes methods for developing large software packages. It is not clear whether such methods are appropriate for developing components. New techniques may be needed to teach the skills necessary for component development. We identify two skills software developers need to successfully develop components, which are not emphasized in traditional software engineering education: (a) uncovering multiple‐customer domain semantics; and (b) making explicit multiple‐customer framework semantics. Both skills are multiple constraint satisfaction problems. We further argue that training students to produce and market components in a simulated software components marketplace – rather than the more conventional “classroom teaching” + “component homework assignments/projects” – is an effective way of teaching such skills. We then describe an environment we created called SofTrade that simulates a components market and allows students to acquire the necessary skills. We provide a detailed case study of how a student component‐producer team used market feedback to determine domain and framework semantics. We end by discussing the importance of market‐driven approaches for teaching software components engineering and how such approaches fit into existing software engineering curricula.