Please enable JavaScript.
Coggle requires JavaScript to display documents.
Chapter 3 Models for Software Architecture - Coggle Diagram
Chapter 3
Models for Software Architecture
Overview
Software architecture
specifies a high-level of abstraction
composition
architectural styles
employing decomposition
quality attributes
design
conform
non-functional
functional
describe
many ways
Box-and-line diagrams
describe
business concepts
during the analysis phase of the software development lifecycle.
processes
components and connectors
common intuitive interpretations.
“4+1” view model
five views in the model
the development view
the physical view,
the process view
the user interface view
the logical view
logical view
identify
software modules
their boundaries
interfaces
external environment
usage scenarios
etc
Presents the major components and their static relationships
Based on application domain entities necessary to implement the functional requirements
Point out all major tasks the system must complete
The process view
addresses
non-functional requirements
such as
module communication styles
performance issues at runtime
The development view
organizes
the software units in well-defined ways according to the actual file or directory structure.
The physical view
specifies
deployment infrastructure in terms of
networking configurations
software
hardware
installation
deployment for delivery purposes.
Architecture Description Languages
Requirements for an ADL
Reuse
Reusability should be built-in at the component and connection level. The derivation of architecture patterns should also be supported to facilitate the reuse of architecture descriptions
Composition
It should be possible describe a system as a composition of independent components and connections. Large systems should be built from constituent elements and it should be possible to consider each element independently of the system
Heterogeneity
It should be possible to combine multiple, heterogeneous architectural descriptions.
Abstraction
It should be possible to describe the components and their interactions in a way that describes their abstract roles in a system. It should not be necessary to consider implementation issues while specifying the architecture
Configuration
Architecture descriptions should enable comprehension and modification of an architecture without examination of each component and connector
Analysis
The use of an ADL should facilitate the analysis of an architecture design. Analysis might include consideration of throughput, deadlock, input/output behavior and scheduling.
UML
OMG states
Unified Modeling Language (UML) is a graphical language for
specifying
visualizing
constructing
documenting the artifacts of a software-intensive system
UML
offers standard
draw a system’s blueprints
including conceptual notions
business processes
system functions
concrete designs
programming language statements
:database schemas
reusable software components
provides many useful diagrams
two major categories
Structural (static)
Behavioral (dynamic).
The dynamic software architecture
describes the behavior of objects
Model
Structural Diagrams
Class Diagram
An overview of classes for modeling and design, It show hơ classes are statically related, but not how classes dynamically interact with each other.
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/
Object Diagram
Objects and their relationship at runtime. An overview of particular instances of a class diagram at a point of time for a specific case. It is based on the class diagram.
https://hauvuong.mobi/object-diagram-la-gi/
Composite Structure Diagram
Describes the inner structure of a component including all classes within the component, interface of the component, etc
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-composite-structure-diagram/
Component diagram
Describes
mối quan hệ qua lại
tất cả các thành phần trong một hệ thống
tương tác của chúng
giao diện của hệ thống
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/
Package Diagram
Describes the package structure and organization. It covers classes in the package and packages within another package.
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-package-diagram/
Deployment Diagram
Describes system hardware, software, and network, and network connections for distributed computing. It covers server configuration and network connections between server nodes in real-world setting.
https://creately.com/blog/diagrams/deployment-diagram-tutorial/
Behavioral Diagrams
Use Case Diagram
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-use-case-diagram/
Activity Diagram
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-activity-diagram/
State Machine Diagram
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-state-machine-diagram/
Interaction Overview Diagram
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-interaction-overview-diagram/
Sequence Diagram
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-sequence-diagram/
Communication or Collaboration Diagram
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml-collaboration-diagram/
Timing Diagram
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-timing-diagram/
4+1 Architecture View Models
The scenario view
describes
functional of system
how user use system
how system provides services to the users.
provides a foundation(nền tảng) for other 4 views
help 4 views work together
coherently(mạch lạc)
seamlessly(Liền mạch)
helps
designers discover(khám phá) architectural elements
validate the architectural design
The Logical or Conceptual View
UML
static diagrams
object diagram
class diagram
dynamic diagrams
interaction overall diagram
sequence diagram
communication diagram
state diagram
activity diagram
use for
used for object-oriented modeling
is
abstraction(trừu tượng hóa) of the system's functional requirements.
focuses
functional requirements
main building blocks
key abstractions decomposing(phân tích) of the system.
specifies
conceptual entities (such as objects)
connection between them (such as associations).
helps understand
interactions between entities
their potential variation(Biến đổi tiềm ẩn)
stakeholders
end-user
analysts
designers
The Development or Module View
describes
software static organization of the system modules.
derived from(nguồn gốc)
logical view
addresses(solver)
sub-system decomposition issue
sub-system organizational issue
UML
package diagrams
component diagrams
stakeholders of view
software project manager
programmers
maps
software component elements to actual physical directories, files in the development environment.
software
packaged
partitioned
into small units
sush as
sub-systems
libraries
developed by many teams of developers.
The Process View
focuses
dynamic aspects of the system
execution time behavior.
UML
communication diagram
activity diagram
sequence diagram
interaction overview diagram
derived from
logical view.
is
abstraction of
processes
with
process synchronization
process concurrency.
threads dealing(luồng xử lý)
contributes(góp phần)
non-functional requirements
quality attributes
scalability requirements
performance requirements
concurrency
synchronization
distribution
system throughput
stakeholders
developers
integrators
The Physical View
describes
installation
of software application.
configuration
deployment
mapping
software onto hardware
interest(quan tâm)
in distributed(phân tán) or parallel(xong xong) systems.
stakeholders
system installers
system administrators
system engineers
operators
also takes into account
system's nonfunctional requirements
reliability (fault-tolerance)
throughput performance
availability
scalability performance
security
The User Interface View
extended view from scenarios view
giving user-computer clear interface view while hiding implementation details.
https://en.wikipedia.org/wiki/4%2B1_architectural_view_model