Separation of Concerns (SoC)

If you take your home, you have separate rooms that you specifically use for. You use kitchen to cook, hall as a living place, a guest room for guests and so on. If you had one big room with four walls and you do everything within those four walls will you call it a home?

In software engineering practice, separation of concerns addresses grouping of programs or modules that address a specific area of concern. Examples of concerns could be database related operations, view operations, all business operations etc. Separation of concerns makes an application componentized into compartments and each compartment is responsible for a specific set of actions related to the system. Physically the application could be one, but there is clearly a logical separation of concerns, just like there is one house with many rooms. Model View Controller (MVC) architecture basically addresses separation of concerns at a broader level. The controller is like a hall in the house that has entrance to other rooms, the model and view in this case. You certainly do not want entrance to every room from outside. The model takes care of business logic and handing databases and the view takes care of the presentation. The controller is the binding factor. Its like you want to go to bed room from kitchen, you come to the living room and then get into the bed room. Hence the roles and responsibilities of the components in an application following MVC architecture are clearly demarked and the concerns separated logically. There could be granular level of separation of concerns within the model, view and controller depending on the complexity of the system.

Separation of concerns has clear advantages. First it paves a way for a loosely coupled system meaning a component is self contained and has none or bare minimum dependency with other components. Next it helps in creating reusable artifacts. It is very important to start thinking in terms of separation of concerns and coding to the concern. No tool or software can detect it but it is a disciplinary thing.

Blink this Separation of Concerns (SoC) at blinklist.com    Bookmark Separation of Concerns (SoC) at blogmarks    Bookmark Separation of Concerns (SoC) at del.icio.us    Digg Separation of Concerns (SoC) at Digg.com    Fark Separation of Concerns (SoC) at Fark.com    Bookmark Separation of Concerns (SoC) at Furl.net    Bookmark Separation of Concerns (SoC) at NewsVine    Bookmark Separation of Concerns (SoC) at reddit.com    Bookmark Separation of Concerns (SoC) at Simpy.com    Bookmark Separation of Concerns (SoC) at Spurl.net    Bookmark Separation of Concerns (SoC) with wists    Bookmark Separation of Concerns (SoC) at YahooMyWeb

      Cosmos

Leave a Comment

authimage


Creative Commons License  This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.