>>
Design for Trustworthy Software (DFTS)
>>
Quality Function Deployment for Software Development (QFD-SW)
>>
Failure Mode and Effects Analysis (FMEA - SW) for Software Development
>>
Robust Software Design Methodology (RSDM)
Design for Trustworthy Software (DFTS)
"Design products not to fail in the field; you will simultaneously reduce defectives in the factory." -
Genichi Taguchi
Software is the most treacherous component of any information system. The other two components, namely
hardware and communications networks by themselves, have attained a far higher level of performance and
reliability over the past fifty years. Microprocessor performance, for example, has increased by a factor of
some 200 million times faster than software during this period. Modern communications networks, on the other
hand, now provide means to move and access colossal volumes of data, images, and voice across an organization
and globally. But it’s the design weaknesses in software for the most part that make information system vulnerable and
unreliable. Even while hardware performance has attained amazing performance levels, the ultimate promise of any
information system depends on the dependability of its software.
Currently, the crucial software quality issue is software dependability, which encompasses various user
requirements including reliability, safety, security, and availability. This is close to our concept of trustworthy
software except that we add and emphasize the capability of meeting customer trust, as well as stated, unstated [add
,] and unanticipated needs. These together constitute the five major challenges of trustworthy software as follows:
1. Reliability: Ability of software to perform under specified conditions.
2. Safety: Freedom from those conditions that can cause death, injury, illness, damage to or loss of access and
control of data, privacy, equipment or property or environmental harm.
3. Security: Resilient to attack, and providing protection of confidentiality, data integrity, and availability of the system.
4. Maintainability: Relative ease with which the software can be modified to correct faults, improve performance, or
adapt to a changed environment.
5. Customer Responsiveness: The capability of the software developer to solicit, interpret and respond to
above customer requirements. It implies possessing corresponding software design capabilities, ability to train
and transfer knowledge, helping with integration with existing systems, providing post-implementation support,
providing upgradeable software and systems, and observing cost and implementation-time requirements of
the customers.
The above constitute the primary aspects of trustworthy software, but are required to varying degrees depending
on the software category and its application. For example, Customer responsiveness is particularly critical element in
enterprise software.
DFTS
PROCESS IN PRACTICE
Software,
compared to other engineered products, is a case of pure design. Software
unreliability is always the result of design faults and human intellectual
failures. It istherefore critical that that’s where thequality issues are
addressed. SCRUM’s Robust Software Development Model (RSDM) recognizes the
design predominance of the development process and addresses quality issues
upstream.
The model is not meant to be used as a tool but as part of a software
development process with supporting management infrastructure, systems and
methodologies consisting of the following key elements:
1. Appropriate infrastructure that provides required leadership
2. A reliable data collection system that’s capable of identifying VOC
3. Deployment of Taguchi Methods to address reliability, cost, and cycle-time
4. Establishing a concurrent coding and testing practice
5. Providing for adequate debugging time
6. Using an N-version programming in case redundant software is required
7. Benchmarking appropriate best such as QFD, TRIZ, and Pugh
8. Using innovative software development tools
BENEFITS
OF ROBUST SOFTWARE DEVELOPMENT MODEL
RSDM
is a management system to deliver trustworthy software. We interchangeably
call it Design for Trustworthy Software (DFTS). It’s a major organizational
intervention with potential for huge benefits for the organization as a whole.
Conceived, planned and executed well, it delivers the following benefits:
1. Improved customer focus and satisfaction
2. Improved software development process
3. Major cost savings across the software life-cycle
4. Improved cycle-time
5. Leadership development through Black Belt and Master Black Belt
6. Improved bottom-line, cash-flow, and growth potential