0% found this document useful (0 votes)
44 views20 pages

Lecture 12

Uploaded by

clmc0811
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views20 pages

Lecture 12

Uploaded by

clmc0811
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Lecture 12: Architectural Design

CSC212A Software Development Fundamentals

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

• At the end of this lecture, student will be able to


– Identify the basic building blocks of software architecture
– Explain the purpose of components in software architecture
– Compare civil architecture with software architecture

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.)

• Architecture vs. Construction


• Multiple views
– Civil: Artist renderings, elevations, floor plans, blueprints
– Software: Code, object design, boxes-and-arrows, GUI
• Architectural styles
– Civil: Classical, Romanesque, Gothic, Renaissance, Baroque, Art Deco
– Software: Pipe-and-filter, client/server, layered system
• Influence of style on engineering principle
• Influence of style on choice of materials

8 8
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Differences Between Civil and Software
Architecture

• Physical vs. conceptual


• Static vs. dynamic
• Little evolution vs. frequent evolution
• Different mathematical and scientific bases
• Different notions of “reuse”

9 9
Faculty of Engineering & Technology ©Ramaiah University of Applied Sciences
Elements of Software Architecture

• Components

• Connectors

• Interfaces

• Links

• Configuration: Rules of Relationships and Behavior

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

• Civil and software architectures both provide multiple view points of


respective projects
• There are different styles of architecture in both architectures

• The building blocks of software architecture are


– Components
– Connectors
– Interfaces
– Links and
– Configuration

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

You might also like