Advertisement

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

  • Carol L. Hoover
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Software Engineer Guest Lecturer Natural Language Description Software Life Cycle Lecture Topic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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. 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. 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. 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. 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. 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. 7.
    Blazewicz, J. (1987). Selected Topics in Scheduling Theory. Annals of Discrete Mathematics, Vol. 31, pp. 1–60.Google Scholar
  8. 8.
    Conn, H. C. et al. (1986). Software Tools and Techniques for Embedded Distributed Processing. Noyes Publications, Park Ridge, N. J.Google Scholar
  9. 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. 10.
    Dannenberg, R.B. (Aug., 1993). Software Support for Interactive Multimedia Performance. Interface, Vol. 22, No. 3, pp. 213–228.Google Scholar
  11. 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. 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. 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. 14.
    Gonzalez, Jr., M. J. (1977). Deterministic Processor Scheduling. Computing Surveys, Vol. 9, No. 3, pp. 173–204.Google Scholar
  15. 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.MathSciNetGoogle Scholar
  16. 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. 17.
    Hatley, D. J.; and Pirbhai, I. A. (1987). Strategies for Real-Time System Specification. Dorset House, New York.Google Scholar
  18. 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. 19.
    Hood, P.; and Grover, V. (1986). Designing Real-Time Systems in Ada. SofTech, Inc., Technical Report 1123-1.Google Scholar
  20. 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. 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. 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. 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. 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. 25.
    Jha, R.; and Eisenhauer, G. (1989). Distributed Ada-Approach and Implementation. TRI-Ada Proceedings, Oct. 23–26, pp. 439–449.Google Scholar
  26. 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. 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. 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. 29.
    Laplante, P. A. (1993). Real-Time Systems Design and Analysis: An Engineer's Handbook. IEEE Press, Piscataway, N. J.Google Scholar
  30. 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. 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. 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. 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. 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. 35.
    Leveson, H.G. (June 1986). “Software Safety: Why, What, and How”. Computing Surveys, Vol. 18, No. 2, pp. 125–163.Google Scholar
  36. 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.CrossRefGoogle Scholar
  37. 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. 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. 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. 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. 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. 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. 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. 44.
    Mullender, S., ed. (1989). Distributed Systems. ACM Press, New York.Google Scholar
  45. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 55.
    Shin, K. (May 1991). HARTS: A Distributed Real-Time Architecture. Computer, Vol. 24, No. 5, pp. 25–35.Google Scholar
  56. 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. 57.
    Spector, A. Z. (1989). Achieving Application Requirements on Distributed Systems Architectures. Distributed Systems. Mullendar, S., ed., ACM Press, New York.Google Scholar
  58. 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. 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. 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. 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. 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. 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. 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. 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. 66.
    Weihl, W.E. (1989). High-Level Specifications for Distributed Programs. Distributed Systems. Mullender, S.J., ed., ACM Press, New York.Google Scholar
  67. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Carol L. Hoover
    • 1
  1. 1.School of Computer ScienceCarnegie Mellon UniversityPittsburgh

Personalised recommendations