Systems Engineering

By | March 14, 2009

For myself, I can’t really differentatite between Modularity, Decomposition, Abstraction and SoC.

In my mind, Modularity is the over arching princinple. Abstraction is the depth of modularity and SoC is the width of modularity

Anyway there are a lot of similariteis between software design and organisational design, so much so that when the design is wrong, the same errors occur. Today I am going to do a paraody of design gone wrong because I feel like doing something relaxing on a sat night.

As we know exceptions have to be caught and thrown in Java, but what happens if an exception is raised in a organisational context?

So The 5 key ingredients are:

1. Abstraction and Information Hiding
Try{
        Approach wrong person to do task A
}catch{
        If boss
                This is a minor detail, ask XX to handle it.

        else

                I have to ask my boss. I have no decision power on this. 

}

2. Separation of Concerns (SoC)
Try{
        Approach wrong department to do enquire about how to do B
}catch{
        I do not handle this. You have come to the wrong department, I can’t help you. Please hold, Let me transfer you to XX department
        Call Function SoC(enquiry that will never get anywhere);
}

3. Modularity, Decomposition
I can’t think of anything for this? COntributors?

4. Generality
Try{
        Never follow instructions to the letter.
}catch{
        Argh, I told you you have to give me the original and 2 photocopies. On the photocopy you must chop certified True copy. This is wrong, I can’t process this.
        Application.Quit;
        Windows.Exit;
        Process.kill;
}

5. Design for Change
Try{
        Explaining to top management that the company needs a facebook app.
}catch{
        “This is not the way that we do things. We have done it this way for 10 years. Anyway people can go to our website.”
        “What’s this new facebook thing? Why spend money on something no one will use.”
        Sender.demote();
        Sender.paycut();

}

 

eof!

One thought on “Systems Engineering

  1. Ben Leong

    In my mind, Modularity is the over arching princinple. Abstraction is the depth of modularity and SoC is the width of modularity

    Alamak, this means that I lectured poorly and I didn’t manage to explain the ideas clearly, so let’s try again.

    SoC: Try to figure out what are the things you care about and try to think about them separately. Some things can be separated, i.e. logic vs presentation, others cannot, i.e. performance

    Abstraction: Information hiding. Hide stuff that people shouldn’t need to see to avoid confusing them.

    Decomposition/Modularity: Break the problem done into smaller bitesized chunks so that each of them are smaller and easier to solve. What you have to worry about is the interactions between these pieces.

    I hope this helps. 😛

Comments are closed.