Brian Foote: March 1994 Archives

The Fractal Model

|

The Fractal Model: What points do we have to make?

Reusable objects are the result of an evolutionary process that is quite distinct from that that produces traditional software.

Reusable objects result from a three-phase iterative process that unfolds throughout the system, at all levels, throughout the lifecycle, within and beyond individual applications. These phases are: prototyping, exploration, and consolidation.

This perspective is builds on earlier lifecycle perspectives, particularly Boehm's Spiral Model, but is unique because it recognizes that the lifecycles of individual classes and frameworks are distinct from the applications that spawn them.

This process has characteristics in common with natural evolutionary processes.

Contemporary OOA&D bears a much closer resemblance to traditional approaches than it does to this process.

An organization that wishes to produces reusable objects must be willing to deploy technical and managerial talent in a quite unconventional way. Front-loaded, waterfall-based approaches discourage evolution.

The disciplined reuse of object-oriented components, abstract classes, and frameworks stands in stark contrast to the casual reuse of conventional libraries and program skeletons.

Objects evolve as a result of successive refactorings. Languages differ in their suitability for refactoring, and better tools are needed for it.

Structure emerges as objects evolve. There is typically a progression from a casual "white-box" inheritance-based organization to a more mature and refined "black-box" component-based structure. Not all objects complete this journey.


An obvious but important observation: For any given problem, the optimal solution is not the general solution. This is not to say that general solutions that reveal themselves only as experience with multiple reapplications is gained are not much closer to optimal than initial conjectures.

Solutions based upon superficial analysis will hew closely to the surface structure of the problem. (For instance, recursive descent vs. LR(k) approaches).

Would a story about the landmarks in the problem and solution spaces diverging as the solution space becomes populated with more interesting objects be helpful?

There is more than an incidental correspondence between the expansionary phase and the high temperature phases in simulated annealing.


The observation that the result of our evolutionary process, may, in the end, shed most of its object-oriented baggage should support, and not undermine our tale...

The Raw Materials for Software

|

The raw materials for software, caffeine and sugar, are quite inexpensive. Labor costs, however, are quite another matter.
--Thomas Jay Peckish II

Indeed, it has long concerned me that the coffee and sugar exporting nations, were they so inclined, could do to the American software industry what OPEC did to the overall economy with its crude oil embargo during the early seventies.

A Good Example

|

Mark Twain and Friends Few things are harder to put up with than the annoyance of a good example.
--Mark Twain

About this Archive

This page is a archive of recent entries written by Brian Foote in March 1994.

Brian Foote: October 1993 is the previous archive.

Brian Foote: June 1996 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Pages

November 2012

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Brian's Links

Homepages

Diarists

Brian Marick
Martin Fowler
Ralph Johnson (That's Completely Bogus!)
Dave Thomas (The Pragmatist)
Glenn Vanderberg
Patrick Logan
Lambda the Ultimate
Joshua Allen (Better Living Through Software)
Mariann Unterluggauer (Motz)
James O. Coplien
Eugene Wallingford
Blaine Buxton
Nickieben Bourbaki
Travis Griggs
Ivan Moore
Mike Mikinkovich
Superboy & Ward
Rebecca Wirfs-Brock
Nat Pryce
Tim Ottinger
Forrest Chang
Gregor Hohpe
Sam Gentile
Robert Hanson
Chad Fowler
Jonathan Edwards
James Robertson
Bruce Eckel
Andrew Stopford
Tully Monster
Grady Booch
Dave's Ramblings
ShiningRay
Solveig Haugland
Dave Hoover
But Uncle Bob
Doug Schaefer
Smallthought
Ted Leung
blog.talbot.ws
The Farm
Ian Clysdale (Random)
Gilad Bracha
Keith Devens
Urbana-Champaign Techophiles
Stefan Lauterer (Tinytalk)
Planet Python
Chris Koenig
Peter Lindberg (Tesugen)
Jason Yip
Sean McGrath
Jeff Erickson (Ernie's 3D Pancakes)
Steve Freeman (Mock Turtle Soup)
hakank (komplexitetemergens)
Deciduous Ponderings
Take One Onion
Project.ioi.st
Ken Schreiner
Hen so.com
Michael Mahemoff (Software as She's Developed)
Tootruthy
Champaign Media Watch
Jason E. Sweat's Weblog (PHP, etc.)
Raymond Lewallen (Code Better)
Keith Ray
Raymond Chen (The Old New Thing)
Neil Gafter
Joe Walnes
Ivan Moore
LD/dazza (Lost in La Manche)
Scott Rosenberg (Wordyard)
Dave Stagner (Sit down and shut up!)
Walter Korman (Lemurware)
Munawar Hafiz (The space between)
Rafael de F. Ferreira (Rafael Rambling)
Mike Hostetler (Where Are The Wise Men)
Jordan Magazine
Andriy Solovey (Software Creation)
Mike Griffiths (Ideas and essays on code development)
Ashish Shiraj (Ashish Kumar -- Software Test Engineer)
Nathaniel T. Schutta (Just a thought...)
Lynn Cherny (Ghostweather R&D Blog)
Dominique Boucher (The Scheme Way)

Powered by Movable Type 5.14-en