I am developing a Human Activity Recognition android application. Currently, I am at the Design stage where I am designing the architecture of the app. I am using the MVP architecture pattern. I have to note that I am learning how to develop a software architecture while thinking about the design of my app so please take that into account.

Now, my question. In terms of visual structure and using the UML language to represent my design, can I improve something?

Component diagram (Astah) enter image description here

  • 1
    I'll give you a hint regarding software architecture - avoid shortcuts and little hacks if you want your software to be maintainable in the foreseeable future. Rarely a plan survives the encounter with the enemy (or, in this case, the changing specs). You diagram looks neat, btw! – T. Sar Jan 26 '17 at 12:36
  • @TSar Thank you for your comment! Could you give an example of what you mean by "shortcuts" and "hacks"? And thank you for your compliment! :P – Georgi Koemdzhiev Jan 26 '17 at 12:45
  • 1
    Maybe a dev will skip creating an interface for something, just plugging in classes directly. Maybe someone will think that combining two classes together will save "memory by loading stuff just once". Maybe someone will implement a manual DumbSort instead of using the native sort methods because "they want to know what is happening under the hood and their algorithm is better". Maybe someone will want to implement their own cryptographic scheme instead of using market-tested ones. Maybe someone will try to use will try to use the new, trendy thing you don't need (Let's use microservices)... – T. Sar Jan 26 '17 at 13:10
  • @TSar Thank you for the detailed example. I see what you mean now. Appreciate it! :) – Georgi Koemdzhiev Jan 26 '17 at 13:15
  • 1
    Also, don't be afraid of changing your plans to keep in tune with the changing specs. If you're new to system architecture, you'll end up discovering that this is less like engineering a machine or a building, where you more or less stick to the specs, and more like trying to keep stable a Jenga Tower made of features, costs and deadlines. Good luck on your project, and welcome to the field! – T. Sar Jan 26 '17 at 13:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.