Главная » Просмотр файлов » Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения

Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (1015641), страница 16

Файл №1015641 Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения (Калайда В.Т., Романенко В.В. Технология разработки программного обеспечения) 16 страницаКалайда В.Т., Романенко В.В. Технология разработки программного обеспечения (1015641) страница 162017-06-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 16)

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

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

В течение нескольких минут целаяобласть проекта может быть полностью исследована, и любыепроблемы станут очевидными. Как упоминалось выше, многиеважные проблемы, возникавшие во время обзоров блок-схем,были решены в результате многократных безуспешных попыток решить вопросы, которые на первый взгляд казались «тривиальными».Время и место проведения инспекции должны быть спланированы так, чтобы избежать любых прерываний инспекционного заседания. Его оптимальная продолжительность, по-видимому, лежит в пределах от 90 до 120 мин.

Так как это заседание является экспериментом, требующим умственного напряжения, увеличение его продолжительности ведет к снижению продуктивности. Большинство инспекций происходит при скоро-103сти, равной приблизительно 150 операторам в час. При этомподразумевается, что большие программы должны рассматриваться за несколько инспекций, каждая из которых может бытьсвязана с одним или несколькими модулями или подпрограммами.Для того чтобы инспекция была эффективной, должныбыть установлены соответствующие отношения.

Если программист воспринимает инспекцию как акт, направленный личнопротив него, и, следовательно, занимает оборонительную позицию, процесс инспектирования не будет эффективным. Программист должен подходить к нему с менее эгоистической позиции; он должен рассматривать инспекцию в позитивном иконструктивном свете. Объективно инспекция является процессом нахождения ошибок в программе и, таким образом, улучшает качество его работы. По этой причине, как правило, рекомендуется результаты инспекции считать конфиденциальнымиматериалами, доступными только участникам заседания. Вчастности, использование результатов инспекции руководствомможет нанести ущерб целям этого процесса.Процесс инспектирования, в дополнение к своему основному назначению, заключающемуся в нахождении ошибок, выполняет еще ряд полезных функций. Кроме того, что результаты инспекции позволяют программисту увидеть сделанные имошибки и способствуют его обучению на собственных ошибках, он обычно получает возможность оценить свой стиль программирования и выбор алгоритмов и методов тестирования.Остальные участники также приобретают опыт, рассматриваяошибки и стиль программирования других программистов.Наконец, инспекция является способом раннего выявления наиболее склонных к ошибкам частей программы, позволяющим сконцентрировать внимание на этих частях в процессевыполнения тестирования на ЭВМ (один из принципов тестирования п.

6.2).6.3.3 Список вопросов для выявления ошибок приинспекцииВажной частью процесса инспектирования является проверка программы на наличие общих ошибок с помощью списка104вопросов для выявления ошибок. Концентрация внимания впредлагаемом списке на рассмотрении стиля, а не ошибок (вопросы типа «Являются ли комментарии точными и информативными?» и «Располагаются ли операторы THEN/ELSE иDO/END по одной вертикали друг под другом?») представляется неудачной. Также неудачным представляется и наличиенеопределенности в списке, уменьшающее его полезность (вопросы типа «Соответствует ли текст программы требованиям,выдвигаемым при проектировании?»).

Список, приведенный вданном разделе, был составлен после многолетнего изученияошибок программного обеспечения. В значительной мере он является независимым от языка; это означает, что большинствоошибок встречается в любом языке программирования.6.3.3.1 Ошибки обращения к данным1. Существуют ли обращения к переменным, значения которым не присвоены или не инициализированы? Наличие переменных с не установленными значениями — наиболее частовстречающаяся программная ошибка, она возникает при различных обстоятельствах.

Для каждого обращения к единице данных (например, к переменной, элементу массива, полю в структуре) попытайтесь неформально «доказать», что ей присвоенозначение в проверяемой точке.2. Не выходит ли значение каждого из индексов за границы, определенные для соответствующего измерения при всехобращениях к массиву?3.

Принимает ли каждый индекс целые значения при всехобращениях к массиву? Нецелые индексы не обязательно являются ошибкой для всех языков программирования, но представляют практическую опасность.4. Для всех обращений с помощью указателей или переменных-ссылок память, к которой производится обращение,уже распределена? Наличие переменных-ссылок представляетсобой ошибку типа «подвешенного обращения». Она возникаетв ситуациях, когда время жизни указателя больше, чем времяжизни памяти, к которой производится обращение.

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

