The five axioms of software behavior

Inspired by Euclid's Elements. Software as a mathematical description of behavior.

Identity
An object is that which has identity. Identity implies consistent behavior.

Interface
An interface is the means by which an object exposes its consistent behavior. Interface implies identity.

Ownership
Every object except for a singleton has one and only one owner. Ownership cannot be transferred.

Dependency
Behavior is either independent or dependent. Independent behavior can be changed by acting upon the object, while dependent behavior represents an objects reaction to other dependent or independent behavior.

Transaction
All changes to independent behavior occur within the scope of a transaction. All behaviors dependent upon those changes are simultaneously visible. There exists a partial order among transactions, whereby one transaction could be said to be a prerequisite of another.

4 Responses to “The five axioms of software behavior”

  1. Chad Myers Says:

    This is a good summation. I'm still unclear about Ownership and Transaction. I'll re-read your longer explanations to help with context.

    What if we start trying to boil these down to statements of law like:

    Law of Object Interface Identity
    An object is identified by its interface which defines its behavior consistently

  2. Michael L Perry Says:

    For more detail on the Transaction axiom, I direct you to a prior post: http://adventuresinsoftware.com/blog/?p=262. For more, click on the "historic modeling" tab above.

    The Transaction axiom is the foundation for a synchronization framework I've started called "Correspondence". It models objects as a graph of partially ordered transactions. It's an interesting experiment.

    I'll see if I can find more on Ownership.

  3. Steve Evans Says:

    Why not have them in the following order instead?

    Identity
    Dependency
    Interface
    Ownership
    Transaction

  4. Michael L Perry Says:

    Great idea, Steve! I need my own version of Uncle Bob's SOLID principles. I'll call them the ... Wait a minute!

Leave a Reply

You must be logged in to post a comment.