Abstract

1
EXTENSIONS TO THE DESCARTES SPECIFICATION LANGUAGE FOR THE DEVELOPMENT OF REAL-TIME OBJECT ORIENTED SYSTEMS Benjamin D. Horne, Vinitha Hannah Subburaj, and Joseph E. Urban Abstract Traditionally, real-time system software focuses on low- level programming techniques to increase timeliness and operate within constraints; however, more recently higher-level, object-oriented methodologies are being used to create real-time system software. This increase in object-oriented design for real-time systems is due to the improved use of active objects and concurrency in object-oriented (OO) languages. Real-time aspects have not only improved in many programming languages, but these real-time constraints are becoming more essential in general object-oriented software development. Consequently, the specification of real-time object-oriented systems is becoming vastly important in today's software development processes. One of the many tools used to specify software is an executable specification language called Descartes [2]. Descartes relates output data to input data as a function of the input data through a tree structure notation called "Hoare trees." This useful specification structure has been extended and supported for several types of systems since the language's creation in 1977. In particular, Descartes has been extended for the specification of real-time systems and for object- oriented designed systems. In spite of this, the combination of the two extensions for specification of today's widespread real-time object oriented (RTOO) systems has not been tested. Thus, the main objective of this research effort was to verify that the combination of the two Descartes extensions either satisfied the needed specification for RTOO systems or that the language needed to be additionally extended. To gain further verification of these united Descartes extensions, the Unified Modeling Language (UML) has been used for comparison in aspects of design and effectiveness. Objectives 1. Study of Descartes and Descartes extensions 2. Study of real-time object oriented systems and design 3. Combine the Descartes object oriented extension with the Descartes real-time extension to create a specification for a real-time object oriented system 4. Verify Descartes' satisfaction of needed specification or propose additional extensions 5. Compare the Descartes specification to a Unified Modeling Language (UML) specification for further verification of design Summary The Descartes specification language with real- time and object oriented extensions satisfies the needed RTOO specification with two additional extensions. This work would be best verified by more RTOO design cases. The language does increase precision of system design; thus, fulfills the intended purpose. References: [1] Software Processors," WikiCommons, 2012. [2] Urban, J. E., A Specification Language and Its Processor, Ph.D. Dissertation, University of Louisiana at Lafayette, 1977. [3] "Tutorials Point: UML," Tutorials Point, 2012. [Online]. Available: http://www.tutorialspoint.com/uml/uml_interaction_diagram.htm. [Accessed 2012]. Descartes Specification Language [2] Descartes is a formal executable specification language based on a functional model; thus, it relates output data to the input data as a function of the input data. The language: uses pattern matching and referencing uses a tree structure notation called a "Hoare tree" to characterize and define data uses three data structuring methods (direct product, discriminated union, sequence) supports top-down development using modules has pre-defined arithmetic primitives, logical primitives, and Boolean primitives Unified Modeling Language (UML) [3] UML is a standard graphical language for specifying, envisioning, and creating software designs UML is made specifically for object oriented design and analysis (Objects, Classes, Abstraction, Inheritance, Polymorphism) UML static and dynamic diagrams include: Class, Object, Component, Deployment, Use Case, Interaction (sequence), State chart, and Activity The Home Heating System Problem (Abbreviated Example Shown) //Operation category: modifier HARDWARE_CONTROL::ACTIVATE_(SYSTEM)_(PRESET_TEMP)_(CHECK_STRUCT_OBJECT) SYSTEM boolean_type+ true 'system is on' false 'system is off' . . . CHECK_STRUCT_OBJECT object_of_class_check_struct CHECK_STRUCT return . . . CHECK_STRUCT_OBJECT.ADEQUATE_MOTOR_SPEED BOOLEAN_TYPE+ TRUE 'motor speed is adequate' parallel FLOW_CONTROL.ACTIVATE_(CHECK_STRUCT_OBJECT.OIL_VALVE) HEAT_CONTROL.ACTIVATE_(CHECK_STRUCT_OBJECT.IGNITION_VALVE) CHECK_STRUCT_OBJECT.OIL_VALVE BOOLEAN_TYPE+ TRUE 'oil valve is activated' FALSE0 NULL . . . CHECK_STRUCT_OBJECT.COMBUSTION BOOLEAN_TYPE+ TRUE 'combustion has not failed' FALSE 'combustion has failed' INSTANT_SHUT_DOWN_(SYSTEM) . . . Future Work Design more RTOO systems in Descartes to verify proposed extensions and language satisfaction Create different designs for the HHS to use more Descartes-RT extensions and gain more verification of those extensions This research is supported by NSF Grant No. CNS 1005212. Opinions, findings, conclusions, or recommendations expressed in this paper are those of the author(s) and do not necessarily reflect the views of NSF Texas Tech University 2012 REU program [1] Proposed Extensions to Descartes The two proposed extensions during this research effort include: • Keyword: abstract- represents a class or method that is not implemented or instantiated. This keyword is similar to the keyword “abstract” used in the Java programming language • Keyword: interface- represents an abstract generic template class that can only contain method signatures and constant variables. This keyword is similar to the keyword “interface” used in the Java programming language Both extensions cover important concepts in OO Design Figure 1: Class Diagram of the HHS Figure 3: Software Development Life Cycle Figure 2: Sequence Diagram of the HHS *The Coloring of the Descartes Code is only used to improve readability

description

Extensions to the Descartes Specification Language for the Development of Real-Time Object Oriented Systems Benjamin D. Horne, Vinitha Hannah Subburaj, and Joseph E. Urban. Unified Modeling Language ( UML ) [3] - PowerPoint PPT Presentation

Transcript of Abstract

Page 1: Abstract

EXTENSIONS TO THE DESCARTES SPECIFICATION LANGUAGE FOR THE DEVELOPMENT OF REAL-TIME OBJECT ORIENTED SYSTEMSBenjamin D. Horne, Vinitha Hannah Subburaj, and Joseph E. Urban

AbstractTraditionally, real-time system software focuses on low-level programming techniques to increase timeliness and operate within constraints; however, more recently higher-level, object-oriented methodologies are being used to create real-time system software. This increase in object-oriented design for real-time systems is due to the improved use of active objects and concurrency in object-oriented (OO) languages.

Real-time aspects have not only improved in many programming languages, but these real-time constraints are becoming more essential in general object-oriented software development. Consequently, the specification of real-time object-oriented systems is becoming vastly important in today's software development processes.

One of the many tools used to specify software is an executable specification language called Descartes [2]. Descartes relates output data to input data as a function of the input data through a tree structure notation called "Hoare trees." This useful specification structure has been extended and supported for several types of systems since the language's creation in 1977. In particular, Descartes has been extended for the specification of real-time systems and for object-oriented designed systems. In spite of this, the combination of the two extensions for specification of today's widespread real-time object oriented (RTOO) systems has not been tested. Thus, the main objective of this research effort was to verify that the combination of the two Descartes extensions either satisfied the needed specification for RTOO systems or that the language needed to be additionally extended.

To gain further verification of these united Descartes extensions, the Unified Modeling Language (UML) has been used for comparison in aspects of design and effectiveness.

Objectives1. Study of Descartes and Descartes extensions

2. Study of real-time object oriented systems and design

3. Combine the Descartes object oriented extension with the Descartes real-time extension to create a specification for a real-time object oriented system

4. Verify Descartes' satisfaction of needed specification or propose additional extensions

5. Compare the Descartes specification to a Unified Modeling Language (UML) specification for further verification of design

Summary The Descartes specification language with real-time and object oriented extensions satisfies the needed RTOO specification with two additional extensions.

This work would be best verified by more RTOO design cases.

The language does increase precision of system design; thus, fulfills the intended purpose.

References: [1] Software Processors," WikiCommons, 2012.

[2] Urban, J. E., A Specification Language and Its Processor, Ph.D. Dissertation, University of Louisiana at Lafayette, 1977.

[3] "Tutorials Point: UML," Tutorials Point, 2012. [Online]. Available: http://www.tutorialspoint.com/uml/uml_interaction_diagram.htm. [Accessed 2012].

Descartes Specification Language [2] Descartes is a formal executable specification language based on a functional model; thus, it relates output data to the input data as a function of the input data. The language:

uses pattern matching and referencing

uses a tree structure notation called a "Hoare tree" to characterize and define data

uses three data structuring methods (direct product, discriminated union, sequence)

supports top-down development using modules

has pre-defined arithmetic primitives, logical primitives, and Boolean primitives

Unified Modeling Language (UML) [3] UML is a standard graphical language for specifying, envisioning, and creating software designs

UML is made specifically for object oriented design and analysis (Objects, Classes, Abstraction, Inheritance, Polymorphism)

UML static and dynamic diagrams include: Class, Object, Component, Deployment, Use Case, Interaction (sequence), State chart, and Activity

The Home Heating System Problem (Abbreviated Example Shown)

//Operation category: modifier

HARDWARE_CONTROL::ACTIVATE_(SYSTEM)_(PRESET_TEMP)_(CHECK_STRUCT_OBJECT)

SYSTEM

boolean_type+

true

'system is on'

false

'system is off'

. . .

CHECK_STRUCT_OBJECT

object_of_class_check_struct

CHECK_STRUCT

return

. . .

CHECK_STRUCT_OBJECT.ADEQUATE_MOTOR_SPEED

BOOLEAN_TYPE+

TRUE

'motor speed is adequate'

parallel

FLOW_CONTROL.ACTIVATE_(CHECK_STRUCT_OBJECT.OIL_VALVE)

HEAT_CONTROL.ACTIVATE_(CHECK_STRUCT_OBJECT.IGNITION_VALVE)

CHECK_STRUCT_OBJECT.OIL_VALVE

BOOLEAN_TYPE+

TRUE

'oil valve is activated'

FALSE0

NULL

. . .

CHECK_STRUCT_OBJECT.COMBUSTION

BOOLEAN_TYPE+

TRUE

'combustion has not failed'

FALSE

'combustion has failed'

INSTANT_SHUT_DOWN_(SYSTEM)

. . .

Future Work Design more RTOO systems in Descartes to verify proposed extensions and language satisfaction

Create different designs for the HHS to use more Descartes-RT extensions and gain more verification of those extensions

This research is supported by NSF Grant No. CNS 1005212. Opinions, findings, conclusions, or recommendations expressed in this paper are those of the author(s) and do not necessarily reflect the views of NSF

Texas Tech University 2012 REU program

[1]

Proposed Extensions to DescartesThe two proposed extensions during this research effort include:

• Keyword: abstract- represents a class or method that is not implemented or instantiated. This keyword is similar to the keyword “abstract” used in the Java programming language

• Keyword: interface- represents an abstract generic template class that can only contain method signatures and constant variables. This keyword is similar to the keyword “interface” used in the Java programming language

Both extensions cover important concepts in OO Design

Figure 1: Class Diagram of the HHS

Figure 3: Software Development Life Cycle

Figure 2: Sequence Diagram of the HHS

*The Coloring of the Descartes Code is only used to improve readability