Module 7: Ethical Decisions in Software Development Flashcards
What defines high-quality software systems?
High-quality software systems are easy to learn and use, perform quickly and efficiently to meet users’ needs, operate safely and reliably, and have high availability to minimize unexpected downtime.
Why is high-quality software essential in specific fields?
High-quality software has long been required to support fields like air traffic control, nuclear power, automobile safety, healthcare, military and defense, and space exploration.
How integral are computers and software in business, and why is the demand for high-quality software increasing?
Computers and software are integral parts of almost every business. The demand for high-quality software is increasing because end users cannot afford system crashes, lost work, lower productivity, or security holes that allow intruders to spread viruses, steal data, or shut down websites.
What is a software defect?
A software defect is any error that, if not removed, could cause a software system to fail to meet its users’ needs.
How is software quality defined and managed?
Software quality is the degree to which a software product meets the needs of its users. Quality management focuses on defining, measuring, and refining the quality of the development process and the products developed during its various stages.
Why are software developers under extreme pressure to reduce time to market?
Developers are driven by the need to beat the competition in delivering new functionality to users, to begin generating revenue to recover the cost of development, and to show a profit for shareholders.
What trade-offs do software companies often face, and what decisions do they make under pressure?
Under intense pressure to ship a new software product, the resources and time needed to ensure quality are often cut. When forced to choose between adding more user features and doing more testing, many software companies decide in favor of more features.
What constitutes a business information system?
A business information system is a set of interrelated components—including hardware, software, databases, networks, people, and procedures—that collects and processes data and disseminates the output.
What are software product liability claims based on?
Software product liability claims are typically based on strict liability, negligence, breach of warranty, or misrepresentation—sometimes in combination. Strict liability means that the defendant is held responsible for injuring another person regardless of negligence or intent.
What is a warranty, and how does it protect consumers?
A warranty assures buyers or lessees that a product meets certain standards of quality and may be either expressly stated or implied by law. If the product fails to meet the terms of its warranty, the buyer or lessee can sue for breach of warranty.
What is a software development methodology?
A software development methodology is a standard, proven work process that enables systems analysts, programmers, project managers, and others to make controlled and orderly progress in developing high-quality software. It defines activities, responsibilities, techniques, and quality management guidelines.
What is the waterfall system development model?
The waterfall system development model is a sequential, multistage system development process in which development of the next stage cannot begin until the results of the current stage are approved or modified as necessary.
What is the agile development methodology?
Under the agile development methodology, a system is developed in iterations (often called sprints) lasting from one to four weeks. It accepts that system requirements are evolving and focuses on maximizing the team’s ability to deliver quickly and respond to emerging requirements.
What are the benefits of using an effective development methodology?
An effective development methodology enables a manufacturer to produce high-quality software, forecast project-completion milestones, and reduce overall development and support costs. It also helps protect software manufacturers from legal liability for defective software.
Why is early defect identification important?
Identifying and removing a defect in the early stages of software development can be up to 100 times less costly than removing a defect in software that has been distributed to customers.