Hi Readers today we are going to talk about Software Architecture, Importance of Software, Characteristics of Software that is the process of defining a structured solution
that meets all of the technical and operational requirements, while optimizing
common quality attributes such as performance, security, and manageability. It
involves a series of decisions based on a wide range of factors, and each of
these decisions can have considerable impact on the quality, performance,
maintainability, and overall success of the application.
|
What is Software Architecture | Characteristics of Software Architecture |
Philippe Kruchten, Grady Booch, Kurt Bittner, and Rich Reitman derived and
refined a definition of architecture based on work by Mary Shaw and David
Garlan (Shaw and Garlan 1996).
Their definition is:
"Software architecture encompasses the set of significant decisions about the organization of a software system including the selection of the structural
elements and their interfaces by which the system is composed; behavior as
specified in collaboration among those elements; composition of these structural and behavioral elements into larger subsystems; and an architectural
style that guides this organization. Software architecture also involves
functionality, usability, resilience, performance, reuse, comprehensibility,
economic and technology constraints, tradeoffs and aesthetic concerns.”
CHARACTERISTICS
OF SOFTWARE ARCHITECTURE
It is
of general agreement that quality issues should be considered very early in the Software
development process, to mitigate risks and to facilitate the achievement of the
overall software system. Moreover, the architecture of the system drives the
whole development process. The fulfillment of nonfunctional quality
requirements by a candidate architecture is crucial to select the convenient
architecture on which the whole system will be articulated. This issue is very
important in the construction of reliable evolutionary applications. Software
development methods do not give many details on this important stage. This work
deals with the specification of quality requirements for software architecture,
introducing a technique based on the ISO 9126-1 standard. The quality
characteristics of the ISO quality model are refined into attributes, which can
be measured to enrich the information about the architecture. It could be
easily integrated into a general software development process or into specific
architectural design methods.
These
standard characteristics of software architecture are as under;
CHARACTERISTICS
|
DESCRIPTION
|
FUNCTIONALITY
|
The capability of the software product to
provide functions which meet stated and implied needs when the software is
used underspecified conditions (what the software does to fulfil needs)
|
RELIABILITY
|
The
capability of the software product to maintain its level of performance
under stated conditions for a stated period of time
|
USABILITY
|
The capability of the software product to be
understood, learned, used and attractive to the user, when used under
specified conditions (the effort needed for use)
|
EFFICIENCY
|
The
capability of the software product to provide appropriate performance, relative to the amount of resources used, under stated conditions
|
MAINTAINABILITY
|
The capability of the software product to be
modified. Modifications may include corrections, improvements or adaptations
of the software to changes in the environment and in the requirements and
functional specifications (the effort needed to be modified)
|
PORTABILITY
|
The
capability of the software product to be transferred from one Environment to another. The environment may include organizational, hardware or software environment
|
IMPORTANCE
OF SOFTWARE ARCHITECTURE
Systems should be designed with consideration for the user, the system (the IT
infrastructure), and the business goals. For each of these areas, you should
outline key scenarios and identify important quality attributes (for example,
reliability or scalability) and key areas of satisfaction and dissatisfaction.
Where possible, develop and consider metrics that measure success in each of
these areas.
Like any other complex structure, software must be built on a solid foundation.
Failing to consider key scenarios, failing to design for common problems, or
failing to appreciate the long-term consequences of key decisions can put your
application at risk. Modern tools and platforms help to simplify the task of
building applications, but they do not replace the need to design your
application carefully, based on your specific scenarios and requirements. The
risks exposed by poor architecture include software that is unstable, is unable
to support existing or future business requirements, or is difficult to deploy
or manage in a production environment.
Post a Comment