# Presentation: 705739

**Notes:**
Controlled Software Management Training Appendix 

## Software Engineering(Management)

- Software engineering (management) is:
- “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”.
- Source:  NQA-1-2000

## Therac 25

**06/03/85 – **Marietta, Georgia, Kennestone Regional Oncology Center. Overdose 1
**07/26/85** - Hamilton, Ontario, Canada.  Overdose 2	          _Patient dies November 1985_
**12/85 - **Yakima Valley Memorial Hospital, Yakima, Washington. Overdose 3
**03/21/86 - **East Texas Cancer Center, Tyler, Texas. _Patient dies August 1986_. Overdose 4
**04/11/86 - **East Texas Cancer Center, Tyler, Texas. _Patient dies May 1986_. Overdose 5
**01/17/87 - **Yakima Valley Memorial Hospital**.****	****	**** **_Patient dies April 1987._ Overdose 6

## Patriot Missile System

- Designed during Cold War (mobile battery)
- Mission: defend Europe against Soviet high-altitude MACH 2 aircraft from mobile battery
- Feb. 11, 1991, Israel Army detected timing error
- Timing error ~ 0.003 seconds/hour
- US Army notified units in the field that “very long run times could affect targeting accuracy”
- Missile Battery 2 down for repair
- Missile Battery 1 operates continuously for >4 days
- Feb. 25, 1991, SCUD hits US barracks: kills 28
- Feb. 28, 1991, software fix arrive at Dhran base.

## Ariane 5

- $ 7 billion development effort
- Design based on Ariane 4 success
- Mission failure 39 seconds after launch
- Inertial guidance system software failure
- Horizontal velocity – 64 bit number
- Stored in 16 bit data register
- Backup computer – identical software

## Exempt Spreadsheets

- Spreadsheets that are wholly incorporated into technical reports, calc-notes or other documentation are exempt from 309.
- Such calculations are treated and considered to be manual calculations because the assumptions, formulas, inputs and outputs are verified as part of the calculation package technical review.

## Roles & Responsibilities

## Slide 11

## Slide 12

## Appendix A

## Slide 14

## Slide 15

## Slide 17

## Software Baseline

*configuration item* - a collection of hardware or software elements treated as a unit for the purpose of configuration control
*baseline* - software that has been formally reviewed and agreed upon, and that can only be changed through formal change control procedures

## Slide 19

## COTS Evaluation

- ALGOR is a Finite Element Analysis (FEA) acquired code, which is widely used to perform mechanical stress, mechanical vibration, heat transfer, and electrical analysis for engineering applications.
- The ALGOR package uses the Finite Element Analysis method as described in “ALGOR User’s Guide” (dated 12/20/02). It performs consistently and accurately based on a comparison with classical analytical samples selected from textbooks. 151 examples in the “ALGOR Accuracy Verification Examples Manual” (Part Number 709.501, Rev.. 1.08, April 05, 2002) present more details and show comparisons with ALGOR estimated results. Based on our review the ALGOR package is an acceptable analysis tool to perform mechanical stress analysis, mechanical vibration analysis and heat transfer analysis with linear or nonlinear materials, or electrostatic analysis with linear materials only.

## Acceptance for New Scope

- Selected ALGOR applications:
- _Linear static structural stress analysis_ - Accuracy Verification Example (AVE) 007 for Cantilever Beam analysis with Nodal Force.
- _Heat transfer analysis_  - AVE 062 for Steady-State Heat Transfer Analysis of a Fin Immersed in a Cooling Fluid.
- _Seismic linear response spectrum analysis_ - AVE 071 for Spectrum analysis with a Specified Maximum Ground Acceleration.

## Slide 22

## Sample SRS

- Correctly performs A1/A2 classification functions for all 379 radionuclides listed in 49 CFR 173.435.
- Correctly performs RQ classification functions for all 379 radionuclides listed in 49 CFR 173.435.
- Perform RQ classification functions for 392 of the 757 radionuclides listed in 49 CFR 172.101.
- Correctly performs PE-Ci classification functions for all 13 radionuclides listed in DOE-WIPP-063 Rev. 7.
- Correctly performs FGE classification functions for all 17 radionuclides listed in TRUPACT-II SARP Rev. 18.
- Correctly performs TRU classification functions for all 19 radionuclides listed in WMTS-ECAL-028.

## Critical Characteristics

## Shield Configuration

- Position 2

- Position 3

- Position 1

**Notes:**
Three positions for the turntable:
Electron mode
Photon mode
Field-light position

Raw beam is dangerous and must be controlled by magnets in electron mode; ion chamber measures dose
High energy required for photon mode which must be attenuated by beam flattener
Mirror in place without ion chamber for field-light position

## Slide 27

## Theoretical Basis

- The Theoretical Basis is intended to provide the user with background information describing the mathematical model on which the software design is based.
- The theoretical basis defines the physical and mathematical description of the algorithms to be used in the generation of data products and assumptions, constraints, and compromises which comprise the basis for the design.

## Mathematical Model

- A **mathematical **_[model](http://encyclopedia.laborlawtalk.com/Model)_ is the use of mathematical language to describe the behavior of a _[system](http://encyclopedia.laborlawtalk.com/System)__. _
- A mathematical model usually describes a system by a set of variables and a set of equations that establish relationships between the variables.

**Notes:**
Mathematical models can be classified in several ways, some of which are described below. 
Linear vs. Nonlinear: If the objective functions and constraints are represented entirely by linear equations, then the model is known as a linear model. If one or more of the objective functions or constraints are represented with a nonlinear equation, then the model is known as a nonlinear model. 
Deterministic vs. Probabilistic (Stochastic): A deterministic model performs the same way for a given set of initial conditions, while in a stochastic model, randomness is present, even when given an identical set of initial conditions. 
Static vs. Dynamic: A static model does not account for the element of time, while a dynamic model does. Dynamic models typically are represented with difference equations or differential equations. 
Lumped Parameters vs. Distributed Parameters: If the model is homogeneous (consistent state throughout the entire system) the parameters are lumped. If the model is heterogenous (varying state within the system), then the parameters are distributed. Distributed parameters are typically represented with partial differential equations.

## Control Flow

- The sequence of execution of instructions in a program. This is determined at run time by the input data and by the _[control structures](http://dict.die.net/control%20structures/)__ (e.g. "if" statements) used in the program._

## Data Flow

- Data in motion, moving from one place in a system to another.
- Depicts and documents the flow of information between external entities, processes and data stores
- A model for programming in which instructions or operators execute only when all inputs are available.

## Control Logic

- An abstract representation of all possible sequences of events in a program's execution.

## Data Structures

- A data *type* is a well-defined collection of data with a well-defined set of operations on it.
- A data *structure* is an actual implementation of a particular abstract data type.

## Slide 35

## Slide 37

## A program takes three input values and determines what type of triangle they represent (Isosceles, Scalene or Equilateral)
Develop a Test Plan for this program
Equilateral:  a = b = c
Isosceles:    a = b <> c
Scalene:    a <> b <> c 

- Develop a Test Plan for this program
- Equilateral:  a = b = c
- Isosceles:    a = b <> c
- Scalene:    a <> b <> c

- Case Study

## Test Plan

- Do you have the following test cases?
- A scalene triangle.
- An equilateral triangle.
- An isosceles triangle.
- Isosceles triangle with sides A=B, B=C, A=C.
- One side equals zero.
- All sides equal zero.
- One side is negative.
- Triangle with sides A+B=C, B+C=A, C+A=B.
- One side is non-integer.
- Wrong number of inputs.

## Acceptance Test Report

- Example

## Slide 43

## Slide 45

## Slide 46