Automated Software Engineering with Concurrent Class Machines - PowerPoint PPT Presentation

About This Presentation
Title:

Automated Software Engineering with Concurrent Class Machines

Description:

Stack. Frame. Stack. Method Invocation Box (Call) run ... Stack. Frame. Stack. Their body is not known and not part of. Allow any update of public objects. ... – PowerPoint PPT presentation

Number of Views:105
Avg rating:3.0/5.0
Slides: 17
Provided by: radu151
Category:

less

Transcript and Presenter's Notes

Title: Automated Software Engineering with Concurrent Class Machines


1
Automated Software Engineering with Concurrent
Class Machines
Radu Grosu SUNY at Stony Brook joint work with Y.
Liu, S. Smolka, S.Stoller, J. Yan SUNY at Stony
Brook
2
Motivation (ASE)
  • Automated OO software development method
  • OO language for req.specification/modeling/implem
    ,
  • transition semantics capturing OO constructs,
  • trace semantics supporting compositional
    refinement,
  • analysis exploiting OO structure,
  • generation of optimized (and monitored) code.
  • Close the gap between
  • object oriented methods (UML,OMT,),
  • formal methods (Model Checking, Static
    Analysis,).

3
Concurrent Class Machines (CCM)
  • Modeling language for concurrent OO systems
  • classes, inheritance, objects, object creation
  • methods, exceptions, multithreading,
  • abstract collection types, nondeterminism.
  • 2. Observational trace semantics
  • class machine refinement,
  • modular reasoning.
  • 3. Code generation and analysis
  • prototype code generation.
  • exploits the hierarchy information (in progress),

4
Readers/Writers Problem
Resource
Class Diagram
res
m
Monitor
1

1
m

Client
WrCap
5
Classes
attributes
Monitor
Call entry point
return exit point
methods
Method signature
6
Transitions
Monitor
transition (atomic)
guard (blocking)
assignments (parallel)
method can be declared atomic
7
Call Hierarchy (Boxes)
RdCap
local variables
return expression
choice point (nondeterminism)
return variable
method invocation box
object creation box
exception exit point
8
Concurrency
Client extends Thread
-m Monitor
main() void r Resource c Client
new Resource
r
m
c.start
new Monitor(r)
run() void
thread start box
thread run method
9
Operational Semantics
Transition system A (S, s0, ?)
10
Method Invocation Box
Client
-m Monitor
run() int r Resource i int
i
b
v
v
11
Method Invocation Box (Call)
Client
-m Monitor
run() int r Resource i int
i
b
v
v
12
Method Invocation Box (Return)
Client
-m Monitor
run() int r Resource i int
i
b
v
v
13
Environment (Interface) Objects
Static vars, streams
Allow compositional modeling reasoning
  • Their body is not known and not part of ?
  • Allow any update of public objects. The latter
    are
  • determined via an escape analysis.

14
Denotational Semantics
  • Execution of CCM m
  • s0-gt s1-gt s2-gt -gt sn
  • si-gt si1 is a CCM transition in ? or
  • si-gt si1 is an environment transition.
  • Set of Traces Lm of m
  • Projection of executions on global variables.
  • Object escape analysis is necessary.
  • Refinement m lt n
  • Inclusion of the sets of traces Lm ? Ln
  • Compositional w.r.t. beh/arch hierarchies.

15
Modular Reasoning
lt
N
N
N
N
lt
N
N
lt
M
M
M
M
Sub-CCM refinement
Super-CCM refinement
16
Wrap Up
  • Modeling language for concurrent OO systems
  • classes, inheritance, objects, object creation
  • methods, exceptions, multithreading,
  • abstract collection types, nondeterminism.
  • 2. Observational trace semantics
  • class machine refinement,
  • modular reasoning.
  • 3. Code generation and analysis
  • prototype code generation.
  • exploits the hierarchy information (in progress),
Write a Comment
User Comments (0)
About PowerShow.com