4 - architetture software - architecture portfolio

Post on 29-Nov-2014

1.929 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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

Vishal Sikka, CSA SAP Don Ferguson, former CSA IBM

Nora Denzel, former CSA HP

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

A (useless) SA description •  Ci sono 4 elementi, che sono

connessi in qualche modo, i tre in basso hanno qualcosa in comune

•  Natura degli elementi? •  Loro responsabilità? •  Significato delle connessioni? •  Significato della struttura?

Control Process

(CP)

Noise Model

(MODN)

Reverb Model

(MODR)

Loss Model

(MODP)

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

I/O Manager

Security Reference

Monitor IPC

Manager Virtual

Memory Manager

Process Manager

Plug and Play

Manager Power

Manager Window Manager and GDI

Computer Hardware

Executive Services

User Mode Kernel Mode

Hardware Abstraction Layer (HAL)

Graphics Device Drivers

Object Manager Device Drivers Microkernel

File Systems

Win 32-bit App Win 32-bit

App Win 32-bit App Win 32-bit

App

Win32 Subsytem

(Win32 API)

MS Windows Vista

MS Office

MS Office: structure of documents

MS Word MS Powerpoint

Mac OS

Symbian

Android

Data Distribution Service

Con

tent

Del

iver

y N

etw

ork

Eclipse

X Windows

Mozilla + Gecko

Floc

k br

owse

r

MS Exchange (email) Server

Spam Firewall Architecture

Apa

che

serv

er

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

app

licat

ion

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?

top related