Software Quality

of 16
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Information Report



Views: 78 | Pages: 16

Extension: PDF | Download: 0

Software quality From Wikipedia, the free encyclopedia Contents [hide]         1 Motivation for Defining Software Quality 2 Definition 3 Alternative Approaches to Software Quality Definition 4 Software Quality Measurement o 4.1 Introduction o 4.2 Code-Based Analysis of Software Quality Attributes o 4.3 Measuring Reliability o 4.4 Measuring Efficiency o 4.5 Measuring Security o 4.6 Measuring Maintainability o 4.7 Measuring Size o 4.8 Identifying Critical Programming Errors 5 See also 6
  Software quality From Wikipedia, the free encyclopedia Contents [hide]     1Motivation for Defining Software Quality     2Definition     3Alternative Approaches to Software Quality Definition     4Software Quality Measurement  o   4.1Introduction  o   4.2Code-Based Analysis of Software Quality Attributes  o   4.3Measuring Reliability  o   4.4Measuring Efficiency  o   4.5Measuring Security  o   4.6Measuring Maintainability  o   4.7Measuring Size  o   4.8Identifying Critical Programming Errors     5See also     6References     7Further reading     8External links In the context of  software engineering,software quality refers to two related but distinctnotions that exist wherever quality is defined in a business context:    Software functional quality reflects how well it complies with or conforms to agiven design, based on functional requirements or specifications. That attribute can also be described as the fitness for purpose of a piece of software or how it comparesto competitors in the marketplace as a worthwhile product; [1]      Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements, such as robustness ormaintainability, the degree to which the software was produced correctly. Structural quality is evaluated through the analysis of the software inner structure, its sourcecode, in effect how its architecture adheres to sound principles of  software architecture.In contrast, functional quality is typically enforced and measured through software testing.  Historically, the structure, classification and terminology of attributes and metrics applicableto software quality management have been derived or extracted from the  ISO 9126-3  and thesubsequent  ISO 25000:2005  quality model. Based on these models, the software structuralquality characteristics have been clearly defined by the Consortium for IT SoftwareQuality  (CISQ   ), an independent organization founded by the Software EngineeringInstitute   (SEI)  at Carnegie Mellon University,and the Object Management Group   (OMG) .   CISQ has defined 5 major desirable characteristics needed for a piece of software to providebusiness value:  Reliability, Efficiency, Security, Maintainability and (adequate) Size . Software quality measurement  is about quantifying to what extent a software or systemrates along each of these five dimensions. An aggregated measure of software quality can becomputed through a qualitative or a quantitative scoring scheme or a mix of both and then aweighting system reflecting the priorities. This view of software quality being positioned on alinear continuum has to be supplemented by the analysis of   Critical Programming Errors  that under specific circumstances can lead to catastrophic outages or performancedegradations that make a given system unsuitable for use regardless of rating based onaggregated measurements. [edit] Motivation for Defining Software Quality A science is as mature as its measurement tools, (Louis Pasteur in Ebert and al.l,p. 91) and software engineering has evolved to a level of maturity that makes it not only possible butalso necessary to measure quality software for at least two reasons:    Risk Management : Software failure has caused more than inconvenience. Softwareerrors have caused human fatalities. The causes have ranged from poorly designeduser interfaces to direct programming errors.An example of a programming error that lead to multiple deaths is discussed in Dr. Leveson's paper. [2]  This resulted inrequirements for the development of some types of software, particularly andhistorically for software embedded in medical and other devices that regulate critical infrastructures: [Engineers who write embedded software] see Java programs stallingfor one third of a second to perform garbage collection and update the user interface,and they envision airplanes falling out of the sky. . [3]  In the United States, within theFederal Aviation Administration (FAA),theAircraft Certification Service provides software programs, policy, guidance and training, focus on software and ComplexElectronic Hardware that has an effect on the airborne product (a “product” is an aircraft, an engine, or a propeller ) .      Cost Management: As in any other fields of engineering, an application with goodstructural software quality costs less to maintain and is easier to understand andchange in response to pressing business needs. Industry data demonstrate that poorapplication structural quality in core business applications (such as Enterprise Resource Planning (ERP), Customer Relationship Management (CRM) or large transaction processing systems in financial services) results in cost and scheduleoverruns and creates waste in the form of rework (up to 45% of development time insome organizations  [4] ). Moreover, poor structural quality is strongly correlated withhigh-impact business disruptions due to corrupted data, application outages, securitybreaches, and performance problems.However, the distinction between measuring and improving software quality in anembedded system (with emphasis on risk management) and software quality in businesssoftware (with emphasis on cost and maintainability management) is becoming somewhatirrelevant. Embedded systems now often include a user interface and their designers are asmuch concerned with issues affecting usability and user productivity as their counterpartswho focus on business applications. The latter are in turn looking at ERP or CRM system as acorporate nervous system whose uptime and performance are vital to the well-being of theenterprise. This convergence is most visible in mobile computing: a user who accesses an  ERP application on their smartphone is depending on the quality of software across all types of software layers.Both types of software now use multi-layered technology stacks and complex architecture sosoftware quality analysis and measurement have to be managed in a comprehensive andconsistent manner, decoupled from the software's ultimate purpose or use. In both cases,engineers and management need to be able to make rational decisions based on measurementand fact-based analysis in adherence to the precept  In God (we) trust. All others bring data .  ((mis-)attributed to W. Edwards Deming and others). [edit] Definition Even though (as noted in the article on quality in business   ) quality is a perceptual,conditional and somewhat subjective attribute and may be understood differently by differentpeople, Software structural quality characteristics have been clearly defined by the Consortium for IT Software Quality(CISQ   ) , an independent organization founded by theSoftware Engineering Institute (SEI) at Carnegie Mellon University<>, and the Object Management Group (OMG) [1].Under the guidance of  Bill Curtis,co-author of the Capability Maturity Model framework and CISQ's first Director and Capers Jones,CISQ's Distinguished Advisor, CISQ has defined 5 major desirable characteristics of a piece of software needed to provide business value (see CISQ 2009 Executive Forums Report   ). In the House of Quality model, these are Whats that need to be achieved:    Reliability :An attribute of resiliency and structural solidity. Reliability measures thelevel of risk and the likelihood of potential application failures. It also measures the defects injected due to modifications made to the software (its “stability” as ter  med byISO). The goal for checking and monitoring Reliability is to reduce and preventapplication downtime, application outages and errors that directly affect users, and enhance the image of IT and its impact on a company‟s business performance.      Efficiency :The source code and software architecture attributes are the elements thatensure high performance once the application is in run-time mode. Efficiency isespecially important for applications in high execution speed environments such asalgorithmic or transactional processing where performance and scalability areparamount. An analysis of source code efficiency and scalability provides a clearpicture of the latent business risks and the harm they can cause to customersatisfaction due to response-time degradation.    Security :A measure of the likelihood of potential security breaches due to poorcoding and architectural practices. This quantifies the risk of encountering criticalvulnerabilities that damage the business.    Maintainability :Maintainability includes the notion of adaptability, portability andtransferability (from one development team to another). Measuring and monitoringmaintainability is a must for mission-critical applications where change is driven bytight time-to-market schedules and where it is important for IT to remain responsiveto business-driven changes. It is also essential to keep maintenance costs undercontrol.    Size : While not a quality attribute per se, the sizing of source code is a softwarecharacteristic that obviously impacts maintainability. Combined with the abovequality characteristics, software size can be used to assess the amount of work   produced and to be done by teams, as well as their productivity through correlationwith time-sheet data, and other SDLC-related metrics. Software functional quality is defined as conformance to explicitly stated functionalrequirements, identified for example using  Voice of the Customer  analysis (part of the Design for Six Sigma  toolkit and/or documented through  use cases   )and the level of satisfaction experienced by end-users. The later is referred as to as  usability  and is concernedwith how intuitive and responsive the  user interface  is, how easy simple and complexoperations can be performed, how useful  error messages  are. Typically, software testingpractices and tools insure that a piece of software behaves in compliance with the srcinaldesign, planned user experience and desired testability,i.e. a software's disposition to support acceptance criteria.The dual structural/functional dimension of software quality is consistent with the modelproposed in  Steve McConnell's   Code Complete  which divides software characteristics intotwo pieces: internal and external quality characteristics. External quality characteristics arethose parts of a product that face its users, where internal quality characteristics are those thatdo not. [5]   [edit] Alternative Approaches to Software QualityDefinition One of the challenges in defining quality is that everyone feels they understand it   [6]  andother definitions of software quality could be based on extending the various description of the concept of quality used in business (see a list of possible definition here.) Dr.  Tom DeMarco  has proposed that a product's quality is a function of how much it changes the world for the better. . [7]  This can be interpreted as meaning that functionalquality and user satisfaction, is more important than structural quality in determiningsoftware quality.Another definition, coined by  Gerald Weinberg  in Quality Software Management: SystemsThinking, is Quality is value to some person. This definition stresses that quality isinherently subjective - different people will experience the quality of the same software verydifferently. One strength of this definition is the questions it invites software teams toconsider, such as Who are the people we want to value our software? and What will bevaluable to them?   [edit] Software Quality Measurement Although the concepts presented in this section are applicable to both Software Structural andFunctional Quality, measurement of the latter is essentially performed through testing, seemain article: Software Testing.  [edit   ]Introduction
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!