10.91M
Категория: МенеджментМенеджмент

Исследование программного кода

1.

Кафедра КБ-4 «Автоматизированные системы управления»
Исследование программного кода
Для курса 3 группы УУБВ-01-16
По направлению подготовки
09.03.02 «Информационные системы и технологии»
Москва, 2018
1

2.

Кафедра КБ-4 «Автоматизированные системы управления»
Содержание:
1. Базовые понятия и определения (Лекция 1)…………….4
2. Статический анализ (Лекция 2-3)……….………..……….34
3. Обнаружение нефункциональных ошибок в
последовательных программах (Лекция 3)…………....88
4. Анализ отказоустойчивости программного кода(Лекция
5-6)..……………….………………………..142
Москва, 2018
2

3.

Кафедра КБ-4 «Автоматизированные системы управления»
Кашкин
Евгений
Владимирович
кандидат технических наук,
доцент кафедры «Информатика»,
доцент кафедры КБ-4
«Автоматизированные системы
управления»
[email protected]
Москва, 2018
3

4.

Базовые понятия и определения
Тема №1
«Базовые понятия и определения »
Цели занятия
• Качество ПО;
• Функциональность, надежность, удобство использования,
переносимость, удобство сопровождения, эффективность;
• Задачи обеспечения качества;
• Методы анализа ПО: ручные, динамические, статические,
гибридные;
• Надежность ПО;
• Ошибки в ПО;
Москва, 2018
4

5.

Базовые понятия и определения
5

6.

Базовые понятия и определения
6

7.

Базовые понятия и определения
7

8.

Базовые понятия и определения
8

9.

Базовые понятия и определения
9

10.

Базовые понятия и определения
10

11.

Базовые понятия и определения
11

12.

Базовые понятия и определения
12

13.

Базовые понятия и определения
13

14.

Базовые понятия и определения
14

15.

Базовые понятия и определения
15

16.

Базовые понятия и определения
16

17.

Базовые понятия и определения
17

18.

Базовые понятия и определения
18

19.

Базовые понятия и определения
19

20.

Базовые понятия и определения
20

21.

Базовые понятия и определения
21

22.

Базовые понятия и определения
22

23.

Базовые понятия и определения
23

24.

Базовые понятия и определения
24

25.

Базовые понятия и определения
25

26.

Базовые понятия и определения
26

27.

Базовые понятия и определения
27

28.

Базовые понятия и определения
28

29.

Базовые понятия и определения
29

30.

Базовые понятия и определения
30

31.

Базовые понятия и определения
31

32.

Базовые понятия и определения
Выводы по теме 1
В рамках данной темы были получены
знания в области надежности ПО.
Рассмотрены составляющие качества ПО, а
именно функциональность, надежность,
удобство использования, переносимость,
удобство сопровождения, эффективность.
Выявлены методы анализа ПО: ручной,
статический, динамический.
32

33.

Базовые понятия и определения
Вопросы для
самостоятельного изучения:
1. Требования к надежности программного обеспечения№
2. Эффективность программного обеспечения№
3. Причины ненадежности исполняемого кода.
33

34.

Статический анализ
Тема №2
«Статический анализ»
Цели занятия
Основные задачи и принципы статического анализа;
Классификация программных ошибок;
Виды статического анализа;
RD, AE, VBE, LV, CP, UD – анализ кода;
Алгоритмы анализа потока данных;
Эффективность статического анализа;
34

35.

Статический анализ
35

36.

Статический анализ
36

37.

Статический анализ
37

38.

Статический анализ
38

39.

Статический анализ
39

40.

Статический анализ
40

41.

Статический анализ
41

42.

Статический анализ
42

43.

Статический анализ
43

44.

Статический анализ
44

45.

Статический анализ
45

46.

Статический анализ
46

47.

Статический анализ
47

48.

Статический анализ
48

49.

Статический анализ
49

50.

Статический анализ
50

51.

Статический анализ
51

52.

Статический анализ
52

53.

Статический анализ
53

54.

Статический анализ
54

55.

Статический анализ
55

56.

Статический анализ
56

57.

Статический анализ
57

58.

Статический анализ
58

59.

Статический анализ
59

60.

Статический анализ
60

61.

Статический анализ
61

62.

Статический анализ
62

63.

Статический анализ
63

64.

Статический анализ
64

65.

Статический анализ
65

66.

Статический анализ
66

67.

Статический анализ
67

68.

Статический анализ
68

69.

Статический анализ
69

70.

Статический анализ
70

71.

Статический анализ
71

72.

Статический анализ
72

73.

Статический анализ
73

74.

Статический анализ
74

75.

Статический анализ
75

76.

Статический анализ
76

