140 likes | 281 Views
CS 425 / 625 Software Engineering. Notes on Software Quality. Sergiu Dascalu Muhanna Muhanna. University of Nevada, Reno Department of Computer Science and Engineering. Overview. Software quality Software quality assurance (SQA) SQA challenges Current trends Research directions
E N D
CS 425 / 625 Software Engineering Notes on Software Quality Sergiu Dascalu Muhanna Muhanna University of Nevada, Reno Department of Computer Science and Engineering
Overview • Software quality • Software quality assurance (SQA) • SQA challenges • Current trends • Research directions • Main references CS 425 / 625 Software Engineering
1 Software Quality • 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 CS 425 / 625 Software Engineering
1 Software Quality • 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 byTywebb Ltd 2007-8 CS 425 / 625 Software Engineering
1 Software Quality • 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] CS 425 / 625 Software Engineering
2 Software Quality Assurance • 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] CS 425 / 625 Software Engineering
2 Software Quality Assurance • 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]. CS 425 / 625 Software Engineering
2 Software Quality Assurance • 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 waterfallto the Unified Process (UP), with many variations in between • The waterfall model [Sommerville 2006] CS 425 / 625 Software Engineering
2 Software Quality Assurance • The Unified Process [Arlow and Neustadt 2005] CS 425 / 625 Software Engineering
3 SQA Challenges • 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 CS 425 / 625 Software Engineering
3 SQA Challenges • 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 CS 425 / 625 Software Engineering
4 Current Trends • 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 CS 425 / 625 Software Engineering
5 Research Directions • 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 CS 425 / 625 Software Engineering
Main References • 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 CS 425 / 625 Software Engineering