Title: Renaissance in Software Architecture
1Renaissance in Software Architecture
- Slides for a talk at the
- Colloquium in memory of Gilles Kahn
- Paris, January 12, 2007
- Erik Sandewall
- Linköping University, Sweden
2Computing Environment
- A software system that is an integrated tool
for the development and the use of software.
3Each software environment isan individual in a
software species
Each contains a spectrum from program to
data each of them can evolve over
time.
4Consolidation of the software system Eliminate
design redundancies between
- Operating system (esp. its shell)
- Programming language and system
- Database system
- Various servers their corresponding clients
- Various branches of an office system
- Dialog engine other engines
- Simulation framework other frameworks
- . . .
5Where to start the design?
- A programming language
- Conventions for procedure calls
- An interpretive programming system
- An architecture for processes on the OS level
- A system for datatype declarations
- A programming language and its debugging system
-
6Where to start the design?
- A programming language
- Conventions for procedure calls
- An interpretive programming system
- An architecture for processes on the OS level
- A system for datatype declarations
- A programming language and its debugging system
- A textual representation for structured
information (and for markup of text)
7A textual representation for structured
information (and for markup of text)
- First example S-expressions
- Also textual representation in Python, etc.
- Also XML, RML, OWL
- Alternatives YAML
8A textual representation for structured
informationModes of usage
- Persistent storage between runs
- Presentation to the user, for editing
- Message-passing between processes
- Parametric information for software modules
- High-level knowledge representation
- Archival representation of information
- Integrate in markup language for text
9A textual representation for structured
informationKey issues for the design
- Should the representation be human readable, or
not? - Expressiveness
- Performance requirements
- Assumptions about the computation system where
used
10A textual representation for structured
informationChoices for the design
- Should the representation be human readable, or
not? It should, this is important - Expressiveness High requirements
- Performance requirements Moderate
- Assumptions about the computation system where
used As described above
11An example
- --------------------------------------------------
-------- - -- plan7
- type method
- plan intend t1 t2 (remex uav-01 (check
bridge4)) - intend t1 t3 (remex uav-03 (check
bridge8)) - intend t4 t5 (send group4
position3) - time-constraints afterall t2 t3 t4
- --------------------------------------------------
--------
12Leonardo Data Expression Language
- Entities, strings, numbers
- a1, a2, an
- lta1, a2, angt
- recordtype a1, an, f1 v1,
- tag value a maplet
- (symbfun a1, a2, an)
this is a new entity - predicate a1 an extend to logic
13The Leonardo computation system
Activation of individual
Repository
Real World
User/Operator
14System consolidationleads to realignment of
facilitiesKernel facilities in Leonardo
- Conversion of information structures between
computational and textual form - Command executive
- Management of time on several granularity levels
- Management of modules and configurations
- General purpose version management
- Spawning and migration of software individuals
15Project structure
- Hypothesis A consolidated computation system
along these lines can avoid duplication of
conventions and facilities - Validation Design LDX, system platform, and
several generic applications. Assess whether
duplication was effectively avoided. - Intended result Concise description of the
design, and grounded account of reasons for
distict design decisions.
16Project status
- Representation and platform exist (but subject to
additional, gradual modifications) - A few applications exist and are in actual use,
but by a single user (myself) - Additional applications are intended to be ported
from previously developed platform - Documented on
- http//www.ida.liu.se/ext/leonardo/
17Earlier work
- No full match (as far as I know)
- Earlier work on programming environments, in
particular in the context of dynamic
programming languages - Systematic design of document editing and
formatting systems - Very much in the tradition(s) that were pioneered
by Gilles Kahn.
18This is not the End.