77.

Статический анализ
77

78.

Статический анализ
78

79.

Статический анализ
79

80.

Статический анализ
80

81.

Статический анализ
81

82.

Статический анализ
82

83.

Статический анализ
83

84.

Статический анализ
84

85.

Статический анализ
85

86.

Статический анализ
Выводы по теме 2
В рамках данной темы были получены
знания в области статического анализа
программного кода. Рассмотрены вопросы
различных подходов при анализе
последовательного кода. Даны примеры
решения системы дискретных уравнений в
рамках RD-анализа
86

87.

Статический анализ
Вопросы для
самостоятельного изучения:
1. Обнаружение функциональных и нефункциональных
ошибок;
2. Теория решеток;
3. Алгоритмы вычисления LFP;
4. Определение недостижимых переходов.
87

88.

Обнаружение нефункциональных ошибок в последовательных
программах
Тема №3
«Обнаружение нефункциональных ошибок в последовательных
программах»
Классификация программных дефектов (RES, LEAK, BUF, INI, IO);
Абстрактное синтаксическое дерево;
Абстрактный семантический граф;
Граф зависимостей по данным;
Граф потока управления;
Анализ программ на основе состояний;
Интервальный анализ;
Анализ указателей;
Ресурсный анализ.
88

89.

Обнаружение нефункциональных ошибок в последовательных
программах
89

90.

Обнаружение нефункциональных ошибок в последовательных
программах
90

91.

Обнаружение нефункциональных ошибок в последовательных
программах
91

92.

Обнаружение нефункциональных ошибок в последовательных
программах
92

93.

Обнаружение нефункциональных ошибок в последовательных
программах
93

94.

Обнаружение нефункциональных ошибок в последовательных
программах
94

95.

Обнаружение нефункциональных ошибок в последовательных
программах
95

96.

Обнаружение нефункциональных ошибок в последовательных
программах
96

97.

Обнаружение нефункциональных ошибок в последовательных
программах
97

98.

Обнаружение нефункциональных ошибок в последовательных
программах
98

99.

Обнаружение нефункциональных ошибок в последовательных
программах
99

100.

Обнаружение нефункциональных ошибок в последовательных
программах
10

101.

Обнаружение нефункциональных ошибок в последовательных
программах
10

102.

Обнаружение нефункциональных ошибок в последовательных
программах
10

103.

Обнаружение нефункциональных ошибок в последовательных
программах
10

104.

Обнаружение нефункциональных ошибок в последовательных
программах
10

105.

Обнаружение нефункциональных ошибок в последовательных
программах
10

106.

Обнаружение нефункциональных ошибок в последовательных
программах
10

107.

Обнаружение нефункциональных ошибок в последовательных
программах
10

108.

Обнаружение нефункциональных ошибок в последовательных
программах
10

109.

Обнаружение нефункциональных ошибок в последовательных
программах
10

110.

Обнаружение нефункциональных ошибок в последовательных
программах
11

111.

Обнаружение нефункциональных ошибок в последовательных
программах
11

112.

Обнаружение нефункциональных ошибок в последовательных
программах
11

113.

Обнаружение нефункциональных ошибок в последовательных
программах
11

114.

Обнаружение нефункциональных ошибок в последовательных
программах
11

115.

Обнаружение нефункциональных ошибок в последовательных
программах
11

116.

Обнаружение нефункциональных ошибок в последовательных
программах
11

117.

Обнаружение нефункциональных ошибок в последовательных
программах
11

118.

Обнаружение нефункциональных ошибок в последовательных
программах
11

119.

Обнаружение нефункциональных ошибок в последовательных
программах
11

120.

Обнаружение нефункциональных ошибок в последовательных
программах
12

121.

Обнаружение нефункциональных ошибок в последовательных
программах
12

122.

Обнаружение нефункциональных ошибок в последовательных
программах
12

123.

Обнаружение нефункциональных ошибок в последовательных
программах
12

124.

Обнаружение нефункциональных ошибок в последовательных
программах
12

125.

Обнаружение нефункциональных ошибок в последовательных
программах
12

126.

Обнаружение нефункциональных ошибок в последовательных
программах
12

127.

Обнаружение нефункциональных ошибок в последовательных
программах
12

128.

Обнаружение нефункциональных ошибок в последовательных
программах
12

129.

Обнаружение нефункциональных ошибок в последовательных
программах
12

130.

Обнаружение нефункциональных ошибок в последовательных
программах
13

131.

Обнаружение нефункциональных ошибок в последовательных
программах
13

132.

Обнаружение нефункциональных ошибок в последовательных
программах
13

133.

Обнаружение нефункциональных ошибок в последовательных
программах
13

134.

Обнаружение нефункциональных ошибок в последовательных
программах
13

135.

Обнаружение нефункциональных ошибок в последовательных
программах
13

136.

Обнаружение нефункциональных ошибок в последовательных
программах
13

137.

Обнаружение нефункциональных ошибок в последовательных
программах
13

138.

Обнаружение нефункциональных ошибок в последовательных
программах
13

139.

Обнаружение нефункциональных ошибок в последовательных
программах
13

140.

Обнаружение нефункциональных ошибок в последовательных
программах
Выводы по теме 3
В рамках данной темы были получены
знания в области обнаружения
программных дефектов различными
методами. Приведены примеры работы с
абстрактным синтаксическим деревом,
абстрактным семантическим графом и др.
Рассмотрены ключевые вопросы анализа
программ на основе состояний.
14

141.

Обнаружение нефункциональных ошибок в последовательных
программах
Вопросы для
самостоятельного изучения:
1.
2.
3.
4.
Программные средства для статического анализа;
Способы снижения ресурсоемкости;
Использование абстрактной интерпретации;
Анализ программ на основе шаблонов.
14

142.

Анализ отказоустойчивости программного кода
Тема №4
«Анализ отказоустойчивости программного кода»
Показатели надежности;
Жизненный цикл программной ошибки;
Модель Бернулли;
Модель Миллса;
Модель Шумана;
Модель Джелинского-Моранды;
Ошибки на путях выполнения программы.
14

143.

Анализ отказоустойчивости программного кода
14

144.

Анализ отказоустойчивости программного кода
14

145.

Анализ отказоустойчивости программного кода
14

146.

Анализ отказоустойчивости программного кода
14

147.

Анализ отказоустойчивости программного кода
14

148.

Анализ отказоустойчивости программного кода
14

149.

Анализ отказоустойчивости программного кода
14

150.

Анализ отказоустойчивости программного кода
15

151.

Анализ отказоустойчивости программного кода
15

152.

Анализ отказоустойчивости программного кода
15

153.

Анализ отказоустойчивости программного кода
15

154.

Анализ отказоустойчивости программного кода
15

155.

Анализ отказоустойчивости программного кода
15

156.

Анализ отказоустойчивости программного кода
15

157.

Анализ отказоустойчивости программного кода
15

158.

Анализ отказоустойчивости программного кода
15

159.

Анализ отказоустойчивости программного кода
15

160.

Анализ отказоустойчивости программного кода
16

161.

Анализ отказоустойчивости программного кода
16

162.

Анализ отказоустойчивости программного кода
16

163.

Анализ отказоустойчивости программного кода
16

164.

Анализ отказоустойчивости программного кода
16

165.

Анализ отказоустойчивости программного кода
16

166.

Анализ отказоустойчивости программного кода
16

167.

Анализ отказоустойчивости программного кода
16

168.

Анализ отказоустойчивости программного кода
16

169.

Анализ отказоустойчивости программного кода
16

170.

Анализ отказоустойчивости программного кода
17

171.

Анализ отказоустойчивости программного кода
17

172.

Анализ отказоустойчивости программного кода
17

173.

Анализ отказоустойчивости программного кода
17

174.

Анализ отказоустойчивости программного кода
17

175.

Анализ отказоустойчивости программного кода
17

176.

Анализ отказоустойчивости программного кода
17

177.

Анализ отказоустойчивости программного кода
17

178.

Анализ отказоустойчивости программного кода
17

179.

Анализ отказоустойчивости программного кода
17

180.

Анализ отказоустойчивости программного кода
18

181.

Анализ отказоустойчивости программного кода
18

182.

Анализ отказоустойчивости программного кода
18

183.

Анализ отказоустойчивости программного кода
18

184.

Анализ отказоустойчивости программного кода
18

185.

Анализ отказоустойчивости программного кода
18

186.

Анализ отказоустойчивости программного кода
18

187.

Анализ отказоустойчивости программного кода
Выводы по теме 4
В рамках данной темы были получены знания в
области оценки показателей надежности работы
программного кода. Рассмотрен жизненный цикл
программной ошибки и особенности каждого этапа
этого жизненного цикла. Даны базовые знания в
области различный моделей оценки надежности
программного кода.
187

188.

Анализ отказоустойчивости программного кода
Вопросы для
самостоятельного изучения:
1.
2.
3.
4.
5.
6.
Методы оценки на основе моделей сложности;
Архитектурные методы анализа;
Свойства динамических методов анализа кода;
Цепи Маркова;
Римская модель;
Эмпирические методы динамического анализа кода.
18

189.

Кафедра КБ-4 «Автоматизированные системы управления»
189
English     Русский Правила