notes on software quality sergiu dascalu muhanna university of nevada, reno department of computer...
TRANSCRIPT
March 10, 2008 1
Notes on Software Quality
Sergiu DascaluMuhanna Muhanna
University of Nevada, RenoDepartment of Computer Science and Engineering
CS 425 / 625 Software Engineering
August 27, 2008 CS 425 / 625 Software Engineering 2 / 14
Software quality Software quality assurance (SQA) SQA challenges Current trends Research directions Main references
Overview
August 27, 2008 CS 425 / 625 Software Engineering 3 / 14
It is rather hard to define what exactly software quality is
In general, it is acknowledged that software that satisfies its requirements has good quality
Several quality model exists, one of them stresses [Sommerville, 2004]: Maintenability Efficiency Dependability Usability
1 Software Quality
August 27, 2008 CS 425 / 625 Software Engineering 4 / 14
In practical terms, software quality is important because lack of quality translates to user frustration, financial losses, material damages, human injuries and even deaths
Known disasters due to software failures include [Glass 1998; Endres and Rombach 2003]: The baggage handling system for the Denver airport The welfare administration system for the state of Florida The air-traffic control system for the FAA
Other examples are listed by Tywebb Ltd 2007-8
1 Software Quality
August 27, 2008 CS 425 / 625 Software Engineering 5 / 14
Some other illustrations [YouTube 2008]: Operating system demo crash TV show software error Arctic Tortoise field test problems Autonomous crash in DARPA Urban Challenge Unmanned plane clash
To do justice to software developers, their job is a very demanding one, something captured in the ad “if programmers had to make a plane” [YouTube 2008]
1 Software Quality
August 27, 2008 CS 425 / 625 Software Engineering 6 / 14
Software Quality Assurance (SQA) is defined by the IEEE Standard 610.12 – 1990 as “a planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms with established technical requirements”
The SQA Handbook defines SQA as “the set of systematic activities providing evidence of the ability of the software process to produce a software product that is fit to use” [Schulmeyer and McManus 1998]
2 Software Quality Assurance
August 27, 2008 CS 425 / 625 Software Engineering 7 / 14
SQA is distinct from software quality control which consists primarily of inspecting requirements documents and software testing. SQA covers the entire software development process, which includes software specification, design, implementation, integration, testing, source code control, code reviews, version control, and release management [Wikipedia 2008].
2 Software Quality Assurance
August 27, 2008 CS 425 / 625 Software Engineering 8 / 14
Also according to [Wikipedia 2008] SQA focuses on the control of processes, rather than on the control of products.
Current software processes have evolved for waterfall to the Unified Process (UP), with many variations in between The waterfall model [Sommerville 2006]
2 Software Quality Assurance
Requirementsdefinition
System andsoftware design
Implementationand unit testing
Integration andsystem testing
Operation andmaintenance
August 27, 2008 CS 425 / 625 Software Engineering 9 / 14
The Unified Process [Arlow and Neustadt 2005]
2 Software Quality Assurance
August 27, 2008 CS 425 / 625 Software Engineering 10 / 14
SQA challenges include [Voas 2003, Pressman 2004, McConnell 1993]:▪ Dealing with increasing complexity of software
processes and products▪ Defining improved quality models▪ Integrating better with development processes▪ Increasing the evidence that standards that promote
higher quality software bring indeed significant benefits
3 SQA Challenges
August 27, 2008 CS 425 / 625 Software Engineering 11 / 14
SQA challenges include [Voas 2003, Pressman 2004, McConnell 1993] – continued:▪ Finding out ways to compose standards▪ Improving QA models and processes ▪ Increasing software quality-centric adaptability▪ Increasing SQA independence from software
development▪ Dealing with the perception that QA is less glamorous
than development
3 SQA Challenges
August 27, 2008 CS 425 / 625 Software Engineering 12 / 14
Current SQA trends relate to focusing on the following [Lyu 2007; SEI 2008; McConnell 1993; Sommerville 2006]: Metrics and measurements Methods and tools Testing effectiveness and code coverage Inspections, reviews, and walkthroughs Software architectures Management and certification
4 Current Trends
August 27, 2008 CS 425 / 625 Software Engineering 13 / 14
Research directions in SQA, besides facing challenges mentioned previously, include [Lyu 2007; Bertolino 2007, Mnkandla 2006, Parsons 2003] : QA for COTS-based software QA for agile development processes QA for open-source software Metrics for software reliability prediction 100% automatic testing Personal and Team software processes
5 Research Directions
August 27, 2008 CS 425 / 625 Software Engineering 14 / 14
Endres, A and Rombach, D., A Handbook of Software and Systems Engineering, Addison-Wesley Pearson, 2003
Ghezzi, C., Jazayeri, M, and Mandrioli, D., Fundamentals of Software Engineering, 2nd edition, Prentice Hall, 2002.
McConnell, S., Code Complete: A Practical Handbook of Software Construction, Microsoft Press, 1993.
Pressman, R., Software Engineering: A Practitioner’s Approach, 6th edition, Prentice Hall, 2006.
Software Engineering Institute at Carnegie Melon University, last accessed March 8, 2008 at www.sei.cmu.edu
Sommerville, I., Software Engineering, 8th edition, Addison-Wesley, 2006
Voas, J., Assuring Software Quality Assurance, IEEE Software, May?June 2003, pp. 48-49
Wikipedia.com, last accessed March 9, 2008 at www.wikipedia.com YouTube.com, last accessed March 9, 2008 at www.youtube.com
Main References