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

## 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## Preview

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.MathSciNetGoogle 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.CrossRefGoogle 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