Complexity Awareness is Cost Awareness

In addition to the recent posts:

If “engineering is producing an artifact to cost”, then how can modelling contribute to it?

By uncovering complexity, since complexity is what causes the cost! Actually, from a management point of view, cost, and thus mainly complexity, is one of the most interesting attributes of a model. Here, with ‘complexity awareness’ in real world software engineering, I do not mean, computing the exact complexity class of a model (may it be descriptive or algorithmic). Rather it means being able to recognise points where complexity ‘suddenly’ increases by ‘just a little bit’ more of functionality (like the undelete function in the state machine from the last post) This already can proof very beneficial, since finally controlling* complexity means controlling cost.


*where ‘controling’ can mean all sorts of decisions, like refusing the feature, increasing the budget (a priori), considering workarounds, …

About modelpractice

Modeling Theory and Abstraction Awareness in strive for scientific rigour and relevance to information systems engineering.
This entry was posted in Software_Engineering and tagged , , , , , , , , , . Bookmark the permalink.

6 Responses to Complexity Awareness is Cost Awareness

  1. TY says:

    (following the discussion on your last post)
    Yeah, it’s seems I can see the meaning from the literal, but I still have some questions about,
    what’s the ‘aware’ ever meaning? Is a certain measurement of the complexity or the cost?
    what’s the difference between known and un-known (about the complexity or the cost)?
    Or it’s just meaning that such as “The cost of this project will reach $100 million, the current budget is not enough.”

  2. Hi TY,

    Say we have a classic Business Analysis scenario: BA and Expert sit down and talk about requirements. Say it’s about some state machine.
    Expert: “blah, blah, blah, ….”*1
    So far so good ;o)
    Expert: “and after the item is deleted it can be revitalized, and looks the same as right before its deletion.”*2

    During *1 BA stays cool, since the model is maybe large, with many states and many transitions, but that’s all ‘just’ about size. But in case of *2 the complexity aware analyst (CAA) recognizes that there is an issue. (i.e. “aware” does NOT mean they have to compute the complexity class or sth like this)

    “known vs unknown”:
    CASE A: If the BA ignores it, requirements are written, perhaps depending on that feature and then some designer or implementer will ask “do we really need this?”, and the discussion bounces back to the expert etc.
    CASE B: The BA checks priority with the expert closer as usual, and also checks implementation cost early with the designer.

    In the end the result* is the same, but the decision is made much earlier in the project life cycle, what makes from my experience quite some difference.

    That’s it mainly

    *like refusing the feature, increasing the budget (a priori), considering workarounds, …

    • TY says:

      Hi |=,

      Wonderful explanation!
      I think I’ve some understanding about what you want.
      Of course, I quite agree, the complexity aware is useful in practice.

      For some personal concerns, I always want to dig out something else, while there was a context referenced to some such of complexity theory and systems engineering.

  3. Think concerning complexity theory it’s a twofold thing:

    In industry many people have no understanding of the concept of complexity at all. For them some rules of thumb already would be sth completely new (and beneficial).

    Academically, modelling languages can be analysed using e.g. descriptive complexity theory. Think in the case of the state machine this is rather obvious. For other model types (especially static ones) this seems an open issue. (although, database theory (in conjunction with finite model theory) is quite close)


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s