Если одна и та же область памяти имеет несколькопсевдонимов (имен) с различными атрибутами, то имеют лизначения данных в этой области корректные атрибуты при обращении по одному из этих псевдонимов? Ошибки типа некорректных атрибутов у псевдонимов могут возникнуть при использовании атрибута DEFINED или базированной памяти вPL/1, оператора EQUIVALENCE в Фортране, глагола REDEFINES в Коболе, записей с вариантами в Паскале илиобъединений (UNION) в языке Си. В качестве примера можнопривести программу на языке Си, содержащую вещественнуюпеременную A и целую переменную B. Обе величины размещены на одном и том же месте памяти (т.е.

помещены в одно и тоже объединение). Если программа записывает величину A, а обращается к переменной B, то, вероятно, произойдет ошибка, поскольку машина будет использовать битовое представлениечисла с плавающей точкой в данной области памяти как целое.6. Отличаются ли типы или атрибуты переменных величин от тех, которые предполагались компилятором? Это может произойти в том случае, когда программа на PL/1 или Коболе считывает записи из памяти и обращается к ним как кструктурам, но физическое представление записей отлично отописания структуры.

Или программа на языке Си, допускающем произвольные преобразования типов, содержит переменную-указатель на структуру типа T1, инициализированную указателем на структуру типа T2 (не наследуемую от T1).7. Существуют ли явные или неявные проблемы адресации, если в машине будут использованы единицы распределения памяти, меньшие, чем единицы адресации памяти? Например, в PL/1 в системе IBM S/370 битовые строки фиксированной длины не обязательно начинаются с границ байтов, а адресами могут быть только границы байтов. Аналогично, в языкеСи размер отдельных полей в структуре может задаваться в битах. Если программа вычисляет адрес битового поля и впослед-106ствии обращается к нему по этому адресу, то может произойтиошибочное обращение к памяти. Такое же положение можетсложиться при передаче подпрограмме (процедуре) битовогополя в качестве аргумента.8.

Если используются указатели или переменные-ссылки,то имеет ли адресуемая память атрибуты, предполагаемыекомпилятором? Примером несоответствия атрибутов можетслужить случай, когда указатель PL/1, по которому базируетсяструктура данных, имеет в качестве значения адрес другойструктуры.9. Если к структуре данных обращаются из несколькихпроцедур или подпрограмм, то определена ли эта структураодинаково в каждой процедуре?10. Не превышены ли границы строки при индексации вней?11.

Существуют ли какие-нибудь другие ошибки в операциях с индексацией или при обращении к массивам по индексу?6.3.3.2 Ошибки описания данных1. Все ли переменные описаны явно? Отсутствие явногоописания не обязательно является ошибкой, но служит общимисточником беспокойства. Так, если в подпрограмме на Фортране используется элемент массива и отсутствует его описание(например, в операторе DIMENSION), то обращение к массиву(например, Х = А(1)), будет интерпретироваться как вызовфункции.

Последнее приведет к тому, что машина будет пытаться обработать массив как программу. Если отсутствует явное описание переменной во внутренней процедуре или блоке,следует ли понимать это так, что описание данной переменнойсовпадает с описанием во внешнем блоке?2. Если не все атрибуты переменной явно присутствуют вописании, то понятно ли их отсутствие? Например, отсутствиеатрибутов, считающееся общепринятым в PL/1, часто являетсяисточником неожиданных осложнений.3. Если начальные значения присваиваются переменным воператорах описания, то правильно ли инициализируются этизначения? Во многих языках программирования присвоение начальных значений массивам и строкам представляется довольно107сложным и, следовательно, является возможным источникомошибок.4.

Правильно ли для каждой переменной определены длина, тип и класс памяти (например, STATIC, AUTOMATIC,BASED или CONTROLLED в PL/1; AUTO, CONST, VOLATILE, REGISTER, STATIC в Си и т.д.)?5. Согласуется ли инициализация переменной с ее типомпамяти? Например, если в подпрограмме на Фортране необходимо устанавливать начальные значения переменной каждыйраз при вызове подпрограммы, переменная должна быть инициализирована в операторе описания, отличном от оператораDATA. Если в PL/1 описывается инициализация величины и начальное значение необходимо устанавливать каждый раз привызове процедуры, то для этой переменной должен быть определен класс памяти АUTОМАТIС, а не STATIC.6.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее