Wisdom is not the product of schooling

but the lifelong attempt to acquire it.

- Albert Einstein



Evolution of Complex Systems


Gerhard Fischer


Collaborative Design and Learning Class, April 21st, 1997

Philosophical Foundation

the basic message: computational systems of the future

will be complex, embedded systems

need to be open and not closed

need to evolve

An Example of Closed versus Open Systems: Simcity

SimCity allows users to build a city within the framework, object sets, and constraints provided

apart from the SimCity Urban Renewal Kit (SCURK)-an add-on module to increase user control-it is a closed system

example: too much crime

- solution supported: build more police stations (fight crime)

- solution not supported: increase social services, improve education (prevent crime)

claim: SimCity fails when applied to "real" city-planning problems (such as the Boulder HOP design)

challenge: build a Simcity-like environment which is open and can evolve

Theory and Practice of Design-A Quest for Evolution

Dawkins - "The Blind Watchmaker": big-step reductionism cannot work as an explanation of mechanism; we can't explain a complex thing as originating in a single step

Simon - "The Sciences of the Artificial": complex systems evolve faster if they can build on stable subsystems

Petroski - "To Engineer Is Human": the role of failure in successful design

Brooks - "No Silver Bullet": successful software gets changed, because it offers the possibility to evolve

Polanyi - "The Tacit Dimension": knowledge is tacit ----> we know more than we can say

Karl Popper: Conjectures and Refutations

John Archibald Wheeler: "our whole problem is to make the mistakes as fast as possible" (foreword to the book) - breakdowns as opportunities


criticism of our conjectures is of decisive importance and all of our knowledge grows only through the correcting of our mistake- critiquing systems


there are all kinds of sources of our knowledge but none has authority - symmetry of ignorance and mutual competency


the advance of knowledge consists in the modification of earlier knowledge - evolution

The Evolution of Technology


from medium to artifacts

from material to architecture

from intrinsic properties to goals, objectives, and use contexts

examples:

- 500 hammer story (in 1867) - the main issue is not the material or the medium, but the different task structures

- "software" engineering (we emphasize the medium/material)

- in other domains: we do not speak of concrete or steel engineering, but of civil engineering, electrical engineering, bridges, office buildings

The 500 Hammer Story (in 1867)

The Economic Forces for Evolution in Software Systems

the most critical software problem is the cost of maintenance and evolution

- empirical studies of software costs: two-thirds of the costs of a large system occur after the system is delivered

- claim: much of this cost is due to the fact that a considerable amount of essential information (such as design rationale) is lost during development and must be reconstructed by the designers who maintain and evolve the system.

make enhancements and evolution "first class" activities in the lifetime of an artifact

- accept the reality of change

- acknowledge increased up-front costs (cognitive and economics)

Domain-Oriented Design Environments and Evolution

support the construction and evolution of domains (program families)

empirical fact: reuse is most successful within domains

not just objects, but:

- case libraries (different granularity)

- critiquing (accumulated "wisdom" of a community of practice

- specification component - partial characterization of a situation model

- simulation - to understand the behavior

- argumentation - to explore the rationale behind the artifact

SER model is a process model to seed, evolve and reseed an economy of educational knowledge

Evolution in Domain-Oriented Design Environments

the seeding, evolutionary growth, and reseeding process model

group memories

- collection of shared information repositories containing a cumulative record of rationale, solution components, and information about prior activities in the same and related projects

- how does information get into the memory and how does it accumulate?- "who is the beneficiary and who has to do the work"

- how is information in the memory made available to the individual designer and contextualized to specific tasks?

"back-talk" of a partially constructed, externalized artifact

- many situations are mute - they do not talk back

- mechanisms to increase the "back-talk": critiquing, simulation, testing

- the "back-talk" needs to be addressed to the users, not to the developers (because they experience breakdowns

The SER Model

Seeding, Evolutionary Growth and Reseeding

seeding

- seed a domain-specific DODE using the domain-independent, multi-faceted architecture

- provide representations for mutual learning and understanding between the involved stakeholders

- make the seed useful and usable enough that it is used by domain workers

evolutionary growth

- co-evolution between individual artifacts and the DODE

- learning on demand and end-user modifiability complement each other

reseeding

- formalize, generalize, structure

- a social and technical challenge

success example of the SER model:

- development of operating systems

- "communities of practice"

Evolution at All Three Levels

evolution at the conceptual framework level

- end-user modifiable DODEs

- example: multifaceted, domain-independent architecture

evolution of the domain

- evolution was driven by new needs and expectations of users as well as new technology

- example: computer network design

evolution of individual artifacts

- long-term, indirect collaboration

- design rationale

- example: the computer network at CU Boulder

co-evolution

- problem framing and problem solving (specification and implementation)

- individual artifact and generic, domain-oriented design environment

An Evolutionary Analogy: Ontogeny and Phylogeny

Ontogeny = development of an individual organism

- a design can be described and tested against the knowledge contained in the design environment

- breakdowns lead to new insights

- enhancements are the major part of real software systems and should be done by the application domain workers

Phylogeny = history of a species

- background knowledge can never be completely articulated

- design knowledge is tacit

- design practice changes with time

Co-Evolution: ontogenic and phylogenic design activities are dependent on each other

Examples:

- ontogenic: campus network at CU Boulder

- phylogenic: a domain-oriented design environment for computer network design

Evolution in Biology versus Evolution in the Human-Made World - a Word of Caution


the evolutionary metaphor must be approached with caution because

- there are vast differences between the world of the made and the world of the born

- one is the result of purposeful human activity, the other the outcome of a random natural process.


does software develop according to the "punctuated equilibrium" theory?

- if yes, what causes the periods of increased change (subroutines, object-oriented programming, the world-wide web)?

Punctuated Equilibrium

End-User Computing

competent practitioners usually know more than they can say - tacit knowledge is triggered by situations, by breakdowns

end-users: are the owners of problems, have the domain knowledge, are the users of computational artifacts

end-users:

- regard computers as useful machines capable of helping them work more productively, creatively, and with greater pleasure

- like computers because they get their work done

computer scientist / programmers

- find computer themselves intrinsically interesting

- like computers because they get to program

ultimate goal/belief: end-users will use, tailor, extend and create their own computational artifacts when they have domain-oriented design environments

community of users will develop: power users, local developers, gardeners

Prototypes of Systems Supporting Evolution

Modifier (EUM component of Janus)

- mechanisms to add new objects and new behavior by the domain designer

Gimme

- web-based group memory system

- supports communication between all stakeholders

Expectation Agents (with NYNEX, UC Irvine)

- support communication between developers and end-users

- observe actions of end-users and compare them to descriptions of the intended use

Chart 'n Art (self-disclosure): a gentle transition from direct manipulation interfaces to end-user programming

Visual Agent Talk (VAT)

- representations of conditions, actions and rules as graphical objects

- interface support (drag and drop) for end-user programming

Remote Explorium: evolution by a community of practice over the WWW

Economy of Educational Objects
-
What is New About It? What are the Challenges?

a fundamental principle: "Complex systems will evolve from simple systems much more rapidly if there are stable intermediate forms than if there are not." (Simon)

experience with software reuse in the past:

- reuse does not work as expected

- reuse is not for free

- reuse requires support tools (e.g., for capturing design rationale)

- object-oriented design may be necessary, but is not sufficient


reuse is not only a technical problem:

- design for reuse --> increases up-front costs

- reuse requires an organizational commitment

Finding and Comprehending Objects in a Hardware Store

empirical study: McGuckin Hardware in Boulder, Colorado - more than 350,000 different line items

- problem framing and problem solving are intertwined (from heat generation to heat containment)

- to determine the adequacy/relevance of a found object requires "simulation of use situation" (the plumber story)

empirical finding: "computer systems have the same functionality as McGuckin, but are operated like K-Mart"

claim: to make an "economy of educational objects" a success, more is required than creating objects and depositing them in a globally accessible information repository

A Conceptual Framework for Software Reuse




Situation Models and System Models