Technological innovations have greatly affected almost all aspect of man’s life. From a household needs to leisure needs, the effect of technology is apparent. There has been various tools and appliances introduced in the market to make the life easier. A microwave, for example, has made cooking and faster. So are cars and other transportation advancements. Remarkably, along with the every technological development is software that contains the program that runs a particular equipments or gadgets.
Meanwhile, software is defined as “the programs, routines, and symbolic languages that control the functioning of the hardware and direct its operation” (Answers. com, 2008). Each equipment or gadget is run by unique software which, in turn, makes the function that makes software inevitable in every aspect of life. Being significant, the software installed in the equipments must ensure safety and guarantee quality. In the case of simple equipment like microwave, a simple defect may bring only a minor damage.
But as to public utilities like trains or cars, simple defect of software may cause life. In addition, the same can be true in the case of computer software. It can be recalled that millions of dollars have been lost and various important data has not been retrieved due to I love you virus that attacked most of the computers at the very onset of the 21st century. The damage was remarkable and the unfortunate event even led to the creation of laws punishing the creators of the viruses.
Additionally, aside from safety, the tight competition in the market makes it also more important to ensure the quality of software. Quality is defined as “the degree of goodness of a product or service or perceived by the customer” (Noorul Islam Educational Trust). In measuring the quality of software, standards and procedures have been established. These procedures and standards are should be strictly complied upon by software installed in certain product. It is at this stage that the Software Quality Assurance (SQA) plays a vital role.
Definition and Concept of Software Quality Assurance Software Quality Assurance is defined as “a planned and systematic approach to the evaluation of the quality of and adherence to software product standards, processes, and procedures” (National Aeronautics and Space Administration, 2008). From the definition, it can be gleamed that the SQA is responsible in checking the accuracy of the software being created. Moreover, the SQA is responsible for standard and procedure compliance of the software. In doing such, the SQA involves certain activities such as process monitoring, product evaluation, and audits (National Aeronautics and Space Administration, 2008).
Standards and Procedures Among the concentration of SQA includes standards, procedures, and process. Basically because standard and procedure lays down the structure from which software is based upon. Meanwhile, standards are set of measures established to which software products are to be compared with. Procedures, on the other hand, are established criteria to which development and control are compared (National Aeronautics and Space Administration, 2008). There are several types of standards responsible for unique tasks in the functioning of software.
The first type is the Document Standards responsible for specifying the form and content for planning, control, and product documentation and provides the consistency throughout the project (National Aeronautics and Space Administration, 2008). The second type Design Standards which specify the design product as to form and content (sqa. net). This standard is also responsible for providing the rules and methods which are necessary in translating from software design to software requirement (National Aeronautics and Space Administration, 2008).
Furthermore, the rules and methods are used in representing it in design documentation (National Aeronautics and Space Administration, 2008). The last type is Code Standards which identify the language by which the code is to be written and at the same time define the restrictions on use of language features (National Aeronautics and Space Administration, 2008). Procedures, on the other hand, are steps that should be complied with in implementing the process for the purpose of completing the creation of the software.
Some of the procedure includes configuration management, non-conformance reporting and corrective actions, testing, and formal inspections (National Aeronautics and Space Administration, 2008). During the process, every step and the result of the result need to be documented. The documentation serves several purpose including monitoring. It can also be observed that corrective action is included in the process. While the procedure may be ideal, the implementation may of the set of rules and procedures may experience some failure.
The failures and errors needs to be specified. More importantly, corrective action is imposed for the purpose of correcting the mistake and recommendation as to the prevention is included. Functions of Software Quality Assurance As has been stated earlier, the SQA carries out activities necessary for the completion of the software. One of the activities of the SQA is process monitoring. Meanwhile, the Assurance section of management Plan provides the methods that should be used by the SQA (National Aeronautics and Space Administration, 2008).
In the process monitoring, the SQA assures that the steps in carrying out the process are being followed (National Aeronautics and Space Administration, 2008). In here, the SQA compares the actual steps carried out with the processes established. The second process is product evaluation. During this process, the concentration of the SQA is the standard. As has been said, there are established standards that govern the creation of the software. In ensuring that the adopted standards are to be followed, the product should be evaluated.
In most cases, the SQA monitors and evaluates first the standards and procedures before anything else. In the evaluation of the standard, the clarity and the authenticity of it should be considered. Furthermore, under this activity, the requirements laid down by the Management plan should reflect in the software created. The major activity of the SQA is audit. During audit, the SQA evaluates, analysis, and looks at the software and the process at great length. This can be done by comprehensively comparing the process to the standards and procedures laid down at the very start.
Among the necessary functions of audit include management review, technicalities, and process assurance that provides an indication as to quality and status of software product (National Aeronautics and Space Administration, 2008). Additionally, audit is included for the purposes of assuring compliance of the procedures and standards, maintenance of documentation, and ensures that the status report of the developer reflects the status of the activity (National Aeronautics and Space Administration, 2008).
Hence, the basic activity of the SQA is the assurance in the compliance of the standards and procedures in order that the desired quality is achieved throughout the process. Phases of SQA Activities Aside from the activities to be complied with by the SQA, there are also various phases that SQA has to undergo. These phases are necessary steps in determining the end of one process and the start of a new. In addition, these phases will guide the SQA in evaluating each process and will give the SQA an idea as to the possible result of the process.
The first phase is Software Concept and initiation Phase (National Aeronautics and Space Administration, 2008). Before starting with the process, the management plan should first and foremost be written and reviewed. In writing the management plan, the SQA should be included so that the standards, processes, and procedures are appropriate, clear, specific, and auditable (National Aeronautics and Space Administration, 2008). The Quality Assurance section should also be management plan.
After which, the group may start with the Software Requirements Phase, the second phase (National Aeronautics and Space Administration, 2008). It is important that before the real process begins, the requirements are complete, capable of being tested, and guaranteed as to its performance, functions, and interface requirement (National Aeronautics and Space Administration, 2008). The third phase is Software Architectural (Preliminary) Design Phase which encompasses some of SQA activities (National Aeronautics and Space Administration, 2008).
Under this phase the SQA guarantees that that design standards as specified in the Management Plan is adhered to by the group (National Aeronautics and Space Administration, 2008). In addition, the SQA assures the allocation of the software requirements in the software components, the existence and updated testing verification matrix, and conformity of interface Control Documents with the standard form and content (National Aeronautics and Space Administration, 2008). Moreover, it is at this stage that the review of PDR documentation and resolutions of action items are assured.
It is under this phase that the approved design is placed under the configuration management (National Aeronautics and Space Administration, 2008). After the architectural design, the SQA now proceeds to the Software Detailed Design Phase (National Aeronautics and Space Administration, 2008). In here, the SQA makes sure of the adherence as to the approved design standard, inclusion of allocated modules in the detailed design, inclusion of result of design inspection in the design, review of the CDR documentation and resolution of action items (National Aeronautics and Space Administration, 2008).
Following assuring that adherence of the established standards and procedures, the SQA advances to Software Implementation Phase (National Aeronautics and Space Administration, 2008). Under the implementation phase, the SQA audits the process. When making an audit, the SQA takes into account the outcome activities such as coding and designing, schedule designated in the Software Development Plan, status of items delivered and to be delivered, configuration management, software development library, reports on non-conformance, and corrective actions (National Aeronautics and Space Administration, 2008).
The sixth is the Software Integration and Test Phase (National Aeronautics and Space Administration, 2008). This phase includes the testing activities of the SQA. Before the items are to be delivered, the SQA tests its readiness. All tests conducted should comply with the test plans and procedures established in the management plan. All failure and non-conformance should also be reported and resolved according the approved procedure. More importantly, the SQA must make sure that all tests are done completely.
This is proven by the certification provided by the SQA. The group should not be convinced unless and review as to the readiness of the test has been undergone and all action items are completed (National Aeronautics and Space Administration, 2008). This is then followed by Software Acceptance and Delivery Phase (National Aeronautics and Space Administration, 2008). Under this phase the SQA makes sure that final configuration audit had been performed. Through which, the items are guaranteed to be ready for delivery.
Finally, the activities of SQA may end at Software Sustaining Engineering and Operations Phase (National Aeronautics and Space Administration, 2008). During this phase, the SQA may conduct review the whole process. Note the details that cause errors or non-conformance. There will also be “mini-development cycles to enhance or correct the software” (National Aeronautics and Space Administration, 2008). Hence, the function of the SQA does not end here because the SQA is still responsible for the maintenance of the software. It should also look into the development of the software throughout its use.
Furthermore, the unexpected outcome should be noted and reviewed for the improvement of the software. Ethical Responsibility of SQA The function of SQA is critical and challenging. While it is concentrated on the assurance as to the quality of the software, it has also ethical responsibility to the users, the public, and to the world. The public policy attached to the software production mandates the SQA to ensure that no error will bring remarkable damage to anyone. Being inevitable in man’s daily life, software must ensure quality and safety.
In the case of aviation, for example, the air transport should assure their passengers safety. Hence, air transport should use software that will address the problems faced by industry. Notably, the Federal Aviation Administration (FAA) regulations have been established to ensure that every air transport will comply with basic safety requirements (Edwards and Steinke). In compliance with the FAA regulations, all air transport class of aircraft and commercial avionics were mandated to use DO-178B by the Radio Technical Commission for Aeronautics (RTCA) (Edwards and Steinke).
Later on, the airborne military and space system were also made to comply with DO-178B guidelines (Edwards and Steinke). The software was specified to provide the aviation community with guidance and confidence that the “software aspects of airborne systems and equipment comply with airworthiness requirements” (Edwards and Steinke). Meanwhile, there had been software failure recorded. One is the Therac-25, a computerized radiation therapy machine (Edwards and Steinke). In 1985 to 1987, death and serious injuries were caused by error in the Therac-25 software (Edwards and Steinke).
Though, there was an overdose, it was concluded that the non- compliance of manufacturer of the software engineering practice contributed on the resulting accident. From here, it is clear that software is capable of bringing consequences when it does not conform to the established standards and procedures. In complying with the ethical responsibilities, several considerations may be taken into account. Notably, when an error in software occurs, the fault is pointed usually to the programmer. But for reason of fairness, the fault should also be pointed to the software vendor.
Usually, in making software, a cost is always given top priority. Companies used to consider the amount involved in software testing. In this case, quality should not be compromised with the cost. Another is communication. The level of testing applied should be disclosed to the user (Edwards and Steinke). The importance of this is to assure safety and effectiveness of the product. In addition, having extra testing would add up on the value on the product. Another key subject is the disclosure of any defect detected in the package before it is released in the market (Edwards and Steinke).
In making disclosure of defect, timing may be critical. One should then know when is the right time to make disclosure in such a way that loss of sales and accident is prevented. Finally, the software should be protected from defects beyond the intended use of software like hacking information contained in the software in order to prevent further threat to security (Edwards and Steinke). Advantages of having Software Quality Assurance In almost all companies, a Software Quality Assurance is formed in order to address quality.
Since customer is at the top of every producers and manufacturers, the SQA may play a vital role in addressing customers’ demands. One of the foremost advantages of SQA is to improve the satisfaction of customer. In a competitive market, companies should meet or even surpass the expectation of the customer. In doing so, the SQA should be adopted for an extra effort in assuring the performance and the quality of software. Another advantage of SQA is reduction of development cost of the software. While developing software may be too expensive, the company may save from the cost of maintenance.
This is basically because SQA is responsible in assuring compliance of the software to the established standards and procedures. In addition, any defect that may arise would be repaired by the SQA before it is even discovered or experienced by the customer. Furthermore, the company will save much on maintenance because only the quality-assured software will be released in the market. Conclusion In this technologically innovated era, almost all aspect of life depends upon computers and highly technical equipments.
Behind every computer, equipments and others is software that contains the program that runs and controls it. The software is a critical and vital in the performance of particular equipment. Hence, the quality of the software should be assured. The function of assuring the quality of software is the Software Quality Assurance. Through the SQA, the whole process of making the software is being watched. The function of SQA is primarily to ensure that the established software standards and procedures are adhered to all throughout the process. Through the SQA, quality and safety on the use of the software is assured.