Страница 416

Я знаю C#, C Sharp

Главная
Страница 1
Страница 2
Страница 3
Страница 4
Страница 5
Страница 6
Страница 7
Страница 8
Страница 9
Страница 10
Страница 11
Страница 12
Страница 13
Страница 14
Страница 15
Страница 16
Страница 17
Страница 18
Страница 19
Страница 20
Страница 21
Страница 22
Страница 23
Страница 24
Страница 25
Страница 26
Страница 27
Страница 28
Страница 29
Страница 30
Страница 31
Страница 32
Страница 33
Страница 34
Страница 35
Страница 36
Страница 37
Страница 38
Страница 39
Страница 40
Страница 41
Страница 42
Страница 43
Страница 44
Страница 45
Страница 46
Страница 47
Страница 48
Страница 49
Страница 50
Страница 51
Страница 52
Страница 53
Страница 54
Страница 55
Страница 56
Страница 57
Страница 58
Страница 59
Страница 60
Страница 61
Страница 62
Страница 63
Страница 64
Страница 65
Страница 66
Страница 67
Страница 68
Страница 69
Страница 70
Страница 71
Страница 72
Страница 73
Страница 74
Страница 75
Страница 76
Страница 77
Страница 78
Страница 79
Страница 80
Страница 81
Страница 82
Страница 83
Страница 84
Страница 85
Страница 86
Страница 87
Страница 88
Страница 89
Страница 90
Страница 91
Страница 92
Страница 93
Страница 94
Страница 95
Страница 96
Страница 97
Страница 98
Страница 99
Страница 100
Страница 101
Страница 102
Страница 103
Страница 104
Страница 105
Страница 106
Страница 107
Страница 108
Страница 109
Страница 110
Страница 111
Страница 112
Страница 113
Страница 114
Страница 115
Страница 116
Страница 117
Страница 118
Страница 119
Страница 120
Страница 121
Страница 122
Страница 123
Страница 124
Страница 125
Страница 126
Страница 127
Страница 128
Страница 129
Страница 130
Страница 131
Страница 132
Страница 133
Страница 134
Страница 135
Страница 136
Страница 137
Страница 138
Страница 139
Страница 140
Страница 141
Страница 142
Страница 143
Страница 144
Страница 145
Страница 146
Страница 147
Страница 148
Страница 149
Страница 150
Страница 151
Страница 152
Страница 153
Страница 154
Страница 155
Страница 156
Страница 157
Страница 158
Страница 159
Страница 160
Страница 161
Страница 162
Страница 163
Страница 164
Страница 165
Страница 166
Страница 167
Страница 168
Страница 169
Страница 170
Страница 171
Страница 172
Страница 173
Страница 174
Страница 175
Страница 176
Страница 177
Страница 178
Страница 179
Страница 180
Страница 181
Страница 182
Страница 183
Страница 184
Страница 185
Страница 186
Страница 187
Страница 188
Страница 189
Страница 190
Страница 191
Страница 192
Страница 193
Страница 194
Страница 195
Страница 196
Страница 197
Страница 198
Страница 199
Страница 200
Страница 201
Страница 202
Страница 203
Страница 204
Страница 205
Страница 206
Страница 207
Страница 208
Страница 209
Страница 210
Страница 211
Страница 212
Страница 213
Страница 214
Страница 215
Страница 216
Страница 217
Страница 218
Страница 219
Страница 220
Страница 221
Страница 222
Страница 223
Страница 224
Страница 225
Страница 226
Страница 227
Страница 228
Страница 229
Страница 230
Страница 231
Страница 232
Страница 233
Страница 234
Страница 235
Страница 236
Страница 237
Страница 238
Страница 239
Страница 240
Страница 241
Страница 242
Страница 243
Страница 244
Страница 245
Страница 246
Страница 247
Страница 248
Страница 249
Страница 250
Страница 251
Страница 252
Страница 253
Страница 254
Страница 255
Страница 256
Страница 257
Страница 258
Страница 259
Страница 260
Страница 261
Страница 262
Страница 263
Страница 264
Страница 265
Страница 266
Страница 267
Страница 268
Страница 269
Страница 270
Страница 271
Страница 272
Страница 273
Страница 274
Страница 275
Страница 276
Страница 277
Страница 278
Страница 279
Страница 280
Страница 281
Страница 282
Страница 283
Страница 284
Страница 285
Страница 286
Страница 287
Страница 288
Страница 289
Страница 290
Страница 291
Страница 292
Страница 293
Страница 294
Страница 295
Страница 296
Страница 297
Страница 298
Страница 299
Страница 300
Страница 301
Страница 302
Страница 303
Страница 304
Страница 305
Страница 306
Страница 307
Страница 308
Страница 309
Страница 310
Страница 311
Страница 312
Страница 313
Страница 314
Страница 315
Страница 316
Страница 317
Страница 318
Страница 319
Страница 320
Страница 321
Страница 322
Страница 323
Страница 324
Страница 325
Страница 326
Страница 327
Страница 328
Страница 329
Страница 330
Страница 331
Страница 332
Страница 333
Страница 334
Страница 335
Страница 336
Страница 337
Страница 338
Страница 339
Страница 340
Страница 341
Страница 342
Страница 343
Страница 344
Страница 345
Страница 346
Страница 347
Страница 348
Страница 349
Страница 350
Страница 351
Страница 352
Страница 353
Страница 354
Страница 355
Страница 356
Страница 357
Страница 358
Страница 359
Страница 360
Страница 361
Страница 362
Страница 363
Страница 364
Страница 365
Страница 366
Страница 367
Страница 368
Страница 369
Страница 370
Страница 371
Страница 372
Страница 373
Страница 374
Страница 375
Страница 376
Страница 377
Страница 378
Страница 379
Страница 380
Страница 381
Страница 382
Страница 383
Страница 384
Страница 385
Страница 386
Страница 387
Страница 388
Страница 389
Страница 390
Страница 391
Страница 392
Страница 393
Страница 394
Страница 395
Страница 396
Страница 397
Страница 398
Страница 399
Страница 400
Страница 401
Страница 402
Страница 403
Страница 404
Страница 405
Страница 406
Страница 407
Страница 408
Страница 409
Страница 410
Страница 411
Страница 412
Страница 413
Страница 414
Страница 415
Страница 416
Страница 417
Страница 418
Страница 419
Страница 420
Страница 421
Страница 422
Страница 423
Страница 424
Страница 425
Страница 426
Страница 427
Страница 428
Страница 429
Страница 430
Страница 431
Страница 432
Страница 433
Страница 434
Страница 435
Страница 436
Страница 437
Страница 438
Страница 439
Страница 440
Страница 441
Страница 442
Страница 443
Страница 444
Страница 445
Страница 446
Страница 447
Страница 448
Страница 449
Страница 450
Страница 451
Страница 452
Страница 453
Страница 454
Страница 455
Страница 456
Страница 457
Страница 458
Страница 459
Страница 460
Страница 461
Страница 462
Страница 463
Страница 464
Страница 465
Страница 466
Страница 467
Страница 468
Страница 469
Страница 470
Страница 471
Страница 472
Страница 473
Страница 474
Страница 475
Страница 476
Страница 477
Страница 478
Страница 479
Страница 480
Страница 481
Страница 482
Страница 483
Страница 484
Страница 485
Страница 486
Страница 487
Страница 488
Страница 489
Страница 490
Страница 491
Страница 492
Страница 493
Страница 494
Страница 495
Страница 496
Страница 497
Страница 498
Страница 499
Страница 500
Страница 501
Страница 502
Страница 503
Страница 504
Страница 505
Страница 506
Страница 507
Страница 508








Гостевая книга

Форум

Скачать учебник
Предыдущая страница
Следующая страница

Для повышения надежности нужно уменьшить сложность системы, и главное в этом процессе - это повторное использование. В идеале большая часть системы должна быть собрана из уже готовых компонентов. Объектная технология проектирования вносит свой вклад в повышение надежности кода. Наследование и универсализация позволяют, не изменяя уже существующие классы, создать новые классы, новые типы данных, придающие проектируемой системе новые свойства при минимальных добавлениях нового кода. Статический контроль типов позволяет выявить многие ошибки еще на этапе компиляции. Динамическое связывание и полиморфизм позволяют автоматически включать объекты классов-потомков в уже существующие схемы работы - методы родителя могут вызывать методы потомков, ничего не зная о появлении этих новых потомков. Автоматическая сборка мусора позволяет снять с разработчика обязанности управления освобождением памяти и предотвратить появление крайне неприятных и опасных ошибок, связанных с некорректным удалением объектов.

Крайне важную роль в создании надежного кода играют спецификации методов класса, класса в целом, системы классов. Спецификации являются частью документации, встроенной в проект, и вообще важной его частью. Их существование облегчает не только создание корректного кода, соответствующего спецификации, но и создание системы тестов, проверяющих корректность кода. Нужно сказать, что существуют специальные инструментальные средства, поддерживающие автоматическое создание тестов на основе спецификаций. Незаменима роль спецификаций на этапе сопровождения и повторного использования компонентов. Невозможно повторно использовать компонент, если у него нет ясной и полной спецификации.

