Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Hands-On Software Architecture with Java

You're reading from   Hands-On Software Architecture with Java Learn key architectural techniques and strategies to design efficient and elegant Java applications

Arrow left icon
Product type Paperback
Published in Mar 2022
Publisher Packt
ISBN-13 9781800207301
Length 510 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Giuseppe Bonocore Giuseppe Bonocore
Author Profile Icon Giuseppe Bonocore
Giuseppe Bonocore
Arrow right icon
View More author details
Toc

Table of Contents (20) Chapters Close

Preface 1. Section 1: Fundamentals of Software Architectures
2. Chapter 1: Designing Software Architectures in Java – Methods and Styles FREE CHAPTER 3. Chapter 2: Software Requirements – Collecting, Documenting, Managing 4. Chapter 3: Common Architecture Design Techniques 5. Chapter 4: Best Practices for Design and Development 6. Chapter 5: Exploring the Most Common Development Models 7. Section 2: Software Architecture Patterns
8. Chapter 6: Exploring Essential Java Architectural Patterns 9. Chapter 7: Exploring Middleware and Frameworks 10. Chapter 8: Designing Application Integration and Business Automation 11. Chapter 9: Designing Cloud-Native Architectures 12. Chapter 10: Implementing User Interaction 13. Chapter 11: Dealing with Data 14. Section 3: Architectural Context
15. Chapter 12: Cross-Cutting Concerns 16. Chapter 13: Exploring the Software Life Cycle 17. Chapter 14: Monitoring and Tracing Techniques 18. Chapter 15: What's New in Java? 19. Other Books You May Enjoy

Software components diagram

In order to address some of the issues highlighted in the previous section, I’ve modeled the same system by focusing on software components. This does not follow any specific standard even if is pretty similar to the C4 approach (where C4 stands for Context, Containers, Components, and Code; we will discuss this further in later chapters):

Figure 1.8 – Software components diagram

Figure 1.8 – Software components diagram

As you can see, this schema is more homogeneous and better organized than the first sketch. At a first glance, you can view what features are provided to the user. Additionally, it highlights how the system interacts with each other in a structured way (for example, using API calls, reads and writes, and more).

Compared to the first sketch, there are some considerations that we can observe:

  • The components are almost the same as the other schema.
  • The diagram is less focused on the use case, even if the user is still represented (together with a high-level recap of the features available to them).
  • There is no view on the project phases. This helps you to focus on just one point of view (architectural components), making the schema less confusing.
  • No protocols are named, only high-level interactions (such as reads, writes, and API calls).
  • Some technical components are preserved (the database), while others are skipped since they have less impact on the functional view (for example, the CDN, which is probably more relevant on a network schema).

In this section, we learned how to approach the first design of our mobile payments application; first, with a more naïve view, then by trying to detail the view in a more structured way. In the upcoming chapters, we will discuss how to further clarify and enrich those views.

You have been reading a chapter from
Hands-On Software Architecture with Java
Published in: Mar 2022
Publisher: Packt
ISBN-13: 9781800207301
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime