Application architecture description

There are different approaches to development. You can start to write a code immediately, make a layout and think about the structure and architecture while coding. This approach isn’t efficient, it allows to start at once but not to keep sufficient development pace.

It often appears that you need to change something in app architecture. But it’s expensive as you’ve spent a big amount of time for current solution and changes involve a big part of application.

It’s one of the most popular problems. When you work on such projects you’re thinking about rewriting it at all.

The development pace graph; red — without planning and architecture development,
blue — with planning and architecture development

Minimization of fundamental (architectural) changes guarantees successful and qualitative project fulfillment.

Let’s think over the above and find out what is “architecture” and what’s hidden there. It’s worth to read Martin Fowler’s collection of materials. There are some definitions:

You need to do this before the actual programming to define key solutions and find out important application’s parts.

And now there is a question on how to do it better? Descriptively or schematic? What level of abstraction to reach?

One of the obvious options is schematic structure and project behaviour image. From general schemes, that show connections and interactions between project systems, to specific, that show each system realization.

There are many types of diagram:

Analyzing all the options, we chose two of them:

Activity diagram allows to understand product work algorytm.

Class diagram helps to develop particular solution before programming. And what is more important, it helps further task formulation.

In some cases other diagrams can be useful. But these two are required minimum, as we think.

Firstly we develop activity diagram.

Activity diagram, example

Then we separate application to modules. And prepare class diagram.

Class diagram, example

Class diagram can be used for:

What advantages we got:

Benefits are obvious, so don’t ignore this stage.

Thanks for reading! And join our website for more articles:

Mobile development: iOS, Android, Java, Swift, Objective-C, Design (Graphics, Web, Icon, Logo, UI/UX elements)

Mobile development: iOS, Android, Java, Swift, Objective-C, Design (Graphics, Web, Icon, Logo, UI/UX elements)