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.
References
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.
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.
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.
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.
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.
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.
Blazewicz, J. (1987). Selected Topics in Scheduling Theory. Annals of Discrete Mathematics, Vol. 31, pp. 1–60.
Conn, H. C. et al. (1986). Software Tools and Techniques for Embedded Distributed Processing. Noyes Publications, Park Ridge, N. J.
Crichlow, J.M. (1988). Operating Systems for Distributed and Parallel Computing. An Introduction to Distributed and Parallel Computing. Prentice Hall, Englewood Cliffs, N.J.
Dannenberg, R.B. (Aug., 1993). Software Support for Interactive Multimedia Performance. Interface, Vol. 22, No. 3, pp. 213–228.
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.
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.
Faulk et al. (Sept. 1992). The Core Method for Real-Time Requirements. IEEE Software, Vol. 9, No. 5, pp. 22–33.
Gonzalez, Jr., M. J. (1977). Deterministic Processor Scheduling. Computing Surveys, Vol. 9, No. 3, pp. 173–204.
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.
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.
Hatley, D. J.; and Pirbhai, I. A. (1987). Strategies for Real-Time System Specification. Dorset House, New York.
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.
Hood, P.; and Grover, V. (1986). Designing Real-Time Systems in Ada. SofTech, Inc., Technical Report 1123-1.
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.
Howes, N.R. (1991). Real-Time Ada Design Methodologies and Their Impact on Performance. Institute for Defense Analysis Paper P-2488, Arlington, Va.
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.
Isherwood, D. (1991). Dos and Real Time? IEE Third International Conference on Software Engineering for Real-Time Systems, Sept. 16–18, pp. 79–85.
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.
Jha, R.; and Eisenhauer, G. (1989). Distributed Ada-Approach and Implementation. TRI-Ada Proceedings, Oct. 23–26, pp. 439–449.
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.
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.
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.
Laplante, P. A. (1993). Real-Time Systems Design and Analysis: An Engineer's Handbook. IEEE Press, Piscataway, N. J.
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.
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.
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.
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.
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.
Leveson, H.G. (June 1986). “Software Safety: Why, What, and How”. Computing Surveys, Vol. 18, No. 2, pp. 125–163.
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.
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.
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.
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.
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.
McQuown, K. L. (1989). Object Oriented Design in a Real-Time Multiprocessor Environment. Proceedings of TRI-Ada, Oct. 23–26, pp. 570–588.
Mercer C. W. (1992). An Introduction to Real-Time Operating Systems: Scheduling Theory. Carnegie Mellon University, School of Computer Science Working Paper, Pittsburgh, Pa.
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.
Mullender, S., ed. (1989). Distributed Systems. ACM Press, New York.
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.
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.
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.
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.
Ready, J. F. (Aug. 1986). VRTX: A Real-Time Operating System for Embedded Microprocessor Applications. IEEE Micro, Vol. 6, No. 4, pp. 8–17.
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.
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.
Sha, L.; and Goodenough, J. B. (April 1990). Real-Time Scheduling Theory and Ada. Computer, Vol. 23, No. 4, pp. 53–62.
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.
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.
Shin, K. (May 1991). HARTS: A Distributed Real-Time Architecture. Computer, Vol. 24, No. 5, pp. 25–35.
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.
Spector, A. Z. (1989). Achieving Application Requirements on Distributed Systems Architectures. Distributed Systems. Mullendar, S., ed., ACM Press, New York.
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.
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.
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.
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.
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.
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.
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.
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.
Weihl, W.E. (1989). High-Level Specifications for Distributed Programs. Distributed Systems. Mullender, S.J., ed., ACM Press, New York.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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