aj. thoranin intarajk. strategies to engineer quality software. the important of software quality....

26
Aj. Thoranin Intarajk

Upload: lucy-bruce

Post on 26-Dec-2015

217 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Aj. Thoranin Intarajk

Page 2: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Strategies to engineer quality software. The important of software quality. Software development process. Capability maturity model integration for

software. Key issues in software development.

Development of safety-critical systems. Quality management standards.

Page 3: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

High-quality software systems are easy to learn and easy to use.

They perform quickly and efficiently to meet their user’ needs.

They operate safety and dependably and have a high degree of availability so that system downtime is kept to a minimum.

Such software has long been required to support the fields of air traffic control, nuclear power, automobile safety, health care, military and defense, and space exploration.

Page 4: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Software defect is any error that, if not removed, could cause a software system to fail to meet its users’ needs.

The impact of these defects can be trivial; for example, a computerized sensor in a refrigerator's ice cube maker might fail to recognize that the trey is full and continue to make ice.

Page 5: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Software quality is the degree to which a software product meet the needs of the development process and the products developed during its various stages.

This products, such as statements of requirement, flowcharts, and user documentation, are known as deliverables.

The objective of quality management is to help developers deliver high quality systems that meet the needs of their users.

Page 6: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Most people think of business information systems when they first think about software.

Business information systems are a set of interrelated components that include hardware, software, databases, networks, people, and procedures that collect data, process it, and disseminate the output.

Another type of business system is the Decision support system (DSS), which is used to improve decision making.

Page 7: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

A DSS can help develop accurate forecasts of customer demand, recommend stocks and bounds for an investment portfolio, and schedule shift worker to minimize cost while meeting customer service goals.

Page 8: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Developing information system software is not a simple process.

It requires completing many activities that are themselves complex, with many dependencies among the various activities.

System analysis, programmers, architects, database specialists, project managers, documentation specialists, trainers, and testers are all involved in large software projects.

Page 9: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Many software developers have adopted a standard, proven work process (or software development methodology) that enables system analysts, programmers, project managers, and others to make controlled and orderly progress in development process and the individual and group responsibilities for accomplishing these activities.

Page 10: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Software quality assurance (QA) refer to methods within the development cycle that guarantee reliable operation of the product.

Dynamic testing is to test the code by actually entering test data and comparing the results to the expected results.

There are two forms of dynamic testing: Black-box testing White-box testing

Page 11: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Black-box testing involves viewing the software unit as a device that has expected input and output behaviors but whose internal workings are unknown.

White-box testing treats the software unit as a device that has expected input box testing.

White-box testing involves testing all possible logic paths through the software unit with thorough knowledge of its logic. The test data must be carefully constructed to make each program statement execute at least once.

Page 12: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Other types of software testing include the following: Static testing- special software programs called

static analyzers are run against the new code. Rather than reviewing input and output, the static analyzer looks for suspicious patterns in programs that might indicate a defect.

Integration testing- after successful unit testing, the software units are combined into an integrate subsystem that undergoes rigorous testing to ensure that all the linkage among the various subsystem as a complete entity.

Page 13: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

System testing- after successful integration testing, the various subsystems are combined to test the entire system as a complete entity.

User acceptance testing- this independent testing is performed by trained end users to ensure that the system operates as they expect.

Page 14: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Software product liability claim are frequently based on Strict liability Negligence Breach of warranty Misrepresentation

Page 15: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Strict liability means that the defendant is responsible for injuring another person, regardless of negligence or intent. The plaintiff must prove only that the software product is defective or unreasonably dangerous and that the defect caused the injury.

Negligence, a software supplier is not held responsible for every product defect that causes customer or third-party loss. Instead, responsibility is limited to harmful defects that could have been detected and corrected through “reasonable” software development practices.

Page 16: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

If the product fail to meet its warranty, the buyer or lessee can sue for breach of warranty. The plaintiff must have a valid contract that the supplier did not fulfill in order to win a breach of warranty claim.

Intentional misrepresentation occurs when a seller or lesser either misrepresents the quality of a product or conceals a defect in it. Most software manufacturers use limited warranties and disclaimers to avoid any claim of misrepresentation.

Page 17: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Capability Maturity Model Integration (CMMI) is a process improvement approach defined by the software engineering institute at Carnegie Mellon University in Pittsburgh.

The model is general enough to be used to evaluate and improve almost any process, and it is frequently used to assess software development practices.

Page 18: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

CMMI defines five levels of software development maturity and identifies the issues that are most critical to software quality and process improvement.Maturity

levelDefinition % of organization

at this level (August 2005)

Initial Process unpredictable, poorly controlled and reactive

5%

Managed Process characterized for projects and is often reactive

36%

Defined Process characterized for the organization and it proactive

29%

Quantitatively managed

Process measured and controlled 5%

Optimizing Focus is on continuous process improvement

25%

Page 19: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Development of Safety-Critical Systems.

Quality Management Standards.

Page 20: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

A safety-critical system is one whose failure may cause injury or death. The safe operation of many safety-critical systems relies on the flawless performance of software; these systems control an automobile’s antilock break, nuclear power plant reactors, airplane navigation, roller coasters, elevators, and numerous medical devices, to name just a few.

Page 21: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

N-version programming is a form of redundancy that involve the execution of a series of program instructions simultaneously by two different systems. The systems use different algorithms to execute instructions that accomplish the same result.

The results from the two systems are then compared; if a difference is found, another algorithm is executed to determine which system yielded the correct result.

Page 22: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Reliability is the probability of a component or system performing without failure over its product life. For example, if a component has a reliability of 99.9 percent, it has one chance in one thousand of failing over its lifetime.

Page 23: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

The International Organization for Standardization (ISO), founded in 1947, is a worldwide federation of national standards bodies from some 100 countries.

To obtain this coveted certificate, an organization must submit to an examination by an external assessor and fulfill the following requirements: 1. Have written procedures for everything it

does.

Page 24: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

2. Follow those procedures. 3. Prove to an auditor that it has fulfilled the first

two requirements. This proof can require observation of actual work practices and interviews with customers, suppliers, and employees.

The various ISO 9000 series of standards address the following activities: ISO 9001 Design, development, production,

installation, servicing ISO 9002 Production, installation, servicing

Page 25: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

ISO 9003 Inspection and testing ISO 9000-3 The development, supply, and

maintenance of software ISO 9004 Quality management and quality

systems elements Failure mode and effects analysis (FMEA)

is an important technique used to develop any ISO 9000-compliant quality system. FMEA in used to evaluate reliability and determine the effect of system and equipment failures.

Page 26: Aj. Thoranin Intarajk.  Strategies to engineer quality software.  The important of software quality.  Software development process.  Capability maturity

Failures are classified according to their impact on a project’s success, personnel safety, equipment safety, customer satisfaction, and customer safety.

The goal of FMEA is to identify potential design and process failures early in a project when they are relatively easy and inexpensive to correct.