SlideShare uma empresa Scribd logo
1 de 46
Ethics in Information
Technology
Chapter 7
Software Development
Objectives
• Why do companies require high-quality software
in business systems, industrial process control
systems, and consumer products?
• What ethical issues do software manufacturers
face in making tradeoffs between project
schedules, project costs, and software quality?
Objectives (continued)
• What are the four most common types of
software product liability claims, and what actions
must plaintiffs and defendants take to be
successful?
• What are the essential components of a software
development methodology, and what are its
benefits?
Objectives (continued)
• How can Capability Maturity Model Integration
improve an organization’s software development
process?
• What is a safety-critical system, and what actions
are required during its development?
Strategies to Engineer Quality
Software
• High-quality software systems
– Operate safely and dependably
– Have a high degree of availability
– Required to support the fields of
• Air traffic control
• Nuclear power
• Automobile safety
• Health care
• Military and defense
• Space exploration
Strategies to Engineer Quality
Software (continued)
• More and more users are demanding high quality
software
• Software defect
– Could cause a system to fail to meet users’ needs
– Impact may be trivial or very serious
– Patches may contain defects
• Software quality
– Degree to which software meets the needs of
users
Strategies to Engineer Quality
Software (continued)
• Quality management
– How to define, measure, and refine the quality of
the development process and products
– Objective
• Help developers deliver high-quality systems that
meet the needs of users
• Deliverables
– Products such as:
• Statements of requirements
• Flowcharts
• User documentation
Strategies to Engineer Quality
Software (continued)
• Primary cause for poor software quality
– Developers do not know how to design quality into
software
– Or do not take the time to do so
• Developers must
– Define and follow a set of rigorous engineering
principles
– Learn from past mistakes
– Understand the environment in which systems
operate
– Design systems relatively immune to human error
Strategies to Engineer Quality
Software (continued)
• Programmers make mistakes in turning design
specifications into code
– About one defect for every 10 lines of code
• Pressure to reduce time-to-market
• First release
– Organizations avoid buying the first release
– Or prohibit its use in critical systems
– Usually has many defects
The Importance of Software
Quality
• Business information systems are a set of
interrelated components
– Including
• Hardware
• Software
• Databases
• Networks
• People
• Procedures
The Importance of Software
Quality (continued)
• Business information system examples
– Order-processing system
– Electronic-funds transfer system
– Airline’s online ticket reservation system
• Decision support system (DSS)
– Used to improve decision making
• Software for industrial use
• Software controls the operation of many
industrial and consumer products
The Importance of Software
Quality (continued)
• Mismanaged software can be fatal to a business
• Ethical questions
– How much effort and money to invest to ensure
high-quality software
– Whether products could cause damage
• Legal exposure if they did
Legal Overview: Software Product
Liability
• Product liability
– Liability of manufacturers, sellers, lessors, and
others for injuries caused by defective products
– There is no federal product liability law
• Mainly state law
• Article 2 of the Uniform Commercial Code
• Strict liability
– Defendant held responsible for the injury
– Regardless of negligence or intent
Legal Overview: Software Product
Liability (continued)
• Strict liability
– Plaintiff must prove only that the software
product is defective or unreasonably dangerous
and that the defect caused the injury
– No requirement to prove that the manufacturer
was careless or negligent
• Or to prove who caused the defect
– All parties in the chain of distribution are liable
Legal Overview: Software Product
Liability (continued)
• Legal defenses used against strict liability
– Doctrine of supervening event
– Government contractor defense
– Expired statute of limitations
• Negligence
– A supplier is not held responsible for every
product defect that causes a customer or third-
party loss
– Responsibility is limited to defects that could
have been detected and corrected through
“reasonable” software development practices
Legal Overview: Software Product
Liability (continued)
• Negligence
– Area of great risk for software manufacturers
– Defense of negligence may include
• Legal justification for the alleged misconduct
• Demonstrate that the plaintiffs’ own actions
contributed to injuries
Legal Overview: Software Product
Liability (continued)
• Warranty
– Assures buyers or lessees that a product meets
certain standards of quality
– Expressly stated
– Implied by law
• Breach of warranty claim
– Plaintiff must have a valid contract that the
supplier did not fulfill
– Can be extremely difficult to prove
• Because the software supplier writes the warranty
Legal Overview: Software Product
Liability (continued)
• Intentional misrepresentation
– Seller or lessor either misrepresents the quality
of a product
– Or conceals a defect in it
– Forms of representation
• Advertising
• Salespersons’ comments
• Invoices
• Shipping labels
Software Development Process
• Large software project roles
– System analysts
– Programmers
– Architects
– Database specialists
– Project managers
– Documentation specialists
– Trainers
– Testers
Software Development Process
(continued)
• Software development methodology
– Work process
– Controlled and orderly progress
– Defines activities and individual and group
responsibilities
– Recommends specific techniques for
accomplishing various activities
– Offers guidelines for managing the quality of
software during various stages of development
Software Development Process
(continued)
• Safer and cheaper to avoid software problems
at the beginning than to attempt to fix damages
after the fact
– Identify and remove errors early in the
development process
• Cost-saving measure
• Most efficient way to improve software quality
Software Development Process
(continued)
• Effective methodology
– Reduces the number of software errors that
might occur
– If an organization follows widely accepted
development methods, negligence on its part is
harder to prove
• Software quality assurance (QA) refers to
methods within the development cycle
– Guarantee reliable operation of product
– Ideally applied at each stage throughout the
development cycle
Software Development Process
(continued)
• Dynamic testing
– Black-box testing
• Tester has no knowledge of code
– White-box testing
• Testing all possible logic paths through the
software unit
• With thorough knowledge of the logic
• Make each program statement execute at least
once
Software Development Process
(continued)
• Static testing
– Static analyzers are run against the new code
– Looks for suspicious patterns in programs that
might indicate a defect
• Integration testing
– After successful unit testing
– Software units are combined into an integrated
subsystem
– Ensures that all linkages among various
subsystems work successfully
Software Development Process
(continued)
• System testing
– After successful integration testing
– Various subsystems are combined
– Tests the entire system as a complete entity
• User acceptance testing
– Independent testing
– Performed by trained end users
– Ensures that the system operates as they expect
Capability Maturity Model
Integration for Software
• Process improvement approach
• Defined by the Software Engineering Institute
– At Carnegie Mellon University in Pittsburgh
• Defines essential elements of effective
processes
• General enough to evaluate and improve almost
any process
• Frequently used to assess software development
practices
Capability Maturity Model
Integration for Software
(continued)
• Defines five levels of software development
maturity
• Identifies issues most critical to software
quality and process improvement
• Organization conducts an assessment of its
software development practices
– Determines where they fit in the capability model
– Identifies areas for improvement
• Action plans are needed to upgrade the
development process
Capability Maturity Model
Integration for Software
(continued)
• Maturity level increases
– Organization improves its ability to deliver good
software on time and on budget
CMMI Maturity Levels
Key Issues in Software Development
• Consequences of software defects in certain
systems can be deadly
– Companies must take special precautions
Development of Safety-Critical
Systems
• Safety-critical system
– Failure may cause injury or death
– Examples
• Automobile’s antilock brakes
• Nuclear power plant reactors
• Airplane navigation
• Roller coasters
• Elevators
• Medical devices
Development of Safety-Critical
Systems (continued)
• Key assumption
– Safety will not automatically result from following
the organization’s standard development
methodology
• Must go through a more rigorous and time-
consuming development process than other kinds
of software
• All tasks require
– Additional steps
– More thorough documentation
– More checking and rechecking
Development of Safety-Critical
Systems (continued)
• Project safety engineer
– Explicit responsibility for the system’s safety
– Uses a logging and monitoring system
• To track hazards from the project’s start to finish
• Hazard log
– Used at each stage of the software development
process
– Assesses how it has accounted for detected
hazards
Development of Safety-Critical
Systems (continued)
• Safety reviews
– Held throughout the development process
• Robust configuration management system
– Tracks all safety-related documentation
• Formal documentation required
– Including verification reviews and signatures
• Key issue
– Deciding when QA staff has performed enough
testing
Development of Safety-Critical
Systems (continued)
• Risk
– Probability of an undesirable event occurring
times the magnitude of the event’s consequences
if it does happen
– Consequences include
• Damage to property
• Loss of money
• Injury to people
• Death
Development of Safety-Critical
Systems (continued)
• Redundancy
– Provision of multiple interchangeable components
to perform a single function
– In order to cope with failures and errors
• N-version programming
– Form of redundancy
– Involves the execution of a series of program
instructions simultaneously by two different
systems
– Uses different algorithms to execute instructions
that accomplish the same result
Development of Safety-Critical
Systems (continued)
• N-version programming
– Results from the two systems are compared
– If a difference is found, another algorithm is
executed to determine which system yielded the
correct result
– Instructions for the two systems are:
• Written by programmers from two different
companies
• Run on different hardware devices
– Both systems are highly unlikely to fail at the
same time under the same conditions
Development of Safety-Critical
Systems (continued)
• Decide what level of risk is acceptable
– Controversial
– If the level of risk in a design is judged to be too
great, make system modifications
• Mitigate the consequences of failure
– By devising emergency procedures and evacuation
plans
• Recall product
– When data indicates a problem
Development of Safety-Critical
Systems (continued)
• Reliability
– Probability of a component or system performing
without failure over its product life
• Human interface
– Important and difficult area of safety-critical
system design
– Leave the operator little room for erroneous
judgment
Quality Management Standards
• ISO 9000 standard
– Guide to quality products, services, and
management
– Organization must submit to an examination by an
external assessor
– Requirements:
• Written procedures for everything it does
• Follow those procedures
• Prove to the auditor the organization fulfilled the
first two requirements
Quality Management Standards
(continued)
• Failure mode and effects analysis (FMEA)
– Used to evaluate reliability
– Determine the effect of system and equipment
failures
– Goal:
• Identify potential design and process failures early
in a project
Quality Management Standards
(continued)
• Failure mode and effects analysis (FMEA)
– Failure mode
• Describes how a product or process could fail
– Effect
• Adverse consequence that a customer might
experience
– Seldom is a one-to-one relationship between
cause and effect
Quality Management Standards
• DO-178B/EUROCCAE ED-128
– Evaluation standard for the international aviation
community
– Developed by Radio Technical Commission for
Aeronautics (RTCA)
Manager’s Checklist for Improving
Software Quality
Summary
• More and more users are demanding high quality
software
• Software product liability claims are frequently
based on
– Strict liability
– Negligence
– Breach of warranty
– Misrepresentation
Summary (continued)
• Software development methodology
– Defines activities in the software development
process
– Defines individual and group responsibilities
– Recommends specific techniques
– Offers guidelines for managing the quality of
products
• CMMI
– Defines five levels of software development
maturity
• Safety-critical system
– Failure may cause injury or death

Mais conteúdo relacionado

Mais procurados

Computer Ethics
Computer EthicsComputer Ethics
Computer Ethicsiallen
 
Social and Professional Issues in Computing - Ethics
Social and Professional Issues in Computing - EthicsSocial and Professional Issues in Computing - Ethics
Social and Professional Issues in Computing - EthicsDyuti Islam
 
computer ethics
computer ethicscomputer ethics
computer ethicsHoney jose
 
Digital law powerpoint
Digital law powerpointDigital law powerpoint
Digital law powerpointDLRUDO01
 
Ethics for it professionals and it users
Ethics for it professionals and it usersEthics for it professionals and it users
Ethics for it professionals and it usersBhanja Kishor Samudra
 
Ethical and Social Issues in ICT
Ethical and Social Issues in ICTEthical and Social Issues in ICT
Ethical and Social Issues in ICTRoshanMaharjan13
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
Information Ethics
Information EthicsInformation Ethics
Information EthicsUMaine
 
COMPUTER ETHICS
COMPUTER ETHICSCOMPUTER ETHICS
COMPUTER ETHICSRJ Khan
 
Computer ethics
Computer ethicsComputer ethics
Computer ethicsJagan Nath
 
computer ethics slides
computer ethics slidescomputer ethics slides
computer ethics slidesthothakhail
 
