Rapid-Assembly Componentware for Education

advertisement
Rapid-Assembly Componentware
for Education
Chris DiGiano and Jeremy Roschelle
SRI International
chris.digiano@sri.com
This work supported by the National Science Foundation (Award: REC-9804930)
Overview
•
•
•
•
•
ESCOT Project
Rapid Assembly Componentware
Software Design Patterns
Capability Delegate
Replicated Model
The Educational Software
Supply Crisis
• “demand for software far exceeds the
Nation’s ability to produce it.”
– President's Information Technology Advisory
Committee (1999). Information Technology
Research: Investing in Our Future.
• “teachers report difficulties [finding] …
digital content to fit their needs.”
– CEO Forum on Education and Technology
(2000). The Power of Digital Learning :
Integrating Digital Content.
Educational
Software
Components Of
Tomorrow
• SRI: Roy Pea (PI), Jeremy Roschelle (PI), Chris DiGiano (PI),
Mark Chung, Vicky Hand
• Univ. Mass at Dartmouth: Jim Kaput (PI)
• Univ. of Colorado: Alex Repenning & team
• WebCT/MathForum: Jody Underwood, Steve Weimar
• DesignWorlds: Ted Kahn
• Key Curriculum Press: Nick Jackiw
• Show Me Center, Missouri: Dave Barnes & team
• Stanford University: Vicky Hand, and other research assistants
• And many, many others
The ESCOT Process
Analysis of Five
Middle School Math
Texts
Interoperable
tools
Integration
Teams
Intellectual
Property Licenses
Mentored
Activities
Rapid-Assembly Componentware
for Education
• Kernel (RACK) providing component
brokering and persistence facilities
• Design Environment where an application
is assembly through direct manipulation of
visual components
• Library of components
Software Design Patterns
• General form
–
–
–
–
–
memorable name
real-world example
problem addressed
fundamental solution principle
benefits and liabilities
• Implementation language agnostic
RAC Patterns
• Instantiation: What happens when a new component is
introduced into an assembly and how the Kernel is made
aware of its capabilities
• Interoperability: How specific types of components
connect and what protocols enable them to exchange data
• Control Cooperation: How components work
together so they effectively enable the user to manipulate
the same data
• Screen Cooperation: How components can be good
citizens in an assembly by being economical with screen
space and accommodating of overlapping components.
Capability Delegate: Example
Slider
bounds
value
color
minimum
...
maximum
addChangeListener()
Capability Delegate: Problem
In designing a new component, it is
tempting to advertise all capabilities at the
same level, but this leads to
• Poor modularity:
– low internal cohesion
– tight coupling with other components
• Overwhelming design experience
• Efficiency issues
Capability Delegate: Solution
Encapsulate related elements into a separate
object, referenced by the component
Slider
bounds
color
...
addChangeListener()
1
BoundedRange
value
minimum
maximum
addChangeListener()
Capability Delegate: Solution
Encapsulate related elements into a separate
object, referenced by the component
Observable
Slider
bounds
color
...
addChangeListener()
1
BoundedRange
value
minimum
maximum
addChangeListener()
Replicated Model: Example
Fraction
Thermometer
Change Notification
value
value
Replicated Model: Problem
• Many “found” components cannot
“observe” other components
• But they do advertise mutable properties
Replicated Model: Solution
• Publishing & subscribing components each
maintain their own copy of the data
• Bridge converts changes notices to change
requests
Bridge
notice
Fraction
request
value
Thermometer
value
Replicated Model: Solution
• Publishing & subscribing components each
maintain their own copy of the data
• Bridge converts changes notices to change
requests
Bridge
notice
Fraction
request
value: float
Thermometer
value: int
Conclusions
• High-quality educational software is in
short supply
• We need to work together and share each
other’s wisdom
• Patterns provide
– a common language
– an alternative kind of reuse
Strata of Interoperability
•
Descriptors of content (e.g. card
catalogs)
– Metadata
•
Databases of student information
– School Interop. Framework
•
Course Delivery Systems
– WebCT, Blackboard
•
Media Elements (e.g. text, pictures,
images)
•
Tools (e.g. graphing, simulations,
spreadsheets)
NSDL
IMS
IEEE
Microsoft/Sun
ESCOT
Logal
eSlate
Observer: Problem
• A situation often arises in which data
changes in one component, but one or
more other components depend on this
data. We could solve the problem by
introducing direct calling dependencies
along which to propagate the changes,
but this solution would require customcoded components and make it difficult
for the designer to later change the
connections between components. We are
Observer: Solution
• Solution: All dependent components
subscribe to the component with the data.
When the data changes, the publishing
component sends a notification to all
subscribers.
• Structure: In the context of
componentware, the Observer design
pattern involves components in the
following roles:
Download