|
|
Fractal ModelingWe adopt a uniformly fractal approach to development based on one simple observation:
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.
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. |
|