Title: EPOXI towards Specification Carrying Software
1EPOXI - towards Specification Carrying Software -
Kestrel Institute Palo Alto, California www.kestre
l.edu June 2001
2Contents
- ADLs vs EPOXI
- Architecture of architecture
- Our contribution
- Specification Carrying Software
- Gauges from specifications
- Specs and Specware
- Kestrelwares
- Evolving specs and EPOXI
- Automating architectural composition
- Benefits and tech transfer
3ADLs vs EPOXI
- ADLs ? interoperability of components, and of
systems - EPOXI ? interoperability of ADLs, and of systems
4Architecture of architecture
But in the current ADLs
What do architects do?
- There are GAPS between
- high-level architectural views and
- low-level domain-specific extensions.
- they apply generic patterns and components
(design and modify systems)
- behavior, dynamics uninterpreted
- all claim extensibility, but
- extensions and DSL interpretaters tend to be
low-level
5Benefit of EPOXI
- all mathematically expressible properties can be
represented without external imports - easy scripting for domain-specific macro
extensions (MONTAGES)
6Assembly problems...
7... and solutions
specs
interfaces
8Specification Carrying Software
Specification Carrying Software
EPOXI
9Specification Carrying Software
literate software
- software extended with
- comments in a generic specification language, or
- Floyd-Hoare annotations as first-class citizens
(available to the runtime machine)
- specifications extended with
- executable (partial) implementations, or
- abstract, but verifiable behaviors
dynamic!
10Specification Carrying Software
? P,?????, S?
11Specification Carrying Software
simulates behavior
interprets structure
12Gauges from specifications
13Specs
- encapsulating presentations
spec Poset is sort X op lt XX -gt Bool
ax trans is xlty /\ yltz gt xltz ax
sym... end-spec
spec Semilattice is sort X op V in XX -gt
X cons b X ax assoc is (xVy)Vz
xV(yVz) end-spec
14Specware
- composing software using categories
VM
OS
pushout
PP
15Specware
- preserving design records
16Specware
- genericity, parametricity
17Specware
18Kestrelwares domain-specific software synthesis
19Kestrelwaresour tech base
Planware
Designware
Specware
20Kestrelwaresour tech base
Specware
21EPOXI
Evolver??
Adaptaware?
EPOXI
22Specs
- encapsulating presentations
spec Poset is sort X op lt XX -gt Bool
ax trans is xlty /\ yltz gt xltz ax
sym... end-spec
spec Semilattice is sort X op V in XX -gt
X cons b X ax assoc is (xVy)Vz
xV(yVz) end-spec
23Especs
espec Basic_Acct is spec end-spec
prog stad Create initX is stad
Amountself is step Deposself,d
Amountself -gt Amountself,d
cond dgt0 balance(self)-gt
balance(self)d end-step end-prog end-espec
24EPOXI
- states are models
- models are refinements
state descriptions
specs
steps (transitions)
interpretations
25Especs
- Def. Evolving spec (espec) A consists of
- specA
- progA
- stA shapeA? (specA /Spec )op
- condA edgeA ? L(specA )
26Especs
- Def. An espec morphism f A?B consists of
27Especs
28Especs
- ... satisfying the guard condition
?uf0(k)?n
29Composing especs
30Composing especs
31Composing especs
32Composing especs
33Architectural composition
comp
34Benefits
- Adaptable systems of specification carrying
components - Semantically based architectural composition
- genericity polymorphic components, connectors,
patterns, classified in taxonomies - glue automated generation of joint instances of
parameters - formal computation of composite systems
- Math foundation for automated dynamic assembly
- composition by pushouts
- not only of specs, but also of program modules
- computation of all possible interactions between
processes - including un(der)specified processes attacker in
protocols - dynamics reduced to logic theorem prover as
universal gauge
35Tech transfer
- Collaborations
- WG CMU, SRI, Teknowledge
- Georgia Tech, UMass
- Oxford, T.U. Berlin, Nijmegen
- Potential customers
- Northorp-Grumann
- NSA