Engineering staff with a background in evaluating the reliability of systems that combine hardware and software components, and anyone involved in evaluating software products.
This course will provide participants a solid understanding of software reliability engineering techniques enabling them to evaluate the effectiveness of reliability techniques when applied to other systems. Drawing upon industry standards and best practices the course is intended to provide engineering staff with a solid understanding of the software development approaches used by various vendors. Participants will learn how to evaluate software reliability metrics to determine the inherent risks within the software. Through group discussions and examples, participants will gain insight into the importance of integrating software reliability practices throughout the software development life cycle.
Day One
Part 1: Overview
- Course objectives reviewed
- Delivery format
- System Reliability Engineering (SRE) Overview: Key terminology
Part 2 – References
- Sources of information on SRE
- CMMI/SEI/IEEE
- ITIL
Part 3 – SRE Terminology
- Definition of terms including, but not limited to, errors, faults, failures, time, operational profile
- Review interrelationship between aspects of SRE
Part 4 – Software Development Life Cycle (SDLC)
- Typical SDLC models including waterfall, iterative, agile, prototyping
- Relationship between SRE and SDLC models
- Comparison of models from an SRE perspective
- Integration of SRE best practices into SDLC (e.g. inspections versus end of cycle testing)
- Change control and impact of changes on reliability
- Code control and Configuration management impact on reliability
- Requirements management and impact on reliability
Day Two
Part 5 – Software Reliability
- Software Reliability models including predictive and assessment
- Fault Management including fault prevention, fault removal, fault tolerance, fault forecasting.
- Use of fault trees to identify failures
Part 6 – Software Reliability Costs
- Review of cost impacts of SRE failure
- Review of cost components for introducing SRE
- Comparison of costs versus benefits of SRE
Part 7 – Impact of Operational Profile on SDLC and SRE
- Detailed definition of Operational Profile including examples
- Affect of Operational Profile on SRE approach
Part 8 – Metrics
- Measurement based reliability
- Measurement techniques
- Impact of software complexity on reliability
Day Three
Part 9 – System Reliability
- Combining multiple components into a single software system reliability model
- Combining hardware and software systems
Part 10 – Evaluating System Risk
- Using software reliability to assess system risk
- Risk management approach and assignment to project
Part 11 – Best Practices for introducing SRE
- Benefits and approaches to using SRE
- Application to existing projects
- Incremental approach to introducing SRE
Part 12 – Evaluating the effectiveness of SRE
- Reviewing software projects for evidence of SRE
- Reviewing SRE Metrics
- Identifying SRE discrepancies
Part 13 – Summary/Course Conclusion
- Summary of key elements of SRE
- Review of cost impacts of SRE
- Relationship between SDLC and SRE
Upon completion of this course, students will:
- Understand the concepts, activities and outputs of a software reliability program and the terminology used.
- Understand the impact of the software development process on software reliability and the benefits of using software reliability engineering approaches.
- Understand the costs associated with an established software reliability program in order to determine the applicability of software reliability techniques to real time operational software systems.
- Ability to assess the types of software life cycle being used by vendors and how software quality concepts are integrated.