quality evaluation Flashcards

(18 cards)

1
Q

Software Quality

A
  • Software quality refers to the degree to which software conforms to its requirements and meets the needs of its users.
  • Definition 1: “The capability of a software product to satisfy stated and implied needs when used under specified conditions.”
  • Definition 2: Software quality depends on “the degree to which those established requirements accurately represent stakeholder needs, wants, and expectations.”
  • High quality software meets its requirements, which in turn should accurately reflect stakeholder needs.
  • Quality is about aligning the software with both its formal requirements as well as true user needs.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Error

A
  • A human mistake made by a developer.
    • An example is misunderstanding a requirement and coding to the wrong specification.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

defect

A
  • A flaw or imperfection inserted into a software due to an error.
    • An example is a bug in the code or issues with other artifacts like requirements. Defects get inserted when errors are made.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

failure

A
  • The termination of the software’s ability to function as intended.
    • Occur when the software executing encounters a defect.
    • The user experiences the software failing in some unintended way
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Software Quality Management

A
  • Quality planning – Defining quality objectives, requirements, targets, and planning of quality assurance.
  • Quality control– Techniques to measure quality characteristics, review work products, and find defects.
  • Quality assurance– Processes to ensure compliance with procedures.
  • Quality improvement– Defect analysis and process enhancements.
  • Resources– Infrastructure, tools, training that enable quality processes.
  • Standards– Regulations, models, certifications that guide quality work.
  • Culture– Values, behaviors that encourage quality mindset.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How to Control Software Quality?

A
  • Testing the software
  • Static analysis of software
  • Dynamic analysis of software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Various points of view

A
  • Functionality
  • Performance
  • Quality
  • Usability
  • Maintainability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Various approaches

A
  • Quantitative
  • Qualitative
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What Represents a Good Software Metric?

A

Comparability
Intuitive interpretation
Simple and efficient computation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

LOC

A

number of lines of code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Chidamber and Kemerer (CK) Metrics Suite

A

Metrics for object-oriented software
- Weighted Methods per Class (WMC): measures the complexity of a class by assessing the sum of complexities of its methods
- Number Of Children (NOC): represents the number of immediate subclasses a class has; provides an understanding of class reuse and potential dependencies
- Coupling Between Object Classes (CBO): measures the number of classes to which a class is coupled; helps in evaluating the level of interdependence among classes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

McCabe Cyclomatic Complexity Metric

A
  • A quantitative measure of independent paths in the source code of the software product
  • An independent path is that path which has at least one edge that has not been yet traversed in any other path
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Tools for Software Evaluation & Quality Assessment

A
  • Understand
  • SonarQube
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quality Attributes

A

table

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Performance Efficiency

A
  • Represents the degree to which a software performs its functions within specified time and is efficient in the use of resources (such as CPU, memory, storage, network devices, energy, materials…) under specified conditions.
  • Time behaviour - Degree to which the response time and throughput rates of a software, when performing its functions, meet requirements.
  • Resource utilization - Degree to which the amounts and types of resources used by a software, when performing its functions, meet requirements.
  • Capacity - Degree to which the maximum limits of a software parameter meet requirements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Code Smells

A
  • Indicators of potential issues (deeper problems) in the code over time
  • Results of poor or misguided programming (e.g., not conforming to the SOLID principles)
  • Examples of Code Smells
    • Large/God Class
    • Long Method
    • Duplicated Code
    • Switch Statement
    • Feature Envy
17
Q

SOLID principles

A
  1. Single Responsibility
  2. Open/Closed
  3. Liskov Substitution
  4. Interface Segregation
  5. Dependency Inversion
18
Q

Refactoring

A
  • Performs structural changes to improve the quality of the code
  • The external behavior remains unchanged