Date post: | 29-Nov-2014 |
Category: |
Technology |
Upload: | majong-devjfu |
View: | 1,926 times |
Download: | 1 times |
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
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?