ISO 25010 Software Quality Standard Notes

ISO 25010 Software Quality Standard

Applying ISO 25010 when evaluating the system of a capstone project for a BSIT program ensures high quality, both as a product and in its performance during use.

  • ISO 25010 is an international standard for software quality.

  • It defines a model for evaluating software product quality and system quality in use.

  • ISO 25010 helps in capstone project evaluation by providing quality characteristics to evaluate the project.

  • These characteristics cover a wide range of aspects, providing a clear picture of how well the system works and if it meets expected standards.

Quality Characteristics Specified

1. Functionality Suitability

The degree to which a product or system provides functions that meet stated and implied needs.

  • Measures how well a software product meets specified needs and requirements.

  • Focuses on whether the software does what it is supposed to do and how well it does it.

Functional Completeness
  • Ensures the software provides all promised or required features by the user or stakeholder.

  • Example: Ensuring all required features like user registration and reporting are fully implemented.

Functional Correctness
  • Ensures the software works as expected.

  • Involves testing to ensure every function behaves properly without errors.

Functional Appropriateness
  • Ensures the software's functionality is appropriate for the intended task and end-user.

  • Avoids including extra or overly complex features that are unnecessary, which could hurt overall usability.

2. Performance Efficiency

Relative to the amount of resources used under stated conditions: time behavior, resource utilization, and capacity.

  • Focuses on how well the software uses resources and performs under specified conditions.

  • Considers the speed, resource consumption, and capacity of the system.

Time Behavior
  • How quickly the software performs its tasks.

  • Example: A capstone system should load data or complete requests in real-time or near real-time.

Resource Utilization
  • Ensures the software uses system resources like memory, CPU, and bandwidth efficiently.

  • Excessive memory usage can slow down performance.

Capacity
  • How well the software handles increasing amounts of data or users.

  • Example: A project website should perform well even with many users logged in simultaneously.

3. Compatibility

The ability of the software to interact with other systems or components: coexistence and interoperability.

  • Focuses on how well the software interacts with other systems, hardware, or software components.

Coexistence
  • Ensures the software can run alongside other applications without causing problems.

  • Example: A capstone application should work well with other software users may already be using.

Interoperability
  • Ensures the software integrates well with other systems such as databases or third-party APIs.

  • Important for software that needs to communicate or exchange data with other systems.

4. Usability

The degree to which the software can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction. Includes appropriateness, recognizability, learnability, operability, user error protection, user interface aesthetics, and accessibility.

  • Focuses on how easy and pleasant the software is for users.

  • Software with high usability is easy to learn and use, providing a good user experience.

Appropriateness and Recognizability
  • How easily users can recognize the software's purpose and values.

  • Ensures users understand the purpose of the system from the start.

Learnability
  • How easy it is for new users to learn how to use the system.

Operability
  • Once users know the system, it is easy for them to operate without complications.

User Error Protection
  • Ensures the software helps users avoid making mistakes and guides them in fixing errors.

  • Example: Providing helpful error messages when users enter incorrect data.

User Interface Aesthetic
  • How visually appealing, organized, and easy to navigate the user interface is.

Accessibility
  • Ensures the software can be used by people with different abilities.

  • Includes features that make it easier for people with disabilities to use.

5. Reliability

The capability of the software to maintain its level of performance under stated conditions for a stated period of time. Includes maturity, availability, fault tolerance, and recoverability.

  • Focuses on how stable the software is and how consistently it performs under expected conditions.

  • Aims to keep the system working without failures over time.

Maturity
  • How often the software crashes or experiences errors.

  • Mature software has been thoroughly tested and is usually stable.

Availability
  • How often the software is available for use.

  • If the system is frequently down, users cannot rely on it.

Fault Tolerance
  • How well the software recovers from errors.

  • Ensures the system can recover without major issues if something goes wrong.

Recoverability
  • How quickly the system can recover if it fails.

  • A good system restarts and gets back to normal without significant delays.

6. Security

The protection of information and data to ensure that persons or other systems have the degree of data access appropriate to their types and levels of authorization. Includes confidentiality, integrity, non-repudiation, accountability, and authenticity.

  • Ensures only authorized users can access certain information or features.

  • Security features must be robust to protect against malicious attacks or unauthorized access.

Confidentiality
  • Ensures the software protects sensitive information.

Integrity
  • Ensures data remains accurate and unaltered without proper authorization.

Non-Repudiation
  • Ensures users or systems cannot deny actions that were performed.

  • Actions can be tracked back to the responsible party.

Accountability
  • Ensures the system tracks and logs actions for future reference.

  • Important for auditing purposes.

Authenticity
  • Ensures users or systems are who they claim to be.

  • May include multi-factor authentication or other security measures.

7. Maintainability

The ease with which a software product can be modified to correct faults, improve performance, or adapt to a changed environment. Includes modularity, reusability, analyzability, modifiability, and testability.

  • Focuses on how easy it is to fix, update, and enhance the software over time.

Modularity
  • Ensures the system is divided into separate, manageable modules or components that can be worked on independently.

  • Allows updating the system without affecting the entire system.

Reusability
  • Ensures components or code can be reused in different parts of the system or in other projects.

  • Writing reusable code saves time in future development.

Analyzability
  • How easy it is to analyze the system and identify problems.

  • Well-structured code makes it easier to diagnose and solve issues.

Modifiability
  • How easily the system can be modified to improve performance or adapt to changes in the environment.

  • If the system needs new features or bug fixes, it should be easy to modify.

Testability
  • Ensures the system is built in such a way that it is simple to run automated or manual tests on specified features.

8. Portability

The ability of the software to be transferred from one environment to another. Includes adaptability, installability, replaceability, and importance.

  • Focuses on how easily the software can be transferred or installed in a different environment.

  • Includes moving to another server or changing the platform it runs on.

Adaptability
  • How well the software can adapt to new environments or conditions.

Installability
  • How easy the software is to install.

  • Avoids complex setup procedures and allows quick installation with minimal knowledge.

Replaceability
  • Ensures the software can be replaced with another system without significant distribution and importance.

Conclusion

Use these eight quality characteristics of ISO 25010 as a guide when evaluating a capstone project or any software product. By understanding and applying these qualities, ensure that the capstone system is not only functional but also high-quality, reliable, and secure, giving the project the best chance to succeed.