Lean Mobile Architectures, Patterns & Frameworks

We build professional apps for Android, iOS and mobile web.
Have a look

Part 1: Context diagrams

This is a mini series of blog articles about mobile solution and software architectures.

In this blog I will cover one of the simplest but very effective artifact - the context diagram.

In future blogs I will cover architectural principles and how they will give focus to mobile solution development effort.

Software architectures

What is a software architecture? Basically, it's a collection of diagrams, guiding principles and a way to understand how design decisions have been made.

An architecture can start with just a diagram scribbled on a whiteboard. If that is all you need create a soliton than that's where you can stop. In more complex applications we usually end up with a collection of artifacts that look at the system form different angles.

I find the following artifacts most useful:

  1. context digrams
  2. constraints
  3. guiding principles
  4. component diagrams

Context diagram

A context diagram is the simplest but maybe most powerful diagram in any architecture. It will give you and your team a simple perspective on how complex the mobile solution is.

Let's use an app we want to build. The app is called Mover and will allow to challenge your friends to be active. The Mover app allows a user to sign up with their Facebook or Twitter login, access photos and HealthKit data. We will be able to find friends on Facebook or the address book. Maybe we need to have data on a server and the app needs to connect to an API on the backend.

Here is the context diagram for the system and it's external dependencies.

image

Why is this important? Because each dependency is a adding complexity to the system.

Complexity

Let's say we decide to use Parse.com as a Mobile Backend as a Service (MBaaS). In this case we can simplify our system dependencies.

image

It seems intuitively evident that the Parse.com based solution is less complex as we reduce the number of systems we need to interact with.

Conclusion

Context diagrams are simple. They are a way to illustrate system dependencies. They help visual people to get the bigger picture and show the product owner the degree of complexity of the mobile solution.

Next

The next article will cover constraints and who they impact your mobile solution.