Escolar Documentos
Profissional Documentos
Cultura Documentos
Quality Principles
Quality Principles
Definitions of Quality
Quality Concepts Quality Objectives Quality Attributes QA v/s QC
Quality Pioneers
Quality Vocabulary
Definitions of Quality
Quality Software and Software Quality Software that exhibits all the functional capabilities and non-functional attributes that ensure that it can be put to all its intended uses with the least effort, inconvenience and resource cost to the user is Quality Software
Software Product Evaluation lists six key factors in producing Quality Software
functionality
reliability usability
efficiency
maintainability portability
product-based
user-based manufacturing-based
value-based
Conclusions
It is generally accepted that quality of the process plays a crucial role in determining the quality of the product Quality must be built into software from the outset - it cannot be added on later
Quality Concepts
Cost Of Quality
Plan-Do-Check-Act Six Sigma Benchmarking Continuous Improvement Best Practices
Cost of Quality
Quality costs are the costs associated with preventing, finding and correcting defective work One of the key functions of a quality engineer is the reduction of the total cost of quality associated with a product
Prevention Costs
These are costs of activities specifically designed to prevent poor quality(coding errors, design errors, bad documentation, un maintainable coding)
E.g.,Staff Training, Requirement Analysis, Fault-tolerant design, defensive programming, usability analysis, clear specification, accurate internal documentation, evaluation of the reliability of development tools
Appraisal Costs
These are Costs of activities designed to find quality problems, such as code inspections and any type of testing E.g.,Design Review, Code Inspection, White box testing, Black box testing, training testers, Beta testing, test automation, usability testing
Failure Costs
Costs that result from poor quality, such as the cost of fixing bugs and cost of dealing with customer complaints
Internal failure costs are failure costs that arises before your company supplies the product to customer External failure costs are failure costs that arises after your company supplies the product to customer
Total Cost of Quality = Sum of all costs Prevention + Appraisal + Internal failure + External failure
Plan-Do-Check-Act
Select a solution
Gain approval and supporter for the chosen solution Plan the solution
Six Sigma
The word 'Sigma' is a statistical term that measures how far a given process deviates from perfection. The significance of Six Sigma is that if you can measure how many defects you have in a process, you can systematically figure out how to eliminate them and get as close to 'zero defects' as possible.
Critical to Quality
Understanding Customer's needs and expectations by employing six approaches to communicating with customer Measure business performance against dynamic customer requirements and respond to changing market place conditions Quality function deployment (QFD) and failure modes and effects analysis (FMEA) can help identify critical to quality characteristics.
Defect
Reducing the defect rate Determining the defect cost
Mistake Proofing techniques eliminate the sources of errors and ensure that a process is free of defects.
Process Capability
Understanding Process Capability principles and calculating Process Capability are integral to staying competitive and meeting customer requirements.
Variation
Two sources of variation : Common cause and special cause
Multi-Vari Analysis offers a means of reducing large numbers of unrelated causes of variation to a family of related causes. Reducing common-cause variation so that the distribution has a very small standard deviation
Stable operations
Operational Excellence methodology for identifying the right projects, using the right people to lead projects, right tools and roadmap Turning quality into a management system Improving cycle time to process applications for long term disability benefits
Design
Follow a four phase process to achieve design. Identify, Design, Optimize and Validate Design helps eliminate designed-in quality problems that account for 7080% of defects Link Six Sigma with QS 9000
Benchmarking
The continuous process of measuring products, services, and practices against the toughest competitors and industry leaders
The search for industry best practices that lead to superior performance
Elements of Benchmarking
A structured process/approach
Continuous/ongoing Involves measuring, evaluating, and comparing results (and the process of benchmarking) Focus on best practices/results Goal is to improve to level of best
Fundamentals of Benchmarking
Focus on key services/processes Learn from others
Types of Benchmarking
Internal - best within organization Competitive - best within competition
Analysis
Determine current performance gap Project future performance levels
Action
Develop action plan
Understand
Are others better? Why? How much better? What can be adopted?
Act
Commit to findings. Set goals. Communicate new direction. Take action to change. Recalibrate
Common Pitfalls
No clear purpose/wrong purpose
Poor team balance Too many subjects Too many metrics/poor metrics No management buy-in Unrealistic schedule Wrong partners
Accelerators of Benchmarking
Leadership commitment
Organizational preparation Identification & mapping of key processes Capacity for learning Knowledge of customers & competitors Resources
Continuous Improvement
Software development mainly focuses on Problem Solving.
Continuous improvement is a TQM concept which involves examining processes to proactively determine improvement opportunities apart from problem solving. Both problems and opportunities can be addressed using the same methodology (Continuous Improvement)
Follow up
Making sure that the changes have been correctly implemented and the desired outcome was achieved Follow-up enables organizations to show successes and demonstrate the impact of improvements It involves measuring the impact against the initial objectives
More specifically, results are measured to see if costs have been reduced or avoided and whether defects have decreased or productivity has increased
Conclusions
Improving processes should be part of what is done every day As industries, customers and technologies grow and change, organizations need to move ahead as well. Often what has worked in the past will not work in the future Individuals must be willing to look for ways to resolve problems and improve processes so their jobs will be efficient, effective and meet company needs.
Best Practices
What is a best practice ?
Best practices" are documented strategies and tactics employed by highly admired companies
Due to the nature of competition and their drive for excellence, the profiled practices have been implemented and honed to help place their practitioners as the most admired, the most profitable, and the keenest competitors in business.
Quality Objectives
Improve Customer Satisfaction Reduce development costs
Customer Satisfaction
Knowing what to ask Knowing how to ask
Seven ways to better software projects in terms of money, effort and quality
Minimize overhead work during a project. Stop tinkering the project plan. Put away the audit checklists. Cut meeting times to bare minimum and keep them focussed. Take lengthy discussions off-line. You need to ship software, so make it your mantra. Dont do any activity that makes it harder. To make sure you ship good software keep reading.. Cutting buggy features and excess new functionality to meet release dates will allow you to get revenue in the door sooner rather than later. It is hard to decide what and when to let go. Get help deciding. Prioritization of features will also give your project team more guidance on what the key high-priority items are so they know where to spend their time instead of investing long hours on less important or trivial features.
Manage Stakeholders' Expectations Work with your stakeholders to make sure that, as things change and schedules slip, they know what's going on. They can help with determining priorities, and provide valuable input into making decisions. At the same time, they will appreciate you being honest with them about any changes needed or problems encountered. Asking your stakeholders for input will make them part of the process - and they will have a greater interest in seeing you succeed. As well, the stakeholders' might be willing to let certain things go - such as being more flexible on a shipping date in order to keep a feature, or on the feature set in order to meet a release date. Before buying a tool, consider how well the tool fits into the processes you are currently working with, regardless of whether those processes are formal or informal. Remember, you need to spend time and money to train your resources to be able to integrate the new tool into your project effectively. If you can't do that and ship your next release simultaneously, while doing a good job at each, the tool will quickly become shelf-ware and the organization will have lost money, time, and buy-in for future tool purchases.
Proper risk analysis can provide guidance for you and your team in deciding what you must do, what you can avoid, and what you are not going to worry about. Perhaps appoint one person on the project team to be the "Risk Officer", responsible for tracking the project's risks and the status of mitigation/avoidance plans, and to report on this information to the rest of the team during project status meetings. Regular risk reviews and implementation of mitigation strategies will make your software journey a safer, more successful experience.
Look for Quick Wins Quick Wins are things that are easy to implement or adopt and have a large potential return on investment (ROI) in the short term. Continually looking for Quick Wins in a planned manner means you are now doing continuous process improvement at a rate that makes sense for you. Quick wins are the kinds of small changes that you can make in the way you do things that, while consuming less than 5% of your daily available time, can add up to significant savings (time, effort) at the end of the project.
Skip the training - Hire the brains. Bringing in experts in the present can pave the way for leveraging less senior resources in the future. This is one good way to avoid or mitigate risks. These "hired guns" are experts in ramping up quickly on new projects, and can become effective in a very short period of time.
In short: keep your product and processes simple, do it well manually first and automate only when it makes sense, make changes and improvements in process as you go rather than all at once, and never stop looking for better ways to do things that make sense for your organization, product, and market
Quality Attributes
Reliability Maintainability
Usability
Portability
Software Reliability
Reliability is the ability of a system or component to perform its required functions under stated conditions for a specified period of time Software Reliability is the application of statistical techniques to data collected during system development and operation to specify, predict, estimate, and assess the reliability of software-based systems
Software Reliability Engineering (SRE) is a standard, proven best practice that makes testing more reliable, faster, and cheaper. It can be applied to any system using software and to frequently-used members of software component libraries
Applying SRET
SRET should be applied over the entire software life cycle, including all releases with particular focus on testing Apply to feature, load, performance, regression, certification or acceptance testing
Applying SRET(Contd)
Determine Operational Mode(Operational mode is a distinct pattern of system use and/or environment that needs separate testing). Define failure in terms of severity classes
Applying SRET(Contd)
Prepare for testing (includes preparing test cases, test procedures and any autmated tools decided to use)
Execute tests(conducting testing and then identifying failures, determining when they occurred, and establishing the severity of their impact) Interpret failure data in development testing and certification testing. (applying failure data to guide decisions) For further details refer http://www.cs.bsu.edu/homepages/metrics/cs639d /CS639WWW/musa-oneil/index.htm
Maintainability
Qualitative Definition
the characteristics of material design and installation which make it possible to meet operational objectives with a minimum expenditure of maintenance effort under operational environmental conditions in which scheduled and unscheduled maintenance will be performed
Quantitative Definition
maintainability is a characteristic of design and installation which is expressed as the probability that an item will be restored to specified conditions within a given period of time when maintenance action is performed in accordance with prescribed procedures and resources
Software Maintenance
Is the process of modifying the existing program to keep the system up and functioning Is the final phase of Software life cycle designed using Water fall model
Top-down approach
Poor software design Poorly coded software Outdated hardware Lack of common data definitions More than one programming language Increasing Inventory Excessive resource requirements
User requirements
Standards (Contd)
Phase 5:Regression/System Testing - the system is tested for completeness and accuracy and also to validate that the modified code does not introduce faults.
Phase 6:Acceptance Testing - the system is tested to ensure that the modifications are satisfactory. Problems encountered are docuemented
Phase 7:Delivery - Once the system has been approved the system is delivered to the customer
Usability - Definitions
Usability is defined in ISO 9241 part 11 as the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use
Effectiveness - How well the user achieves the goals they set out to achieve using the system. Efficiency - The resources consumed in order to achieve their goals. Satisfaction - How the user feels about their use of the system.
Usability - Definitions
User - the person who will use the product to do their job
User-centered design - an approach to design in which a high level of usability of the end product is an objective. It includes involving users, obtaining their feedback on the design and use of the system, providing prototypes for users to try out and redesigning as a result of user feedback.
Usability evaluation - the process by which the level of usability of a system is measured. It involves observing users as they try out certain aspects of a prodcut or process
Aspects of usability
User-centered design
Designers must understand who the users will be and what tasks they will do. If possible, designers should learn to do some or all of the users' tasks. This must take place before the system design work starts, and design for usability must start by creating a usability specification.
Participative design
A panel of expected users should work closely with the design team, especially during the early formulation stages and when creating the usability specification. To enable these users to make useful contributions, they will need to show a range of possibilities and aletrnatives by means of mock-ups and simulations
Usability Aspects
Experimental design
Early in the development process, the expected users should do pilot trials and then subsequently use the simulations, and later the prototypes, to do real work. Whenever possible alternative versions of important features and interfaces should be simulated or prototyped for evaluation by comparative testing.
Iterative design
The difficulties revealed in user tests must be remedied by redesign, so the cycle design, test and measure, redesign must be repeated as often as is necessary until the usability specification is satisfied.
Usability activities
User requirement specification
analysing the user population and the tasks they perform in a given working environment will help in producing a more precise user requirement specification
failure is that user requirements are not identified properly, so the software was not matched to them.
Usability Acitivities(contd)
The user interface may follow the latest styles guides,
and it'll look great. But unless the system helps the user carry out what they want to do effectively and efficiently, this glossy front may restrict rather than help them.
Prototyping
Use the methods for making and evaluating prototypes, to validate the functions of the system and to develop the user interface. An International rent-a-car company wanted to provide a
24-hour service via stand alone terminals in airport lounges. By using prototyping techniques, an efficient and user-friendly design (based upon touchscreen terminals) was produced in less than two months.
Usability Activities(contd)
User Acceptance Testing
There are well estd methods for testing systems in terms of user performance and peoples attitudes crucial to acceptance in the work place. A telecommunications company, developed a desktop
videophone. They wanted to ensure that it could be used by senior, non-technical, staff. Acceptance testing with typical users confirmed that the videophones simple and elegant user interface would be well accepted.
Usability Activities(contd)
Introduction of new technologies
Advise on how to introduce systems into the workplace so that users learn and cope with the changes as easily as possible, without the need for expensive re-training courses and minimising disruption to the business.
Creating a usable system will also involve considering
how it will fit into the customer's organisation and be widely acceptable to its employees. This requires user involvement throughout the design process.
Usability Questions
What is user-centered design
It means that the design is based on the needs and requirements of the users of the future system.
Usability Questions(contd)
What would be an example of such a goal ?
For example, for a new telephone system, a usability goal might be: "It should be possible for 95% of users to make a call successfully within 30 seconds, making no errors".
Usability Questions(contd)
Why is it such a long definition ?
This is because it recognises that usability is not a unique property. It depends on the particular circumstances in which the systen will be used i.e. its 'context of use'
Usability Standards
Standards related to human-centred design
process-oriented: these specify procedures and processes to be followed. product-oriented: these specify required attributes of the user interface.
Usability Standards(contd)
Process oriented Standards
1993, Guidance on task requirements Guidance on usability(how to identify the information which it is necessary to take into account when specifying or evaluating usability in terms of measures of user performance and satisfaction) 1994, Ergonomic principles related to mental workload
Evaluation of Software Products(the extent to which an entity satisfies stated and implied needs when used under stated conditions)
Usability Standards(contd)
Product oriented standards
Visual display requirements Keyboard requirements
Workstation layout and postural requirements
Environmental requirements
Display requirements with reflections Requirements for displayed colours Requirements for non-keyboard input devices Dialogue(b/w human & information systems)principles
Usability Standards(contd)
Product oriented Standards
Presentation of information of visual displays
User guidance for user interfaces User-computer Menu dialogues
Inspection Approach
Here usability specialists and sometimes software developers, users and other professionals, examine usability-related aspects of a user interface
Inquiry approach
Here usability evaluators obtain information about users' likes, dislikes, needs, and understanding of the system by talking to them, observing them using the system in real work or letting them answer questions verbally or in written form
Portability - Definition
Portability is an attribute which may be possessed by a software unit to a specific degree with respect to a specific class of environments. Portability may also be an attribute of auxiliary elements such as data, documentation, and human experience. A software unit is portable (exhibits portability) across a class of environments to the degree that the cost to transport and adapt it to a new environment in the class is less than the cost of redevelopment.
We want easier migration to new system versions and to totally new environments
We want more new development, less redevelopment, and lower software costs
Developers
Portable software costs less to develop for multiple environments
Vendors
Portable software is easier to support
Managers
Portable software reduces maintenance costs
Levels of Porting
Source
Programming language or higher-level form. Adaptation is feasible.
Binary
Executable form. Most convenient, but adaptation is difficult.
Intermediate
May allow limited adaptation without exposing source.
Typical Activities
Adapting existing programs to new environments
Tasks: Analyze environment; adapt and compile (perhaps); configure and install.
Resources: Source (perhaps) or executable files; application documentation; system documentation.
Application designers
Goal: To design applications which can be easily ported among different environments. Tasks: Define environment classes; develop portable design; document for portability. Resources: Requirements specification; language specification and other relevant standards.
Reusability
Ability to use the same software component in multiple programs
Interoperability
Ability of different programs to "work together," especially by exchanging data
Portability Myths
It is claimed that portability has been solved by
standard languages (e.g., FORTRAN, COBOL, Ada, C, C++, Java)
universal operating systems (e.g., Unix, MS-DOS, Windows, JavaOS) universal platforms (e.g., IBM-PC, SPARC, JavaVM) open systems and POSIX OOP and distributed object models (e.g., OLE, CORBA) Software patterns, architectures, and UML The World Wide Web
Quality Pioneers
What relevance do general quality principles that have been developed in other fields have with software development and software quality? This is addressed by studying the principles advocated by Qualtiy Experts
Management Responsibility
Sequence of events for improving quality and reducing quality costs Universal feedback loop for control Fundamental is data collection and analysis
Deming - 14 Principles
Create constancy of purpose towards improvement of product and service
Deming - 14 Principles
Institute training on the job Institute leadership. The aim of supervision is to help people to do a better job Drive out fear, so everyone may work effectively for the company Break down the barriers between departments - work in teams Eliminate slogans, and targets for the workforce asking for zero-defects and new levels of productivity. They create adversarial relationships. The bulk of the causes of low quality and low productivity belong to the system
Deming - 14 Principles
Eliminate work standards and management by objectives - substitute leadership
Remove barriers that rob workers/managers of the right to pride of workmanship - abolish annual merit rating
Institute a vigorous program of education and self improvement
Put everybody in the company to work to accomplish the transformation - the transformation is everybody's job
Deming - Contribution to QC
The economic and social revolution which took hold in Japan, upset in 15 years the economy of the world and shows what can be accomplished by serious study and adoption of statistical methods and statistical logic in industry at all levels from the top downwards The analysis of errors for either type or cause will help control errors - this is particularly important for software. The results enable improvement of the process so that less errors are produced. You cannot inspect quality into a product - you must build in quality right from the outset.
CROSBY
Crosby suggests there are five maturing stages through which quality management evolves.
uncertainty
awakening enlightenment
wisdom
certainty
Crosby used a Quality Management Maturity Grid to define his approach. The advantage in this is it defines a quality improvement path for an organization as well as a means for assessing where at any time the organization is on the path to quality
There is an underlying assumption that the three goals of quality, cost, schedule are conflicting and mutually exclusive. In contrast, Deming claims that the only way to increase productivity and lower cost is to increase quality