11
1.2
Software architecture
1.2
Software architecture
S
oftware products are a combination of software routines, procedures, modules,
or objects that provide some functionality. Software, as a substance for developing
products, does not exhibit physical characteristics. Software is actually a language
that is transformed into electrical currents within a processing unit that permits
mathematical calculations. Software commands are translated, which permits data
manipulations or, for the sake of being precise, functions that represent a basic oper-
ation of a computer yielding a single result when invoked. Therefore, it is essential
that the software product be designed to address the full set of functional behaviors
that must be exhibited by the final product. The software architecture represents the
decomposition of requirements into the functions and subfunctions that are neces-
sary to provide the specified behavior and performance characteristics. Software
architecture refers to the art and science of designing and implementing software
products. It involves three partitions: 1) the product requirements; 2) the functional
architecture, which exhibits functional, performance and resource utilization char-
acteristics; and 3) the physical architecture which establishes the software product
structural configuration and relationships among structural elements.
The software architecture is analogous to the set of engineering drawings and
diagrams for a building. The construction of the building does not begin until the
set of drawings and diagrams have been drafted; are shown to conform to estab-
lished Uniform Building, Mechanical and Plumbing, and National Electrical codes;
and have been approved by the authorized regulatory agency. Similarly, the imple-
mentation (the design, coding, and testing of modules, etc.) of a software product
should not begin until the software architecture is complete, can be shown to be
consistent with the software requirements, and has been authorized by the project
lead to enter into the implementation stage of development. It is not advisable to
begin “construction” without understanding the full scope of the engineering
responsibility.
The software architecture establishes a complete design framework for a software
product that has been rigorously explored, refined, and scoped to be implementable
within established budget and schedule provisions. The term
design
is defined in the
Encarta Dictionary
as “to make a detailed plan of the form or structure of something,
emphasizing features such as its appearance, convenience, and efficient function-
ing.” This definition identifies four important elements that are examined here as they
apply to the software architecture:
1.
Detailed plan of the form or structure of something:
The term
plan
implies a
set of engineering drawings depicting the various perspectives of a product’s
form or structure. The software architecture provides several types of design
diagrams, drawings, or views to represent the unambiguous structure and behav-
iors of the software product. These views are necessary to communicate the
architectural concepts to members of the software development team and other
stakeholders.
Do'stlaringiz bilan baham: |