Module - 3 New
Module - 3 New
Scenarios
4
Definition of SW View
• As per IEEE definition,
– Software architecture descriptions are commonly
organized into views,
– Each view addresses a set of system concerns, following
the conventions of its viewpoint.
• Viewpoint - A position or direction
from which something is observed or considered;
• View – Details or full specification considered from that viewpoint
– (~ describes the notations, modeling and analysis techniques that express
the architecture in question from the perspective of a given set of
stakeholders )
– So, a view of a system is a representation of the system
from the perspective of a viewpoint.
Examples of SW Views
• A view allows a user to examine a portion of a particular interest area.
• A Logical View ( top / overall / bird’s eye view)
– all functions,
– organizations,
• Implementation view
– Technology ( HW and networking)
– Module sequence
• Developmental view
– Front end
– Backend
– Database connectivity
• Process ( Deployment) View
– Modules and its functions,
– Their interactions
– Control points
– Non Functional Requirements
• Security View
– User Id / Password
– Graphical password
– Transactional password
• +++ other views
Structures and Views
• Structures is a set of coherent elements and
the relations among them.
• View of a system is a representation of the
system from the perspective of a viewpoint.
• Structure is decided on views
Categorization of Structures
1. Module Structures
2. Component and Connector Structures
3. Allocation Structures
Module Architecture
• Elements are modules ( Accounts, Registration, Appt. booking,
Consulting)
• Modules are units of implementation
• Each module is built based on Codes
• Each module has a specific assigned functional responsibility
• Includes
– Decomposition – break large system to functionally working ,
understandable modules ( Accounts, Registration, Appt. booking,
Consulting)
– Uses – Each module is used by specific users following procedures ( Dr
Consultation, Registration etc..)
– Layered – Correct layered flow of use relations i.e functionalities( register
– book appt. -pay in accounts – go to Dr)
– Class – It is generalisation allowing to reuse / inherit from other objects
1 Module Structures
• Elements: modules (units of implementation). Modules
are a code based way of considering the system
• Specifies:
– Functional responsibility of modules
– Other elements a module is allowed to use
– Generalization and specialization relations
• Run-time operation of software is not a concern from
this view ( modularity, modifiability, development, data
integrity, data hiding, reuse are consideed)
1.1 Decomposition Structure
• View:
– Layers are often designed as abstractions (virtual
machines) that hide implementation specifics below from
the layers above, (notice how IP knows about payment but
does not get involved)
– Leads to data hiding
1.4 Class Structure
• Elements: classes
• Relations: is an instance of ( cat is one instance of
a 4 legged animal class), inherits from, ( cat
inherits common properties of 4 legged animals)
• Function Example:
– Allows us to reason about reuse
– incremental addition of functionality ( incremental
development)
– Inheritance
2 Component and Connector Structures
• View:
– performance
– availability.
– Functionality and control
2.2 Shared Data or Repository Structure
• View:
– To ensure good performance and data integrity.
2.3 Client-Server Structure
• Elements: clients and servers
• Relations: protocols and message passing
infrastructure( communication between
them).
• View:
– Separation of concerns (supporting modifiability,
change done at server sufficient to reflect in all
clients)
– Work load sharing / Load balancing (supporting
runtime performance)
3 Allocation Structures
• Show the relationship between the software and the
elements in one or more external environment in which
software is created and executed.
• Specifies:
– The processor that executes each software element
– The file that stores each software element during
development
– Assignments of software to development team
• View :
– File location
– Job allocation
3.1 Deployment Structure
• Shows how software is assigned to hardware
• Elements: software (usually a process from a
component and connector view), hardware entities,
and communication pathways
• Relations: is-allocated-to and migrates-to (for
dynamic allocations)
• View:
– Allows reasoning about performance, data integrity,
availability, and security.( all run time)
– To take care of during Installation ( like O:, M: etc)
3.2 Implementation ( development)
Structure
• Shows how software elements (usually modules) are
mapped to the file structure(s) in the system's
development, integration, or configuration management
environments.
• Elements: any logical unit (e.g. module)
• Relations: implemented in
• View:
– management of development activities and build process
– Parent –child blocks
– Data integrity
– P: modules, Q: config files, S: common prog, T: Testing, O: site
ver
3.3 Work Assignment Structure
• Assigns responsibility for implementing and integrating the
modules to the appropriate development teams
• Elements: any logical unit (e.g. module)
• Relations: is assigned to
• View:
– The architect will know the expertise required on each
team
– The means for factoring functional commonalities and
assigning them to a single team, rather than having them
implemented by everyone who needs them.
– Supportability
Structure and View
Conclusions
• Each structure is useful on its own right but not all
structures are used in all projects.
Sequence If-then-else
T
F F
T
F T
T
F
Selection Repetition
29
Tabular Design Notation
Rules
Conditions 1 2 3 4
Condition A T T F
Condition B F T
Condition C T T
Actions
Action X
Action Y
Action Z
30
Rational Unified Process (RUP) View
( Kruchten 4+1)
• 4 main views of a SW + 1 view tying them together
• 4 Main views
– Logical View
• Functional requirements
– Process View
• Concurrent and non concurrent functionalities
– Deployment View
• Run time components mapping to computing platform
– Implementation View ( development)
• Organisation of modules to prog.tools, data files etc..
• 1 connecting view
– Use case view
• Connecting functions to process to programs and data
What is RUP?
The Rational Unified Process is a software engineering process,
which is an extension to Unified Modeling Language (UML) – a
guide to the effective use of the UML for modeling. It organizes
software projects in
terms of workflows and phases, each consisting of one or more
iterations, in the way that testing and validating design ideas as well
as decreasing risks is possible in the early steps of a lifecycle.
Rational Unified Process (RUP) is an agile software development
method, in which the life cycle of a project, or the development of
software, is divided into four phases. Various activities take place
during these phases: modelling, analysis and design,
implementation, testing and application.
Problem
• Arch. documents over-emphasize an aspect of
development or do not address the concerns of
all stakeholders
• Various stakeholders of software system:
– end-users
– developers,
– system engineers,
– project managers
• Software engineers struggled to represent more
on one blueprint, and so arch. documents contain
complex diagrams
33
Solution
• Using several concurrent views or perspectives, with different
notations each one addressing one specific set for concerns
• “4+1” view model presented to address large and challenging
architectures
34
4+1 View Model of Architecture
Scenarios
35
Logical View ( Functional view)
(Object-oriented Decomposition)
Viewer: End-user
considers: Functional requirements- What the system should
provide in terms of services to its users.
Notation: Object diag, class diag, seq diag, state diag, comn diag
Tool: Rational Rose
36
Logical Architecture
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, taken (mostly) from the problem domain, in the form
of objects or object classes. They exploit the principles of
abstraction, encapsulation, and inheritance. This decomposition is
not only for the sake of functional analysis, but also serves to
identify common mechanisms and design elements across the
various parts of the system.
A class diagram shows a set of classes and their logical
relationships: association, usage, composition, inheritance, and so
forth. Sets of related classes can be grouped into class categories.
Class templates focus on each individual class; they emphasize the
main class operations, and identify key object characteristics.
Notations – Logical view
Logical architecture example
Process View
(The process decomposition)
viewer: Integrators
considers: Non - functional requirements
(concurrency, performance, scalability)
• Uses multiple levels of abstractions, a logical
network of processes at the highest level
• A process is a grouping of tasks that form an
executable unit
• Notation : Activity diag
40
Process Architecture
The process architecture takes into account some non-functional requirements, such as performance
and
availability. It addresses issues of concurrency and distribution, of system’s integrity, of fault-tolerance,
and
how the main abstractions from the logical view fit within the process architecture—on which thread of
control is an operation for an object actually executed.
The process architecture can be described at several levels of abstraction, each level addressing
different
concerns. At the highest level, the process architecture can be viewed as a set of independently
executing
logical networks of communicating programs (called “processes”), distributed across a set of hardware
resources connected by a LAN or a WAN. Multiple logical networks may exist simultaneously, sharing
the
same physical resources. For example, independent logical networks may be used to support separation
of
the on-line operational system from the off-line system, as well as supporting the coexistence of
simulation
or test versions of the software.
A process is a grouping of tasks that form an executable unit.
Notation for process view
Process view Example
Development View
(Subsystem decomposition)
Basis of a line of product
Viewer: Programmers and Software Managers
considers: software module organization
(Hierarchy of layers, software management, reuse, constraints
of tools)
Style: layered style
Notation: component dia, package dia.
44
Development architecture
48
Physical Architecture
52
Scenario example
Private Automatic Branch Exchange (PABX)
scenario for a local call—selection phase
53
Correspondence between views
• Views are interconnected.
• Start with Logical view and Move to Development or Process
view and then finally go to Physical view.
54
The Iterative process
• Not all software arch. need all views.
• A scenario-driven approach to develop the
system
• Documentation:
– Software architecture document
– Software design guidelines
55
Remarks
• Methodology successfully used in
– Air Traffic Control
– Telecom
• Comprehensive: All other views are reducible
to one of the 4 views
56
View Vs Notation
Scenario ( outside world view of system) Usecase diag
• The four views are conceptual, execution, module and code architecture views.
• These four views separate different engineering concerns, thus reducing the
complexity of the architecture design task.