About Francesco Azzola

I'm a senior software engineer with more than 15 yrs old experience in JEE architecture. I'm SCEA certified (Sun Certified Enterprise Architect), SCWCD, SCJP. I'm an android enthusiast and i've worked for long time in the mobile development field.

Android UML: Design an App – Part 1

One aspect that was in my opinion not covered in many blogs around, included mine too, it is the process we follow to create our Android app. This aspect is not irrelevant because an app is a piece of software and we should follow the rules and methods used to develop other kind of software component. I know we need something more straightforward that the usual software development life cycle but using some aspects of UML can reduce our development time and make an app more consistent in term of functionalities and navigation.

So in this post i want to describe the process that spans from the moment we have an idea to when we code it creating an app.

In this process, UML assumes an important role to clarify the users that interact with our app, the functionalities we offer to them and how they can access to them – the navigation, even more it helps to clarify the data model that stands behind our app and this helps building the UI.

As we all, already, know an android app is built on Java code and we, for sure, can apply UML to design our app. We don’t need a complex UML modeling tool but we simply need a white paper and a pencil just to fix the ideas. In this journey, exploring the interaction between UML and Android, I will use a sample app so that we can follow each steps from the beginning to the time when we code our app.

As sample app, I will use a weather app that gives us the current weather condition and the weather forecast.

Identify our app users

The first step is identifying our app users. It helps us to identify the functionalities we want to offer to them. At this moment we don’t need to go into the details, we just want to identify our users and categorize them. At a first glance, we can identify only one user: the one that runs our app and gets the weather condition. At this step we don’t need users to be registered/authenticated so we don’t need to identify them.

Identify the main functionalities

In this step we identify the functionalities for the users (actor) we have selected in the first step. Well at this step we can find the main functionalities we want to offer, In this case we have:

Weather app_uc1[7]

These are the basic functionalities our weather app should have to be consider a weather app. Just a brief description:

  • Find the place: We give to the user the function to search the location inserting the location name
  • Get current weather: We give to the user the current weather conditions.
  • Get hourly weather forecast: We give to the user the next hours weather conditions
  • Get daily weather forecast: We give to the user the next days weather conditions

Is it enough? Well we identified some functionalities but we can start go deeper and start expanding each function.

Analyzing and expanding each functionality

At this step we can start analyzing the first functionality ‘Find the place’. So the user inserts the place and we give a list of matching locations. Our app should have the capability to save the location somewhere to not ask it again. But user can change the location too. So the simple ‘Find the place’ can be expanded:

Weather app_uc2[3]

The same process can be applied to other functionalities:

Weather app_uc3[3]

So by now starting from a simple idea we have found several functionalities we want to support and offer to our users.

Are they enough or we can add more? Well looking at our competitors app we can notice they offer much more so we should do the same and we have to add other functionalities:

Weather app_uc5[3]

Well now we have a detailed list of functionalities and we added another type of user: a registered user. By now it is enough in the next post we will discover our to prioritize our use case and how to have a navigation diagram using our use cases.
 

Reference: Android UML: Design an App – Part 1 from our JCG partner Francesco Azzola at the Surviving w/ Android blog.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

2 Responses to "Android UML: Design an App – Part 1"

  1. Helder says:

    Hi,

    Thanks a lot for sharing this article! I’ve been trying to find how to design android apps using uml, but without any success. Do you know any resources ?

    Thanks

  2. Magda says:

    Hi,

    On the diagrams you’ve draw the generalization relationships with wrong direction. It should be from child to parent or from more detailed to abstract one.

    Cheers

Leave a Reply


+ three = 7



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy | Contact
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close