Fractals

Home ] Overview ] Publications ] OMG ] Case Study ] Support ] Other Work ] Search ]
horiz-space.GIF (952 bytes)

Up
Basics
Fractals
Models
Concept Map
How to...
OOA/D?
CBD
Model Kinds
This 'n That

 

 

 

 

 

Fractal Modeling

We adopt a uniformly fractal approach to development based on one simple observation:

What you model as an object or action depends on your purpose and level of abstraction.

You may choose to model an entire company as a single object, and sell and restock as large grained actions between that company and its customers and vendors. Alternately, you may choose to model much finer grained actions like place order, fulfil order, invoice and get payment as separate actions. Or, even finer, customer place order with agent, and agent enter order into system. The same holds for modeling software objects in an application: you can model the programming language level objects and individual method or function invocations, or use abstractions to define a simpler model than the code. As a result, similar constructs, notations, and techniques apply at every level of development, even if the details differ.

Actions Participating Objects Notes
sell company, customer, product Company and customer are  abstracted to single objects; placing an order, fulfilling it, and completing payment are abstracted into a single action.
place order
fulfil order
send invoice
get payment
customer, company
company
company, customer
customer, company
The abstract sell action has been refined to finer-grained actions; we have chosen to leave the objects at the same abstract level as before.
place order
fulfil order
send invoice
get payment
customer, agent, system
system, factory, shipping
customer, accounts receivable
customer, accounts receivable
Leaving the actions at the same level of granularity, we have refined our model of the company object: orders are placed through an agent into an order entry system; fulfillment also involves the factory and shipping departments; etc.
take order
enter order
agent, customer
agent, order entry system
And here we further refine the place order action into take order - in which the agent takes order information from the customer; and enter order - in which the order is entered into the system.

This fractal approach provides a very simple structure of traceability across all levels modeling. For those parts of a system which, for any reason, are not well suited to carrying such a fractal approach further down, the concept of refinement is powerful and flexible enough to still fully support traceability.

Choose level(s) appropriate to your project needs. Keep in mind that models that are too detailed and complex make it harder to gain good insights into the problem.

Email suggestions to webmaster@catalysis.org. All contents copyrighted 1998.