Автор: Kevin Lano, Sobhan Yassipour Tehrani
Издательство: Springer
Серия: Undergraduate Topics in Computer Science
Год: 2023
Страниц: 264
Язык: английский
Формат: pdf (true)
Размер: 11.7 MB
This unique, accessible textbook gives a comprehensive introduction to software architecture, using ‘clean architecture’ concepts with agile methods and model-driven development.
The work introduces the key concepts of software architectures and explains the importance of architectural design for the long-term usefulness and sustainability of software systems. In addition, it describes more than 30 architectural styles and patterns that can be used for constructing mobile applications, enterprise and web applications, machine-learning systems, and safety-critical systems.
Software architecture has become recognised as a key factor in the maintainability and sustainability of software systems – poor quality architectures are likely to doom a system to becoming an expensive drain on business resources, costing more and more money to maintain over time as the system structure deteriorates and hinders evolution. In contrast, the choice of a good quality and appropriate architecture can ensure that a system retains its usefulness for many years and remains open to extension and enhancement.
This book provides a comprehensive introduction to software architecture concepts and techniques, with a focus upon the ‘clean architecture’ principles (Chapter 2), which have been shown to be effective for a wide range of software systems.
We introduce the key concepts of software architectures in Chapter 1, and provide a ‘toolkit’ of 30 architectural styles and patterns which can be used for constructing mobile apps, enterprise and web applications, Machine Learning systems, and safety-critical systems (Chapters 5 to 11).
We describe how architectural design can be applied within agile or model-driven software development processes (Chapter 3), and consider in detail the specialised issues of architecture for specific kinds of application: mobile apps (Chapter 6), web applications and enterprise systems (Chapters 7 and 8), service-oriented systems (Chapter 9), Machine Learning systems (Chapter 11) and safety-critical systems (Chapter 10). We also look at architecture in the context of software re-engineering and examine to what extent an improved architecture can be ‘retro-fitted’ into a legacy system (Chapter 12).
Topics and features:
Combines clean-architecture principles with agile model-driven development
Employs practical examples and real industrial cases to illustrate architectures for mobile apps, web apps, enterprise systems, safety-critical systems and machine-learning systems
Explores support tools for architectural design and system development using the approach
Provides tutorial questions and slides to support teaching and learning
Delivers material that has been class-tested over 10 years with more than 1,000 students
The textbook can be used to support teaching of an undergraduate module in software architecture, yet also includes more advanced topics suitable for a specialised software architecture module at master’s level. It also will be eminently suitable and relevant for software practitioners and researchers needing or wanting to explore the field in short courses or self-study.
Скачать Introduction to Software Architecture: Innovative Design using Clean Architecture and Model-Driven Engineering