View Model of Software Architecture

advertisement
ELEMENTS OF
SOFTWARE
ARCHITECTURE
CSPC 464 Fall 2014
Son Nguyen
2
References
Architecture Blueprints _ The “4+1” View Model of
Software Architecture, Phiippe Kruchten
2. Software Architecture for Developers, Simon Brown
3. An Introduction to Software Architecture, David
Garlan and Mary Shaw
4. Software Architecture, A. Bijlsma, B.J. Heerendr.,
E.E> Roubtovair, S. Stuurman
1.
Agenda
• Attendance/Roster
• Review topics from last week
• Today’s topics: Elements of SW Architecture
• Key architecture description concepts:
• Viewpoint
• View
• Model
• “4+1” View Model
• Logical View
• Process View
• Development View
• Physical View
• Documenting SW Architecture
Review
• What are things in the method content?
• How many types of process are there?
• What are the major problems in waterfall model?
• What are major phases in iterative process according to
OpenUP?
Review
• What are things in the method content?
• How many types of process are there?
• Method Content
• Work products
• Tasks
• Roles
• Types of Process
• Waterfall
• Iterative
• Agile
Review
• What are the major problems in waterfall model?
• Project progress cannot be measured accurately
• Completing requirements without doing any architecture, development,
or testing will NOT give you an accurate indication of how long project
would take
• User feedback cannot obtained until late in the project – when the
system is available for use
• Resolution of certain risks (e.g., activity identifies flaws in design or
requirements) is deferred until late in the project – after the system
is built, integrated, and tested
• Project that follow a waterfall approach are prone to schedule
slippage
What are major phases in iterative process according to
OpenUP? Inception Phase, Elaboration phase, Construction Phase,
Transition Phase
8
Architectural Viewpoints
• The key architecture description concepts are:
• Viewpoint
• View
• Model
• Defined in IEEE 1471-2000 Recommended Practice for
Architectural Description
• An architectural viewpoint defines a product in terms of a
related set of concerns
9
Architectural Viewpoints (continued)
• Basic viewpoints
• Requirements
• System requirements that shape architecture
• Include functional requirements, qualities, growth, and constraints
• Functional
• Concerned with elements support functionality of system, such as
components, their relationships and behavior
• Deployment
• Concerned with elements support distribution of system, such as nodes,
devices, and connections among them
• Validation
• Provide an indication of whether the system will provide required
functionality, required qualities, required growth, and accommodate the
defined constraints
10
Architectural Views
• A view, in general, is what you see from your view point
• A view is a window onto the whole architecture from a particular
vantage point
• An architectural view shows part of product consistent with a
viewpoint
• A requirements view will be different than a functional view of a product
• However, the views MUST be consistent within and between themselves
• Different views, single version of Truth
• In most cases, views are diagram types,
with multiple pages or sections
(e.g., sequence diagram)
• These diagrams are models of the product
Like civil engineering models,
make the product easier to envision
and understand
11
Architectural Views (continued)
• Model represent a work product that participates in a view
• Models may represent different levels of realization
• A logical model shows how the product may be envisioned
• A physical model shows how the product will be constructed
12
View Model of Software Architecture
• The 4+1 View Model of Software Architecture is a commonly
used architecture description framework by Philippe Kruchten
• To describe a software architecture, we use a model composed
of multiple views or perspectives
• Consist of five main views:
• Logical view, which is the object model of the design (when an object•
•
•
•
oriented design method is used).
Process View, which captures the concurrency and synchronization
aspects of the design,
Development View, which describes the static organization of the
software in its development environment.
Physical View, view, which describes the mapping(s) of the software
onto the hardware and reflects its distributed aspect,
Scenarios or use cases the description of an architecture is illustrated
by a few selected uses cases or scenarios
13
View Model of Software Architecture
14
Logical View
• The logical architecture primarily supports the functional requirements—
what the system should provide in terms of services to its users.
• The system is decomposed into a set of key abstractions (e.g.,
packages), taken (mostly) from the problem domain, in the form of
objects or object classes.
• The style we use for the logical view is an object-oriented style. The
main guideline for the design of the logical view is to try to keep a single,
coherent object model across the whole system
• Notation for the logical blueprint
15
Logical View - Examples
• Shows the main classes (conversation, terminal, controller) using set of
services (translation, connection) involved in the Télic PABX architecture
• Blueprint for an Air Traffic Control System (class diagram contains 8 class
categories (i.e., group of classes)
16
Logical View - Examples
• Shows the overall decomposition of a DB Subsystem component into sub-
packages
17
Process View
• Several styles for the process view: pipes and filters, or client/server,
with variants of multiple client/single server and multiple
clients/multiple servers,
• Notation for the process blueprint
18
Process View - Examples
• Shows the process blueprint for the Télic PABX architecture (partial)
• All terminals are handles by a single process. Controller objects are
executed on one of three tasks (low rate -200ms, high rate 10ms)
19
Process View - Examples
• Shows the distribution of DB subsystem across processes
<<process>>
Database Server
Oracle
Enterprise
Manager (OEM)
<<process>>
Web Browser
HTTPS
<<process>>
Database Backup
Oracle RDBMS
Shared
Libraries
JDBC
<<process>>
Java EE Application
Server
20
Development View
• Style for the process view: layered style
• Notation for the development blueprint
21
Development View - Examples
• The five layers of Hughes Air Traffic Systems (HATS)
22
Development View – Examples (cont)
• The six layers of the development view of a typical SW architecture.
• Shows allocation of the DB subsystem and its dependent software
components to the development view of the architecture
23
Physical View
• Notation for the Physical blueprint – could be very messy in large
systems
24
Physical View - Examples
Physical blueprint for a larger PABX showing process allocation
25
Physical View - Example
Shows DB subsystem is deployed on a Database server
The deployment view of the software architecture shows where executables (COTS and
non-COTS) and data for the software are installed.
Administrator Workstation
Web Browser
Database Server
Oracle RDBMS & Utilities
DDL
Stored Procedures & Packages
Installation & Configuration Scripts
Data Reduction
High Availability Support
26
Scenarios
• Put it all together
• Notation for the Scenarios:
• The notation is very similar to the Logical view for the
components (objects), but uses the connectors of the
Process view for interactions between objects
(message, RPC, message, bidirectional)
• Note that object instances are denoted with solid lines.
As for the logical blueprint, we capture and manage
object scenario diagrams using Rational Rose or
Rhapsody Architecture tools
27
A scenario for a local call (small PABX)
The corresponding script reads:
1. The controller of Joe’s phone detects and validate the transition from on-hook
to off-hook and sends a message to wake up the corresponding terminal object.
2. The terminal allocates some resources, and tells the controller to emit some
dial-tone.
3. The controller receives digits and transmits them to the terminal.
4. The terminal uses the numbering plan to analyze the digit flow.
5. When a valid sequence of digits has been entered, the terminal opens a
conversation
28
Data Reduction Admin Use Case
29
Tailoring the Model
• Not all software architecture need the full “4+1” views.
Views that are useless can be omitted from the
architecture description, such as the physical view, if there
is only one processor, and the process view if there is
only process or program.
• For very small system, it is even possible that the logical
view and the development view are so similar that they do
not require separate descriptions.
• Especially using COTS products in your architecture (no
need development view)
• The scenarios are useful in all circumstances.
30
Summary
• The “4+1” view model has been used with success on several large projects
with or without some local customization and adjustment in terminology.
• It actually allowed the various stakeholders to find what they want to know
about the software architecture.
• Systems engineers approach it from the Physical view, then the Process view.
• End-users, customers, data specialists from the Logical view.
• Project managers, software configuration staff see it from the Development view..
31
Summary of “4+1” Model
Tool support
Rose/Rhapsody Visio, Apex HP Openview Rhapsody, Visio
32
Documenting Software Architectures
• IEEE 1471/ISO 42010 defines a standard for
documenting software architectures
• Describes what constitutes a viewpoint and views, but does not
define a specific set of either to be used.
• Many different candidate views suggested by various
authors
• No consensus about even viewpoints
• Typically, the documentation produced during the
architectural design is captured in two documents:
• A Software Architecture Document, whose organization follows
closely the “4+1” views
• • A Software Design Guidelines, which captures (among other
things) the most important design decisions that must be respected
to maintain the architectural integrity of the system.
33
SW Architecture Document - a typical
outline
34
Coming Next…
• Next, we will take a look at architectural design process
• Homework assignments this week –
• Read Chapter 4
• Review Chapter 1,2, and 3
• Assignment #1 will be posted on TITANium on Thursday
Sept 4 due Tuesday 9 7PM
Download