software architecture: basic concept

advertisement
By
Xiangzhe Li
Thanh Nguyen


Components and connectors are composed in a specific way in a
given system’s architecture to accomplish that system’s objective.
Definition – An architectural configuration is a set of specific
associations between the components and connectors of a software
system’s architecture

“A set of design rules that identify the kinds of components and
connectors that may be used to compose a system or subsystem,
together with local or global constraints on the way the
composition is done”
- Shaw & Clements, 1996

Components


Connector


Multiple clients sharing single blackboard
Underlying computational model


Blackboard: shared data repository, possibly with finite capacity
Configurations


Blackboard client programs
Synchronized, shared data transactions, with control driven entirely by
blackboard state
Stylistic invariants

All clients see all transactions in the same order

Definition- An architectural pattern is a named collection of
architectural design decisions that are applicable to a recurring
design problem, parameterized to account for different software
development contexts in which that problem appears




Patterns help you build on the collective experience of skilled
software engineers.
They capture existing, well-proven experience in software
development and help to promote good design practice
Every pattern deals with a specific recurring problem in the
design or implementation of a software system
Patterns can be used to construct software architectures with
specific properties…

First learn rules and physical requirements


Then learn principles


e.g., relative value of certain pieces, strategic value of center squares, power of a threat, etc.
However, to become a master of chess, one must study the games of other masters


e.g., names of pieces, legal movements, chess board geometry and orientation, etc.
These games contain patterns that must be understood memorized, and applied repeatedly
There are hundreds of these patterns

First learn the rules


Then learn the principles


e.g., structured programming, modular programming, object oriented
programming, generic programming, etc.
However, to truly master software design, one must study the
designs of other masters


e.g., the algorithms, data structures and languages of software
These designs contain patterns must be understood, memorized, and applied
repeatedly
There are hundreds of these patterns

Style and pattern are similar and it is not always possible to
identify. However, in general styles and patterns differ in at least
three important ways:

Scope
 Style focus on development context while pattern focus on specific design
problem

Abstraction
 Style helps to constrain the architectural design decisions one makes about
the system while patterns are parameterized architectural fragments

Relationship
 A single pattern could be applied to systems designed of multiple styles.
 A single style may involve the use of multiple pattern



Definition – An architectural model is an artifact that captures
some or all of the design decisions that comprise a system’s
architecture. Architectural modeling is the reification and
documentation of those design decisions
The notations for modeling software architectures are frequently
referred to as Architecture Description Languages( ADLs)
Used as the foundation for most other activities in architecturebased software development processes such as analysis, system
implementation, deployment, and dynamic adaptation








Architectural design
Architecture modeling and visualization
Architecture driven system analysis
Architecture-driven system implementation
Architecture-driven system deployment, run-time redeployment,
and mobility
Architecture-based design for nonfunctional properties, including
security and trust
Architecture adaptation
Architecture recovery



If architectural degradation is allowed to occur, one will be forced
to recover the system’s architecture sooner or later
Definition – Architectural recovery is the process of determining a
software system’s architecture from its implementation level
artifacts
-Implementation-level artifacts can be
Source code
 Executable files
 Java .class files


-
-
Definition:
A person, group or organization that has interest or concern in an
organization
Stakeholders can affect or be affected by the organization's actions,
objectives and policies.







Architects
Developers
Testers
Managers
Customers
Users
Vendors



http://www.nyu.edu/
http://www.ccs.neu.edu/
http://www.artechra.com/
Download