Legal, Ethical and professional issues in Information Security
Legal, Ethical and professional issues in Information SecurityLegal, Ethical and professional issues in Information Security
Legal, Ethical and professional issues in Information SecurityGamentortc
 
Information Assurance And Security - Chapter 1 - Lesson 2
Information Assurance And Security - Chapter 1 - Lesson 2Information Assurance And Security - Chapter 1 - Lesson 2
Information Assurance And Security - Chapter 1 - Lesson 2MLG College of Learning, Inc
 
ETHICS01 - Introduction to Computer Ethics
ETHICS01 - Introduction to Computer EthicsETHICS01 - Introduction to Computer Ethics
ETHICS01 - Introduction to Computer EthicsMichael Heron
 

Mais procurados (20)

Computer Ethics
Computer EthicsComputer Ethics
Computer Ethics
 
Ethics for IT Professionals
Ethics for IT ProfessionalsEthics for IT Professionals
Ethics for IT Professionals
 
Social and Professional Issues in Computing - Ethics
Social and Professional Issues in Computing - EthicsSocial and Professional Issues in Computing - Ethics
Social and Professional Issues in Computing - Ethics
 
computer ethics
computer ethicscomputer ethics
computer ethics
 
Digital law powerpoint
Digital law powerpointDigital law powerpoint
Digital law powerpoint
 
Ethics for it professionals and it users
Ethics for it professionals and it usersEthics for it professionals and it users
Ethics for it professionals and it users
 
Chapter 6
Chapter 6Chapter 6
Chapter 6
 
Ethic02
Ethic02Ethic02
Ethic02
 
Computer Ethics
Computer EthicsComputer Ethics
Computer Ethics
 
Ethical and Social Issues in ICT
Ethical and Social Issues in ICTEthical and Social Issues in ICT
Ethical and Social Issues in ICT
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Chapter 3_dp-pertemuan 4&5
 Chapter 3_dp-pertemuan 4&5 Chapter 3_dp-pertemuan 4&5
Chapter 3_dp-pertemuan 4&5
 
Information Ethics
Information EthicsInformation Ethics
Information Ethics
 
Malware ppt
Malware pptMalware ppt
Malware ppt
 
COMPUTER ETHICS
COMPUTER ETHICSCOMPUTER ETHICS
COMPUTER ETHICS
 
Computer ethics
Computer ethicsComputer ethics
Computer ethics
 
computer ethics slides
computer ethics slidescomputer ethics slides
computer ethics slides
 
Legal, Ethical and professional issues in Information Security
Legal, Ethical and professional issues in Information SecurityLegal, Ethical and professional issues in Information Security
Legal, Ethical and professional issues in Information Security
 
Information Assurance And Security - Chapter 1 - Lesson 2
Information Assurance And Security - Chapter 1 - Lesson 2Information Assurance And Security - Chapter 1 - Lesson 2
Information Assurance And Security - Chapter 1 - Lesson 2
 
ETHICS01 - Introduction to Computer Ethics
ETHICS01 - Introduction to Computer EthicsETHICS01 - Introduction to Computer Ethics
ETHICS01 - Introduction to Computer Ethics
 

Destaque

Freedom of expression
Freedom of expressionFreedom of expression
Freedom of expressionGerwin Ocsena
 
An Empirical Study on Collaborative Architecture Decision Making in Software ...
An Empirical Study on Collaborative Architecture Decision Making in Software ...An Empirical Study on Collaborative Architecture Decision Making in Software ...
An Empirical Study on Collaborative Architecture Decision Making in Software ...Sandun Dasanayake
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentZahid Hussain
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web DevelopmentBurhan Khalid
 
A review on a thesis, titled The Impact Of Information Technology On Producti...
A review on a thesis, titled The Impact Of Information Technology On Producti...A review on a thesis, titled The Impact Of Information Technology On Producti...
A review on a thesis, titled The Impact Of Information Technology On Producti...Ukam John Victor
 
Impact of Information Technology on Productivity & Quality of Life
Impact of Information Technology on Productivity & Quality of LifeImpact of Information Technology on Productivity & Quality of Life
Impact of Information Technology on Productivity & Quality of LifeShibbir Shimanto
 
Software development slides
Software development slidesSoftware development slides
Software development slidesiarthur
 
Ethics and Social Responsibility
Ethics and Social ResponsibilityEthics and Social Responsibility
Ethics and Social Responsibilitymandalina landy
 
Chapter 3 Computer Crimes
Chapter 3 Computer  CrimesChapter 3 Computer  Crimes
Chapter 3 Computer CrimesMar Soriano
 
Decision making in software project management
Decision making in software project managementDecision making in software project management
Decision making in software project managementPriyadarshini Krishnaswamy
 
Mis chapter 2 infomation, management and decision making
Mis chapter 2   infomation, management and decision makingMis chapter 2   infomation, management and decision making
Mis chapter 2 infomation, management and decision makingAjay Khot
 
Website Development Process
Website Development ProcessWebsite Development Process
Website Development ProcessHend Al-Khalifa
 
Decision making and mis
Decision making and misDecision making and mis
Decision making and misadityapareek26
 
Decision Making and Information Systems
Decision Making and  Information SystemsDecision Making and  Information Systems
Decision Making and Information SystemsAriful Saimon
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design DecisionsHenry Muccini
 
