Software is the code which can be executed on some hardware like Microprocessor to perform certain action. Source code of Windows Operation System is a Software, source code of your favourite mobile app is also Software. Software is developed by Programmers, Developers who firstly design what they want to build as a Model and then follow step-by-step process to make that Model real. This step-by-step process of developing Software is called Software Development Life Cycle which consists of eight steps.
Software Development Life Cycle Steps
- Identifying/Documenting Requirements
- Documenting Source Code
This eight step-by-step process cannot be followed properly to build a Software Product. Like mostly in companies that develop software Planning is often done by managers who probably don’t have Technical Skills(Programming) and that’s why they come up with some requirements which cannot be full filled by Developers. This may lead to developing either doing some guffy code to make requirement happen, which can induce a lot of issues in Software Source Code.
This is one potential issue that can happen during Software Development Life Cycle, but there can be many more similar issues which comes up during a Software Project. These issues often end up in the Source Code of Software often reducing its quality. But what is quality of software?
Let’s discuss this question about Software Quality. Software Quality is defined as measure of how much it fulfill its requirements. For example – APP Software quality for users can be it’s efficiency, memory usability, speed while for APP Software provider quality can be maintainability, scalability, cost of making. Thus for different stakeholders of Software, quality is defined against different metrics. Quality of a Software can be measured using different metrics some of these are as following.
Software Quality Measurement Metrics
- Functional Suitability – Functional Completeness and Correctness
- Performance Efficiency – Time Behaviour, Resource Utilisation
- Compatibility – Coexistence, Interoperability
- Usability – Operability, User Error Protection
- Reliability – Fault Tolerance, Recoverability
- Security – Confidentiality, Authenticity
- Maintainability – Modularity, Reusability, Testability
- Portability – Installability, Adaptability
Factors which lower Software Quality
- Inadequately defined requirements
- Not having effective communication between client and developer
- Deviating from earlier defined Software Requirements
- Errors in Architecture/Design of Software Source Code
- Errors in Software Testing Code
- Inadequately reviewed Software Source Code
- Misinterpretation of Software Source Code by different Team Members
Factors which Increases Software Quality
- Effective Communication between team members while developing Software
- Extensive Testing of Source Code of Software
- Motivating Managers
- Clearly defined Software Requirements for Developers/Programmers
- Having some time flexibility around deadlines, if required
In order to prevent Software Quality from lowering down while its in development or in production different companies follows Quality Assurance Procedures which involve some clearly defined processes to prevent software quality going down.
Quality Assurance Procedures
|Quality Assurance Procedures|
|A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements.|
|A set of activities designed to evaluate the process by which products are developed or manufactured.|
|The planned and systematic activities implemented within the quality system, and demonstrated as needed, to provide adequate confidence that an entity will fulfil requirements for quality.|
Most Software Developing Companies follow these kind of quality assurance procedures so that whatever Software Product they’re developing is of appropriate quality.