Chapter 3 - Architecture - Session III
Chapter 3 - Architecture - Session III
What’s next..
Using this view the static structure of the system, including components,
interfaces, and their associations are modeled. This view is appropriate
for:
Designing for portability
Designing maintainability (maintaining existing features)
Designing for extensibility (adding new features)
Designing for reusability
Resource allocation, project structuring and planning
Software Engineering Design: 10/3/2012 4
Theory and Practice
DESIGNING THE LOGICAL ARCHITECTURE
Video controller communicates with the No interface defined! Direct association suggests
actual
video collection hardware to these
that components are tightly f re
coupled, there it more difficult to o making
cmp Component Diagram Example
command it! ter
modify the system l on!
a
«subsystem»
ClientCollectionSystem
«delegate»
S iteController
IEnviromentData IEnvironmentData c mmunicates
«delegate»
o the
with
«delegate»
ISensorControl ISensorControl
SensorsController SiteController world.
outside It
ISchedule «delegate» requires
a schedule
ISchedule
provides
and
IController collected
data
.
Sensor
communicates
controller with UserInterface
actual
the Sensor
hardware to
command it!
1. receiveMsg(msg)
<<thread>> <<thread>> comm: CommMgr
m2: SensorMgr m1: SiteManager
2. sendMsg(ACK)
4. startCollection ()
3. update(msg)
uiManager : Observer
This view can be used to analyze the system from the perspective of
how logical components map to physical files and directories.
These analyses can be employed to address concerns that deal with:
Ease of development
Reusability
Compile-time dependencies of the system
Configuration management
Allocation of work to teams
Cost evaluation and planning
Project monitoring
Portability
Software Engineering Design: 10/3/2012 8
Theory and Practice
DESIGNING THE DEVELOPMENT
ARCHITECTURE
Notice how versions
Version change with the Version
1.0 addition of new 2.0
functionality!
Version 1 of
the
SiteManager
Version 2 of
the
SiteManager
Version 2.0 is used by a specific
Version 1.0 is used by a specific customer that requires video
customer that does not require video capture capabilities.
capture capabilities.
User View
Do NOT make the assumption that a particular UML classifier belongs exclusively to a
particular view of the 4+1 model!!
Although some classifiers are certainly “the main characters” in particular views, they can
serve as “supporting characters in other views.”
For example, components are used mostly in the logical view, BUT,
They can also be used in the physical view to model how they are manifested by artifacts!
UML Artifacts are tricky, because they can be used as the dominant design unit (i.e.,
“main character”) in both development and physical view:
In the physical view, they model deployment artifacts.
These are artifacts necessary to form an executable system (e.g., .dll, .jar, .class, .ini file,
etc.)
These are essential to model the run-time dependencies of the system (e.g., .NET 4.1)
In the development view, they model work product artifacts
These are artifacts used to create deployment artifacts, i.e., they are necessary to build
the software (e.g., source code files [.h, .cpp, .java], data files])
These artifacts do not directly exist in the physically deployed system; they are the
work products of development used to build the system.
These are essential to model the compile-time dependencies to build the system as well
as versioning and configuration management of the system.
Keep in mind that when using UML artifacts, modeling occurs in the physical dimension,
which can be addressed in both development and physical views of the 4+1 model. Artifacts do
not exist in the logical dimension, as opposed to other UML classifiers, such as components.
In the next module, we’ll delve deep into popular patterns and styles
used to model logical architectures; these are presented for the following
types of systems:
Data-centered
Data flow
Distributed
Interactive
Hierarchical