Skip to main content

The System Factory Approach to Software Engineering Education

  • Conference paper
Issues in Software Engineering Education

Abstract

The System Factory project seeks to investigate the problems of large-scale software engineering through a combine effort in research, development and education. This report describes the System Factory approach to software engineering education as developed and practiced at USC. It describes the genesis and history of the System Factory project the SF approach to software engineering, our experiences in softwre technology transfer, and concludes with some observations and potentials for large-scale software engineering projects in academic settings. Central to the SF approach is a joint focus on three key determinants of the outcomes of large-scale software development: the products developed, the process through the products are developed, and the production setting where the process of creating products occurs. Accordingly, we outline the software tools we employ, the techniques we developed for engineering software systems throughout their life cycle, and the strategies for managing large software engineering projects we employ.

The System Factory project has been supported over the years through contracts, grants, or gifts from the USC Faculty Research Innovation Fund. AT&T Information Systems, Carnegie Group Inc., Hughes Radar Systems Group, IBM through the Socrates Project at USC, System Development Foundation, and TRW Systems Engineering and Development Division. Additional research support was provided by DARPA contract MDA 903–81-C-0331 to the Information Sciences Institute at USC. Finally, more than 300 graduate students in computer science at USC have elected to participate in the System Factory project since 1981. Without their participation and commitment to success, this project would not occur. We are truly grateful for all of their support.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Avizienis and J. Kelly. “Fault Tolerance by Design Diversity: Concepts and Diversity”. Computer 17, 8 (1984), 67–80.

    Article  Google Scholar 

  2. R. Balzer, N. Goldman, and D. Wile. “Operational Specifications as the Basis for Rapid Prototyping”. ACM Software Engineering Notes 7, 5 (1982), 3–16.

    Article  Google Scholar 

  3. R. Balzer, T. Cheatham, and C. Green. “Software Technology in the 1990’s: Using a New Paradigm”. Computer 16, 11 (1983), 39–46.

    Article  Google Scholar 

  4. R. Balzer. “A 15 Year Perspective on Automatic Programming”. IEEE Trans. Software Engineering SE-11, 11 (1985), 1257–1267.

    Article  Google Scholar 

  5. M.G. Barnes, et. al. “A Computer Science Courseware Factory”. SIGCSE Bulletin 18, 1 (1986), 318–323.

    Article  Google Scholar 

  6. V.R. Basili and R.W. Reiter. “A Controlled Experiment Quantitatively Comparing Software Development Approaches”. IEEE Trans. Soft. Engr. SE-7, 3 (1981), 299–320.

    Article  Google Scholar 

  7. S. Bendifallah and W. Scacchi. “Understanding Software Maintenance Work”. IEEE Trans. Software Engineering 13, 3 (1987), 311–323.

    Article  Google Scholar 

  8. P. Bernstein. Workplace Democraticization: Its Internal Dynamics. Kent State University Press, 1976.

    Google Scholar 

  9. V. Berzins, M. Gray, and D. Naumann. “Abstraction-Based Software Development”. CACM 29, 5 (May 1986), 402–415.

    Google Scholar 

  10. B.V. Boehm. “An Experiment in Small-Scale Software Engineering”. IEEE Trans. Soft. Engr. SE-7, 5 (1981), 482–493.

    Article  Google Scholar 

  11. B. Boehm. “Seven Principles for Software Engineering”. J. Software and Systems 3, 1 (1983), 3–24.

    Article  MathSciNet  Google Scholar 

  12. B.W. Boehm, T. Gray, and T. Seewaldt. Prototyping vs. Specifying: A Multi-project Experiment. Proc. 7th. Intern. Conf. Soft. Engr., 1984, pp. 473–484.

    Google Scholar 

  13. F. van den Bosch, J. Ellis, P. Freeman, L Johnson, C, McClure, D. Robinson, W. Scacchi, B. Scheft, A. van Staa, and L Tripp. “Evaluating the Implementation of Software Development Life Cycle Methodologies”. Software Engineering Notes 7, 1 (1982), 45–61.

    Article  Google Scholar 

  14. Harvey Bratman and Terry Court. “The Software Factory”. Computer 8 (May 1975), 28–37.

    Article  Google Scholar 

  15. M. Brown, N. Meyrowitz, and A. van Dam. “Personal Computer Networks and Graphical Animation: Rationale and Practice”. ACM SIGCSE Bulletin 15, 1 (February 1983), 296–307.

    Article  Google Scholar 

  16. J. S. Brown and S. Newman. “Issues in Cognitive and Social Ergonomics: From Our House to Bauhaus”. J. Human-Computer Interaction 1, 4 (1986).

    Google Scholar 

  17. A. Castillo, S. Corcoran, and W. Scacchi. A Unix-based Gist Specification Processor: The System Factory Experience. Proc. 2nd. Intern. Conf. Data Engineering, 1986, pp. 582–589.

    Google Scholar 

  18. R. Cronk and D. Zelinski. ES/AG: A System Generation Environment for Intelligent Application Software. Proc. SOFTFAIR II, IEEE Computer Society, 1985, pp. 96–100.

    Google Scholar 

  19. J. Distaso. “Software Management — A Survey of Practice in 1980”. Proceedings IEEE 68, 9 (1980), 1103–1119.

    Article  Google Scholar 

  20. L Eliot and W. Scacchi. “Toward a Knowledge-Based System Factory: Issues and Implementations”. IEEE Expert 1, 4 (1986), 51–58.

    Article  Google Scholar 

  21. S. Feiner, D. Salesin, and T. Banchoff. “Dial: A Diagrammatic Animation Language”. IEEE Computer Graphics and Applications 2, 7 (1982), 43–56.

    Article  Google Scholar 

  22. M.S. Fox and S.F. Smith. “ISIS: A Knowledge-based System for Factory Scheduling”. Expert Systems 1, 1 (1984), 25–49.

    Article  Google Scholar 

  23. L Gasser. “The Integration of Computing and Routine Work”. ACM Trans. Office Info. Sys. 4, 3 (1986), 205–225.

    Article  Google Scholar 

  24. E.M. Gerson and S.L Star. “Analyzing Due Process in the Workplace”. ACM Trans. Office Info. Sys. 4, 3 (1986), 257–270.

    Article  Google Scholar 

  25. N. Gibbs and R. Fairley (Ed.). Software Engineering Education. Springer-Verlag, New York, 1987.

    MATH  Google Scholar 

  26. M. Barbacci, A.N. Habermann, and M. Shaw. “The Software Engineering Institute: Bridging Practice and Potential”. IEEE Software 2, 6 (November 1985), 4–21.

    Article  Google Scholar 

  27. B. Hannaford. The Electronic Spreadsheet: A Workstation Front-End for Parallel Processors. Proc. COMPCON 1986, 1986, pp. 316–321.

    Google Scholar 

  28. J.J. Horning and D.B. Wortman. “Software Hut: A Computer Program Engineering Project in the Form of a Game”. IEEE Trans. Soft. Engr. SE-3, 4 (July 1977), 325–330.

    Article  Google Scholar 

  29. H. Hunke (ed.). Software Engineering Environments. North-Holland, 1981.

    Google Scholar 

  30. R. Katz, W. Scacchi, and P. Subrahmanyam. “Development Environments for VLSI and Software Engineering”. J. Sys. Soft. 4, 2 (1984), 14–27.

    Google Scholar 

  31. B.I. Kedzierski. Knowledge-Based Project Management and Communication Support in a System Development Environment. Proc. 4th. Jerusalem Conf. Info. Techology, 1984, pp. 444–451.

    Google Scholar 

  32. T. Kidder. The Soul of a New Machine. Avon Books, New York, 1982.

    Google Scholar 

  33. R. Kling and W. Scacchi. “The DoD Common Higher Order Programming Language Effort (Ada): What Will The Impacts Be?”. SIGPLAN Notices 14, 2 (1979), 29–41.

    Article  Google Scholar 

  34. R. Kling and W. Scacchi. Recurrent Dilemmas of Computer Use in Complex Organizations. Proc. 1979 National Computer Conference, 1979, pp. 1067–116. Vol. 48.

    Google Scholar 

  35. R. Kling and W. Scacchi. “Computing as Social Action: The Social Dynamics of Computing in Complex Organizations”. Advances in Computers 19 (1980), 249–327. Academic Press, New York.

    Article  Google Scholar 

  36. R. Kling and W. Scacchi. “The Web of Computing: Computer Technology as Social Organization”. Advances in Computers 21 (1982), 1–90. Academic Press, New York.

    Article  Google Scholar 

  37. J.C. Knight and N. Leveson. “An Experimental Evaluation of the Assumption of Independence of Multiversion Programming”. IEEE Trans. Soft. Engr. SE-12, 1 (January 1986), 96–109.

    Google Scholar 

  38. D. Lenat, A. Borning, D. McDonald, C. Taylor, and S. Weyer. Knoesphere: Building Expert Systems with Encyclopedic Knowledge. Proc. IJCAI-83, 1983, pp. 167–169.

    Google Scholar 

  39. N. Magnenat-Thalmann, D. Thalmann, and M. Fortin. “Miramin: An Extensible Director-Oriented System for the Animation of Realistic Images”. IEEE Comptuer Graphics and Applications 5, 2 (1985), 48–73.

    Google Scholar 

  40. J. Manley. Computer-Aided Software Engineering (CASE): Foundation for Software Factories. Proc. COMPCON Fall ’84, 1984, pp. 26–37.

    Google Scholar 

  41. Y. Matsumato and others. SWB: A Software Factory. In Software Engineering Environments, H. Hunke, Ed., North-Holland, 1981.

    Google Scholar 

  42. W.M. McKeeman. Experience with a Software Engineering Project Course. In Software Engineering Education, Springer-Verlag, New York, 1987, pp. 234–262.

    Chapter  Google Scholar 

  43. K. Narayanaswamy and Walt Scacchi. “A Database Foundation to Support Software System Evolution”. J. Systems and Software 7 (1987), 37–49.

    Article  Google Scholar 

  44. K. Narayanaswamy and W. Scacchi. An Environment for the Development and Maintenance of Large Software Systems. Proc. SOFTFAIR II, 1985, pp. 11–25.

    Google Scholar 

  45. K. Narayanaswamy and W. Scacchi. “Maintaining Configurations of Evolving Software Systems”. IEEE Trans. Soft. Engr. 13, 3 (1987), 324–334.

    Article  Google Scholar 

  46. R. Prieto-Diaz and J. Neighbors. “Module Interconnection Languages”. J. Sys. and Soft. 6, 4 (1986), 307–334.

    Article  Google Scholar 

  47. C. Reynolds. “Computer Animation with Scripts and Actors”. Computer Graphics 16, 3 (1982), 289–296.

    Article  MathSciNet  Google Scholar 

  48. A. Sathi, T. Morton, and S. Roth. “Callisto: An Intelligent Project Management System”. AI Magazine 7, 5 (1986), 34–52.

    Google Scholar 

  49. W. Scacchi. The Process of Innovation in Computing: A Study of the Social Dynamics of Computing. Ph.D. Th., Department of Information and Computer Science, University of California, Irvine, 1981.

    Google Scholar 

  50. W. Scacchi. A Language-Independent Software Engineering Environment. Workshop Report: VLSI and Software Engineering, IEEE Computer Society, 1982, pp. 99–103. IEEE Catalog No. 82CH1815–0.

    Google Scholar 

  51. W. Scacchi. Developing VLSI Systems with a Silicon Engineering Environment. IEEE Intern. Conf. on Computer Design, IEEE, 1983, pp. 472–475.

    Google Scholar 

  52. W. Scacchi. The System Factory Approach to VLSI and Software Engineering. Proceedings AFCET Second Soft. Engr. Conf., 1984, pp. 349–359.

    Google Scholar 

  53. W. Scacchi. “Managing Software Engineering Projects: A Social Analysis”. IEEE Trans. Soft. Engr. SE-10, 1 (January 1984), 49–59.

    Article  Google Scholar 

  54. W. Scacchi. Applying Social Analysis of Computing to System Development. Proceedings Aarhus Conference on Development and Use of Systems and Tools, August, 1985, pp. 477–500. Aarhus, Denmark.

    Google Scholar 

  55. W. Scacchi. The Software Engineering Environment for the System Factory Project. Proc. 19th. Hawaii Intern. Conf. Systems Sciences, 1986, pp. 822–831.

    Google Scholar 

  56. W. Scacchi. “Shaping Software Behemoths”. UNIX Review 4, 10 (1986), 46–55.

    Google Scholar 

  57. W. Scacchi. Software Specification Engineering: An Approach to the Construction of Evolving Software Descriptions. USC/Information Sciences Institute, 1987. (in preparation).

    Google Scholar 

  58. W. Scacchi and J. Babcock. Understanding Software Technology Transfer. internal report, Software Technology Program, Microelectronics and Computer Technology Corp., Austin, TX.

    Google Scholar 

  59. W. Scacchi and C.M.K. Kintala. Understanding Software Productivity. technical memorandum, Advanced Software Concepts Group, ATT Bell Laboratories, Murray Hill, NJ.

    Google Scholar 

  60. W. Scacchi, S. Bendifallah, A. Bloch, S. Choi, P. Garg, A. Jazzar, A. Safavi, J. Skeer, and M. Turner. Modeling System Development Work: A Knowledge-Based Approach. Computer Science Dept., USC, 1986. working paper SF-86–05.

    Google Scholar 

  61. W. Scacchi, L. Gasser, and E. Gerson. Problems and Strategies for Organizing Computer-Aided Design Work. Proceedings IEEE Intern. Conf. Computer-Aided Design, 1983, pp. 149–152.

    Google Scholar 

  62. T. Schwederski and H.J. Siegel. “Adaptable Software for Supercomputers”. Computer 19, 2 (1986), 40–48.

    Article  Google Scholar 

  63. R.W. Selby, V.R. Basili, and FT. Baker. CLEANROOM Software Development: An Empirical Investigation. TR-1415, Computer Science Dept., Univ. of Maryland.

    Google Scholar 

  64. M. Sherman and A. Marks. Using Workstations to Investigate Computer Networks. Proc. IEEE 1985 Intern. Conf. on Computer Workstations, IEEE, 1985, pp. 214–221.

    Google Scholar 

  65. S. Sluizer and P. Cashman. XCP: An Experimental Tool for Managing Cooperative Activity. Proc. 1985 ACM Computer Science Conf., 1985, pp. 251–258.

    Google Scholar 

  66. D. Tajima and T. Matsubara. “Inside the Japanese Software Factory”. Computer 17, 3 (1984), 34–43.

    Article  Google Scholar 

  67. R. Thayer, A. Pyster, and R. Wood. “Major Issues in Software Engineering Project Management”. IEEE Trans. Software Engineering SE-7, 4 (1981).

    Article  Google Scholar 

  68. DA Updegrove. “Computing Intensive Campuses: Strategies, Plans, Implications”. EDUCOM Bulletin 21, 1 (1986), 11–14.

    Google Scholar 

  69. A.I. Wasserman and P. Freeman. Software Engineering Education: Needs and Objectives. Springer-Verlag, New York, 1976.

    Google Scholar 

  70. R. Waters. “The Programmers Apprentice: A Session with KBEmacs”. IEEE Trans. Software Engineering SE-11, 11 (1985), 1296–1320.

    Article  Google Scholar 

  71. S. Weyer and A. Borning. “A Prototype Electronic Encyclopedia”. ACM Trans. Office Info. Sys. 3, 1 (1985), 63–88.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1989 Springer-Verlag New York Inc.

About this paper

Cite this paper

Scacchi, W. (1989). The System Factory Approach to Software Engineering Education. In: Fairley, R., Freeman, P. (eds) Issues in Software Engineering Education. Springer, New York, NY. https://doi.org/10.1007/978-1-4613-9614-7_19

Download citation

  • DOI: https://doi.org/10.1007/978-1-4613-9614-7_19

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4613-9616-1

  • Online ISBN: 978-1-4613-9614-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics