18
Apr. 9, 2005 FInCo 2005 1 Interactive Models for Design of Software-Intensive Systems Dina Goldin Univ. of Connecticut, Brown University http://www.cse.uconn.edu/~dqg with David Keil, Univ. of Connecticut

Interactive Models for Design of Software-Intensive Systems

Embed Size (px)

DESCRIPTION

Interactive Models for Design of Software-Intensive Systems. Dina Goldin Univ. of Connecticut, Brown University http://www.cse.uconn.edu/~dqg with David Keil, Univ. of Connecticut. computation : finite transformation of input to output input : finite-size (string or number) - PowerPoint PPT Presentation

Citation preview

Page 1: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 1

Interactive Models for Design

of Software-Intensive Systems

Dina GoldinUniv. of Connecticut, Brown University

http://www.cse.uconn.edu/~dqg

with David Keil, Univ. of Connecticut

Page 2: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 2

Interactive Computation:Rethinking Basic Assumptions

computation: finite transformation of input to output

input: finite-size (string or number)

closed system: all input available at start, all output generated at end

behavior: functions, algorithmic transformation of input data to output data

Church-Turing thesis: Turing Machines capture this (algorithmic) notion of computation

computation: ongoing process which performs a task or delivers a service

dynamically generated stream of input tokens (requests, percepts, messages)

open system: later inputs depend on earlier outputs and vice versa (I/O entanglement, history dependence)

behavior: processes, components, control devices, reactive systems, intelligent agents

Wegner’s conjecture: Interaction is more powerful than algorithms

Page 3: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 3

Software-Intensive Systems

• Convergence of two technical trends– Software systems are increasingly open, adaptive, and networked

– Everyday technology increasingly relies on embedded processors and communications

• Result: software-intensive (SI) systems – participate in their environment (embodied interaction, Dourish’01)

• Interaction is ubiquitous in SI systems– among software components, between such components and physical

devices, between both and humans, among humans, ….

• One of the best examples of complex systems – as described by Simon (1969)

Page 4: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 4

Science of Design

• Coined by Herbert Simon – the Sciences of the Artificial, 1969

• Refers to design whose goal is to create complex systems.– systems with interactive components

• The design process is a goal-driven search for a path to an artifact that satisfies design constraints.– Compare to the scientific method, which is a search for process

descriptions satisfying observed phenomena.

• Interaction is a fundamental concern.

Page 5: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 5

Process of System Design I

• Process goal is to create a complex system– Designer’s central concern is organizational structure of the

system, and the interaction of its components

• Begins with constraints on interactions (behavior)– can be viewed as system specification

– analogous to architecture, where the objective of design is to build spaces favorable to particular kinds of interaction with and within them

– inherently incomplete

• Searches for a system satisfying the constraints– terminates when results suffice (potentially infinite)

– analogous to anytime algorithms

Page 6: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 6

Process of System Design II

• Explores several tentative paths– often necessary when the design artifact cannot be assembled in

an additive way [Simon]– analogous to evolution (process of design of humans)

• Involves resource allocation– cannot explore all design paths– related to bounded rationality in AI

• Interactive– with iterative refinements based on observation of partial results– analogous to the scientific method– example: in safety-critical systems, a feedback path linking

development of system with analysis of system failure

Page 7: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 7

Simon’s discussion did not refer to software systems

(only to mechanical / hardware systems)

Page 8: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 8

The Shift to Interaction in CS

Computation = transforming input to output

Computation = providing a service over time

Logic and search in AI Intelligent agents, partially observable environments, learning

Procedure-oriented programming

Object-oriented programming

Closed systems Open adaptive systems

Compositional behavior Emergent behavior

Rule-based reasoning Simulation, control, semi-Markov processes

Algorithmic Interactive

Page 9: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 9

Towards SI Systems

• From software systems to software-intensive systems– Computing is distributed, real-time, embedded

– Software is only one aspect

– These are complex systems

• Designer’s central concern is organizational structure of the system, and the interaction of its components– Software components, physical components, human participants

• This is design for interaction– Distinct from software design and from human-computer interaction

– Converging with design of systems in general

– Paradigm shift in design

Page 10: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 10

Paradigm Shift in Design

Context-independent (closed systems)

Embedded and embodied (open systems)

Oriented to non-interactive problems

Oriented to systems that provide some service

Time concerns not formalized (algorithmic computation)

Quality of service (real-time computation)

Compositional behavior (actions combine linearly)

Emergent (non-compositional) behavior

Concern: development of algorithms

Concern: management of interaction

Algorithmic Interactive

Page 11: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 11

Design for Interaction

• Interdisciplinary in origin– drawing from economics, architecture, biology, among others

• Empirical observation as part of design process– driven in part by users of artifacts under design

• Involves prototypes– a continuum from first prototype to finished system

– design and development are merged

– analogous to driving home from work

• Underpinned by a theory of interaction– tools and theoretical underpinnings of algorithmic design do not suffice

Page 12: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 12

Towards Principles of Interaction

• Computational phenomena for complex systems – emergent behavior, stigmergy, self-organization, autonomous

and rational agents, coordination, openness– Cannot be properly understood without further study of the

principles of interaction

• Interactive principles – underlie design representation, reasoning, analysis, synthesis– multidisciplinary inspiration– domain-independent (applies to all components of SI systems)– based on new formal models

• Goal: to enunciate the principles of interaction and to characterize its expressiveness– Example: sequential interaction

Page 13: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 13

Sequential Interaction

• Sequential interactive computation:

system continuously interacts with its environment by alternately accepting an input string

and computing a corresponding output string.

• Examples:

- method invocations of an object instance in an OO language

- a C function with static variables- queries/updates to single-user databases- recurrent neural networks

- control systems- online computation- transducers- dynamic algorithms- embedded systems

Page 14: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 14

Persistent Turing Machine (PTM)

• Dynamic stream semantics- Inputs are streams of dynamically generated tokens (strings).

- For each input token, there is an N3TM computation generating the corresponding output token.

• Persistence (memory)- The contents w of the work tape at the beginning of each N3TM

computation is the same as at the end of the previous one.

...

in1

S0

Shout1

w1

in1 in2

S0

w1

Shout2

w2

in2

Page 15: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 15

PTM Computation

PTM: N3TM with persistent stream-based computational semantics

PTM

memory

Environment

Interaction Stream

stream of inputs

stream of outputs

Sequential Interaction Thesis [GSAS’04]

Whenever there is an effective method for performing sequential interactive computation, this computation

can be performed by a Persistent Turing Machine

Page 16: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 16

PTM Examples

• Example 1: Driving Agent

• Example 2: Answering Machine(simulate AM, will-do),

(record hello, ok), (erase, done), (record FInCO, ok),

(record Workshop, ok), (playback, FInCO Workshop), …

Simulation of other sequential interactive systems is analogous.

• Example 2: Universal PTM– simulates any other PTM

– need additional input describing the PTM (only once)

Page 17: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 17

Mathematics of the Science of Design

• First-order logic does not suffice– only suffices for compositional behavior– behavior of complex systems is not compositional– Reducing computing to FOL is not merely hard but impossible

[WG99a]

• Higher-order logics are needed– E.g. temporal logic of reactive systems

• Inductive approaches do not suffice [WG99b]

– Induction suffices for finite and static inputs and behaviors– Inputs and behaviors of complex systems are infinite and dynamic

• Coinductive approaches to definition & reasoning are needed– E.g. greatest-fixpoint approach for the space of systems satisfying a set

of constraints

Page 18: Interactive Models for Design of Software-Intensive Systems

Apr. 9, 2005 FInCo 2005 18

Looking at the Future

• Multiagent interaction– Multiple autonomous interaction streams

– Concurrent interaction

• Indirect Interaction– Via persistent observable changes to common environment

– In contrast to direct interaction, via message-passing

• Deviceless interaction– via gestures or facial expressions

• This all will require formal models