Lecture One
Lecture One
requirements solutions
client,
architect developers
users
visualises prescribes
1
The
Architecture?
Is
art?
science?
Architecting
a
house
Kruchten!
Architecting
a
high
rise
Kruchten!
Mac
OS
X
Component
Architecture
AQUA
DARWIN
Mac
OS
X
Component
Architecture
AQUA
IMAGING LAYER
BSD SUBSYSTEM
MACH KERNEL
Mac
OS
X
Component
Architecture
API LAYER
AQUA
BSD SUBSYSTEM
MACH KERNEL
Mac
OS
X
Component
Architecture
USER INTERFACE LAYER
AQUA
BSD SUBSYSTEM
MACH KERNEL
Today
12
• Dictates
organiza<onal
structure
• Inhibits
or
enable
quality
aHributes
• Architecture
is
a
transferable
abstrac<on
of
a
system
• Product
lines
share
a
common
architecture
• Allows
for
template-‐based
development
• Basis
for
training
Three
Basic
Reasons:
ØMutual
communica<on
l A
common
high-‐level
abstrac<on
that
can
be
used
by
all
the
system’s
stakeholders
ØEarly
design
decisions
l Ones
that
will
be
important
throughout
the
lifecycle
(development,
service
and
maintenance)
ØTransferable
abstrac<on
of
the
system
l Rela<vely
small,
intellectually
graspable
model
of
the
system
Transferable
Model
ØReuse
at
the
architectural
level
for
systems
with
similar
requirements
lEn<re
product
lines
can
share
a
common
architecture
ØFacilitates
use
of
externally-‐developed
components
lArchitecture
constrains
how
components
interact
with
their
environment
lHow
they
receive
and
relinquish
control
lThe
data
they
work
with
and
produce
lThe
protocols
they
use
for
communica<on
and
resource
sharing
Architecture
deCined
Formal
DeCinition
• IEEE
1471-‐2000
•
So'ware
architecture
is
the
fundamental
organiza7on
of
a
system,
embodied
in
its
components,
their
rela7onships
to
each
other
and
the
environment,
and
the
principles
governing
its
design
and
evolu<on
Component
SpeciCications
n Component
specifica<ons
supply
the
details
needed
to
provide
a
complete
system
descrip<on
at
this
par<cular
level
of
abstrac<on
n interface
syntax
n interface
seman<cs
n The
structural
and
behavioral
proper<es
captured
by
the
component
specifica<ons
must
be
consistent
with
the
design
diagram
Component
n Sample
component
types
Heater
procedure
Methods
Heat
n Controller
be
abstract
inactive turn on active
Architecture
deCined
Another
Go
• So'ware
architecture
encompasses
the
set
of
significant
decisions
about
the
organiza<on
of
a
so'ware
system
• Selec<on
of
the
structural
elements
and
their
interfaces
by
which
a
system
is
composed
• Behavior
as
specified
in
collabora<ons
among
those
elements
• Composi<on
of
these
structural
and
behavioral
elements
into
larger
subsystems
• Architectural
style
that
guides
this
organiza<on
http://www.sei.edu/architecture/definitions.html"
Common
elements
1/2
• Architecture
defines
major
components
• Architecture
defines
component
rela<onships
(structures)
and
interac<ons
• Architecture
omits
content
informa<on
about
components
that
does
not
pertain
to
their
interac<ons
• Behavior
of
components
is
a
part
of
architecture
insofar
as
it
can
be
discerned
from
the
point
of
view
of
another
component
Common
elements
2/2
• Every
system
has
an
architecture
(even
a
system
composed
of
one
component)
• Architecture
defines
the
ra<onale
behind
the
components
and
the
structure
• Architecture
defini<ons
do
not
define
what
a
component
is
• Architecture
is
not
a
single
structure
-‐-‐
no
single
structure
is
the
architecture
Architecture
is
Early
functional requirements
(domains) design
" Maintainability
" Portability
" Reusability
" Testability Developer’s view
Product
Line
-‐
Initiation
• Evolu<onary
• Product
line
architecture
and
components
evolve
with
the
requirements
posed
by
new
product
line
members.
• Revolu<onary
• Product
line
architecture
and
components
developed
to
match
requirements
of
all
expected
product-‐line
members