<< Chapter < Page Chapter >> Page >

Software quality management techniques

SQM techniques can be categorized in many ways: static, people-intensive, analytical, dynamic.

Static techniques

Static techniques involve examination of the project documentation and software, and other information about the software products, without executing them. These techniques may include people-intensive activities or analytical activities conducted by individuals, with or without the assistance of automated tools.

People-intensive techniques

The setting for people-intensive techniques, including reviews and audits, may vary from a formal meeting to an informal gathering or a desk-check situation, but (usually, at least) two or more people are involved. Preparation ahead of time may be necessary. Resources other than the items under examination may include checklists and results from analytical techniques and testing. These activities are discussed in (IEEE1028-97) on reviews and audits.

Analytical techniques

A software engineer generally applies analytical techniques. Sometimes several software engineers use the same technique, but each applies it to different parts of the product. Some techniques are tool-driven; others are manual. Some may find defects directly, but they are typically used to support other techniques. Some also include various assessments as part of overall quality analysis. Examples of such techniques include complexity analysis, control flow analysis, and algorithmic analysis.

Each type of analysis has a specific purpose, and not all types are applied to every project. An example of a support technique is complexity analysis, which is useful for determining whether or not the design or implementation is too complex to develop correctly, to test, or to maintain. The results of a complexity analysis may also be used in developing test cases. Defect-finding techniques, such as control flow analysis, may also be used to support another activity. For software with many algorithms, algorithmic analysis is important, especially when an incorrect algorithm could cause a catastrophic result. There are too many analytical techniques to list them all here. The list and references provided may offer insights into the selection of a technique, as well as suggestions for further reading.

Other, more formal, types of analytical techniques are known as formal methods. They are used to verify software requirements and designs. Proof of correctness applies to critical parts of software. They have mostly been used in the verification of crucial parts of critical systems, such as specific security and safety requirements.

Dynamic techniques

Different kinds of dynamic techniques are performed throughout the development and maintenance of software. Generally, these are testing techniques, but techniques such as simulation, model checking, and symbolic execution may be considered dynamic. Code reading is considered a static technique, but experienced software engineers may execute the code as they read through it. In this sense, code reading may also qualify as a dynamic technique. This discrepancy in categorizing indicates that people with different roles in the organization may consider and apply these techniques differently.

Questions & Answers

The following text is encoded in base 64. Ik5ldmVyIHRydXN0IGEgY29tcHV0ZXIgeW91IGNhbid0IHRocm93IG91dCBhIHdpbmRvdyIgLSBTdGV2ZSBXb3puaWFr Decode it, and paste the decoded text here
Julian Reply
what to do you mean
Vincent
What is the command to list the contents of a directory in Unix and Unix-like operating systems
George Reply
how can i make my own software free of cost
Faizan Reply
The name of the author of our software engineering book is Ian Sommerville.
Doha Reply
what is software
Sampson Reply
the set of intruction given to the computer to perform a task
Noor
I want to know about prototype model in software engineering
Malli Reply
Prototype Model is a replica model. In this we plan and build a rough application. Further we launch it for users and if they give their feedback or need any enhancement then we add-on requested features as per the system/user requirements.
KUMAR
between JavaScript and html,which is the best to master first?
Njuguna Reply
You have to master HTML first before you do javascript. Actually Html is not a programming language it is used to make a skeleton of a webpage
Alfayo
yaah it so good to start with HTML first
Abel
what is a software
Carren Reply
I am not proficient in any programming language though I am learning python currently, is it necessary to be proficient in programming language before one can undergo this course
Israel Reply
what is software
Arwaz Reply
The reason it all exists
Ruth Reply
Hi
Md
hlo
Ajay
Hii
Biddika
hu
Ajay
what is programming
Nonny Reply
software project scheduling
DEVENDRA Reply
kis chij ka bro
shiv
Green chili
Arwaz
wellcome my friend
my
what is soft ware
my
the soft ware of education
my
hello
Hilal
I'm new here
Hilal
how to communicate with clients
adejoh Reply
hey hi good afternoon sir my name is Mohamed Kamara, I want to understand how to do it sir.
Muhammadosman
ok
Ronald
how are u sir, I want u to teach me please I want to know about softwares.
Muhammadosman
me too I need this knowledge
anthony
me too
Noor
what's up y'all..who is good at java? need help
Adrian
Is it like a unit in software engineering or what?
Njuguna
Which SDLC Model will you select to develop the system as a software engineer and why?
Subrato Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Software engineering. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10790/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Software engineering' conversation and receive update notifications?

Ask