What is Software Architecture | Characteristics of Software Architecture | Importance of Software Architecture

    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
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

Post a Comment (0)

Previous Post Next Post