Posts Tagged ‘Software Quality Attributes’
Software Quality – A trade-off between time, budget and quality
Software is pretty complex and there is very limited understanding of its principles. Most defects in software are design errors, not production defects. Complications also arise from the dynamic nature of software programs. Often, testing has to be restarted after the preliminary defect is fixed and the associated costs can be prohibitively expensive.
Despite the challenges, testing is an integral part of ensuring a quality software development cycle.
Ensuring software quality is not about finding bugs and defects. These complications are directly related to the code that is written. Quality means complying with the business outcomes expected of the software. Factors that need to be assessed are:
- Functionality – correctness, reliability, usability and integrity
- Engineering – efficiency, testability and documentation
- Adaptability – flexibility, reusability and maintainability
Architecture driven software development ensures quality
The one most important thing that can influence the quality of the software is the architecture used. Software architecture plays a key role, and it is collection of design decisions – intended to ensure functionality and other quality attributes of the software like reliability, usability, scalability, efficiency, maintainability, and portability.
Software architecture represents earliest design decisions that are hardest to change, is a communication vehicle among stakeholders and are the most critical to get it right.
Architecting the software right ensures the business goals of high quality, quick time to market, effective use of limited resources, optimal leveraging of available skills, low cost production, low cost maintenance and mass customization, which results in improved efficiency and productivity.
Software Quality – what is it in reality?
The moment we mention software quality, the first thing that comes to our mind is bug-free software. Is bug-free software the only thing about software quality?Absolutely not!
We can define software quality thus, it is a part of each phase of the development life cycle including testing and encompasses a whole load of factors and not just bug-free and aesthetic software. These factors that are a combination of tangible and intangible sum of quality attributes like functionality, reliability, usability, efficiency, maintainability and scalability forms an important part of the software.
A bug free, aesthetically appealing product that fails to solve business problems of the target audience for which it was designed is a poor quality product. Essentially, software quality is about meeting user needs and it is about the quality attributes as much as it is about being aesthetic and bug-free.