Искусство отладки

Нужно стараться создавать надежный код. Но без отладки пока обойтись невозможно. Роль тестеров в современном процессе разработки ПО велика.

Отладка - это некоторый детективный процесс. Программа, в которую внесены изменения, подозревается в том, что она работает некорректно. Презумпция невиновности здесь не применима. Если удается предъявить тест, на котором программа дает неверный результат, то доказано, что подозрения верны. Втайне мы всегда надеемся, что программа работает правильно. Но цель тестирования другая - попытаться опровергнуть это предположение. Отладка может доказать некорректность программы, но она не может доказать ее правильность. Отладка не гарантирует корректности программы, даже если все тесты пройдены успешно. Искусное тестирование создает высокую степень уверенности в корректности программы.

Часть ошибок программы ловится автоматически еще на этапе компиляции. Сюда относятся все синтаксические ошибки, ошибки несоответствия типов и некоторые другие. Это простые ошибки и их исправление, как правило, не вызывает трудностей. В отладке нуждается синтаксически корректная программа, результаты вычислений которой получены, но не соответствуют требуемым спецификациям. Чаще всего еще не отлаженная программа на одних исходных данных работает правильно, на других - дает ошибочный результат. Искусство отладки состоит в том, чтобы обнаружить все ситуации, в которых работа программы приводит к ошибочным вычислениям.

Как и во всякой детективной деятельности, в ходе отладки необходим сбор улик, для чего применяется две группы средств. Первая позволяет контролировать ход вычислительного процесса: порядок следования операторов в методах, порядок вызова самих методов, условия окончания циклов, правильность переходов. Вторая отслеживает изменение состояния вычислительного процесса (значения свойств объектов) в процессе выполнения.

Есть и другая классификация. Средства, используемые при отладке, можно разделить на инструментарий, предоставляемый средой разработки Visual Studio .Net, и программные средства, предоставляемые языком и специальными классами библиотеки FCL. Начнем рассмотрение с программных средств.

Отладочная печать и условная компиляция

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

Хотелось бы иметь легкий механизм управления отладочными методами, позволяющий включать при необходимости те или иные инструменты. Для этого можно воспользоваться механизмом условной компиляции, встроенным в язык C#. Этот механизм состоит из двух частей. К проекту, точнее, к конфигурации проекта можно добавить специальные константы условной компиляции

Предыдущая страница
Следующая страница
Hosted by uCoz