Software Development
Rudi Hartono
Computer Science - Indonesia University of Education
E-learning Content Developer at Comlabs USDI - ITB
rudi.hartono@student.upi.edu
@rudiCungkring

05/03/2014

Software Development

1
Vignette – Boeing Dreamliner Faces a Few Bump
in the Road
The Boeing Company is the largest manufacturer of commercial jetliner and
military aircraft combined. The company also designs and manufactures
defense systems. Missiles, satellite, launch vehicles, and advanced
information system communication systems for its customers in more than
90 countries around the world. Boeing’s annual revenue for 2008 was $61
billion.
Boeing 787 Dreamliner – commercial airplane (a fast, fuel-efficient midsizeda
airplane, designed to carry anywhere from 210 to 330 passengers), making
this the most successful sales launch of a new commercial airplne in
boeing’s history.
2008 Boeing had orders for 861 Dreamliners valued $144 billion. 2009 First
Flight of seven test models was planned for June 2009, and delivery first
Dreamliner scheduled for the first quarter of 2010.

 The test flight has been delayed.
05/03/2014

Software Development

2
Why?

05/03/2014

Software Development

3
Because:
• Incomplete work on some of the aircraft component
supplied by contractors.
• September 6, 2008 Boeing assembly-line workers
went on strike for 25 days
• Problems with the software that controls and
monitors the braking system for the aircraft
“it’s not that the brakes don’t work, it’s to do the
traceability of the software”, said Pat Shanahan,
Boeing vice president and 787 general manager.
05/03/2014

Software Development

4
So:
Furthermore, shrewd customers have a built-in paymentpenalty clause for late delivery, which may cost Boeing
an additional hundreds of millions of dollars.

05/03/2014

Software Development

5
Learning Objectives
1.
2.
3.
4.
5.
6.

Why do companies require high-quality software in business
systems, industrial process, control systems, and customer
products?
What potential ethical do software manufacturers face making
trade-offs between project schedules, project cost, and software
quality?
What are the four most common types of software product
liability claims?
What are the essential component of a software development
methodology, and what are be benefit of using such a
methodology?
How can the CMMI improve an organization’s software
development process?
What is a safety-critical system, and what special actions are
required during its development?

05/03/2014

Software Development

6
Strategies for engineering quality
software

 :’(
05/03/2014

Software Development

7
Strategies for engineering quality software

• Software quality is the degree to which
the attributes of a software product
enables it to meet the needs of its users.
• A software defect is any error that, if
not removed, would cause a system to
fail to meet the needs of its users.
In April 2003, Sallie Mae, the largest U.S. Student loan company Âą 800.000
Borrowers that a software installation error had resulted in a
miscalculation of monthly payments on their loans.
05/03/2014

Software Development

8
Software Quality
•

•

Quality management : focuses of define,
measure, and refine the quality of the
information systems development process
and product its various stages.
Deliverables are the items developed
during the development process
(flowcharts, documentation, software, etc.)

05/03/2014

Software Development

9
Primary cause of poor software quality
•
•
•

Many developers do not know how to design
quality into software from the very start.
The extreme pressure that software
companies feel to reduce the time to market
for their product.
All software designer and programmers make
mistakes in defining user requirements and
turning them into lines of codes.
The Windows Vista operating system took over five years to develop and
contains than 50 million lines of code. Even if 99.9 is ready for released to
public, there would still be about one bug per 10.000 lines of code. Thus
software that is used daily by workers.

05/03/2014

Software Development

10
The importance of Software Quality
A business information systems is a set of interrelated
component including hardware, software, databases.
Networks, people and procedures that collects and
processes data and disseminates the output.
Type of business system

Captures and records business transactions
Decision support system (DSS)

05/03/2014

Software problems may have caused frustations in the
past, but mismanaged software can now be fatal to a
business, causing it to miss product delivery dates.
Incur increased product development cost, and deliver
product that have poor quality
Software Development
11
Software Product Liability
• Product liability is the liability of manufacturers, sellers, leasers,
and others for the injuries caused by defective products.
• Strict liability means that the defendant is responsible for injuring
another person regardless of negligence or intent.

•
•
•
•

•

Under negligence, a software supplier cannot be held
responsible for every product defect that causes customer or
third party loss.
Responsibility is limited to harmful defects that could have
been detected and corrected through “reasonable” software
development practices.
Warranty assures the buyer that a product meets certain
standards of quality.
If a product fails to meets its warranty, the customer can sue
the seller for breach of warranty.
Intentional misrepresentation occurs when a seller
misrepresents the quality of a product

05/03/2014

Software Development

12
Software Development Process
• Software Development Methodology – a standard,
proven work process that enables system analysts,
programmers, project manager, and other make to
controlled and orderly progress in developing highquality software
• Quality Assurance (QA) – methods within the
development cycle designed to guarantee reliable
operation of the product.
2 ways that can protect software manufacturers from legal liability.
An effective methodology reduces the numbers of error
Widely accepted development methods, Negligence on its part is harder to
prove

05/03/2014

Software Development

13
Dynamic Testing

Functional testing or behavior
testing,
Incorrect or missing functionality,
Interfaces error,
Errors in data structures,
Behavior or performances errors,
Initialization and termination errors
05/03/2014

Testing based on program code
Control flow
Execute every statement of program

Software Development

14
Other Types of Software Testing

Integration
Testing

Static testing

User
Acceptance
Testing (UAT)

System
testing

05/03/2014

Software Development

15
Capability Maturity Model Integration
(CMMI)
• Carnegie Mellon Institute developed the
Capability Maturity Model for Software.
• It defines five levels of software development
process maturity and identifies the issues
most critical to software quality and process
improvement.
Partial of organization using CMMI: Accenture, Boeing, DynCorp, Federal
Aviation Administration, General Dynamic. IBM Global Services, Intel,
Samsung, and other
05/03/2014

Software Development

16
Capability Maturity Model Integration
(CCMI)
Maturity
Level

Definition

Percent of all
reporting
organizations
at this level

Not
Reported

8.4%

Initial

Process unpredictable, poorly controlled, and
reactive

1.9%

Managed

Process characterized for project and often reactive

33.3%

Defined

For the organizational and proactive

33.8%

Quantitativ
ely
managed

Process Measured and controlled

4.4%

Optimizing

Focus on continuous process improvement

18.2%

05/03/2014

Software Development

17
Development of Safety-Critical
Systems
Is one whose failure may cause injury or death

The Mariner I space probe, which was intended to make a close flyby of
the planet venus, as ordered destroyed less than five minutes after launch
in july 1962. Faulty software code caused the flight control computer to
perform a series of unnecessary course correction signal, which threw the
spacecraft dangerous off course.
05/03/2014

Software Development

18
The key of safety-critical systems
Project safety engineer
Risk
Redundancy
N-version Programming
Reliability
Bisi aya carita anu lain haha

05/03/2014

Software Development

19
Quality Management Standard
•
•

The International Organization for
Standardization issued the ISO series of business
management standards in 1988.
ISO 9000 is a series of formal standards to follow
when developing quality information systems.

05/03/2014

Software Development

20
Quality Management Standard
•

•
•
•
•

To be ISO 9000 certified, a company must do three
things:

– Have written procedures for everything they do.
– Follow those procedures.
– Prove to an auditor that they have written procedures
and that they follow them ISO 9000 is a series of formal
standards to follow when developing quality information
systems.
ISO 9001 – Design, development, production, installation,
service
ISO 9002 – Production, installation, service
ISO 9003 – Final inspection and test
ISO 9004 – Quality management and quality systems
elements

05/03/2014

Software Development

21
Failure Mode and Effects Analysis
(FMEA)
•

•

Important technique used to develop ISO 9000compliant quality systems by both evaluating
reliability and determining the effects of system and
equipment failures.
The Goal of FMEA is to identify potential design and
process failures early in a project.

LifeScan is part of Johnson & Johnson and for over 20 years it has
developed products for people with diabetes, every day, more than 3
million people depend on its OneTouch Systems
05/03/2014

Software Development

22
Resource & References
Click smile icon for detail information


Testing Overview and Black-Box Testing Techniques – Laurie
Williams 2006
Testing Overview and White-Box Testing Techniques – Laurie
Williams 2006

05/03/2014

Software Development

23

Software development

  • 1.
    Software Development Rudi Hartono ComputerScience - Indonesia University of Education E-learning Content Developer at Comlabs USDI - ITB rudi.hartono@student.upi.edu @rudiCungkring 05/03/2014 Software Development 1
  • 2.
    Vignette – BoeingDreamliner Faces a Few Bump in the Road The Boeing Company is the largest manufacturer of commercial jetliner and military aircraft combined. The company also designs and manufactures defense systems. Missiles, satellite, launch vehicles, and advanced information system communication systems for its customers in more than 90 countries around the world. Boeing’s annual revenue for 2008 was $61 billion. Boeing 787 Dreamliner – commercial airplane (a fast, fuel-efficient midsizeda airplane, designed to carry anywhere from 210 to 330 passengers), making this the most successful sales launch of a new commercial airplne in boeing’s history. 2008 Boeing had orders for 861 Dreamliners valued $144 billion. 2009 First Flight of seven test models was planned for June 2009, and delivery first Dreamliner scheduled for the first quarter of 2010.  The test flight has been delayed. 05/03/2014 Software Development 2
  • 3.
  • 4.
    Because: • Incomplete workon some of the aircraft component supplied by contractors. • September 6, 2008 Boeing assembly-line workers went on strike for 25 days • Problems with the software that controls and monitors the braking system for the aircraft “it’s not that the brakes don’t work, it’s to do the traceability of the software”, said Pat Shanahan, Boeing vice president and 787 general manager. 05/03/2014 Software Development 4
  • 5.
    So: Furthermore, shrewd customershave a built-in paymentpenalty clause for late delivery, which may cost Boeing an additional hundreds of millions of dollars. 05/03/2014 Software Development 5
  • 6.
    Learning Objectives 1. 2. 3. 4. 5. 6. Why docompanies require high-quality software in business systems, industrial process, control systems, and customer products? What potential ethical do software manufacturers face making trade-offs between project schedules, project cost, and software quality? What are the four most common types of software product liability claims? What are the essential component of a software development methodology, and what are be benefit of using such a methodology? How can the CMMI improve an organization’s software development process? What is a safety-critical system, and what special actions are required during its development? 05/03/2014 Software Development 6
  • 7.
    Strategies for engineeringquality software  :’( 05/03/2014 Software Development 7
  • 8.
    Strategies for engineeringquality software • Software quality is the degree to which the attributes of a software product enables it to meet the needs of its users. • A software defect is any error that, if not removed, would cause a system to fail to meet the needs of its users. In April 2003, Sallie Mae, the largest U.S. Student loan company ± 800.000 Borrowers that a software installation error had resulted in a miscalculation of monthly payments on their loans. 05/03/2014 Software Development 8
  • 9.
    Software Quality • • Quality management: focuses of define, measure, and refine the quality of the information systems development process and product its various stages. Deliverables are the items developed during the development process (flowcharts, documentation, software, etc.) 05/03/2014 Software Development 9
  • 10.
    Primary cause ofpoor software quality • • • Many developers do not know how to design quality into software from the very start. The extreme pressure that software companies feel to reduce the time to market for their product. All software designer and programmers make mistakes in defining user requirements and turning them into lines of codes. The Windows Vista operating system took over five years to develop and contains than 50 million lines of code. Even if 99.9 is ready for released to public, there would still be about one bug per 10.000 lines of code. Thus software that is used daily by workers. 05/03/2014 Software Development 10
  • 11.
    The importance ofSoftware Quality A business information systems is a set of interrelated component including hardware, software, databases. Networks, people and procedures that collects and processes data and disseminates the output. Type of business system Captures and records business transactions Decision support system (DSS) 05/03/2014 Software problems may have caused frustations in the past, but mismanaged software can now be fatal to a business, causing it to miss product delivery dates. Incur increased product development cost, and deliver product that have poor quality Software Development 11
  • 12.
    Software Product Liability •Product liability is the liability of manufacturers, sellers, leasers, and others for the injuries caused by defective products. • Strict liability means that the defendant is responsible for injuring another person regardless of negligence or intent. • • • • • Under negligence, a software supplier cannot be held responsible for every product defect that causes customer or third party loss. Responsibility is limited to harmful defects that could have been detected and corrected through “reasonable” software development practices. Warranty assures the buyer that a product meets certain standards of quality. If a product fails to meets its warranty, the customer can sue the seller for breach of warranty. Intentional misrepresentation occurs when a seller misrepresents the quality of a product 05/03/2014 Software Development 12
  • 13.
    Software Development Process •Software Development Methodology – a standard, proven work process that enables system analysts, programmers, project manager, and other make to controlled and orderly progress in developing highquality software • Quality Assurance (QA) – methods within the development cycle designed to guarantee reliable operation of the product. 2 ways that can protect software manufacturers from legal liability. An effective methodology reduces the numbers of error Widely accepted development methods, Negligence on its part is harder to prove 05/03/2014 Software Development 13
  • 14.
    Dynamic Testing Functional testingor behavior testing, Incorrect or missing functionality, Interfaces error, Errors in data structures, Behavior or performances errors, Initialization and termination errors 05/03/2014 Testing based on program code Control flow Execute every statement of program Software Development 14
  • 15.
    Other Types ofSoftware Testing Integration Testing Static testing User Acceptance Testing (UAT) System testing 05/03/2014 Software Development 15
  • 16.
    Capability Maturity ModelIntegration (CMMI) • Carnegie Mellon Institute developed the Capability Maturity Model for Software. • It defines five levels of software development process maturity and identifies the issues most critical to software quality and process improvement. Partial of organization using CMMI: Accenture, Boeing, DynCorp, Federal Aviation Administration, General Dynamic. IBM Global Services, Intel, Samsung, and other 05/03/2014 Software Development 16
  • 17.
    Capability Maturity ModelIntegration (CCMI) Maturity Level Definition Percent of all reporting organizations at this level Not Reported 8.4% Initial Process unpredictable, poorly controlled, and reactive 1.9% Managed Process characterized for project and often reactive 33.3% Defined For the organizational and proactive 33.8% Quantitativ ely managed Process Measured and controlled 4.4% Optimizing Focus on continuous process improvement 18.2% 05/03/2014 Software Development 17
  • 18.
    Development of Safety-Critical Systems Isone whose failure may cause injury or death The Mariner I space probe, which was intended to make a close flyby of the planet venus, as ordered destroyed less than five minutes after launch in july 1962. Faulty software code caused the flight control computer to perform a series of unnecessary course correction signal, which threw the spacecraft dangerous off course. 05/03/2014 Software Development 18
  • 19.
    The key ofsafety-critical systems Project safety engineer Risk Redundancy N-version Programming Reliability Bisi aya carita anu lain haha 05/03/2014 Software Development 19
  • 20.
    Quality Management Standard • • TheInternational Organization for Standardization issued the ISO series of business management standards in 1988. ISO 9000 is a series of formal standards to follow when developing quality information systems. 05/03/2014 Software Development 20
  • 21.
    Quality Management Standard • • • • • Tobe ISO 9000 certified, a company must do three things: – Have written procedures for everything they do. – Follow those procedures. – Prove to an auditor that they have written procedures and that they follow them ISO 9000 is a series of formal standards to follow when developing quality information systems. ISO 9001 – Design, development, production, installation, service ISO 9002 – Production, installation, service ISO 9003 – Final inspection and test ISO 9004 – Quality management and quality systems elements 05/03/2014 Software Development 21
  • 22.
    Failure Mode andEffects Analysis (FMEA) • • Important technique used to develop ISO 9000compliant quality systems by both evaluating reliability and determining the effects of system and equipment failures. The Goal of FMEA is to identify potential design and process failures early in a project. LifeScan is part of Johnson & Johnson and for over 20 years it has developed products for people with diabetes, every day, more than 3 million people depend on its OneTouch Systems 05/03/2014 Software Development 22
  • 23.
    Resource & References Clicksmile icon for detail information  Testing Overview and Black-Box Testing Techniques – Laurie Williams 2006 Testing Overview and White-Box Testing Techniques – Laurie Williams 2006 05/03/2014 Software Development 23