Book Image

Hands-On Software Architecture with Java

By : Giuseppe Bonocore
5 (1)
Book Image

Hands-On Software Architecture with Java

5 (1)
By: Giuseppe Bonocore

Overview of this book

Well-written software architecture is the core of an efficient and scalable enterprise application. Java, the most widespread technology in current enterprises, provides complete toolkits to support the implementation of a well-designed architecture. This book starts with the fundamentals of architecture and takes you through the basic components of application architecture. You'll cover the different types of software architectural patterns and application integration patterns and learn about their most widespread implementation in Java. You'll then explore cloud-native architectures and best practices for enhancing existing applications to better suit a cloud-enabled world. Later, the book highlights some cross-cutting concerns and the importance of monitoring and tracing for planning the evolution of the software, foreseeing predictable maintenance, and troubleshooting. The book concludes with an analysis of the current status of software architectures in Java programming and offers insights into transforming your architecture to reduce technical debt. By the end of this software architecture book, you'll have acquired some of the most valuable and in-demand software architect skills to progress in your career.
Table of Contents (20 chapters)
1
Section 1: Fundamentals of Software Architectures
7
Section 2: Software Architecture Patterns
14
Section 3: Architectural Context

Summary

In this chapter, we saw a wide range of techniques for modeling and representing the internal architecture of a software system. We started with UML, which is a consolidated standard that is very widespread and actively used, especially in some of its aspects, such as class diagrams and sequence diagrams.

We then moved on to ArchiMate, which gives an enterprise architecture point of view on the subject and is commonly used in a context that follows the TOGAF approach. We then moved on to the C4 approach, which is a younger standard that is very lightweight and particularly suitable for projects adopting lean methodologies.

We've also seen a handful of specialized languages (BPMN and DMN), which are perfect for modeling specific aspects of our application. Last but not least, we quickly touched on arc42, which is a wonderful template system to start your architecture documentation and ensure that nothing important is missing.

In the next chapter, we will discuss...