8
COSC23 – Quality Consciousness, Habits and Processes Chapter II – Software Quality Assurance SOFTWARE Software - refers to the program or set of instructions that enable the computer system to operate effectively Three Major Classes: System Software - consists of programs that control the operations of the computer and its devices - includes operating systems Programming Software - usually provide tools to assist a programmer in writing computer programs , and software using different programming languages in a more convenient way - include text editors , compilers , interpreters , linkers , debuggers Application Software - consists of programs designed to perform specific tasks for users - include word processing software, spreadsheet software, database software, presentation graphics software, business software , educational software , medical software , and computer games SOFTWARE QUALITY Software Quality - the degree of which the attribute of the software enable it to perform its intended use - measures how well software is designed (quality of design), and how well the software conforms to that design (quality of conformance) Software Quality Factors Cavite State University – Cavite City Campus 10

Chapter II - Software Quality Assurance[1]

Embed Size (px)

DESCRIPTION

Chapter II - Software Quality Assurance[1]

Citation preview

COSC 23 Quality Consciousness, Habits and Processes

PAGE 10COSC23 Quality Consciousness, Habits and Processes

Chapter II Software Quality Assurance

SOFTWARE

Software

refers to the program or set of instructions that enable the computer system to operate effectively

Three Major Classes:

System Software

consists of programs that control the operations of the computer and its devices includes operating systems

Programming Software

usually provide tools to assist a programmer in writing computer programs, and software using different programming languages in a more convenient way include text editors, compilers, interpreters, linkers, debuggers Application Software

consists of programs designed to perform specific tasks for users include word processing software, spreadsheet software, database software, presentation graphics software, business software, educational software, medical software, and computer gamesSOFTWARE QUALITY

Software Quality

the degree of which the attribute of the software enable it to perform its intended use

measures how well software is designed (quality of design), and how well the software conforms to that design (quality of conformance)Software Quality Factors Understandability

The purpose of the software product is clear All of the design and user documentation must be clearly written so that it is easily understandable Completeness

All parts of the software product are present and each of its parts is fully developed. *For example, if the code calls a sub-routine from an external library, the software package must provide reference to that library and all required parameters must be passed All required input data must be available Conciseness

No excessive information is present This is important where memory capacity is limited, and it is important to reduce lines of code to a minimum* It can be improved by replacing repeated functionality by one sub-routine or function which achieves that functionality

Portability

The software product can be easily operated or made to operate on multiple computer configurations Consistency

The software contains uniform notation, symbology and terminology within itself Maintainability

The product facilitates updating to satisfy new requirements The software product that is maintainable is simple, well-documented, and should have extra capacity for processor memory usage.

Testability The software product facilitates the establishment of acceptance criteria and supports evaluation of its performance* Such a characteristic must be built-in during the design phase if the product is to be easily testable, since a complex design leads to poor testability

Usability

The product is convenient and possible to use* The component of the software which has most impact on this is the graphical user interface (GUI)

Reliability

The software can be expected to perform its intended functions satisfactorily over a period of time Structure

The software possesses a specific pattern of organization in its constituent parts Efficiency

The software product fulfills its purpose without wasting resources, e.g. memory Security

The product is able to protect data against unauthorized access and to withstand malicious interference with its operations* Besides the presence of appropriate security mechanisms such as authentication, access control and encryption, security also implies reliability in the face of malicious, intelligent and adaptive attackers.ISO 9126 Software quality model identifies 6 main quality characteristics:

1. Functionality

a. Suitability - essential functionality characteristic and refers to the appropriateness (to specification) of the function of the software

b. Accurateness refers to the correctness of the functions, an ATM may provide a ash dispensing function but is the amount correct?

c. Interoperability a given software component or system does not typically function in isolation. This sub characteristics concerns the ability of a software component to interact with other components or systems.

d. Compliance where appropriate certain industry (or government) laws and

guidelines need to be complied with i.e., SOX. This sub

characteristic addresses the compliant capability of software

e. Security This sub characteristic relates to unauthorized access to the

software functions.2. Reliabilitya. Maturity This sub characteristic concerns frequency of failure of the software

b. Fault Tolerance The ability of software to withstand (and recover) from component, or environmental, failure

c. Recoverability ability to bring back a failed system to full operation, including data and network connections.

3. Usability a. Understandability determines the ease of which the systems functions can be understood, relates to user mental models in Human Computer Interaction methods.

b. Learnability learning effort for diff. users ex. Novie, expert, casual etc.

c. Operability ability of the software to be easily operated by agiven user in a given environment.

4. Efficiency a. Time behavior Characterize response time for a given throughput ex.

transaction rate.

b. Resource behavior characterize resource process used ex. memory, cpu, disk and network usage

5. Maintainability a. Analyzability characterize the ability to identify the root cause of afilure within the software.b. Changeability characterize the amount of effort to change a systemc. Stability characterize the sensitivity to change of a given system that is the negative impact that may be caused by system changes.d. Testability characterize the effort needed to verify a system change.6. Portability

a. Adaptability characterizes the ability of the system to change to new specification or operating environments.b. Installability characterizes the effort required to install the software c. Conformance similar to compliance for functionality, but this characteristic relates to portability. One ex. would be open SQL conformance which relates to portability of database world.d. Replaceability characterize the plug and play aspect of software components, how easy is it to change a given software component.MODELS OF SOFTWARE QUALITY ATTRIBUTES

1. McCall Model produced by Jim McCall in 1977 and his intention was to bridge the gap between users and developers (to reflect the users views as well as developers priorities)

Three Main Perspectives for characterizing Software Quality Attributes:a) Product Operations basic operational characteristicsQuality Factors:

Correctness the functionality matches the specification Reliability the ability not to fail Efficiency concerned with the use of resources (ex. storage) Integrity protection from unauthorized access Usability ease of useb) Product Revision ability to changeQuality Factors:

Maintainability the ability to find and fix a defect Flexibility the ability to make changes required as dictated by the business. Testability the ease of testing the program, to ensure that it is error-free and meets its specificationc) Product Transition adaptability to new environments

Quality Factors:

Portability the ability to transfer the software from one environment to another Reusability the ease of using existing software components in a different context

Interoperability the extent, or ease, to which software components work together

In total, McCall identified 11 quality factors broken down into 3 perspectives.2. Boehm Model developed by Barry Boehm in 1978At the highest level of his model, Boehm defined three primary uses (or basic software requirements), these three primary uses are:a) As-is utility the extent to which the as-is software can be used (i.e. ease of use, reliability and efficiency)b) Maintainability ease of identifying what needs to be changed as well as ease of modification and retesting.

c) Portability ease of changing software to accommodate a new environmentThese three primary uses had quality factors associated with them.Boehm identified seven quality factors, namely: Portability the extent to which the software will work under different computer configurations Reliability the extent to which the software performs as required, i.e. the absence of defects Efficiency optimum use of system resources during correct execution Usability ease of use Testability ease of validation, that the software meets the requirements Understandability the extent to which the software is easily comprehended with regard to purpose and structure Flexibility the ease of changing the software to meet revised requirements

Cavite State University Cavite City Campus