Beruflich Dokumente
Kultur Dokumente
cherring@bigond.net.au http://www.charles-herring.com
Overview
Motivation and Approach Systems Thinking: MVC Revisited The Viable Software Architecture Generative Programming Case Studies Conclusion
Personal Computing
1 computer, 1 person Human In-the-loop
Proactive Computing
N computers, 1 person M computers, N persons Human Above-the-loop
Direction of Evolution
Simple Deterministic
Window Catch Billiards Shop Lay-Out Penny Tossing Brownian Motion Statistical Quality Cont.
Complex
Digital Computers Planetary Systems Automation Stockholding Conditioned Reflexes Industrial Probability
Exceedingly Complex
Empty
Probabilistic
Approach
How do we build these types of software systems? Is there any knowledge from other fields (outside of computer science) that can help? I chose the Viable System Model
Developed by Stafford Beer Based on Information Theory and Cybernetics Claims to capture the invariants of viable systems Viable: able to maintain a separate existence.
Model
coreData setOfObservers attach(Observers) detach(Observers) notify getData service
Controller
myModel myView initialize(Model,View) handleEvent update
Systems Thinking
Sensor View Model
myProcess myActuator initialize(Process) makeActuator activate output update create manipulate output attach getData
Environment
feedback
Model Process
call update coreData setOfObservers attach(Observers) detach(Observers) notify getData service
commands
Viable Software
A viable software system is Adaptable over time to be Adaptive.
command results
Separate Control
/ Environment: Present responses
control
command
Regulator
command results
plans / Environment: Present responses command response plans / Process: disturbances Critical Variables Computation * control / Regulator: * Plan
Auditor
command results
/ Controller: Process Model Control Rule audit reports plans audit requests / Environment: Present responses / Auditor: * Queries control / Regulator: * Plan response
command audit reports response audit request / Process: disturbances Critical Variables Computation * plans
command results
rules
Adaptive
/ Adaptive Controller: Self Model feedback observations rules control Rule Base
/ Controller: Process Model Control Rule audit reports plans audit requests / Environment: Present Future command audit reports response audit request / Process: disturbances Critical Variables Computation * plans responses / Auditor: * Queries control / Regulator: * Plan response
goals
policy results
/ Adaptive Controller: Self Model feedback observations rules control alerts Rule Base
/ Controller: Process Model Control Rule audit reports plans audit requests / Environment: Present Future command audit reports response audit request / Process: disturbances Critical Variables Computation * plans responses / Auditor: * Queries control / Regulator: * Plan response
<<environment>>
Recursion
<<viable system>>
/ Supervisor: goals policy results Supervisor-Supervisor rules control
/ Controller: / Present: response audit reports plans audit requests / Past: / Auditor: * control * / Regulator: * alerts
<<viable system>>
0 8
6 5 4 3 1 2 3 4 5
9 7 8
Viable Component
0 6 << viable component >> 5 8 1 9 4 3 2
System 6 5 4 3 Alert Conditions Goals and Policies Models, Simulations, and Data
Sub-System
5 8 1 9 7 4 3 2
2 1 8 9 7
Environment to Adaptive Controller Link Environment to Process Link Links to Other Processes
Generative Programming
Product Line Architecture
Meta-level (Complex Adaptive Systems in General)
Application
Case Studies
Groove: Diagnosing the System
Mapping Groove into the VSA Adding Adaptive Controller for UI
Smart Environments
Design and Usage Scenario Lecture Room Camera Controller
e-Commerce
Evolving a B2B System B2B Contracts
Groove
Mediated Model-View-Controller Groove Levels
Groove Net and Web Services Transceiver Shared Spaces Tools Sets Tool: Storage and Controlling Code
-1.0 VerySlow
-0.5 Slow
0.0 Zero
0.5 Fast
1.0
U(t)
VeryFast
-200
-100
100
200 Promoted
d U(t) dt
10
20
30
40
50
60
V(t)
Inference
Average Zero Normal
-0.5
0.0
0.5
-100
100
20
30
40
If Usage is Average
Average
-0.5
0.0
0.5
100
200
30
40
50
If Usage is Average
10
20
30
40
50
mcrisp = 35
Rule Table
Visibility V VeryFast Always Frequent Usage: U(t) Average Infrequent Never Promoted Promoted Promoted Bold Normal Change in Usage: dU/dt Fast Promoted Promoted Bold Normal Fading Zero Promoted Bold Normal Fading Invisible Slow Bold Normal Fading Invisible Invisible VerySlow Normal Fading Invisible Invisible Invisible
Smart Camera
Controller SmartCamController SmartCamExecutive SmartCamOperations SmartCamAuditor
Camera SmartCamMSMQBus
ImageProcessor
SmartCamAccountant
SmartCamPlant
Startup Protocol
SmartRoom Goals Executive Planning Operations Regulator Plant SCExecPolicySOP SCExecPolicySOP SCOpsMsgCommand SCExecResources SCPlantMsgModel SCExecMsgStart SCExecPolicySOP SCExecResources SCExecResources SCExecMsgStart SCExecMsgStart SCOpsStartParams SCPlanPlanParams SCOpsMsgStartCmd SCOpsPlan SCOpsPlan SCOpsMsgStartCmd
Operating
SmartRoom Executive Planning Operations Regulator Plant SCPlantRptRoutine (5) SCOpsMsgCommand SCPlanMsgAdvice SCOpsPlan SCOpsPlan SCOpsRptRoutine SCPlanOpsUpdate SCOpsRptRoutine
e-Commerce Retailer.com
B2B and B2C B2B Subsystems
Wholesalers Shippers Exchange Web Site
Viable Software
A viable software system is Adaptable over time to be Adaptive.
Dimensions of Viability
Financial International Legal National Customers
Related Work
Mary Shaw - Control Paradigm Kokar and Eracar - Self-Controlling Software Adaptive Object Model - Foote, Johnson and Yoder Adaptive Strategy- Olivier Aubert Beck, Highsmith - XP, Adaptive Software Development Oriezy - Self-Adaptive Software
Conclusion
VSM Isomorphic to Intelligent Controller Pattern Language Theory of Autonomy Conways Law
Questions?
cherring@bigond.net.au http://www.charles-herring.com