Software Quality Model

Software Quality Model

Software quality can be defined as 'conformance to requirements' and/or 'fitness of use'. Quality achievements start with a loud and clear definition of what "quality of source code" means to your organization or project. In simple terms all the stakeholders must be well informed of what is expected, what are the goals to be achieved, what is evaluation criteria and how they can contribute to achieve the goal.

The first step in this direction is to decide the goals and their definitions, for example the following are some of the common goals of any software development / maintenance project.

Testability: Ease of testing.Maintainability: The ease of change.

This solves the first level of ambiguity, but the job of defining software quality has just begun. The very next step is to determine what predicates a quality goal. There can be several factors which can influence a particular goal positively or negatively, we can call these factors as predicates of a goal and these predicates can be as simple as a naming convention to be followed or as complex as a desired "useful" comments percentage per class. In general these predicates are nothing but the "Best Practices" to be followed and Standard "Software Metrics" which are collected to determine different quality aspects of the software solution.

Goal Oriented Measurement: Let's take the goal "Testability" for instance. The software metric "Cyclomatic Complexity" has considerable influence on the testability of a function, module and eventually the software as a whole. In simple terms CC(Cyclomatic Complexity) increase as the number of conditional constructs in a function increases, which actually mean that more testing effort is needed. So, we can consider Cyclomatic Complexity as a predicate for the goal "Testability", and as CC increases Testability becomes tougher (decreases).

Predicate Contribution: There can be many factors which can influence the quality goal "Testability". Swat4J provides a normalized framework to include as many predicate as we see fit. Predicate contribution to the goal can vary; Swat4J allows tagging weight to each predicate to prioritize their contribution. Simply, by setting weights we can control which predicates contribute more to the goal of concern. Now, that might seem a lot of "do it yourself", to overcome this Swat4J comes with prepackaged configuration which are widely used in the industry, it can be customized to fit specific needs.

See also

* Swat4j An implementation of quality model for Java.
* Software Quality Assurance

External links

* [http://www.codeswat.com Swat4j] - official site
* [http://www.sqa.net/softwarequalityattributes.html Software Quality Attribute Models]
* [http://www.sqa.net/iso9126.html ISO 9126 Software Quality Characteristics]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Software quality — Contents 1 Motivation for Defining Software Quality 2 Definition 3 Alternative Approaches to Software Quality Defin …   Wikipedia

  • Software development process — Activities and steps Requirements Specification …   Wikipedia

  • Software engineering — (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the… …   Wikipedia

  • Software documentation — or source code documentation is written text that accompanies computer software. It either explains how it operates or how to use it, and may mean different things to people in different roles. Contents 1 Role of documentation in software… …   Wikipedia

  • Quality-Driven Architecture Design and Quality Analysis — Quality driven architecture design is an approach to software architecture design which emphasizes the importance of addressing quality attributes, i.e. non functional characteristics of software products. The approach relies on treating quality… …   Wikipedia

  • Software testing — is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test [ [http://www.kaner.com/pdfs/ETatQAI.pdf Exploratory Testing] , Cem Kaner, Florida Institute of Technology,… …   Wikipedia

  • Quality assurance — Quality assurance, or QA for short, refers to planned and systematic production processes that provide confidence in a product s suitability for its intended purpose. It is a set of activities intended to ensure that products (goods and/or… …   Wikipedia

  • Quality (pragmatics) — Quality in business, engineering and manufacturing has a pragmatic interpretation as the non inferiority or superiority of something. This is the most common interpretation of the term quality.Many different techniques and concepts have evolved… …   Wikipedia

  • Software Sizing — is an important activity in software engineering that is used to estimate the size of a software application or component in order to be able to implement other software project management activities (such as estimating or tracking). Size is an… …   Wikipedia

  • Software development methodology — A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system. Contents 1 History 1.1 As a noun 1.2 As a… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”