Please enable JavaScript.
Coggle requires JavaScript to display documents.
Models for Software Architecture - Coggle Diagram
Models for Software
Architecture
3.1 Overview
describe its collection of components and the connections and interactions
conform to
the project's functional and nonfunctional requirements
3.2 UML for Software Architecture
graphical language for visualizing, specifying, constructing, and documenting the artifacts of a
software-intensive system
3.2.1 Structural Diagrams
Class Diagram
provides a static view of the system
describe each individual class with its type, interface, properties, and methods.
Object Diagram
describe a sample subset of objects in the system at a specific point in time
a concrete example of the class diagram at runtime
Composite Structure Diagram
describe the composition of interconnected elements or the collaboration of runtime instances.
2 basic notation: collaboration and structured class
Component Diagram
Each component has an interface to expose its services and hide its implementations.
The interface is the contract between a reusable component
and its clients.
Package Diagram
shows the dependency relationship between packages
in which a change of one package may result in changes in other packages.
specify the contents of a package, i.e., the
classes that constitute a package and their relationships.
Deployment Diagram
depicts the physical configuration of the software
system
3.2.2 Behavioral Diagrams
Use Case Diagram
describe user requirements in terms of system functionality as a contract between the users (actors) and the software system
Activity Diagram
involves complex workflow, decision making, concurrent
executions, exception handling, process termination
workflow-oriented diagram describing the steps in a single
process
State Machine Diagram
an event-oriented diagram in which the system's elements change their states in
response to external or internal stimuli
Interaction Overview Diagram
describes the control flow of the interactions rather than the message
Sequence Diagram
time-oriented interaction diagram showing the chronological sequence of messages between
objects
one sequence diagram corresponds to one use case
Communication or Collaboration Diagram
message-oriented diagram that describes all message passing sequences, flow control, object coordination, etc., among the objects that participate in certain use cases.
Timing Diagram
combines the state
diagram and time sequences
show the dynamic view of state change
caused by external events over time.
3.3 Architecture View Models
Definition
A model is a complete, simplified description of a system from a particular perspective or viewpoint.
View models provide partial representations of the software architecture to specific stakeholders
system users
analyst/designer
developer/programmer
system integrator
system engineer
4+1 view model
introduced by Philippe Kruchten (Kruchten, 1995)
views
4 essential views
logical view
process view
physical view
development view
scenario view
user interface view
3.3.1 TheScenarioView
describes the functionality of the system
provides a foundation for the other four views and lets them work together seamlessly and coherently
helps designers to discover architecture elements during the design process and to validate the archi- tecture design afterward
make the software architecture consistent with functional and nonfunctional requirements
3.3.2 The Logical or Conceptual View
implement the functional requirements
focuses on functional requirements, the main building blocks, and key abstractions of the system
used for object-oriented modeling from where the static and dynamic system structures emerge
seperate system into conceptual entities (such as objects) and connections between them (such as associations)
helps to understand the interactions between entities in the problem space domain of the application and their potential variation
diagrams
interaction overall diagram
sequence diagram
communication diagram
state diagram
activity diagram
stakeholders
end-users
analysts
designers
3.3.3 The Development or Module View
derives from the logical view and describes the static organization of the system modules
The software is packaged and partitioned into small units such as program libraries or subsystems created by many teams of developers
diagrams
package diagrams
component diagrams
stakeholders
programmers
software project managers
3.3.4 The Process View
focuses on the dynamic aspects of the system, explains the system processes and how they communicate, and focuses on the run time behavior of the system
derives from the logical view
addresses concurrency, distribution, integrator, performance, and scalability, etc
diagrams
sequence diagram
communication diagram
activity diagram
stakeholders
developers
integrators
3.3.5 The Physical View
describes installation, configuration, and deployment of the software application
concerned with the system topology in terms of hardware, network, and other infrastructure is all part of this view
explains the nonfunctional requirements and quality attributes such as performance, availability, reliability, and scalability
diagrams: deployment diagrams
stakeholders
system installers
system administrators
system engineers
operators
3.3.6 The User Interface View
giving user-computer clear interface view while hiding implementation details
any modification on this view will have direct impact on the scenarios view
3.4 Architecture Description Language (ADL)
An ADL is a notation specification providing syntax and semantics for defining software architecture
provides designers with the ability to decompose components, combine components, and define interfaces of components
An ADL is a formal specification language with well-defined syntax and semantics used to describe architecture components and their connections, interfaces, and configurations
requirements for an ADL
Composition
Abstraction
Reuse
Configuration
Heterogeneity
Analysis