Lecture 12
Lecture 12
Course Leader(s):
Ms.Sahana.P.Shankar
[email protected]
Ms. Supriya, M. S.
[email protected]
1
Faculty of Engineering & Technology © Ramaiah University of Applied Sciences
Lecture Objectives
2 2
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Lecture Topics
• Architecture
• Civil vs Software Architecture
• Elements of Software Architecture and their Purpose
3 3
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Civil Architecture: Classical Style
The Pantheon
Rome, Italy
4 4
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Civil Architecture: Gothic Style
Nôtre-Dame Cathedral
Paris, France
5 5
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Civil Architecture: Mediterranean Style
Irvine, California
6 6
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Civil Architecture: Mediterranean Style
Irvine, California
7 7
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Analogies with Civil Architecture
Civil Engineering and Civil Architecture
are concerned with the engineering and design of
civic structures (roads, buildings, bridges, etc.)
8 8
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Differences Between Civil and Software
Architecture
9 9
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Elements of Software Architecture
• Components
• Connectors
• Interfaces
• Links
10 10
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Components
• A component is a building block that is …
– A unit of computation or a data store, with an
interface specifying the services it provides
– A unit of deployment
– A unit of reuse
11 11
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
The Difference Between Components and
Objects
• Lifecycle
– Objects are created and destroyed constantly
– Components are created and destroyed infrequently
• Purpose of use
– Graphics toolkit (component) vs. graphics widget (object)
– Data store (component) vs. data structure (object)
• Type system
– Objects are instances of a class, with classes arranged in
hierarchies according to inheritance relationships
– Components may have their own type system (may be
trivial), often very few components of the same type
• Size
– Objects tend to be small
– Components can be small (one object) or large (a library
of objects or a complete application) 12 12
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Connectors
• A connector is a building block that enables
interaction among components
– Shared variables
– Procedure calls (local or remote)
– Messages and message buses
– Events
– Pipes
– Client/server middleware
• Connectors may be implicit or explicit
– Implicit: procedure calls
– Explicit: First-class message buses
13 13
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
The Difference Between Components and
Connectors
• Task Performed
– Components focus on computational tasks
– Connectors focus on communication tasks
• Application Semantics
– Components generally implement most of the application
semantics
– Connectors do not (they may change the form of the
message, but do not generally change its meaning)
• “Awareness”
– Components (should be) unaware of who is using them and
for what purpose
– Connectors are more aware of components connected to
them so they can better facilitate communication 14 14
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Interfaces
• An interface is the external “connection point” on
a component or connector that describes how
other components/connectors interact with it
• Provided and required interfaces are important
• Spectrum of interface specification
– Loosely specified (events go in, events go out)
– API style (list of functions)
– Very highly specified (event protocols across the
interface in CSP)
• Interfaces are the key to component
interoperability (or lack thereof)
15 15
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Configurations
• A configuration is …
– The overall structure of a software architecture
– The topological arrangement of components and
connectors
• Implies the existence of links among
components/connectors
– A framework for checking for compatibility between
interfaces, communication protocols, semantics, …
• “If links had semantics, they’d be connectors.”
• Usually constructed according to an
architectural style
16 16
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Graphically…
Interfaces
Clock Component
Connector
Bus1
Interfaces
17 17
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Graphically (cont).
Clock Configuration
Links
Bus1
LCD
Driver
18
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Summary
19 19
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
References
• This sessions contains material borrowed from:
Taylor, N. R. and Dashofy, E. M. (2002), Software Architecture, ICS
123 Spring 2002 Lecture Notes, UC Irvine
20 20
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences