2 Lecture Objectives A Deeper Understanding of Quality Assurance Quality ModelsQuality Assurance
3 Quality Assurance - Introduction Quality can not be added to a piece of software after you have built it.Quality must be built into the software from the beginning.
4 Quality Assurance - Introduction Two sources of constraints that requires specialized methods:Non-function requirements that come from the client and their application domain.Constraints that come from quality standards
5 Quality Assurance for Software Engineers Quality is a ubiquitous concern in software engineering.Achieving quality pervadesSoftware engineering processes, methods, and tools; andOne of the main aims of project managements.
6 Quality Assurance for Software Engineers Quality products canIncrease market shares,Long term profitability for companies; andPoor quality can certainly have the opposite effect.Yet, in spite of the focus on qualityIt can be remarkably elusive to attain in actual software engineering projects.
7 Quality Assurance for Software Engineers A reason for the concern with quality is the sheer complexity of many modern software systems.For example,Approx. 10 Mbytes of object code in an A320 airbus flight control system.The aircraft has been described as‘aircraft wrapped around a network’.
8 Quality Assurance for Software Engineers Complexity in software systems arises in a number of ways.The large number of modules, concurrent processes, and diversity of platforms that must interact to achieve the aims and requirements of the system; andThe development of the product itself which is subject to changes in requirements, changes in personal and the ever present technological churn.The phrase mean constantly changing technologyused in implementing and engineering products.
9 What is software Quality? The End-user’s PerspectiveEnd-users judge the quality of a product by their interaction with it.For users a system has quality ifIt is fit for purpose, reliable and has reasonable performance, easy to learn and use.Sometime, if the functionality is hard to learn butis extremely important, then users will still judge the systemto have high quality.
10 What is software Quality? The Developer’s PerspectiveTypically includes the number of faultsEase of changing the systemEase of testing the systemThe nature of the designConformance to requirements;Resource usage; and performance.
11 What is software Quality? The Maintainer’s PerspectiveSimilar to developer’s perspective; but also includesThe simplicity and modularity of the system,The documentation produced by the developers; andThe ease of understanding the implementation.
12 What is software Quality? Software engineers need to chooseProcesses, tools and techniques to monitor and control the quality of the software as it is being developed.If we can not directly monitor the attributes,We often need to monitor the quality of the processes, under the assumption thatThe quality of the process influences the qualityof the product.
13 Key points Quality must be built into the software from the beginning. The evidence suggest that we cannot simply fix up our software post-hoc; andadd in quality attributes after building the system.