Software Architecture

Is MVC a design pattern or an architectural pattern?

MVC which stands for Model-View-Controller describes a software pattern that you can use in interactive computer systems. To understand if it is a design pattern or an architectural pattern, let's look at what these two are:

Architectural pattern: Concerned with the subsystems of an application with their relationships and collaborations with each other.

Design pattern: Concerned with the (further small) components of a subsystem with their relationships and collaborations with each other.

Abstraction, Communication and Great Software Developers

Grady Booch interviewed by Software Engineering Radio highlighted the essentially needed qualities of a valuable/good/great software developer:

  1. Being a good abstractionist
  2. Being a good team player with good communication skills

Who is a good abstractionist?

Balancing Between Transparency And Abstraction

As highlighted by Bill Higgins in his post, both transparency and abstraction have their own merits and compete with each other. Thoughts on balancing between these two in most cases lead us back to the basic principles of software engineering. Some aspects that come to my mind are: