In this chapter, we will review what software architecture is and why it's still relevant today. We will also discuss the new business demands that have been guiding the world of software development in the last few years, and how they have affected the software industry as a whole.
Software and technology are evolving daily, introducing new demands that businesses must meet in order to remain relevant in a competitive market. Regardless of their core business, every competitive company has had to turn to technology. Online transactions and clients around the world are just some of the challenges that have to be mastered in order to stay ahead.
In order to support these new demands, we have been discovering new ways to do our work. Drastic changes have been made and adopted, directly affecting our software development life cycle (SDLC). Some examples of these changes are reflected in how we work on the following phases:
- Gathering requirements
- Organizing teams
- Designing software architectures
- Writing code
- Deploying applications
In this chapter, we will start by revisiting the underlying concepts of software architecture, which have been present for a long time and are still relevant today.
This chapter will cover the following topics:
- Defining software architecture
- Common mistakes that are made when creating architectures
- Architecture and architects
- Software architecture principles
- Applying high cohesion and low coupling in order to create components
- SOLID principles
- Conway's law
- Choosing the right technology for you
- New technology tendencies