Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

29.5 Software quality 363 encompass the complete range of attributes associated with software, except the cost of construction. ■ correctness – the extent to which the software meets its specification and meets its users’ requirements ■ reliability – the degree to which the software continues to work without failing ■ performance – the amount of main memory and processor time that the software uses ■ integrity – the degree to which the software enforces control over access to information by users ■ usability – the ease of use of the software ■ maintainability – the effort required to find and fix a fault ■ flexibility – the effort required to change the software to meet changed requirements ■ testability – the effort required to test the software effectively ■ portability – the effort required to transfer the software to a different hardware and/or software platform ■ reusability – the extent to which the software (or a component within it) can be reused within some other software ■ interoperability – the effort required to make the software work in conjunction with some other software ■ security – the extent to which the software is safe from external sabotage that may damage it and impair its use. These attributes are related to the set of goals discussed in Chapter 1. As we saw, some of these qualities can be mutually contradictory, for example, if high performance is required, portability will probably suffer. Also, not every attribute is desired in every piece of software. So for each project it is important to identify the salient factors before development starts. SELF-TEST QUESTION 29.2 Software is to be developed to control a fly-by-wire airplane. What are likely to be the important factors? This list of quality factors can be used in one or more of the following situations: 1. at the outset of a software development, to clarify the goals 2. during development, to guide the development process towards the goals 3. on completion, to assess the completed piece of software. The above quality attributes are, of course, only qualitative (rather than quantitative) measures. And as we have seen earlier in this chapter, the purpose of metrics is to quantify desirable or interesting qualities. Thus a complexity measure, such as McCabe’s, can

364 Chapter 29 ■ Software metrics and quality assurance be used to measure maintainability. Reliability can be measured as MTTF. However, for many of these attributes, it is extremely difficult to make an accurate judgment and a subjective guess must suffice – with all its uncertainties. SELF-TEST QUESTION 29.3 List some other quality factors that can be quantified. 29.6 ● Quality assurance Quality assurance means ensuring that a software system meets its quality goals. The goals differ from one project to another. They must be clear and can be selected from the list of quality factors we saw earlier. To achieve its goals, a project must use effective tools and methods. Also checks must be carried out during the development process at every available opportunity to see that the process is being carried out correctly. To ensure that effective tools and methods are being used, an organization distills its best practices and documents them in a quality manual. This is like a library of all the effective tools, methods and notations. It is like a recipe book in cooking, except that it contains only the very best recipes. This manual describes all the standards and procedures that are available to be used. A standard defines a range, limit, tolerance or norm of some measurable attribute against which compliance can be judged. For example, during white box testing, every source code statement must be executed at least once. In the kitchen, all peeled potatoes must be inspected to ensure there is no skin remaining on them. A procedure prescribes a way of doing something (rules, steps, guidelines, plans). For example, black box testing, white box testing and a walkthrough must be used to verify each component of software. In the kitchen, all green vegetables will be steamed, rather than boiled. To be effective, quality assurance must be planned in advance – along with the planning of all other aspects of a software project. The project manager: 1. decides which quality factors are important for the particular project (e.g. high reliability and maintainability). In preparing a family meal, perhaps flavor and nutritional value are the paramount goals. 2. selects standards and procedures from the quality manual that are appropriate to meeting the quality goals (e.g. the use of complexity metrics to check maintainability). If the meal does not involve potatoes, then those parts of the quality manual that deal with potatoes can be omitted. 3. assembles these into a quality assurance plan for the project. This describes what the procedures and standards are, when they will be done, and who does them. More and more the organizations that produce software are having to convince their customers that they are using effective methods. More and more commonly they must

364 Chapter 29 ■ <strong>Software</strong> metrics and quality assurance<br />

be used to measure maintainability. Reliability can be measured as MTTF. However, <strong>for</strong><br />

many of these attributes, it is extremely difficult to make an accurate judgment and a<br />

subjective guess must suffice – with all its uncertainties.<br />

SELF-TEST QUESTION<br />

29.3 List some other quality factors that can be quantified.<br />

29.6 ● Quality assurance<br />

Quality assurance means ensuring that a software system meets its quality goals. The<br />

goals differ from one project to another. They must be clear and can be selected from<br />

the list of quality factors we saw earlier. To achieve its goals, a project must use effective<br />

tools and methods. Also checks must be carried out during the development process at<br />

every available opportunity to see that the process is being carried out correctly.<br />

To ensure that effective tools and methods are being used, an organization distills its<br />

best practices and documents them in a quality manual. This is like a library of all the<br />

effective tools, methods and notations. It is like a recipe book in cooking, except that<br />

it contains only the very best recipes. This manual describes all the standards and procedures<br />

that are available to be used.<br />

A standard defines a range, limit, tolerance or norm of some measurable attribute<br />

against which compliance can be judged. For example, during white box testing, every<br />

source code statement must be executed at least once. In the kitchen, all peeled potatoes<br />

must be inspected to ensure there is no skin remaining on them.<br />

A procedure prescribes a way of doing something (rules, steps, guidelines, plans). For<br />

example, black box testing, white box testing and a walkthrough must be used to verify<br />

each component of software. In the kitchen, all green vegetables will be steamed,<br />

rather than boiled.<br />

To be effective, quality assurance must be planned in advance – along with the planning<br />

of all other aspects of a software project. The project manager:<br />

1. decides which quality factors are important <strong>for</strong> the particular project (e.g. high reliability<br />

and maintainability). In preparing a family meal, perhaps flavor and nutritional<br />

value are the paramount goals.<br />

2. selects standards and procedures from the quality manual that are appropriate to<br />

meeting the quality goals (e.g. the use of complexity metrics to check maintainability).<br />

If the meal does not involve potatoes, then those parts of the quality manual<br />

that deal with potatoes can be omitted.<br />

3. assembles these into a quality assurance plan <strong>for</strong> the project. This describes what<br />

the procedures and standards are, when they will be done, and who does them.<br />

More and more the organizations that produce software are having to convince their<br />

customers that they are using effective methods. More and more commonly they must

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!