Title
Specifying Subtypes In Scj Programs
Keywords
duration; Java modeling language (JML); performance; SafeJML; safety critical Java (SCJ); timing behavior; WCET
Abstract
Modular reasoning about programs that use subtypes requires that an overriding method in a subtype obeys the specifications of all methods that it overrides. For example, if method m is specified in a supertype T to take at most 42 nanoseconds to execute, then m cannot take more than 42 nanoseconds to execute in any subtype of T. Subtyping is an important aid to maintenance of programs, since it allows one to write polymorphic code (reducing code size and increasing reuse), and allows for convenient extension and enhancement of programs, all of which could be very useful in real-time programming. In this paper we show how to specify timing constraints for subtypes in a way that: permits modular reasoning about timing constraints, supports subtype polymorphism and object-oriented design patterns, and still permits precise reasoning about execution times. This technique supports object-oriented coding and design patterns based on subtype polymorphism, with all their maintenance advantages, to be used in real-time software. © 2011 ACM.
Publication Date
11-14-2011
Publication Title
ACM International Conference Proceeding Series
Number of Pages
40-46
Document Type
Article; Proceedings Paper
Personal Identifier
scopus
DOI Link
https://doi.org/10.1145/2043910.2043917
Copyright Status
Unknown
Socpus ID
80755181054 (Scopus)
Source API URL
https://api.elsevier.com/content/abstract/scopus_id/80755181054
STARS Citation
Haddad, Ghaith and Leavens, Gary T., "Specifying Subtypes In Scj Programs" (2011). Scopus Export 2010-2014. 1949.
https://stars.library.ucf.edu/scopus2010/1949