Group Decision Making
Group Decision MakingGroup Decision Making
Group Decision MakingBinod Hyoju
 

Destaque (20)

Freedom of expression
Freedom of expressionFreedom of expression
Freedom of expression
 
Quality of life with IT
Quality of life with ITQuality of life with IT
Quality of life with IT
 
An Empirical Study on Collaborative Architecture Decision Making in Software ...
An Empirical Study on Collaborative Architecture Decision Making in Software ...An Empirical Study on Collaborative Architecture Decision Making in Software ...
An Empirical Study on Collaborative Architecture Decision Making in Software ...
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
04 privacy
04 privacy04 privacy
04 privacy
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web Development
 
A review on a thesis, titled The Impact Of Information Technology On Producti...
A review on a thesis, titled The Impact Of Information Technology On Producti...A review on a thesis, titled The Impact Of Information Technology On Producti...
A review on a thesis, titled The Impact Of Information Technology On Producti...
 
Impact of Information Technology on Productivity & Quality of Life
Impact of Information Technology on Productivity & Quality of LifeImpact of Information Technology on Productivity & Quality of Life
Impact of Information Technology on Productivity & Quality of Life
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
Ethics and Social Responsibility
Ethics and Social ResponsibilityEthics and Social Responsibility
Ethics and Social Responsibility
 
Pmp quality chapter 8
Pmp quality chapter 8Pmp quality chapter 8
Pmp quality chapter 8
 
Chapter 3 Computer Crimes
Chapter 3 Computer  CrimesChapter 3 Computer  Crimes
Chapter 3 Computer Crimes
 
Decision making in software project management
Decision making in software project managementDecision making in software project management
Decision making in software project management
 
Mis chapter 2 infomation, management and decision making
Mis chapter 2   infomation, management and decision makingMis chapter 2   infomation, management and decision making
Mis chapter 2 infomation, management and decision making
 
Decision making
Decision makingDecision making
Decision making
 
Website Development Process
Website Development ProcessWebsite Development Process
Website Development Process
 
Decision making and mis
Decision making and misDecision making and mis
Decision making and mis
 
Decision Making and Information Systems
Decision Making and  Information SystemsDecision Making and  Information Systems
Decision Making and Information Systems
 
Software Architecture: Design Decisions
Software Architecture: Design DecisionsSoftware Architecture: Design Decisions
Software Architecture: Design Decisions
 
Group Decision Making
Group Decision MakingGroup Decision Making
Group Decision Making
 

Semelhante a Software development

When Medical Device Software Fails Due to Improper Verification & Validation ...
When Medical Device Software Fails Due to Improper Verification & Validation ...When Medical Device Software Fails Due to Improper Verification & Validation ...
When Medical Device Software Fails Due to Improper Verification & Validation ...Sterling Medical Devices
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1Abdul Basit
 
Building a software testing environment
Building a software testing environmentBuilding a software testing environment
Building a software testing environmentHimanshu
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
Softwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan SahadviSoftwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan SahadviAbuulHassan2
 
Software validation do's and dont's may 2013
Software validation do's and dont's may 2013Software validation do's and dont's may 2013
Software validation do's and dont's may 2013John Cachat
 
Beit 381 se lec 14 - 35 - 12 mar21 - sqa - iso and cmm
Beit 381 se lec 14 - 35  - 12 mar21 - sqa - iso and cmmBeit 381 se lec 14 - 35  - 12 mar21 - sqa - iso and cmm
Beit 381 se lec 14 - 35 - 12 mar21 - sqa - iso and cmmbabak danyal
 
IEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable SoftwareIEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable SoftwareAnn Marie Neufelder
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to qualityDhanashriAmbre
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.pptHODCOMPUTER10
 
SENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptxSENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptxMinsasWorld
 
Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...
Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...
Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...Ratha Jegatheson
 
Software Engineering _ Introduction
Software Engineering _ IntroductionSoftware Engineering _ Introduction
Software Engineering _ IntroductionThenmozhiK5
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxLeahRachael
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringMohamed Essam
 
Recent and-future-trends spm
Recent and-future-trends spmRecent and-future-trends spm
Recent and-future-trends spmPrakash Poudel
 
SQA_Lec#01-1.ppt
SQA_Lec#01-1.pptSQA_Lec#01-1.ppt
SQA_Lec#01-1.pptAhmad Abbas
 

Semelhante a Software development (20)

When Medical Device Software Fails Due to Improper Verification & Validation ...
When Medical Device Software Fails Due to Improper Verification & Validation ...When Medical Device Software Fails Due to Improper Verification & Validation ...
When Medical Device Software Fails Due to Improper Verification & Validation ...
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1
 
Building a software testing environment
Building a software testing environmentBuilding a software testing environment
Building a software testing environment
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Softwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan SahadviSoftwarequalityassurance with Abu ul hassan Sahadvi
Softwarequalityassurance with Abu ul hassan Sahadvi
 
Software validation do's and dont's may 2013
Software validation do's and dont's may 2013Software validation do's and dont's may 2013
Software validation do's and dont's may 2013
 
Beit 381 se lec 14 - 35 - 12 mar21 - sqa - iso and cmm
Beit 381 se lec 14 - 35  - 12 mar21 - sqa - iso and cmmBeit 381 se lec 14 - 35  - 12 mar21 - sqa - iso and cmm
Beit 381 se lec 14 - 35 - 12 mar21 - sqa - iso and cmm
 
IEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable SoftwareIEEE 1633 Recommended Practices for Reliable Software
IEEE 1633 Recommended Practices for Reliable Software
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Software testing and introduction to quality
Software testing and introduction to qualitySoftware testing and introduction to quality
Software testing and introduction to quality
 
Software Engineering.ppt
Software Engineering.pptSoftware Engineering.ppt
Software Engineering.ppt
 
SENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptxSENG202-v-and-v-modeling_121810.pptx
SENG202-v-and-v-modeling_121810.pptx
 
Software testing introduction
Software testing  introductionSoftware testing  introduction
Software testing introduction
 
Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...
Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...
Perintis Mobiliti Success Story: eParlimen Software Process Governance and Co...
 
Software Engineering _ Introduction
Software Engineering _ IntroductionSoftware Engineering _ Introduction
Software Engineering _ Introduction
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Recent and-future-trends spm
Recent and-future-trends spmRecent and-future-trends spm
Recent and-future-trends spm
 
SQA_Lec#01-1.ppt
SQA_Lec#01-1.pptSQA_Lec#01-1.ppt
SQA_Lec#01-1.ppt
 

Mais de Rosie Jane Enomar

Mais de Rosie Jane Enomar (7)

IEEE 802 standards
IEEE 802 standardsIEEE 802 standards
IEEE 802 standards
 
Chapter 6 - Networking
Chapter 6 - NetworkingChapter 6 - Networking
Chapter 6 - Networking
 
Java Inheritance
Java InheritanceJava Inheritance
Java Inheritance
 
Special operators in Database
Special operators in DatabaseSpecial operators in Database
Special operators in Database
 
Aggregate functions
Aggregate functionsAggregate functions
Aggregate functions
 
Juncture
JunctureJuncture
Juncture
 
Types of Reaction
Types of ReactionTypes of Reaction
Types of Reaction
 

Último

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Último (20)

Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

