A portfolio of software
architectural 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 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
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?
Editor
Expert system
Mathematica
JVM
Applet architecture
J2EE
Tomcat
JINI
architectural
  example
A game engine   dundee.cs.queensu.ca/wiki/index.php/CAX_Game_Architecture
Classic Unix
Monolithic vs
microkernel
Linux
Windows NT
Minix
Windows 95
and 98
Windows 2000
Windows XP
Win 32-bit       Win 32-bit                                                      Win 32-bit         Win 32-bit
  App              App                                                             App                App


                                                   Win32
                                                 Subsytem
                                                (Win32 API)
                                                                                                          User Mode


                                                                                                         Kernel Mode
                                           Executive Services

              Security                     Virtual               Plug and                Window
  I/O                        IPC                     Process                   Power
             Reference                    Memory                   Play                  Manager
Manager                    Manager                   Manager                  Manager
              Monitor                     Manager                Manager                 and GDI

                                            Object Manager                               Graphics
  File
                                                                                          Device
Systems
                         Device Drivers                         Microkernel               Drivers

                                  Hardware Abstraction Layer (HAL)




                                                Computer Hardware
MS Windows Vista
MS Office
MS Office: structure of documents

  MS Word             MS Powerpoint
Mac OS
Symbian
Android
Data Distribution Service
Content Delivery Network
Eclipse
X Windows
Mozilla + Gecko
Flock browser
MS
Exchange
(email)
Server
Spam Firewall Architecture
Apache server
Concurrency on Apache Unix
MVC style architectures
MS Silverlight
Adobe AIR
Ruby on Rails
AJAX intreraction style
Search
architecture
Google
CORBA
J2EE
J2EE operating environment
Java web application
JBoss
application
  server
Web services architecture
Grid-like
architecture
SOA
SOA
Amazon
SOA
IBM WebSphere
DRM
architecture
Business architecture
MS BizTalk
Social network
 architecture
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 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
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?
Readings
•    www-128.ibm.com/developerworks/rational/library/feb06/
     eeles/index.html!
•    www.dehats.com/drupal/?q=node/32!
•    la.sei.cmu.edu/sad-wiki/index.php/High_Level_Module_View
                                                            !
Questions?

4 - Architetture Software - Architecture Portfolio