Architecturally Significant Requirements
   HOME

TheInfoList



OR:

Architecturally significant requirements are those requirements that have a measurable effect on a computer system’s
architecture Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and construction, constructi ...
. This can comprise both software and hardware requirements. They are a subset of
requirements In engineering, a requirement is a condition that must be satisfied for the output of a work effort to be acceptable. It is an explicit, objective, clear and often quantitative description of a condition to be satisfied by a material, design, pro ...
that affect a system architecture in measurably identifiable ways.


Relation to non-functional requirements and quality attributes

Architecturally significant requirements were only recently, as of 2016, recognized as an important notion. When discussing architecture, the terms non-functional requirements or quality attributes are often used. However, recent empirical studies show that, for a
software system A software system is a system of intercommunicating software component, components based on software forming part of a computer system (a combination of Computer hardware, hardware and software). It "consists of a number of separate Computer progr ...
, not all non-functional requirements affect its
architecture Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and construction, constructi ...
, and functional
requirements In engineering, a requirement is a condition that must be satisfied for the output of a work effort to be acceptable. It is an explicit, objective, clear and often quantitative description of a condition to be satisfied by a material, design, pro ...
can also affect its architecture. This research suggests distinguishing which software requirements are architecturally significant and whether they are functional when discussing software architecture is worth it.


Characteristics

Architecturally significant requirements can be characterized by the following aspects.


Descriptive characteristics

Architecturally significant requirements are often hard to define and articulate, tend to be expressed vaguely, tend to be initially neglected, tend to be hidden within other requirements, and are subjective, variable, and situational. Other requirements could also demonstrate these descriptive characteristics. However, architecturally significant requirements’ significance made these manifestations unique and challenging.


Indicators

A requirement with a broad effect targets trade-off points, is strict (constraining, limiting, non-negotiable), assumption-breaking, or difficult to achieve, and is likely to be architecturally significant. Indicators of architectural significance that have been reported in the literature include: * The requirement is associated with high business value and/or technical risk. * The requirement is a concern of a particularly influential stakeholder. * The requirement has a first-of-a-kind character, e.g. none of the responsibilities of existing components in the architecture address it. * The requirement has QoS/SLA characteristics that deviate from those already satisfied by the evolving architecture. * The requirement has caused budget overruns or client dissatisfaction in a previous project with a similar context. The OpenUP and Peter Eeles discuss additional criteria for architectural significance in several articles and presentations. Seven criteria for architectural significance were addressed at the European Conference on Software Architecture in 2020: business value/risk, stakeholder concern, quality level, external dependencies, cross-cutting, first-of-a-kind, and source of problems on past projects. These criteria are described in an


Heuristics

When a requirement specifies a
software system A software system is a system of intercommunicating software component, components based on software forming part of a computer system (a combination of Computer hardware, hardware and software). It "consists of a number of separate Computer progr ...
’s quality attributes, refers to its core features, imposes constraints on it, or defines the environment in which it will run, it is likely to be architecturally significant. See discussion of design vs. architecture under
software architecture Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
for additional criteria of architectural significance.


Elicitation

Like all non-functional requirements and quality attributes, architecturally significant requirements should be specified SMART. Quality attribute scenarios are one way to achieve the S (specific) and the M (measured) criteria in SMART. The
Software Engineering Institute Software Engineering Institute (SEI) is a Federally funded research and development centers, federally funded research and development center in Pittsburgh, Pennsylvania, United States. Founded in 1984, the institute is now sponsored by the Uni ...
recommends Quality Attribute Workshops for this effort. It has been suggested that architecture analysis and design be kept lightweight and flexible; quality attribute trees for specific application genres and technology domains can support such approaches. Communicating the elicited architecturally significant requirements and any other architectural artifacts in a comprehensible notation and language for the
target audience The target audience is the intended audience or readership of a publication, advertisement, or other message catered specifically to the previously intended audience. In marketing and advertising, the target audience is a particular group of cons ...
(particularly business stakeholders) is essential.


Impact

Architecturally significant requirements are used in
software design Software design is the process of conceptualizing how a software system will work before it is implemented or modified. Software design also refers to the direct result of the design process the concepts of how the software will work which co ...
to drive and justify architectural decisions; if not satisfied properly, they contribute to the accumulation of technical debt. For instance, failure to meet security and compliance requirements complicates the system and process assurance audits and increases the risk of audit findings. Exemplary advice on addressing system quality attributes (including architecturally significant requirements) is available in the literature.A. Rotem-Gal-Oz, SOA Patterns, Manning, 2012.


See also

* Architectural decision *
Architectural pattern Software architecture pattern is a reusable, proven solution to a specific, recurring problem focused on architectural design challenges, which can be applied within various architectural styles. Examples Some examples of architectural patte ...
* Attribute-driven design *
List of system quality attributes Within systems engineering, quality attributes are realized non-functional requirements used to evaluate the performance of a system. These are sometimes named architecture characteristics, or "ilities" after the suffix many of the words share. ...
* Non-functional requirement * Requirements engineering *
Software architecture Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
* Solution architecture *
Systems architecture A system architecture is the conceptual model that defines the structure, behavior, and view model, views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning ...


References

{{Reflist Software architecture