1. A portfolio of software
architectural descriptions
Paolo Ciancarini
2.
3. Agenda
• The visualization of software
architectures
• Basic architectures
• Reference architectures
• Middleware architectures
• Model-driven architectures
4. Goal of this lecture
• Show a number of practical, real examples
of software architectures
• Compare visualization styles
• Elicit (common) architectural patterns
5. Software architecture
• In most successful software projects, the developers
working on that project have a shared understanding of
the system design; this shared understanding is called
architecture .
• This understanding includes how the system is divided
into components and how the components interact
through interfaces. These components are usually
composed of smaller components, but the architecture
only includes the components and interfaces that are
understood by all the developers
Ralph Johnson
6. Software architecture
• The global organization of a software
system
• A software structure decomposable in
subsystems
– Define their interfaces
– Define how they interact
7. Software architects
Bill Gates, CSA Microsoft till 2006 Ray Ozzie, CSA MS 2006-2010 Kevin Lynch, CSA Adobe
Nora Denzel, former CSA HP
Vishal Sikka, CSA SAP Don Ferguson, former CSA IBM
8. The role of the Software Architect
• The role of the software architect involves
not just technical activities, but others that
are more political and strategic in nature,
and more like those of a consultant
• Not all good technologists have the skills
that make them good architects
• The best architects are good technologists,
that command respect in the technical
community, but also are good strategists,
organizational politicians and leaders
8
9. A (useless) SA description
• Ci sono 4 elementi, che sono
connessi in qualche modo, i tre
in basso hanno qualcosa in Control
Process
comune
(CP)
• Natura degli elementi?
• Loro responsabilità?
• Significato delle connessioni?
• Significato della struttura?
Loss Reverb Noise
Model Model Model
(MODP) (MODR) (MODN)
10. A portfolio
• The following pictures are taken from the Web
• I used queries related to the concept of
software architecture of typical software
systems, like editors, compilers, operating
systems, software tools
• They are examples of our main topic
• Ask yourself: what do I see?
66. What is a software architecture?
• An architecture defines structure
• An architecture defines behavior
• An architecture focuses on significant elements
• An architecture balances stakeholders needs
• An architecture conforms to an architectural style
• An architecture is influenced by its environment
• An architecture influences its environment
• An architecture influences its development team
structure
67. Architectures and entities
The definition of a business entity is one of
the most difficult things in the software
architecture world. The problem that we
have is this combination of words
business and entity , the first depicts
something very complicated and the second
states for something simple – so we are
trying to define something like complicated-
simplicity …
Adam Boczek
68. Self test questions
• What do these representations have in
common?
• Do they focus more on the structure or on the
behavior of software architectures?
• Which analyses, reasoning and evaluations are
possible on these pictures?
• Would it be possible to have a uniform
architectural representation model?
• Have you recognized patterns or styles?
• Can you imagine architectural alternatives?