Skip to main content

The role of the software engineer in real-time software development: An introductory course

  • Conference paper
  • First Online:

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

Abstract

A noteworthy feature of the computing industry is the increasing demand for application-specific software. For example, software to control a factory in real-time involves timing, fault-tolerance, and safety constraints. These requirements differ from those one would encounter in the design of a software interface to a database. Software engineers who architect real-time systems need to know how to apply basic principles about real-time computing, but there is a gap between real-time computing theory and industrial engineering practice. The subject of this report is a full-semester course, Introduction to Real-Time Software and Systems, which bridges this gap by focusing on the role of the software engineer in real-time software development. This course shows how real-time computing theory can be incorporated into software engineering practice. The report describes the rationale, structure, and content of the course. It also relates the author's experiences in teaching the course.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abbott, R.; and Garcia-Molina, H. (1988). Scheduling Real-Time Transactions: A Performance Evaluation. Princeton University, Dept. of Computer Science Technical Report CS-TR-146-88, Princeton, N.J.

    Google Scholar 

  2. Attiya, H.; and Lynch, N. A. (1991). Theory of Real-Time Systems: Project Survey. Foundations of Real-Time Computing: Formal Specifications and Methods. van Tilborg, A. M.; and Koob, G. M., eds. Kluwer Academic Publishers, Boston.

    Google Scholar 

  3. Avrunin, G. S.; and Wileden, J. C. (1991). Automated Analysis of Concurrent and Real-Time Software. Foundations of Real-Time Computing: Formal Specifications and Methods. van Tilborg, A. M.; and Koob, G. M., eds. Kluwer Academic Publishers, Boston.

    Google Scholar 

  4. Bagrodia, R.; and Shen, C. (1991). Integrated Design, Simulation, and Verification of Real-Time Systems. 11th International Conference on Distributed Computing Systems, May 20–24, pp. 164–171.

    Google Scholar 

  5. Baker, T.; and Pazy, O. (1991). Real-Time Features for Ada 9X. Proceedings of the 12th IEEE Real-Time Systems Symposium, Dec. 4–6, pp. 172–180.

    Google Scholar 

  6. Baker, T.P.; and Shaw, A. (1988). The Cyclic Executive Model and Ada. Proceedings of the 9th IEEE Real-Time Systems Symposium, Dec. 6–8, pp. 120–129.

    Google Scholar 

  7. Blazewicz, J. (1987). Selected Topics in Scheduling Theory. Annals of Discrete Mathematics, Vol. 31, pp. 1–60.

    Google Scholar 

  8. Conn, H. C. et al. (1986). Software Tools and Techniques for Embedded Distributed Processing. Noyes Publications, Park Ridge, N. J.

    Google Scholar 

  9. Crichlow, J.M. (1988). Operating Systems for Distributed and Parallel Computing. An Introduction to Distributed and Parallel Computing. Prentice Hall, Englewood Cliffs, N.J.

    Google Scholar 

  10. Dannenberg, R.B. (Aug., 1993). Software Support for Interactive Multimedia Performance. Interface, Vol. 22, No. 3, pp. 213–228.

    Google Scholar 

  11. Davis, A. M. (Sept 1988). A Comparison of Techniques for the Specification of External System Behavior. Communications of the ACM, Vol. 31, No. 9, pp. 1098–1115.

    Google Scholar 

  12. Faulk, S. R.; and Parnas, D. L. (March 1988). On Synchronization in Hard-Real-Time Systems. Communications of the ACM, Vol. 31, No. 3, pp. 274–287.

    Google Scholar 

  13. Faulk et al. (Sept. 1992). The Core Method for Real-Time Requirements. IEEE Software, Vol. 9, No. 5, pp. 22–33.

    Google Scholar 

  14. Gonzalez, Jr., M. J. (1977). Deterministic Processor Scheduling. Computing Surveys, Vol. 9, No. 3, pp. 173–204.

    Google Scholar 

  15. Graham, R. L.; Lawler, E. L.; Lenstra, J. K.; and Rinnooy Kan, A. H. G. (1979). Optimization and Approximation in Deterministic Sequencing and Scheduling: A Survey. Annals of Discrete Mathematics, Vol. 5, pp. 287–326.

    MathSciNet  Google Scholar 

  16. Haikala, I.; and Marijarvi, J. (1992). (Continuing) Education of Software Professionals. Proceedings of the Software Engineering Education: SEI Conference, Oct. 5–7, Springer-Verlag, Berlin, pp. 180–193.

    Google Scholar 

  17. Hatley, D. J.; and Pirbhai, I. A. (1987). Strategies for Real-Time System Specification. Dorset House, New York.

    Google Scholar 

  18. Hayes-Roth, Barbara. (May 1990). Architectural Foundations for Real-Time Performance in Intelligent Agents. Real-Time Systems, Vol. 2, Nos. 1&2, pp. 99–125.

    Google Scholar 

  19. Hood, P.; and Grover, V. (1986). Designing Real-Time Systems in Ada. SofTech, Inc., Technical Report 1123-1.

    Google Scholar 

  20. Hoover, C. L. (1993). TAP-D: A Model for Developing Specialization Tracks in Graduate Software Engineering Education. Carnegie Mellon University, School of Computer Science Technical Report CMU-CS-93-181, Pittsburgh, Pa.

    Google Scholar 

  21. Howes, N.R. (1991). Real-Time Ada Design Methodologies and Their Impact on Performance. Institute for Defense Analysis Paper P-2488, Arlington, Va.

    Google Scholar 

  22. Huang, J. (1991). Real-Time Transaction Processing: Design, Implementation and Performance Evaluation. University of Massachusetts at Amherst, Dept. of Computer and Information Science Technical Report 91-41, Amherst, Mass.

    Google Scholar 

  23. Isherwood, D. (1991). Dos and Real Time? IEE Third International Conference on Software Engineering for Real-Time Systems, Sept. 16–18, pp. 79–85.

    Google Scholar 

  24. Jahanian, F.; and Mok, A. K. L. (Sept. 1986). Safety Analysis of Timing Properties in Real-Time Systems. IEEE Transactions on Software Engineering, Vol. SE-12, No. 9, pp. 890–904.

    Google Scholar 

  25. Jha, R.; and Eisenhauer, G. (1989). Distributed Ada-Approach and Implementation. TRI-Ada Proceedings, Oct. 23–26, pp. 439–449.

    Google Scholar 

  26. Kligerman, E.; and Stoyenko, A. D. (Sept. 1986). Real-Time Euclid: Language for Reliable Real-Time Systems. IEEE Transactions on Software Engineering, Vol. SE-12, No. 9, pp. 941–949.

    Google Scholar 

  27. Krishna, C.M.; and Lee, Y.H. (March 1992). Workshop Report: 1991 Workshop on Architectural Aspects of Real-Time Systems. Real-Time Systems, Vol. 4, No. 1, pp. 85–87.

    Google Scholar 

  28. Lala, J.; Harper, R.; and Alger, L. (May 1991). A Design Approach for Ultrareliable Real-Time Systems. Computer, Vol. 24, No. 5, pp. 12–22.

    Google Scholar 

  29. Laplante, P. A. (1993). Real-Time Systems Design and Analysis: An Engineer's Handbook. IEEE Press, Piscataway, N. J.

    Google Scholar 

  30. Lawson, J. T.; and Mariani, M. P. (1979). Distributed Data Processing System Design — A Look at the Partitioning Problem. Tutorial: Distributed Systems Design, IEEE Computer Society Press, pp. 225–230.

    Google Scholar 

  31. Lee, P.; and Nehman, W. (Nov.-Dec. 1991). An Overview of Real-Time Issues and Ada. ACM Ada Letters, Vol. 11, No. 9, pp. 83–95.

    Google Scholar 

  32. Lee, I.; Davidson, S.; and Gerber, R. (1991). Communicating Shared Resources: A Paradigm for Integrating Real-Time Specification and Implementation. Foundations of Real-Time Computing: Formal Specifications and Methods, van Tilborg, A. M.; and Koob, G. M., eds. Kluwer Academic Publishers, Boston.

    Google Scholar 

  33. Lehoczky, J. P.; Sha, L.; Strosnider, J. K.; and Tokuda, Hide. (1991). Fixed Priority Scheduling Theory for Hard Real-Time Systems. Foundations of Real-Time Computing Scheduling and Resource Management, van Tilborg, A. M.; and Koob, G. M., eds. Kluwer Academic Publishers, Boston.

    Google Scholar 

  34. Le Lann, G. (1990). Critical Issues for the Development of Distributed Real-Time Computing Systems. Proceedings of the Second IEEE Workshop on Future Trends of Distributed Computing Systems, Sept. 30-Oct. 2, pp. 96–105.

    Google Scholar 

  35. Leveson, H.G. (June 1986). “Software Safety: Why, What, and How”. Computing Surveys, Vol. 18, No. 2, pp. 125–163.

    Google Scholar 

  36. Liu, C. L.; and Layland, J. W. (1973). Scheduling Algorithms for Multiprogramming in a Hard Real Time Environment. Journal of the ACM, Vol. 20, No. 1, pp. 46–61.

    Article  Google Scholar 

  37. Locke, C. D. (March 1992). Software Architecture for Hard Real-Time Applications: Cyclic Executives vs. Fixed Priority Executive. Real-Time Systems, Vol. 4, No. 1, pp. 37–53.

    Google Scholar 

  38. Locke, C.D.; Vogel, D.R.; and Mesler, T.J. (1991). Building a Predictable Avionics Platform in Ada: A Case Study. Proceedings of the Twelfth Real-Time System Symposium, Dec. 4–6, pp. 181–189.

    Google Scholar 

  39. Mann, P.; Mason, A.; and Norris, M.T. (1991). Industrial Training for Software Engineers. Proceedings of the Software Engineering Education: SEI Conference, Oct. 7 & 8, Springer-Verlag, Berlin, pp. 99–113.

    Google Scholar 

  40. Marchewka, C. (1991). Teaching Software Engineering for Real-Time Design. Proceedings of the Software Engineering Education: SEI Conference, Oct. 7 & 8, Springer-Verlag, Berlin, pp. 235–244.

    Google Scholar 

  41. McQuown, K. L. (1989). Object Oriented Design in a Real-Time Multiprocessor Environment. Proceedings of TRI-Ada, Oct. 23–26, pp. 570–588.

    Google Scholar 

  42. Mercer C. W. (1992). An Introduction to Real-Time Operating Systems: Scheduling Theory. Carnegie Mellon University, School of Computer Science Working Paper, Pittsburgh, Pa.

    Google Scholar 

  43. Mok, A. K. (1991). Towards Mechanization of Real-Time Systems Design. Foundations of Real-Time Computing: Formal Specifications and Methods. van Tilborg, A. M.; and Koob, G. M., eds. Kluwer Academic Publishers, Boston.

    Google Scholar 

  44. Mullender, S., ed. (1989). Distributed Systems. ACM Press, New York.

    Google Scholar 

  45. Muppala, J.; Woolet, S.; and Trivedi, K. (May 1991). Real-Time Systems Performance in the Presence of Failures. Computer, Vol. 24, No. 5, pp. 37–47.

    Google Scholar 

  46. Park, C.; and Shaw, A. (May 1991). Experiments with a Program Timing Tool Based on Source Level Timing Scheme. Computer, Vol. 24, No. 5, pp. 48–57.

    Google Scholar 

  47. Parnas, D.L.; Clements, P.C.; and Weiss, D.M. (March 1985). The Modular Structure of Complex Systems. IEEE Transactions on Software Engineering, Vol. SE-11, No. 3, pp. 259–266.

    Google Scholar 

  48. Puschner, P.; and Koza, C. (Sept. 1989). Calculating the Maximum Execution Time of Real-Time Programs. Real-Time Systems, Vol. 1, No. 2, pp. 159–176.

    Google Scholar 

  49. Ready, J. F. (Aug. 1986). VRTX: A Real-Time Operating System for Embedded Microprocessor Applications. IEEE Micro, Vol. 6, No. 4, pp. 8–17.

    Google Scholar 

  50. Salem, F.K.; AL-Rowaihi; and Rodd, M.G. (1991). An Object-Oriented Approach to Modeling Real-Time Software. IEEE Third International Conference on Software Engineering for Real-Time Systems, Sept. 16–18, pp. 69–71.

    Google Scholar 

  51. Saponas, T.G.; and Demuth, R. B. (1992). The Distributed iRMX Operating System: A Real-Time Distributed System. Mission Critical Operating Systems. Agrawala, A. K.; Gordon, K. D.; and Hwang, P., eds., IOS Press, Amsterdam.

    Google Scholar 

  52. Sha, L.; and Goodenough, J. B. (April 1990). Real-Time Scheduling Theory and Ada. Computer, Vol. 23, No. 4, pp. 53–62.

    Google Scholar 

  53. Sha, L.; and Sathaye, S.S. (Jan. 1994). Generalized Rate-Monotonic Scheduling Theory: A Framework for Developing Real-Time Systems. Proceedings of the IEEE, Vol. 82, No. 1, pp. 68–82.

    Google Scholar 

  54. Sha, L.; and Sathaye, S.S. (Sept. 1993). A Systematic Approach to Designing Distributed Real-Time Systems. Computer, Vol. 26, No. 9, pp. 68–78.

    Google Scholar 

  55. Shin, K. (May 1991). HARTS: A Distributed Real-Time Architecture. Computer, Vol. 24, No. 5, pp. 25–35.

    Google Scholar 

  56. Son, S. H.; Lin, Y.; and Cook, R. P. (1991). Concurrency Control in Real-Time Database Systems. Foundations of Real-Time Computing: Scheduling and Resource Management, van Tilborg, A. M.; and Koob, G. M., eds. Kluwer Academic Publishers, Boston.

    Google Scholar 

  57. Spector, A. Z. (1989). Achieving Application Requirements on Distributed Systems Architectures. Distributed Systems. Mullendar, S., ed., ACM Press, New York.

    Google Scholar 

  58. Sprunt, B.; Sha, L.; and Lehoczky, J. P. (June 1989). Aperiodic Task Scheduling for Hard Real-Time Systems. Real-Time Systems, Vol. 1, No. 1, pp. 27–60.

    Google Scholar 

  59. Stankovic, J. A. (1988). Real-Time Computing Systems: The Next Generation. Tutorial: Hard Real-Time Systems. Stankovic, J. A.; and Ramamritham, K., eds., IEEE Computer Society Press, pp. 13–38.

    Google Scholar 

  60. Stankovic, J. A.; and Ramamritham, K. (July 1989). The Spring Kernel: A New Paradigm for Real-Time Operating Systems. ACM Operating Systems Review, Vol. 23, No. 3, pp. 54–71.

    Google Scholar 

  61. Stewart, D.B.; and Khosla, P.K. (May 1991). Real-Time Scheduling of Sensor-Based Control Systems. Proceedings of the IFAC/IFIP Workshop, May 15–17, pp. 139–144.

    Google Scholar 

  62. Stewart, D.B.; Schmitz, D.E.; and Khosla, P.K. (Nov.–Dec. 1992). The Chimera II Real-Time Operating System for Advanced Sensor-Based Control Applications. IEEE Transactions on Systems, Man, and Cybernetics, Vol. 22, No. 6, pp. 1282–1295.

    Google Scholar 

  63. Stewart, D.B.; Volpe, R.A.; and Khosla, P.K. (1992). Integration of Real-Time Software Modules for Reconfigurable Sensor-Based Control Systems. IEEE/RSJ International Conference on Intelligent Robots and Systems, July 7–10.

    Google Scholar 

  64. Tokuda, H.; Nakajima, T.; and Rao, P. (Oct. 1990). Real-Time Mach: Towards a Predictable Real-Time System. Proceedings of the Usenix Mach Workshop, pp. 1–10.

    Google Scholar 

  65. Ward, S.J.; and Mellor, P.T. (1985). Structured Development for Real-Time Systems. Vols. 1–3. Yourdon Press, Prentice-Hall Co., Englewood Cliffs, N. J.

    Google Scholar 

  66. Weihl, W.E. (1989). High-Level Specifications for Distributed Programs. Distributed Systems. Mullender, S.J., ed., ACM Press, New York.

    Google Scholar 

  67. Wood, D.P.; and Wood, W.G. (1989). Comparative Evaluations of Four Specification Methods for Real-Time Systems. Carnegie Mellon University, Software Engineering Institute Technical Report CMU/SEI-89-TR-36 (ESD-89-TR-47), Pittsburgh, Pa.

    Google Scholar 

  68. Xu, J.; and Parnas, D. L. (1992). Automated Pre-Run-Time Scheduling in Hard-Real-Time Systems. Proceedings of the Ninth IEEE Workshop on Real-Time Operating Systems and Software, pp. 91–95.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Rosalind L. Ibrahim

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hoover, C.L. (1995). The role of the software engineer in real-time software development: An introductory course. In: Ibrahim, R.L. (eds) Software Engineering Education. CSEE 1995. Lecture Notes in Computer Science, vol 895. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58951-1_103

Download citation

  • DOI: https://doi.org/10.1007/3-540-58951-1_103

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58951-8

  • Online ISBN: 978-3-540-49167-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics