A portfolio of softwarearchitectural descriptions Paolo Ciancarini
Agenda• The visualization of software architectures• Basic architectures• Reference architectures• Middleware architectures• Model-driven architectures
Goal of this lecture• Show a number of practical, real examples of software architectures• Compare visualization styles• Elicit (common) architectural patterns
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
Software architecture• The global organization of a software system• A software structure decomposable in subsystems – Define their interfaces – Define how they interact
Software architectsBill 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
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
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)
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?
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
Architectures and entitiesThe definition of a business entity is one ofthe most difficult things in the softwarearchitecture world. The problem that wehave is this combination of words business and entity , the first depictssomething very complicated and the secondstates for something simple – so we aretrying to define something like complicated-simplicity … Adam Boczek
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?