Название: Software Architecture: visual lecture notes Автор: Cesare Pautasso Издательство: Leanpub Год: June 1, 2021 Страниц: 688 Язык: английский Формат: pdf (true) Размер: 159.6 MB
From quality attributes to how to design and model components, interfaces, connectors, containers, all the way to services and microservices.
These are the revised and illustrated notes of the Software Architecture lecture of the Master in Software and Data Engineering held at the Software Institute at USI Lugano, Switzerland.
The book includes the script for these lectures:
Introduction Quality Attributes Definitions Modeling Software Architecture Modularity and Components Reusability and Interfaces Composability and Connectors Compatibility and Coupling Deployability, Portability and Containers Scalability Availability and Services Flexibility and Microservices
Software architecture like software engineering is a metaphor that we borrow from some other discipline and we bring into Informatics. There is something that we do when we develop software at scale with large teams, when we need to make certain kinds of important decisions, which reminds of what architects do. We call those decisions architectural. How well does the architecture metaphor fit with software? There are some similarities and there are some mismatches. So now before we talk about software architecture want to spend a little bit of time to introduce what is it from architecture that we can bring in and learn from. After all software architecture is a relatively young discipline. Architecture's been around for longer.
Which platforms have you built software for? Is a programming language like Java a platform? The language can be part of a platform. Still, while Java was marketed as platform independent, it actually is a special platform to write software which then can run on multiple platforms. This is where the foundation metaphor starts to show its limits.
There are many different ways to measure the size of software. For example, you can ask: How long does it take to build it? And this is actually quite ambiguous, you can define it as the development wall time, starting from the very first Git init command where no code exists yet and then checking how long does it take you to write all the code. Or if you are using DevOps and continuous integration. How long does it take to build it and release it? I push a change and then I go home and come back the next morning and I have the fresh new build. Or I push a change and I can see the effect instantaneously like with a live programming environment. It's a totally different developer experience. Small systems can be written by one developer, but most are written by teams.
Внимание
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.