Research Projects
Last updated: Wednesday, 26-Apr-2006 12:40:58 MDT  
Non-Balanced Program Tree
New Use-Case Only
  • Uses characteristics already in place.
  • Most common in-field enhancement.
  • Has cross-cutting cutting concerns from user to branches.
  • Moderate code inflation.

Examples:
  • Adding NAT capabilities to a personal router.
  • Changing functions on a calculator or microwave.
New Use-Cases w/ New Characteristics
  • Adding/removing new characteristics with use-case support.
  • Most common product-line enhancement.
  • Has cross-cutting concerns from user to program leaves.
  • Most code inflation.

Examples:
  • Adding GPS to a PDA.
  • Adding graphics or ADC chip to a system.
  • Adding a new plug-in to a browser.
New Characteristics Only
  • Identical interfaces already exist, use-case support exists.
  • Least common enhancement due to in-field logistics.
  • Few (if any) cross-cutting concerns from leaves to branches.
  • Typically least code inflation.

Examples:
  • Adding another watering zone in a sprinkler system.
  • Adding another light, radio, etc., sensor to a mote.
  • Adding a new cypher to an SSL package.
  No Yes
New Horizontal Features
Balanced Program Tree
New Use-Case Only
  • Uses characteristics already in place.
  • Most common in-field enhancement.
  • Has cross-cutting cutting concerns from user to branches.
  • Moderate code inflation.
  • Division around new use-case is most efficient but may unbalance tree.
  • Division through new use-case causes high data/control interaction.

Examples:
  • Moving/adapting system based on load and bandwidth.
New Use-Cases w/ New Characteristics
  • Adding/removing new characteristics with use-case support.
  • Most common product-line enhancement.
  • Has cross-cutting concerns from user to program leaves.
  • Most code inflation.
  • Division around new use-case is most efficient but may unbalance tree.
  • Division through new use-case causes high data/control interaction.
  • Division must be around new devices.
  • Division through new non-devices may show little ROI if tightly integrated.

Examples:
  • Adding GPS to a system: devices in one release and decoding in another.
  • Adding an enhanced user interfacer to one release and support algorithms to another.
  • Adding echolocation to a system with scattered sensors and triangulators.
No New Features
  • Division around use-case is most efficient but may unbalance tree.
  • Division through use-case causes high data/control interaction.
  • Division must be around devices.
  • Division through non-devices may show little ROI if tightly integrated.

Examples:
  • Auto-componentization of OpenOffice use-cases, e.g., “print document”.
  • Distribution of motes' sensors in a sensory network.
  • Redundant systems for unreliable or CMM-5 systems.
New Characteristics Only
  • Similar devices already exist, use-case support exists.
  • Least common enhancement due to in-field logistics.
  • Few (if any) cross-cutting concerns from leaves to branches.
  • Typically least code inflation.
  • Division must be around new devices.
  • Division through new non-devices may show little ROI if tightly integrated.

Examples:
  • Grouping and varying watering zones in a sprinkler system.
  • Grouping and number of sensors (light, radio, etc.) on a mote ["specialization"].
  • Placing encrypt() and decrypt() on different, collaborating releases.
  No Yes
New Horizontal Features

Copyright © 2001-2006 Intelligent Algorithmic Solutions and Sean Walton eMail