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.
Preview
Unable to display preview. Download preview PDF.
References
Agerberg, J., "The simplest? Ada solution to the dining philosophers problem", ACM Ada Letters, July/August, 1985, 44–48.
Andrews, G. R., and Schneider, F. B., Concepts and notations for concurrent programming," ACM Computing Surveys, Vol. 15, No.1, March 1983, 3–43.
Boddy, D. E. "Implementing data abstractions and monitors in UCSD Pascal," ACM SIGPLAN Notices, Vol. 18, No. 5, May 1983, 15–24.
Boddy, D. E., "On the design of monitors with priority conditions," ACM SIGPLAN Notices, Vol. 19, No. 2, February, 1984, 38–46.
Brinch Hansen, P., "Testing a multiprogramming system", Software-Practice and Experience, Vol. 3, 1973, 145–150.
Brinch Hansen, P., "Reproducible testing of monitors," Software-Practice and Experience, Vol. 8, 1978, 721–729.
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.
Campbell, R. H., and Kolstad, R. B., "Path Expressions in Pascal" Proc. 4th Inter. Conf. Software Engineering, 1979, 212–219.
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.
Clark, R., and Koehler, S., The UCSD Pascal Handbook, Prentice-Hall, 1982.
Fairley, R. E., Software Engineering Concepts, McGraw-Hill, 1985.
Filman, R. E., and Friedman, D. P., Coordinated Computing: Tools and Techniques for Distributed Software, McGraw-Hill, 1984.
Gait, J, "A probe effect in concurrent programs," Software-Practice and Experience, March 1986, 225–233.
Gehani, N., Ada: Concurrent Programming, Prentice-Hall, 1984.
Gehani, N., and Roome, W. D., "Concurrent C," Software-Practice and Experience, Sept. 1986, 821–844.
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.
Helmbold, D., and Luckham, D., "Debugging Ada tasking programs," IEEE Software, Vol. 2, No. 2, March 1985, 47–57.
Helmbold, D., "TSL: task specification language," Proc. Ada Inter. Conf. (ACM Ada LETTERS, Vol. V, Issue 2, Sept./Oct. 1985), 255–274.
Hoare, C.A.R., "Monitors: an operating system structuring concept," Comm. ACM, Vol. 17, No. 10, Oct. 1974, 549–557.
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.
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.
Nielsen, K. W., and Shumatre, K., "Designing large realtime systems with Ada", Comm. ACM, Vol. 30, No. 8, August 1987, 695–715.
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.
Peterson, J. A., and Silberschatz, A., Operating system concepts, Addison-Wesley, 1985.
Ramamritham, K., and Keller, R. M., "Specification of synchronizing processes," IEEE Trans. Soft. Eng., Vol. SE-9, No. 6, Nov. 1983, 722–733.
Rovner, P., "Extending Modula-2 to build large, integrate systems", IEEE Software, Vol. 3, No. 6, Nov. 1986, 46–57.
Smedema, C. H., Medema, P., and Boasson, M., The Programming Languages Pascal, Modula, Chill and Ada, Prentice-Hall, 1983.
Shatz, S. M., and Yau, S. S., "A partitioning algorithm for the design of distributed software systems", Information Sciences, April 1986, 165–180.
Shatz, S. M., and Wang, J. P., "Introduction to distributed software engineering", Computer, October 1987, 23–31.
Tai, K. C., "On testing concurrent programs," Proc. COMPSAC 85, Oct. 1985, 310–317.
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.
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.
Tai, K. C., and Ahuja, S., "Reproducible testing of communication software", Proc. COMPSAC 87, 1987, 331–337.
Taylor, R.N., "A general-purpose algorithm for analyzing concurrent programs," Comm. ACM, Vol. 26, No. 5, May 1983, 362–375.
Wellings, A. J., Keeffe, D., and Tomlinson, G. M., "A problem with Ada and resource allocation", ACM Ada Letters, Jan./Feb., 1984, 112–124.
Author information
Authors and Affiliations
Editor information
Rights 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