Skip to main content

A course on software engineering for concurrent systems

  • Conference paper
  • First Online:
Book cover Software Engineering Education (SEI 1988)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 327))

Included in the following conference series:

  • 130 Accesses

Abstract

This paper describes a graduate level course that covers concepts, techniques and tools for the specification, design, coding, and validation of concurrent software. This course is intended to transfer practical software engineering technology for the production of reliable concurrent software systems. One unique aspect of this course is the use of a collection of tools developed at NCSU for testing and debugging concurrent software.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agerberg, J., "The simplest? Ada solution to the dining philosophers problem", ACM Ada Letters, July/August, 1985, 44–48.

    Google Scholar 

  2. Andrews, G. R., and Schneider, F. B., Concepts and notations for concurrent programming," ACM Computing Surveys, Vol. 15, No.1, March 1983, 3–43.

    Article  MATH  Google Scholar 

  3. Boddy, D. E. "Implementing data abstractions and monitors in UCSD Pascal," ACM SIGPLAN Notices, Vol. 18, No. 5, May 1983, 15–24.

    Article  Google Scholar 

  4. Boddy, D. E., "On the design of monitors with priority conditions," ACM SIGPLAN Notices, Vol. 19, No. 2, February, 1984, 38–46.

    Article  Google Scholar 

  5. Brinch Hansen, P., "Testing a multiprogramming system", Software-Practice and Experience, Vol. 3, 1973, 145–150.

    Google Scholar 

  6. Brinch Hansen, P., "Reproducible testing of monitors," Software-Practice and Experience, Vol. 8, 1978, 721–729.

    MATH  Google Scholar 

  7. Campbell, R. H., and Habermann, A. N., "The specification of process synchronization by path expressions," Lecture Notes in Computer Science, Vol. 16, Operating Systems, 1974, 87–102.

    Google Scholar 

  8. Campbell, R. H., and Kolstad, R. B., "Path Expressions in Pascal" Proc. 4th Inter. Conf. Software Engineering, 1979, 212–219.

    Google Scholar 

  9. Carver, R. H., and Tai, K. C., "Reproducible testing of concurrent programs based on shared variables," Proc. 6th Int. Conf. on Distributed Computing Systems, 1986, 428–433.

    Google Scholar 

  10. Clark, R., and Koehler, S., The UCSD Pascal Handbook, Prentice-Hall, 1982.

    Google Scholar 

  11. Fairley, R. E., Software Engineering Concepts, McGraw-Hill, 1985.

    Google Scholar 

  12. Filman, R. E., and Friedman, D. P., Coordinated Computing: Tools and Techniques for Distributed Software, McGraw-Hill, 1984.

    Google Scholar 

  13. Gait, J, "A probe effect in concurrent programs," Software-Practice and Experience, March 1986, 225–233.

    Google Scholar 

  14. Gehani, N., Ada: Concurrent Programming, Prentice-Hall, 1984.

    Google Scholar 

  15. Gehani, N., and Roome, W. D., "Concurrent C," Software-Practice and Experience, Sept. 1986, 821–844.

    Google Scholar 

  16. Headington, M. R., and Oldehoeft, A. E., "Open predicate path expressions and their implementation in highly parallel computing environments," Proc. 1985 Inter. Conf. on Parallel Computing, 1985, 239–246.

    Google Scholar 

  17. Helmbold, D., and Luckham, D., "Debugging Ada tasking programs," IEEE Software, Vol. 2, No. 2, March 1985, 47–57.

    Google Scholar 

  18. Helmbold, D., "TSL: task specification language," Proc. Ada Inter. Conf. (ACM Ada LETTERS, Vol. V, Issue 2, Sept./Oct. 1985), 255–274.

    Google Scholar 

  19. Hoare, C.A.R., "Monitors: an operating system structuring concept," Comm. ACM, Vol. 17, No. 10, Oct. 1974, 549–557.

    Article  MATH  Google Scholar 

  20. Jones, S. H., Barkan, R. H., and Wittie, L. D., "Bugnet: a real time distributed debugging system", Proc. 6th Symp. Reliability in Distributed Software and Database Systems, 1987, 56–65.

    Google Scholar 

  21. LeDoux, C. H., and Parker, D. S., "Saving traces for Ada debugging," Proc. Ada Inter. Conf. (ACM Ada LETTERS, Vol. V, Issue 2, Sept./Oct. 1985), 97–108.

    Article  Google Scholar 

  22. Nielsen, K. W., and Shumatre, K., "Designing large realtime systems with Ada", Comm. ACM, Vol. 30, No. 8, August 1987, 695–715.

    Article  Google Scholar 

  23. Patwardhan, M. R., and Tai, K. C., "A debugging environment for Concurrent C", Technical report TR-88-, Dept. of Computer Science, North Carolina State University, 1988.

    Google Scholar 

  24. Peterson, J. A., and Silberschatz, A., Operating system concepts, Addison-Wesley, 1985.

    Google Scholar 

  25. Ramamritham, K., and Keller, R. M., "Specification of synchronizing processes," IEEE Trans. Soft. Eng., Vol. SE-9, No. 6, Nov. 1983, 722–733.

    Google Scholar 

  26. Rovner, P., "Extending Modula-2 to build large, integrate systems", IEEE Software, Vol. 3, No. 6, Nov. 1986, 46–57.

    Google Scholar 

  27. Smedema, C. H., Medema, P., and Boasson, M., The Programming Languages Pascal, Modula, Chill and Ada, Prentice-Hall, 1983.

    Google Scholar 

  28. Shatz, S. M., and Yau, S. S., "A partitioning algorithm for the design of distributed software systems", Information Sciences, April 1986, 165–180.

    Google Scholar 

  29. Shatz, S. M., and Wang, J. P., "Introduction to distributed software engineering", Computer, October 1987, 23–31.

    Google Scholar 

  30. Tai, K. C., "On testing concurrent programs," Proc. COMPSAC 85, Oct. 1985, 310–317.

    Google Scholar 

  31. Tai, K. C., and Obaid, E. E., "Reproducible testing of Ada tasking programs" Proc. IEEE 2nd Int. Conf. on Ada Applications and Environments, April 1986, 69–79.

    Google Scholar 

  32. Tai, K. C., and Carver, R. H., "Testing and Debugging of concurrent software by deterministic execution", Technical report TR-87-19, Dept. of Computer Science, North Carolina State University, 1987.

    Google Scholar 

  33. Tai, K. C., and Ahuja, S., "Reproducible testing of communication software", Proc. COMPSAC 87, 1987, 331–337.

    Google Scholar 

  34. Taylor, R.N., "A general-purpose algorithm for analyzing concurrent programs," Comm. ACM, Vol. 26, No. 5, May 1983, 362–375.

    Article  MATH  Google Scholar 

  35. Wellings, A. J., Keeffe, D., and Tomlinson, G. M., "A problem with Ada and resource allocation", ACM Ada Letters, Jan./Feb., 1984, 112–124.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gary A. Ford

Rights and permissions

Reprints and permissions

Copyright information

© 1988 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tai, KC. (1988). A course on software engineering for concurrent systems. In: Ford, G.A. (eds) Software Engineering Education. SEI 1988. Lecture Notes in Computer Science, vol 327. Springer, New York, NY. https://doi.org/10.1007/BFb0043593

Download citation

  • DOI: https://doi.org/10.1007/BFb0043593

  • Published:

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-0-387-96854-4

  • Online ISBN: 978-0-387-34779-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics