CT059-3.
5-2 & Software Architecture and Testing
4 + 1 VIEW MODEL
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 1
Topic Learning Outcomes
• At the end of this topic, you should be able to:
1. Define 4 + 1 view model thoughts on software architecture
2. Differentiate the view level in 4 + 1 view model
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 2
Contents & Structure
• Problem
• Solution
• 4+1 view model
Logical view
Process view
Development view
Physical view
Use-case view
• The Notations
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 3
Recap From Last Lesson
• Why software architecture matters?
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 4
Key terms you must be able to use
• If you have mastered this topic, you should be able to use the following
terms correctly in your assignments and exams:
4 + 1 view model
Logical view
Development view
Process view
Physical view
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 5
The Problem
• Arch. documents over-emphasize an aspect of development (i.e. team
organization) or do not address the concerns of all stakeholders.
• The stakeholders of software system:
end-user,
developers,
system engineers,
project managers
• Software engineers struggled to represent more on one blueprint,
and so architecture documents contains complex diagrams
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 6
Different stakeholders – different prospective
• Architecture also means different things to different stakeholders.
• For example,
A Network Engineer would only be interested in the hardware and
network configuration of the system;
A Project Manager in the key components to be developed and
their timelines;
A Developer in classes that make up a component; and
A Tester in testable scenarios.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 7
Solution
Solution came from “4+1” view model
• The views are used to describe the system from the viewpoint of
different stakeholders, such as end-users, developers and project
managers.
• Suitable for large and challenging architectures
• Describe different aspects of the system into different views.
• (Why?) Because different stakeholders have different aspects
DEVELOPERS – Aspects of Systems like classes
SYSTEM ADMINISTRATOR – Deployment, hardware and network
configuration
TESTER , PM, CUSTOMER -- ???
• “4+1” view model provides a “better organization with better
separation of
concern”.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 8
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 9
4+1 view model architecture (for distributed
systems)
1. Logical View (or Structural View) - an object model of the
design
2. Process View (or Behavioral View) - concurrency
and synchronization aspects
3. Development View (or Implementation View) - static
organization (subset) of the software
4. Physical View (or Deployment View) - mapping of the
software to the hardware
+1. Use-cases View ( or Scenarios) - various usage
scenarios
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 10
13 UML2.0 diagrams in ‘4+1 View Model’
Architecture
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 11
1. Logical View = (The Object-oriented Decomposition)
• Viewer: End-user
• Considers: Functional Requirements- What the system should provide
in terms of services to its users.
• What this view shows?
• “This view shows the components (objects) of the system as well as
their interaction/relationship”.
• Notation: Object and dynamic models
• UML diagrams: Class, Object, State Machine, Composite Structure
diagrams
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 12
2. Development/Implementation View
= (The Subsystem Decomposition)
• Viewer: Programmers and Software Managers
• Considers: Software module organization (Hierarchy of layers,
software management, reuse, constraints of tools)
• What this view shows?
• “This view shows the building blocks of the system”.
• UML diagrams: Component, Package diagrams
• Package Details, Execution Environments, Class Libraries, Layers, Sub-system design
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 13
3. Physical/Deployment View
= (Software to Hardware Mapping)
• Viewer: System Engineers
• Considers: Non-functional Requirements for hardware
(Topology, Communication)
• What this view shows?
• “This view shows the system execution environment”. Non-functional
• UML diagrams: Deployment diagrams
• Non-UML diagrams: Network Topology (not in UML)
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 14
4. Process View = (The Process Decomposition)
• Viewer: Integrator(s)
• Considers: Non-Functional Requirements - (concurrency, performance,
scalability, usability, resilience, re-use, comprehensibility, economic and
technology constraints, trade-offs, and cross-cutting concerns - like
security and transaction management)
• What this view shows?
• “This view shows the processes (workflow rules) of the system and how
those processes communicate with each other”.
• UML diagrams: Sequence, Communication, Activity, Timing,
Interaction Overview diagrams
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 15
5. Use-case View/Scenarios = (putting it altogether)
• Viewer: All users of other views and Evaluators
• Considers: System consistency, validity
• What this view shows?
• “This view shows the Validation and Illustration of system
completeness. This view is redundant with other views.”.
• UML diagrams: Use-case diagram, User stories
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 16
Relationships between Views
• The Logical View and the Process View are at a conceptual level and are
used from analysis to design.
• The Development View and the Deployment View are at the physical level and
represent the actual application components built and deployed.
• The Logical View and the Development View are tied closer to
functionality (functional aspect) . They depict how functionality is modeled and
implemented.
• The Process View and Deployment View realizes the non-functional
aspects using behavioral and physical modeling.
• Use Case View leads to structural elements being analyzed in the Logical
View and implemented in the Development View. The scenarios in the
Use
Case View are realized in the Process View and deployed in the Physical
View.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 17
Why is it called the 4 + 1 instead of just 5?
•The Use-case View: The use case view has a special significance.
Views are effectively redundant (i.e. Views are interconnected).
However, all other views would not be possible without use case
view.
It details the high levels requirements of the system.
The other views detail how those requirements are realized.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 18
Correspondence between views
• Views are interconnected.
• They are very close, but the larger the project, the greater the distance.
• Start with Logical view (Req. Doc) and Move to Development or Process
view and then finally go to Physical view.
1. From logical to Process view
Two strategies to analyze level of concurrency:
Inside-out: starting from Logical structure
Outside-in: starting from physical structure
2. From Logical to development view
Grouping to subsystems is based on:
Classes
Class packages
Line of codes
Team organization
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 19
Software Architecture Definition by IEEE
“Software Architecture is the fundamental organization
of a system, embodied in its components, their
relationships to each other and the environment, and
the principles governing its design and evolution.”
— The definition of Software Architecture as per IEEE Recommended
Practice for Architectural Description of Software Intensive Systems
(IEEE 1471-2000)
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 20
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 21
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 22
The Notations
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 23
Logical View – Notations (functional
requirements)
• Class diagrams and class templates are usually used to illustrate the
abstraction. Common mechanisms or services are defined in class
utilities.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 24
Logical View - Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 25
Logical View - Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 26
Process View – Notations (Non-functional
requirements)
• A process is a group of tasks that form an executable unit and which can be (a)
tactically controlled, (b) replicated, (c) partitioned into a set of independent
tasks: major and minor (cyclic activities, buffering, time-outs).
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 27
Process View - Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 28
Process View - Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 29
Development/Implementation View - Notation
• It consists of libraries and subsystems representation in dev environment.
• The subsystems are organized into the hierarchy of layers with well-
defined interfaces.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 30
A Typical Layer Model
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 31
Development View / Implementation View -
Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 32
Development View / Implementation View -
Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 33
Deployment/Physical View - Notations
Represents non-functional requirements such as availability, reliability, scalability and
performance. It shows how networks, processes, tasks and objects are mapped onto the
various nodes.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 34
A typical Implementation Model
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 35
Deployment/Physical View - Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 36
Deployment/Physical View - Example
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 37
Scenarios / Use Case Model (Small PABX)
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 38
Scenarios / Use Case Model (Small PABX)
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 39
Summary
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 40
Question and Answer Session
Q&A
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 41
Slide ‹#› (out of 14)
What To Expect Next Week
In Class Preparation for Class
• Download the slide and study
• Using software architectures
for the next chapter.
AAPP007-4-2 System Analysis and Design Introduction to Information System SLIDE 42