The document discusses key topics in software development including software defects, quality, product liability, development processes, testing methods, maturity models, and quality standards. It describes software development as the process of creating and maintaining applications through conceiving, designing, programming, testing and bug fixing. It also outlines different types of software defects, development roles, methodologies, testing approaches, maturity levels, risks for safety critical systems, and quality management standards like ISO 9001.
2. Software Development
It is the process of conceiving,
specifying, designing, programming,
documenting, testing, and bug fixing
involved in creating and maintaining
applications, frameworks, or other
software components.
3. Software Defect
Any error that, if not removed,
could cause a software system
to fail to meet its user’s needs.
7. Product Liability
Injuries can come in the form of
physical mishaps and death, loss of
revenue, or an increase in expenses
due to business disruption caused
by software failure.
8. Product Liability
Some Claims of Product Liability are:
• Strict Liability
• Negligence
• Breach of Warranty
• Intentional Misrepresentation
9. Strict Liability
It means that the defendant is
held responsible for injuring
another person, regardless of
negligence or intent.
10. Negligence
Is the failure to do what a
reasonable person would do or
doing something that a
reasonable person would not do
13. Example Warranty of Merchantability:
• The goods must be adequately contained,
packaged and labeled.
• The good must be of an even kind, quality and
quantity within each unit
• The good must conform to any promise or
affirmation of fact made on the container or
label.
16. Persons Involved in SDP
• System Analysts
• Programmers
• Architects
• Database Specialists
• Project Managers
• Documentation Specialists
• Trainers and Testers
17. Software Development Methodology
Is a standard, proven work
process that enables the persons
involved to make controlled and
orderly progress in developing
high-quality software
19. Quality Assurance
Refers to methods within the
development cycle designed to
guarantee reliable operation of a
product
20. Quality Assurance
To ensure the degree of quality,
software testing is done before
the products are shipped.
21. Software Testing
is a process of executing a program or
application with the intent of finding the
software bugs. It can also be stated as the
process of validating and verifying that a
software program or application or product
meets the business and technical requirements
that guided its design and development
22. Types Software Tests:
• Dynamic Testing
• Static Testing
• Integration Testing
• System Testing
• User Acceptance Testing
23. 1. Dynamic Testing
Done by testing the code for a
completed unit of software by
actually entering test data and
comparing the results to the
expected results
24. a. Black-box Testing
Involves viewing the software unit
as a device that has expected input
and output behaviors but whose
internal workings are unknown
(a black box)
25. b. White-box Testing
Treats the software unit as a device
that has expected input and output
behaviors but whose internal
workings, unlike the unit in black-
box testing, are known
26. 2. 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.
27. 3. Integration Testing
After successful unit testing, the
software units are combined into an
integrated subsystem that undergoes
rigorous testing to ensure that
linkages among various subsystems
work successfully.
28. 4. System Testing
After successful integration
testing, the various subsystems
are combined to test the entire
system as a complete entity.
29. 5. User Acceptance Testing
Independent testing performed by
trained end users to ensure that
the system operates as they
expected.
31. CMMI
Developed by the Software
Engineering Institute at Carnegie
Mellon; is a process improvement
approach that defines the essential
elements of effective processes
32. CMMI’s Level of Software
Development Maturity
1. Initial
2. Managed
3. Defined
4. Quantitatively Managed
5. Optimizing
34. 2. Managed
Projects employ processes and
skilled people; status of work
products is visible to
management at defined points
35. 3. Defined
Processes are well-defined and
understood and are described in
standards, procedures, tools, and
methods, processes are consistent
across the organization
36. 4. Quantitatively Managed
Quantitative objectives for quality
and process performance are
established and are used as criteria in
managing projects; specific measures
of process performance are collected
and statistically analyzed.
40. Development of Safety-Critical System
Project Safety Engineer – one
who has explicit responsibility
for the system’s safety. They
track hazards from a project’s
start to its finish.
41. Development of Safety-Critical System
Risk – is the probability of an
undesirable event occurring times
the magnitude of the event’s
consequences if it does happen
Risk = % of undesirable event to
happen X cost of consequence
44. Quality Management Standards
ISO (International Organization
for Standardization) – founded in
1947, is a worldwide federation
of national standards bodies from
161 countries
47. Quality Management Standards
ISO 9001 - To obtain this coveted
certificate, an organization must
meet the following requirements:
•Have written procedures for all
processes
48. Quality Management Standards
ISO 9001 - To obtain this coveted
certificate, an organization must
meet the following requirements:
•Follow those procedures
49. Quality Management Standards
ISO 9001 - To obtain this coveted
certificate, an organization must
meet the following requirements:
• Prove to an auditor that it has
fulfilled the first two requirements