Understanding the Importance of Software Architecture
Software architecture is one of the most discussed topics in the software industry today, and its importance will certainly grow more in the future. The more we build complex and fantastic solutions, the more we need great software architectures to maintain them. But the speed at which new features are added to these software solutions keeps increasing, and new architectural opportunities keep emerging. That is the reason why you decided to read this book; it's the reason why we decided to write its second edition.
It's not a simple task to write about this important topic, which offers so many alternative techniques and solutions. The main objective of this book is not to build an exhaustive and never-ending list of available techniques and solutions, but to show how various families of techniques are related, and how they impact, in practice, the construction of a maintainable and sustainable solution.
The need to keep our focus on creating actual, effective enterprise solutions keeps increasing; users always need more new features in their applications. Moreover, the need to deliver frequent application versions (due to a quickly changing market) increases our obligation to have sophisticated software architecture and development techniques.
The following topics will be covered in this chapter:
- The understanding of what software architecture is
- Some software development process models that may help you as a software architect
- The process for gathering the right information to design high-quality software
- Design techniques for helping in the process of development
- Cases where the requirements impact the system results
- An introduction to the case study of the book
The case study of this book will take you through the process of creating the software architecture for a travel agency called World Wild Travel Club (WWTravelClub). The purpose of this case study is to help you understand the theory explained in each chapter, and to provide an example of how to develop an enterprise application with Azure, Azure DevOps, C# 9, .NET 5, ASP.NET, and other technologies that will be introduced in this book.
By the end of this chapter, you will be able to understand exactly what the mission of software architecture is. You will also learn what Azure is, and how to create your account on the platform. You'll also get an overview of software processes, models, and other techniques that will enable you to conduct your team.