• Home
  • Archive
  • Tools
  • Contact Us

The Customize Windows

Technology Journal

  • Cloud Computing
  • Computer
  • Digital Photography
  • Windows 7
  • Archive
  • Cloud Computing
  • Virtualization
  • Computer and Internet
  • Digital Photography
  • Android
  • Sysadmin
  • Electronics
  • Big Data
  • Virtualization
  • Downloads
  • Web Development
  • Apple
  • Android
Advertisement
You are here:Home » What Should We Know About Software Quality

By Abhishek Ghosh October 9, 2021 5:09 pm Updated on October 9, 2021

What Should We Know About Software Quality

Advertisement

In software engineering, software quality is an overall appreciation of software, based on many indicators. Completeness of functionality, correction and accuracy of results, reliability, fault tolerance, ease and flexibility of its use, simplicity, extensibility, compatibility and portability, ease of correction and transformation, performance, consistency and integrity of the information it contains are all quality factors.

Unlike hardware, the software is a product that does not have predictable reliability, moreover, it does not wear out over time. So, an anomaly occurs or does not occur in the execution of the software, the anomaly is present latently and may never occur. The quality of software depends entirely on its construction and the processes used for its development, so it is a central subject in software engineering. An overall assessment of quality takes into account both external factors, directly observable by the user, and internal factors, observable by engineers during code reviews or maintenance work.

Software quality problems, known since the 1960s, are also at the origin of software engineering, the science of software creation, including all the difficulties associated with it – respect for costs, deadlines, specifications and the level of quality. There are several certification standards for the quality management system in companies.
Please note that our present topic software quality control (QC) which is an engineering process, is different from software quality assurance (QA).

Advertisement

---

 

Software Quality Indicators

 

  • Functional capacity: the ability of the functionalities of software to meet the explicit or implicit requirements and needs of users. This included accuracy, interoperability, compliance with standards and security; ease of use, which focuses on the effort required to learn how to handle the software. This included ease of understanding, learning and operation and robustness – incorrect use does not lead to malfunction.
  • Reliability: the ability of software to render correct results regardless of operating conditions. This included fault tolerance – the ability of software to function even when disabled by the failure of a component.
  • Performance: the ratio between the number of resources used (material means, time, personnel), and the number of results delivered. This included response time, throughput and scalability – the ability to maintain performance even under heavy use.
  • Maintainability: This measures the effort required to correct or transform the software. This includes extensibility.
  • Portability: The ability of software to operate in a hardware or software environment different from its initial environment. This is part of the ease of installation and configuration in the new environment.

An increase in functional capacity can harm performance, maintainability and reliability. While an increase in reliability, maintainability or availability has a positive impact on usability. In addition, an increase in maintainability can harm performance.

What Should We Know About Software Quality

 

Quality Improvement

 

In software engineering, the factorization of data and code is the universal means of achieving quality. The factorization of the data results in the object model whose relational systematic correspondent is ideal when normalized. When data structures are standardized, they become non-redundant, therefore minimal in size, and do not cause any problem of inconsistency as long as the integrity resulting from their type and the referential integrity are ensured, constraints to which must be added “business rules” consisting of logical constraints involving several fields/attributes. This work at the data level allows in itself the reduction of the processing code exploiting this data. Performance does not suffer if queries are well organized.

Regarding code, factorization makes it possible to write similar statements only once, through a reasoned use of intermediate and local variables, loops, functions and procedures. This allows the maximum reduction of the size of the source code (without normal loss of readability) and results in the changes being as local as possible (therefore faster, and more reliable in terms of non-regression). An additional gain in source code reduction is provided by polymorphism and dynamic binding (which eliminate “referral procedures”) in object programming (these are generated by the compiler instead of having to be written explicitly by the programmer).

These factorizations bring out the right abstractions, the right structuring, and allow the best possible control of the integrity of the data and the proper execution of the treatments, whose functions, called in several points of the source code can become reused services, as much as the data which, being shared, are reused without duplication. This work allows an application to be “modular”. These modules are the services. Their interface is clear and without edge effect, the treatment they carry out becomes hidden (black box) for its customer modules.

The coupling between a module and its calling modules becomes as weak as possible, because only the values of parameters varying from one call to another are passed as an argument, the variables invariant between calls should ideally constitute attributes of a carrier-class, the function/module becoming a method (in a successful object programming). For the most critical modules, their flawless availability can be based on a physical instantiation redundancy strategy, or the contrary the maintenance of uniqueness but based on a hardware service managed autonomously by a dedicated team.
Abstraction aims to reduce the overall complexity of the software by reducing the number of modules and ensuring the essentials. It can also bring uniformity of the software that increases its usability by facilitating its learning and use.

The purpose of concealment is to completely separate the technical details of the software from its functionalities according to the black box principle, to improve its maintainability, portability and interoperability. The structuring of instructions and data makes visible in the source code the main lines of the organization of the instructions and information handled, which improves its maintainability and facilitates the detection of bugs.

Many programming languages support or even require the writing of source code according to the principles of structuring, modularity and concealment. This is the case for structured programming and object-oriented programming languages.

Facebook Twitter Pinterest

Abhishek Ghosh

About Abhishek Ghosh

Abhishek Ghosh is a Businessman, Surgeon, Author and Blogger. You can keep touch with him on Twitter - @AbhishekCTRL.

Here’s what we’ve got for you which might like :

Articles Related to What Should We Know About Software Quality

  • Nginx WordPress Installation Guide (All Steps)

    This is a Full Nginx WordPress Installation Guide With All the Steps, Including Some Optimization and Setup Which is Compatible With WordPress DOT ORG Example Settings For Nginx.

  • Changing Data With cURL for OpenStack Swift (HP Cloud CDN)

    Changing Data With cURL For Object is Quite Easy in OpenStack Swift. Here Are Examples With HP Cloud CDN To Make it Clear. Official Examples Are Bad.

  • WordPress & PHP : Different AdSense Units on Mobile Devices

    Here is How To Serve Different AdSense Units on Mobile Devices on WordPress With PHP. WordPress Has Function Which Can Be Used In Free Way.

  • Steps To Install Nginx Plus on Ubuntu Server (HP Cloud)

    Here Are the Steps To Install Nginx Plus on Ubuntu Server Running on HP Cloud. Nginx Plus is the Paid Version of Nginx with Extra Features.

performing a search on this website can help you. Also, we have YouTube Videos.

Take The Conversation Further ...

We'd love to know your thoughts on this article.
Meet the Author over on Twitter to join the conversation right now!

If you want to Advertise on our Article or want a Sponsored Article, you are invited to Contact us.

Contact Us

Subscribe To Our Free Newsletter

Get new posts by email:

Please Confirm the Subscription When Approval Email Will Arrive in Your Email Inbox as Second Step.

Search this website…

 

Popular Articles

Our Homepage is best place to find popular articles!

Here Are Some Good to Read Articles :

  • Cloud Computing Service Models
  • What is Cloud Computing?
  • Cloud Computing and Social Networks in Mobile Space
  • ARM Processor Architecture
  • What Camera Mode to Choose
  • Indispensable MySQL queries for custom fields in WordPress
  • Windows 7 Speech Recognition Scripting Related Tutorials

Social Networks

  • Pinterest (24.3K Followers)
  • Twitter (5.8k Followers)
  • Facebook (5.7k Followers)
  • LinkedIn (3.7k Followers)
  • YouTube (1.3k Followers)
  • GitHub (Repository)
  • GitHub (Gists)
Looking to publish sponsored article on our website?

Contact us

Recent Posts

  • Hybrid Multi-Cloud Environments Are Becoming UbiquitousJuly 12, 2023
  • Data Protection on the InternetJuly 12, 2023
  • Basics of BJT TransistorJuly 11, 2023
  • What is Confidential Computing?July 11, 2023
  • How a MOSFET WorksJuly 10, 2023
PC users can consult Corrine Chorney for Security.

Want to know more about us?

Read Notability and Mentions & Our Setup.

Copyright © 2023 - The Customize Windows | dESIGNed by The Customize Windows

Copyright  · Privacy Policy  · Advertising Policy  · Terms of Service  · Refund Policy