Software development

  • 2. Objectives • Why do companies require high-quality software in business systems, industrial process control systems, and consumer products? • What ethical issues do software manufacturers face in making tradeoffs between project schedules, project costs, and software quality?
  • 3. Objectives (continued) • What are the four most common types of software product liability claims, and what actions must plaintiffs and defendants take to be successful? • What are the essential components of a software development methodology, and what are its benefits?
  • 4. Objectives (continued) • How can Capability Maturity Model Integration improve an organization’s software development process? • What is a safety-critical system, and what actions are required during its development?
  • 5. Strategies to Engineer Quality Software • High-quality software systems – Operate safely and dependably – Have a high degree of availability – Required to support the fields of • Air traffic control • Nuclear power • Automobile safety • Health care • Military and defense • Space exploration
  • 6. Strategies to Engineer Quality Software (continued) • More and more users are demanding high quality software • Software defect – Could cause a system to fail to meet users’ needs – Impact may be trivial or very serious – Patches may contain defects • Software quality – Degree to which software meets the needs of users
  • 7. Strategies to Engineer Quality Software (continued) • Quality management – How to define, measure, and refine the quality of the development process and products – Objective • Help developers deliver high-quality systems that meet the needs of users • Deliverables – Products such as: • Statements of requirements • Flowcharts • User documentation
  • 8. Strategies to Engineer Quality Software (continued) • Primary cause for poor software quality – Developers do not know how to design quality into software – Or do not take the time to do so • Developers must – Define and follow a set of rigorous engineering principles – Learn from past mistakes – Understand the environment in which systems operate – Design systems relatively immune to human error
  • 9. Strategies to Engineer Quality Software (continued) • Programmers make mistakes in turning design specifications into code – About one defect for every 10 lines of code • Pressure to reduce time-to-market • First release – Organizations avoid buying the first release – Or prohibit its use in critical systems – Usually has many defects
  • 10. The Importance of Software Quality • Business information systems are a set of interrelated components – Including • Hardware • Software • Databases • Networks • People • Procedures
  • 11. The Importance of Software Quality (continued) • Business information system examples – Order-processing system – Electronic-funds transfer system – Airline’s online ticket reservation system • Decision support system (DSS) – Used to improve decision making • Software for industrial use • Software controls the operation of many industrial and consumer products
  • 12. The Importance of Software Quality (continued) • Mismanaged software can be fatal to a business • Ethical questions – How much effort and money to invest to ensure high-quality software – Whether products could cause damage • Legal exposure if they did
  • 13. Legal Overview: Software Product Liability • Product liability – Liability of manufacturers, sellers, lessors, and others for injuries caused by defective products – There is no federal product liability law • Mainly state law • Article 2 of the Uniform Commercial Code • Strict liability – Defendant held responsible for the injury – Regardless of negligence or intent
  • 14. Legal Overview: Software Product Liability (continued) • Strict liability – Plaintiff must prove only that the software product is defective or unreasonably dangerous and that the defect caused the injury – No requirement to prove that the manufacturer was careless or negligent • Or to prove who caused the defect – All parties in the chain of distribution are liable
  • 15. Legal Overview: Software Product Liability (continued) • Legal defenses used against strict liability – Doctrine of supervening event – Government contractor defense – Expired statute of limitations • Negligence – A supplier is not held responsible for every product defect that causes a customer or third- party loss – Responsibility is limited to defects that could have been detected and corrected through “reasonable” software development practices
  • 16. Legal Overview: Software Product Liability (continued) • Negligence – Area of great risk for software manufacturers – Defense of negligence may include • Legal justification for the alleged misconduct • Demonstrate that the plaintiffs’ own actions contributed to injuries
  • 17. Legal Overview: Software Product Liability (continued) • Warranty – Assures buyers or lessees that a product meets certain standards of quality – Expressly stated – Implied by law • Breach of warranty claim – Plaintiff must have a valid contract that the supplier did not fulfill – Can be extremely difficult to prove • Because the software supplier writes the warranty
  • 18. Legal Overview: Software Product Liability (continued) • Intentional misrepresentation – Seller or lessor either misrepresents the quality of a product – Or conceals a defect in it – Forms of representation • Advertising • Salespersons’ comments • Invoices • Shipping labels
  • 19. Software Development Process • Large software project roles – System analysts – Programmers – Architects – Database specialists – Project managers – Documentation specialists – Trainers – Testers
  • 20. Software Development Process (continued) • Software development methodology – Work process – Controlled and orderly progress – Defines activities and individual and group responsibilities – Recommends specific techniques for accomplishing various activities – Offers guidelines for managing the quality of software during various stages of development
  • 21. Software Development Process (continued) • Safer and cheaper to avoid software problems at the beginning than to attempt to fix damages after the fact – Identify and remove errors early in the development process • Cost-saving measure • Most efficient way to improve software quality
  • 22. Software Development Process (continued) • Effective methodology – Reduces the number of software errors that might occur – If an organization follows widely accepted development methods, negligence on its part is harder to prove • Software quality assurance (QA) refers to methods within the development cycle – Guarantee reliable operation of product – Ideally applied at each stage throughout the development cycle
  • 23. Software Development Process (continued) • Dynamic testing – Black-box testing • Tester has no knowledge of code – White-box testing • Testing all possible logic paths through the software unit • With thorough knowledge of the logic • Make each program statement execute at least once
  • 24. Software Development Process (continued) • Static testing – Static analyzers are run against the new code – Looks for suspicious patterns in programs that might indicate a defect • Integration testing – After successful unit testing – Software units are combined into an integrated subsystem – Ensures that all linkages among various subsystems work successfully
  • 25. Software Development Process (continued) • System testing – After successful integration testing – Various subsystems are combined – Tests the entire system as a complete entity • User acceptance testing – Independent testing – Performed by trained end users – Ensures that the system operates as they expect
  • 26. Capability Maturity Model Integration for Software • Process improvement approach • Defined by the Software Engineering Institute – At Carnegie Mellon University in Pittsburgh • Defines essential elements of effective processes • General enough to evaluate and improve almost any process • Frequently used to assess software development practices
  • 27. Capability Maturity Model Integration for Software (continued) • Defines five levels of software development maturity • Identifies issues most critical to software quality and process improvement • Organization conducts an assessment of its software development practices – Determines where they fit in the capability model – Identifies areas for improvement • Action plans are needed to upgrade the development process
  • 28. Capability Maturity Model Integration for Software (continued) • Maturity level increases – Organization improves its ability to deliver good software on time and on budget
  • 30. Key Issues in Software Development • Consequences of software defects in certain systems can be deadly – Companies must take special precautions
  • 31. Development of Safety-Critical Systems • Safety-critical system – Failure may cause injury or death – Examples • Automobile’s antilock brakes • Nuclear power plant reactors • Airplane navigation • Roller coasters • Elevators • Medical devices
  • 32. Development of Safety-Critical Systems (continued) • Key assumption – Safety will not automatically result from following the organization’s standard development methodology • Must go through a more rigorous and time- consuming development process than other kinds of software • All tasks require – Additional steps – More thorough documentation – More checking and rechecking
  • 33. Development of Safety-Critical Systems (continued) • Project safety engineer – Explicit responsibility for the system’s safety – Uses a logging and monitoring system • To track hazards from the project’s start to finish • Hazard log – Used at each stage of the software development process – Assesses how it has accounted for detected hazards
  • 34. Development of Safety-Critical Systems (continued) • Safety reviews – Held throughout the development process • Robust configuration management system – Tracks all safety-related documentation • Formal documentation required – Including verification reviews and signatures • Key issue – Deciding when QA staff has performed enough testing
  • 35. Development of Safety-Critical Systems (continued) • Risk – Probability of an undesirable event occurring times the magnitude of the event’s consequences if it does happen – Consequences include • Damage to property • Loss of money • Injury to people • Death
  • 36. Development of Safety-Critical Systems (continued) • Redundancy – Provision of multiple interchangeable components to perform a single function – In order to cope with failures and errors • N-version programming – Form of redundancy – Involves the execution of a series of program instructions simultaneously by two different systems – Uses different algorithms to execute instructions that accomplish the same result
  • 37. Development of Safety-Critical Systems (continued) • N-version programming – Results from the two systems are compared – If a difference is found, another algorithm is executed to determine which system yielded the correct result – Instructions for the two systems are: • Written by programmers from two different companies • Run on different hardware devices – Both systems are highly unlikely to fail at the same time under the same conditions
  • 38. Development of Safety-Critical Systems (continued) • Decide what level of risk is acceptable – Controversial – If the level of risk in a design is judged to be too great, make system modifications • Mitigate the consequences of failure – By devising emergency procedures and evacuation plans • Recall product – When data indicates a problem
  • 39. Development of Safety-Critical Systems (continued) • Reliability – Probability of a component or system performing without failure over its product life • Human interface – Important and difficult area of safety-critical system design – Leave the operator little room for erroneous judgment
  • 40. Quality Management Standards • ISO 9000 standard – Guide to quality products, services, and management – Organization must submit to an examination by an external assessor – Requirements: • Written procedures for everything it does • Follow those procedures • Prove to the auditor the organization fulfilled the first two requirements
  • 41. Quality Management Standards (continued) • Failure mode and effects analysis (FMEA) – Used to evaluate reliability – Determine the effect of system and equipment failures – Goal: • Identify potential design and process failures early in a project
  • 42. Quality Management Standards (continued) • Failure mode and effects analysis (FMEA) – Failure mode • Describes how a product or process could fail – Effect • Adverse consequence that a customer might experience – Seldom is a one-to-one relationship between cause and effect
  • 43. Quality Management Standards • DO-178B/EUROCCAE ED-128 – Evaluation standard for the international aviation community – Developed by Radio Technical Commission for Aeronautics (RTCA)
  • 44. Manager’s Checklist for Improving Software Quality
  • 45. Summary • More and more users are demanding high quality software • Software product liability claims are frequently based on – Strict liability – Negligence – Breach of warranty – Misrepresentation
  • 46. Summary (continued) • Software development methodology – Defines activities in the software development process – Defines individual and group responsibilities – Recommends specific techniques – Offers guidelines for managing the quality of products • CMMI – Defines five levels of software development maturity • Safety-critical system – Failure may cause injury or death