Lecture 1
Lecture 1
ARCHITECTURE
Lecture 1
Software Crisis
Need:
• Design plan (idea) in
the builder's mind
• Simple process:
building while thinking
• Simple tools
Villa’s architecture design
Need:
• Design, modeling
• Well defined process
• Powerful tools
Buildings’architecture design
HOW TO BUILD?
Story moral: pay attention to the design of
architecture
Definition of IEEE610.12—1990
Definition of Booch&Rumbaugh&Jacobson
• Software Architecture encompasses the significant decisions
about
• the organization of a software system,
• the selection of the structural elements and their interfaces by
which the system is composed together with - their behavior as
specified in the collaboration among those elements,
• the composition of these elements into progressively larger
subsystems,
• the architectural style that guides this organization, these
elements and their interfaces, their collaborations, and their
composition.
Definition of Bass
Definition of Shaw
Shaw made the following classification of the various views
of the software architecture definition :
• Structure Model
This is the most Direct and prevalent module establishment
method. Using component /connector and other conception to
describe architecture , and inflect critical content including system
configuration/restriction/consumption/style and characters with
architecture.
Core to Structure Model is architecture description language.
What is software architecture ?
Definition of Shaw
• Framework Model
Similar with Structure Model,not concentrate particularly
to detail, but to unitary framework.
Framework model is aiming to solution to special
problem.
• Dynamic Model
Supplement to structure and framework model, it
mainly focus on extensive behavior characters. For
example, description to system reconfiguration or
evolvement.
What is software architecture ?
Definition of Shaw
• Process Model
• Research on steps and process of system
• Configuration model is following to Process Model
What is software architecture ?
Characterized by small-scale
‘Non-architecture’ design phase application development in
assembly language
The theme of program structure
design emerged, characterized
Germination phase by control flow graph and the
data flow graph as a software
structure
The structure model of the
system is described from
initial phase
different aspects, and UML is the
typical representative.
To describe the high-level abstraction
of the system structure as the center,
Advanced phase do not care about the modeling of
specific details, divides the
architecture model and the limits of
traditional software structure, the
phase marked by Kruchten suggests
‘4 + 1’ model
Research Status of Software Architecture
Availability
Availability refers to the ability of a system to mask or repair faults
such that the cumulative service outage period does not exceed a
required value over a specified time interval.
The availability of a system can be calculated as the probability
that it will provide the specified services within required bounds
over a specified time inter- val. When referring to hardware, there
is a well-known expression used to derive steady-state availability:
MTBF
(MTBF + MTTR)
where MTBF refers to the mean time between failures and MTTR
refers to the mean time to repair. In the software world, this
formula should be interpreted to mean that when thinking about
availability, you should think about what will make your system
fail, how likely that is to occur, and that there will be some time
required to repair it.
Quality Attributes
Interoperability
Interoperability is about the degree to which two or more
systems can usefully exchange meaningful information via
interfaces in a particular context. The definition includes not
only having the ability to exchange data (syntactic
interoperability) but also having the ability to correctly interpret
the data being exchanged(semantic interoperability).
Quality Attributes
Modifiability
Modifiability is the ability to quickly make changes to a system
at a higher performance-to-price ratio. Often based on some
specific changes, the modifiability is measured by examining
the costs of these changes.
Performance
It’s about time and the software system’s ability to meet
timing requirements. When events occur—interrupts, messages,
requests from users or other systems, or clock events marking
the passage of time—the system,or some element of the
system, must respond to them in time.Characterizing the events
that can occur (and when they can occur) and the system or
element’s time-based response to those events is the essence
is discussing performance.
Quality Attributes
Security
Security is a measure of the system’s ability to protect
data and information from unauthorized access while
still providing access to people and systems that are
authorized.
Testability
Software testability refers to the ease with which software
can be made to demonstrate its faults through (typically
execution-based) testing. Specifically, testability refers to
the probability, assuming that the software has at least
one fault, that it will fail on its next test execution.
Intuitively, a system is testable if it“gives up” its faults
easily.
Quality Attributes
Usability
Usability is concerned with how easy it is for the user to
accomplish a desired task and the kind of user support
the system provides.
Usability comprises the following areas:
Learning system features.
Portability
development distributability
Scalability
deployability
Mobility
Monitorability
Safety