Skip to product information
1 of 1

Fundamentals of Software Architecture

Regular price $39.95
Sale price $39.95 Regular price
Sale Sold out
Tax included. Shipping calculated at checkout.
Type: Paperback
In stock (95 units), ready to be shipped

FREE PREVIEW

ISBN: 9789365898118
eISBN: 9789365899153
Authors: Craig Risi
Rights: Worldwide
Edition: 2025
Pages: 556
Dimension: 7.5*9.25 Inches
Book Type: Paperback

View Product Details

With the rising complexity of modern software systems, strong, scalable software architecture has become the backbone of any successful application. This book gives you the essential knowledge to grasp the core ideas and methods of effective software design, helping you build strong, flexible systems right from the start.

The book systematically navigates the critical aspects of software architecture, commencing with a clear definition of its significance and the pivotal role of the software architect. It delves into fundamental architectural properties like performance, security, and maintainability, underscoring the importance of modularity in crafting well-structured systems. You will explore various established architectural styles, including microservices and layered architecture, alongside key design patterns such as MVC and repository, gaining insights into their practical application. The book further elucidates the function of software components, the art of architecting for optimal performance and security, and essential design principles for building robust solutions. Finally, it examines the impact of modern development practices (Agile, DevOps), positions architecture within the broader engineering context, emphasizes the importance of testing at the architectural level, and offers a glimpse into current and future trends shaping the field.

By the end of this book, you will have a solid understanding of the core concepts, helping you to contribute effectively to software design discussions, make informed architectural decisions, and build a strong foundation for creating high-quality, future-proof software systems.

WHAT YOU WILL LEARN
● Define core architecture, architect roles, and fundamental design attributes.
● Apply modularity principles for resilient and adaptable software design.
● Design cohesive components, manage coupling, and optimize system decomposition.
● Cultivate essential soft skills for effective leadership and stakeholder management.
● Define technical requirements and understand modern development practices.

WHO THIS BOOK IS FOR
This book is for software developers, technical leads, and anyone involved in software creation, seeking a foundational understanding of software architecture principles and practices to enhance their design skills and project outcomes.

Prologue
1. Defining Software Architecture
2. The Role of a Software Architect
3. Architectural Properties
4. The Importance of Modularity
5. Architectural Styles
6. Architectural Patterns
7. Component Architecture
8. Architecting for Performance
9. Architecting for Security
10. Design and Presentation
11. Evolutionary Architecture
12. Soft Skills for Software Architects
13. Writing Technical Requirements
14. Development Practices
15. Architecture as Engineering
16. Testing in Software Architecture
17. Current and Future Trends in Software
18. Synthesizing Architectural Principles
Appendix

A man of many talents, but no sense of how to use them. Craig Risi could be out changing the world but would prefer to make software instead. Probably the reason why Nick Fury refused to take his calls. He possesses a passion for software design, but more importantly software quality and designing systems that can achieve this in a technically diverse and constantly evolving tech world.

Craig has over 20 years of experience across the development, testing, and management disciplines in various software industries, but he still feels he learns something new every day. It is the continued change and evolution of the software industry that motivates him to keep learning and finding ways to improve. More than just playing with tech though, it's people that make software come together – and so Craig believes in developing people and empowering them to make a success out of the software they build.

When not playing with software he can often be found spending time with family, writing, designing board games, or running long distances for no apparent reason. He is also a massive fan of comic books and Star Wars, so if you see him concentrating intensely, he is probably just trying to use the force.

Craig is also the writer of several books and writes regular articles on his blog sites and various other tech sites around the world. He is also an international speaker on a wide range of different software development topics, though these experiences only make him even more excited about the future of the industry in South Africa.