Software Quality Engineering BS (SE) - VI: Dr. Assad Abbas

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 21

Software Quality Engineering

BS(SE)-VI

Dr. Assad Abbas

Department of Computer Science


COMSATS University Islamabad, Islamabad Campus
assadabbas@comsats.edu.pk
Topics

n Software Design and Architecture


n Relationship of Design and Architecture with Quality
n Quality Assurance Approaches for Design and
Architecture

12/21/20 2
Architecture
n Variety of definitions:
5 [An architecture is] the fundamental organization
of a system embodied in its components, their
relationships to each other, and to the
environment, and the principles guiding its design
and evolution (IEEE Computer Society, 2000).

5 The software architecture of a system is the set of


structures needed to reason about the system,
the discipline of creating these structures, and the
relations among them

12/21/20 3
Goals of Architecture
n Goals of Architecture
5 Handle both functional and quality requirements.
5 Improve external confidence in either the
organization or system

https://www.tutorialspoint.com/software_architecture_design/introduction.ht
m 12/21/20 4
Design
n Software design is a process to transform user
requirements into some suitable form, which helps
the programmer in software coding and
implementation.
5 Data structures, algorithms, class scope, database
etc.

12/21/20 5
Phases in the Design Process

12/21/20 6
The Relationship between the Two?
n Wrong view—architecture as a phase?
n Treating architecture as a phase denies its foundational role in
software development
5 Software Architecture focuses more on the interaction between the
externally visible components of the system where as the Design is
about how the internal components of the system interact with each
other.
5 Likewise, Software Architecture is more about what we want the
system to do whereas Software Design is about how we want to
achieve that. Moreover, Software Architecture is at a higher level of
abstraction than the Software Design.
5 Software Architecture is concerned with issues beyond the data
structures and algorithms used in the system. For example the
architecture is concerned with the interactions between the
components so as to enhance the quality in various dimensions, such
as in terms of performance, reliability, scalability etc.

12/21/20 7
Quality Attributes
n Software quality is usually defined in terms of
meeting the specifications or fulfilling the customer
needs
n What other properties should it have to make this a
quality software?
n Quality Attributes
5 Reliability
5 Usability
5 Efficiency
5 Maintainability
5 Portability
5 and so on
12/21/20 8
Relationship Between Software Design and Quality
n Software design has a prevalent impact on product
quality.
5 design decisions can impact various software quality
attributes
n Lack of quality in the design process can
5 invalidate good requirements specification
5 make correct implementation impossible

12/21/20 9
Relationship Between Architecture and Quality
n Software architecture is intertwined with quality as
architecture represents the design decisions made
regarding a system
n The decisions impact the software systems
throughout its life (development & operations)
n Limited-term focus on architecture will not yield
significant benefits!

12/21/20 10
Architectural Scope
n The concept of architecture is prevalent in many
disciplines, but perhaps is best known in civil and
structural engineering and building architecture.
n Even in the field of software engineering, we often
come across different forms of architecture.
5 enterprise architecture, system architecture,
information architecture, hardware architecture,
application architecture, infrastructure architecture,
data architecture, and so on.

12/21/20 11
Analogy: Architecture of Buildings
n The analogy between the design and construction of buildings
and design and construction of software is strong indeed.
5 Requirements
5 Design (blueprints)
5 Construction
5 Use

12/21/20 12
Quality Assurance Approaches for Design
and Architecture

12/21/20 13
Design Reviews
n Software design reviews
5 systematic, comprehensive, and well-documented
design inspections
n Formal meetings/informal
5 Informal review— involves those individuals directly
involved in the design project.
5 Formal reviews— include applicable subject matter
experts not directly involved in the design
n Held at the end of design phase

12/21/20 14
Quality Assurance: What to Look for in Design?
n Have all the requirements been addressed?
n Assuring that all important modules are covered and
correctly designed in the detailed designs.
n Assuring that the design documents are under
configuration (change) management.
n Appropriate design methodology chosen?
n Compatibility analysis?
n Component level
5 Interfaces
5 Data structures and algorithms
n Procedural level
n Design goals

12/21/20 15
Design Review Checklist
n Design reviews across the organizations vary
n Checklist
5 https://www.energy.gov/sites/prod/files/cioprod/docum
ents/deslist.pdf

12/21/20 16
Quality Assessment in Architecture
n Architectural analysis is the activity of discovering
important system properties to:
5 avoid, identify, or mitigate risks
n Early, useful answers about relevant architectural
aspects help identify:
5 inappropriate or incorrect design decisions before they
are incorporated into the system
n Stakeholders
5 Architects
5 Developers
5 Managers
5 Customers
5 Vendors
12/21/20 17
Architecture Quality Assessment Approaches
n Three types of approaches
5 Qualitative
5 Quantitative
5 Scenario based evaluation
n Qualitative Approach
5 Architectural reviews
g The focus is to reveal the inconsistencies

12/21/20 18
Architecture Quality Assessment Approaches
n Quantitative Approaches
5 Benchmarks
5 Simulations
5 Metrics
g Reliability metrics (time to failure, time to repair, time
between failures)
5 Prototypes

12/21/20 19
Architecture Quality Assessment Approaches
n Scenario based evaluation
5 In scenario based evaluation of architecture, a divide and
conquer approach is applied to evaluate the architecture by
focusing on specific scenarios
5 Architectural trade-off analysis method developed at Carnegie
Melon’s Software Engineering Institute
5 Human-centric process for identifying risks early on in software
design
5 Specific use-cases are identified that represent the most
important or most frequently occurring system usage scenarios
in large-scale and complex systems
g Architecture Trade-off Analysis Method (ATAM)
u Focuses specifically on four quality attributes (NFPs)
» Modifiability
» Security
» Performance
» Reliability
12/21/20 20
References

1. Relating System Quality and Software Architecture.


Mistrik et al., Elsevier, 2014.

12/21/20 21

You might also like