Automated Software Engineering

, Volume 1, Issue 2, pp 177–203

Domain-oriented design environments

  • Gerhard Fischer
Article

Abstract

The field of knowledge-based software engineering has been undergoing a shift in emphasis from automatic programming to human augmentation and empowerment. In our research work, we support this shift with an approach that embedshuman-computer cooperative problem-solving tools intodomain-oriented, knowledge-based design environments. Domain orientation reduces the large conceptual distance between problem-domain semantics and software artifacts. Integrated environments support the coevolution of specification and construction while allowing designers to access relevant knowledge at each stage within the software development process.

This paper argues thatdomain-oriented design environments (DODEs) are complementary to the approaches pursued withknowledge-based software assistant systems (KBSAs). The DODE extends the KBSA framework by emphasizing a human-centered and domain-oriented approach facilitating communication about evolving systems among all stakeholders. The paper discusses the major challenges for software systems, develops a conceptual framework to address these problems, illustrates DODE with two examples, and assesses the contributions of the KBSA and DODE approaches toward solving these problems.

Keywords

automatic programming cooperative problem solving co-evolution of specification and construction critiquing design domain-oriented design environments design rationale end-user modifiability evolution FRAMER formal specifications JANUS knowledge-based software assistant languages of doing software reuse and redesign stakeholders upstream and downstream activities 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Atwood, M. E., Burns, B., Gray, W. D., Morch, A. I., Radlinski, E. R., and Turner, A. 1991.The Grace Integrated Learning Environment—A Progress Report, Proceedings of the Fourth International Conference on Industrial & Engineering Applications of Artificial Intelligence & Expert Systems (IEA/AIE 91), ACM, June 1991, pp. 741–745.Google Scholar
  2. Barstow, D. R., Shrobe, H. E., and Sandewall, E. (eds.) 1984.Interactive Programming Environments. New York: McGraw-Hill Book Company.Google Scholar
  3. Belady, L. 1985. MCC: Planning the revolution in software.IEEE Software, November: 68–73.Google Scholar
  4. Billings, C. E. 1991.Human-Centered Aircraft Automation: A Concept and Guidelines. NASA Technical Memorandum 103885, NASA Ames Research Center, Moffett Field, CA.Google Scholar
  5. Boehm, B. W. 1988. A spiral model of software development and enhancement.IEEE Computer, 21(5):61–72.Google Scholar
  6. Brooks, F. P., Jr. 1987. No silver bullet: Essence and accidents of software engineering.IEEE Computer, 20(4):10–19.Google Scholar
  7. Buxton, W. A. S., Lamb, M. R., Sherman, D., and Smith, K. C. 1983. Towards a comprehensive user interface management system.Computer Graphics, 17(3):35–42.Google Scholar
  8. Cross, N. 1984.Developments in Design Methodology. New York: John Wiley & Sons.Google Scholar
  9. Computer Science and Technology Board. 1988.Scaling Up: A Research Agenda for Software Engineering. Washington, DC: National Academy Press.Google Scholar
  10. Computer Science and Technology Board. 1990. Scaling up: A research agenda for software engineering.Communications of the ACM, 33(3):281–293.Google Scholar
  11. Curtis, B., Krasner, H., and Iscoe, N. 1988. A field study of the software design process for large systems.Communications of the ACM, 31(11):1268–1287.Google Scholar
  12. Dawkins, R. 1987.The Blind Watchmaker. New York: W.W. Norton and Company.Google Scholar
  13. DeBellis, M., Sasso, W. C., and Cabral, G. 1991. Directions for future KBSA research. InProceedings of the 6th Annual Knowledge-Based Software Engineering (KBSE-91) Conference (Syracuse, NY), Rome Laboratory, New York, September 1991, pp. 138–142.Google Scholar
  14. Devanbu, P., Brachman, R. J., Sefridge, P. G., and Ballard, B. W. 1991. LaSSIE: A knowledge-based software information system.Communications of the ACM, 34(5):34–49.Google Scholar
  15. Ehn, P. 1988.Work-Oriented Design of Computer Artifacts. Stockholm, Sweden: Almquist & Wiksell International.Google Scholar
  16. Eisenberg, M. 1991.Programmable Applications: Interpreter Meets Interface. Technical Report 1325, Department of Electrical Engineering and Computer Science, MIT.Google Scholar
  17. Engelbart, D. C., and English, W. K. 1968. A research center for augmenting human intellect. InProceedings of the AFIPS Fall Joint Computer Conference, The Thompson Book Company, Washington, D.C., pp. 395–410.Google Scholar
  18. Fickas, S., and Nagarajan, P. 1988. Critiquing software specifications.IEEE Software, 5(6):37–47.Google Scholar
  19. Fischer, G. 1990. Communications requirements for cooperative problem solving systems.The International Journal of Information Systems (Special Issue on Knowledge Engineering), 15(1):21–36.Google Scholar
  20. Fischer, G. 1991. Supporting learning on demand with design environments. InProceedings of the International Conference on the Learning Sciences 1991 (Evanston, IL), edited by Lawrence Birnbaum, Association for the Advancement of Computing in Education, Charlottesville, VA, August, pp. 165–172.Google Scholar
  21. Fischer, G., Lemke, A. C., McCall, R., and Morch, A. 1991a. Making argumentation serve design.Human Computer Interaction, 6(3–4):393–419.Google Scholar
  22. Fischer, G., Lemke, A. C., Mastaglio, T., and Morch, A. 1991b. The role of critiquing in cooperative problem solving.ACM Transactions on Information Systems, 9(2):123–151.Google Scholar
  23. Fischer, G., Grudin, J., Lemke, A. C., McCall, R., Ostwald, J., Reeves, B. N., and Shipman, F. 1992a. Supporting indirect, collaborative design with integrated knowledge-based design environments.Human Computer Interaction, Special Issue on Computer Supported Cooperative Work, 7(3):281–314.Google Scholar
  24. Fischer, G., Girgensohn, A., Nakakoji, K., and Redmiles, D. 1992b. Supporting software designers with integrated, domain-oriented design environments.IEEE Transactions on Software Engineering, Special Issue on Knowledge Representation and Reasoning in Software Engineering, 18(6):511–522.Google Scholar
  25. Fischer, G., Nakakoji, K., Ostwald, J., Stahl, G., and Sumner, T. 1993. Embedding computer-based critics in the contexts of design.Human Factors in Computing Systems, INTERCHI'93 Conference Proceedings, ACM, pp. 157–164.Google Scholar
  26. Fischer, G., and Girgensohn, A. 1990. End-user modifiability in design environments. InHuman Factors in Computing Systems, CHI'90 Conference Proceedings (Seattle, WA), ACM, New York, April, pp. 183–191.Google Scholar
  27. Fischer, G., and Lemke, A. C. 1988. Construction kits and design environments: Steps toward human problem-domain communication.Human-Computer Interaction, 3(3):179–222.Google Scholar
  28. Fischer, G., McCall, R., and Morch, A. 1989. JANUS: Integrating hypertext with a knowledge-based design environment. InProceedings of Hypertext'89 (Pittsburgh, PA), ACM, New York, November, pp. 105–117.Google Scholar
  29. Fischer, G., and Nakakoji, K. 1992. Beyond the macho approach of artificial intelligence: Empower human designers—Do not replace them.Knowledge-Based Systems Journal, 5(1):15–30.Google Scholar
  30. Gantt, M., and Nardi, B. A. 1992. Gardeners and gurus: Patterns of cooperation among CAD users. InHuman Factors in Computing Systems, CHI'92 Conference Proceedings (Monterrey, CA), ACM, May, pp. 107–117.Google Scholar
  31. Green, C., Luckham, D., Balzer, R., Cheatham, T., and Rich, C. 1983.Report on a Knowledge-Based Software Assistant. Technical Report RADC-TR-83-195, Rome Air Development Center, August 1983, Reprinted inReadings in Artificial Intelligence and Software Engineering, edited by C. H. Rich and R. Waters, pp. 377–428. Los Altos, CA: Morgan Kaufmann Publishers, 1986.Google Scholar
  32. Greenbaum, J., and Kyng, M. (eds.) 1991.Design at Work: Cooperative Design of Computer Systems. Hillsdale, NJ: Lawrence Erlbaum Associates.Google Scholar
  33. Henderson, A., and Kyng, M. 1991. There's no place like home: Continuing design in use. InDesign at Work: Cooperative Design of Computer Systems, edited by J. Greenbaum and M. Kyng, pp. 219–240. Hillsdale, NJ: Lawrence Erlbaum Associates.Google Scholar
  34. Hill, W. C. 1989. The mind at AI: Horseless carriage to clock.AI Magazine, 10(2):29–41.Google Scholar
  35. Johnson, W. L., Feather, M. S., and Harris, D. R. 1991. The KBSA requirements/specification facet: ARIES. InProceedings of the 6th Annual Knowledge-Based Software Engineering (KBSE-91) Conference (Syracuse, NY), Rome Laboratory, New York, September, pp. 53–64.Google Scholar
  36. Kant, E. 1992. Knowledge-based support for scientific programming. InProceedings of the 7th Annual Knowledge-Based Software Engineering (KBSE-92) Conference (McLean, VA), IEEE Computer Society Press, Los Alamitos, CA, September, pp. 2–4.Google Scholar
  37. Kant, E. 1993. Synthesis of mathematical modeling software.IEEE Software, May: 30–41.Google Scholar
  38. Kishida, K., Katayama, T., Matsuo, M., Miyamoto, I., Ochimizu, K., Saito, N., Sayler, J. H., Torii, K., and Williams, L. G. 1988. SDA: A novel approach to software environment design and construction. InProceedings of the 10th International Conference on Software Engineering (Singapore), IEEE Computer Society Press, Washington, DC, April, pp. 69–79.Google Scholar
  39. Lee, L. 1992.The Day The Phones Stopped. New York: Donald I. Fine.Google Scholar
  40. Lemke, A. C. 1989.Design Environments for High-Functionality Computer Systems. Unpublished Ph.D. Dissertation, Department of Computer Science, University of Colorado, July.Google Scholar
  41. Lemke, A. C., and Fischer, G. 1990. A cooperative problem solving system for user interface design. InProceedings of AAAI-90, Eighth National Conference on Artificial Intelligence, AAAI Press/The MIT Press, Cambridge, MA, August, pp. 479–484.Google Scholar
  42. Lemke, A. C., and Gance, S. 1991.End-User Modifiability in a Water Management Application. Technical Report CU-CS-541-91, Department of Computer Science, University of Colorado.Google Scholar
  43. Maiden, N., and Sutcliffe, A. 1992. Domain abstractions in requirements engineering: An exemplar approach? InProceedings of the 7th Annual Knowledge-Based Software Engineering (KBSE-92) Conference (McLean, VA), IEEE Computer Society Press, Los Alamitos, CA, September, pp. 112–121.Google Scholar
  44. Nakakoji, K. 1993.Increasing Shared Understanding of a Design Task Between Designers and Design Environments: The Role of a Specification Component. Unpublished Ph.D. Dissertation, Department of Computer Science, University of Colorado. Also available as Technical Report CU-CS-651-93.Google Scholar
  45. Nardi, B. A. 1993.A Small Matter of Programming. Cambridge, MA: The MIT Press.Google Scholar
  46. Norman, D. A. 1993.Things That Make Us Smart. Reading, MA: Addison-Wesley Publishing Company.Google Scholar
  47. Osterweil, L. 1987. Software processes are software too. InProceedings of the 9th International Conference on Software Engineering (Monterey, CA, IEEE Computer Society, Washington, DC, March, pp. 2–13.Google Scholar
  48. Petroski, H. 1985.To Engineer Is Human: The Role of Failure in Successful Design. New York: St. Martin's Press.Google Scholar
  49. Polanyi, M. 1966.The Tacit Dimension. Garden City, NY: Doubleday.Google Scholar
  50. Prieto-Diaz, R., and Arango, G. 1991.Domain Analysis and Software Systems Modeling. Los Alamitos, CA: IEEE Computer Society Press.Google Scholar
  51. Proceedings of IEEE International Symposium on Requirements Engineering, 1993. IEEE Computer Society, IEEE Computer Society Press, Los Alamitos, CA, January.Google Scholar
  52. Redmiles, D. F. 1992.From Programming Tasks to Solutions—Bridging the Gap Through the Explanation of Examples. Ph.D. Dissertation, Department of Computer Science, University of Colorado, Boulder, CO. Also available as Technical Report CU-CS-629-92.Google Scholar
  53. Repenning, A., and Sumner, T. 1992. Using Agentsheets to create a voice dialog design environment. InProceedings of the 1992 ACM/SIGAPP Symposium on Applied Computing, ACM Press, pp. 1199–1207.Google Scholar
  54. Resnick, L. B. 1991. Shared cognition: Thinking as social practice. InPerspectives on Socially Shared Cognition, edited by L. B. Resnick, J. M. Levine, and S. D. Teasley, American Psychological Association, Washington, DC, pp. 1–20, ch. 1.Google Scholar
  55. Reubenstein, H. B., and Waters, R. C. 1991. The requirements apprentice: Automated assistance for requirements acquisition. InIEEE Transactions on Software Engineering, 17(3):226–240.Google Scholar
  56. Rich, C. H., and Waters, R. (eds.) 1986.Readings in Artificial Intelligence and Software Engineering. Los Altos, CA: Morgan Kaufmann Publishers.Google Scholar
  57. Rich, C. H., and Waters, R. C. 1988. Automatic programming: Myths and prospects.Computer, 21(8):40–51.Google Scholar
  58. Rittel, H. W. J. 1984. Second-generation design methods. InDevelopments in Design Methodology, edited by N. Cross, pp. 317–327. New York: John Wiley & Sons.Google Scholar
  59. Royce, W. W. 1987. Managing the development of large software systems: Concepts and techniques. InProceedings of the 9th International Conference on Software Engineering (Monterey, CA, IEEE Computer Society, Washington, DC, pp. 328–338 (reprint of a paper originally published in 1970).Google Scholar
  60. Schoen, D. A. 1983.The Reflective Practitioner: How Professonals Think in Action. New York: Basic Books.Google Scholar
  61. Schoen, E., Smith, R. G., and Buchanan, B. G. 1988. Design of knowledge-based systems with a knowledge-based assistant.IEEE Transactions on Software Engineering, SE-14(12):1771–1791.Google Scholar
  62. Shaw, M. 1989. Maybe your next programming language shouldn't be a programming language. InScaling Up: A Research Agenda for Software Engineering, edited by the Computer Science and Technology Board, pp. 75–82. Washington, DC: National Academy Press.Google Scholar
  63. Sheil, B. A. 1983. Power tools for programmers.Datamation, February: 131–143.Google Scholar
  64. Simon, H. A. 1981.The Sciences of the Artificial. Cambridge, MA: The MIT Press.Google Scholar
  65. Simon, H. A. 1986. Whether software engineering needs to be artificially intelligent.IEEE Transactions on Software Engineering, SE-12(7):726–732.Google Scholar
  66. Stahl, G. 1993.Interpretation in Design: The Problem of Tacit and Explicit Understanding in Computer Support of Cooperative Design. Ph.D. Dissertation, Department of Computer Science, University of Colorado, Boulder, CO.Google Scholar
  67. Stefik, M. J. 1986. The next knowledge medium.AI Magazine, 7(1):34–46.Google Scholar
  68. Suchman, L. A. 1987.Plans and Situated Actions. Cambridge, UK: Cambridge University Press.Google Scholar
  69. Swartout, W. R., and Balzer, R. 1982. On the inevitable intertwining of specification and implementation.Communications of the ACM, 25(7):438–439.Google Scholar
  70. Terveen, L. G., Selfridge, P. G., and Long, M. D. 1993. From folklore to living design memory. InHuman Factors in Computing Systems, INTERCHI'93 Conference Proceedings, ACM, April, pp. 15–22.Google Scholar
  71. Thomas, J. C., and Kellogg, W. A. 1989. Minimizing ecological gaps in interface design. InIEEE Software, 6 (January): 78–86.Google Scholar
  72. Waters, R. C. 1985. The programmer's apprentice: A session with KBEmacs.IEEE Transactions on Software Engineering, SE-11(11):1296–1320.Google Scholar
  73. White, D. A. 1991. The knowledge-based software assistant: A program summary. InProceedings of the 6th Annual Knowledge-Based Software Engineering (KBSE-91) Conference (Syracuse, NY, Rome Laboratory, New York, September, pp. vi-xiii.Google Scholar
  74. Winograd, T. 1979. Beyond programming languages.Communications of the ACM, 22(7):391–401.Google Scholar

Copyright information

© Kluwer Academic Publishers 1994

Authors and Affiliations

  • Gerhard Fischer
    • 1
  1. 1.Department of Computer Science and Institute of Cognitive ScienceUniversity of ColoradoBoulder

Personalised recommendations