Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
209.61 Кб
Скачать
  1. Назовите цель разбиения исходных данных программ на классы эквивалентности. Приведите пример выделения классов эквивалентности для какой-либо задачи.

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

-------------------------------------------

  1. Дайте определение структуры данных. Приведите пример структуры данных. Дайте пояснения относительно ее частей.

Структура данных – это форма хранения и представления информации. Бывают простыми (целочисленный, вещественный, логический, текстовый тип) и сложными (массивы, графы, списки)

-------------------------------------------

  1. Дайте определение схемы. Приведите пример. Какие группы символов используются в Вашем примере (согласно ГОСТ 19.701-80).

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

-------------------------------------------

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

-------------------------------------------

  1. Дайте определение модели жизненного цикла ПП. Приведите какую-либо модель ЖЦ и дайте необходимые пояснения.

Модель ЖЦПП – структура определяющая последовательность осуществления процессов, действий и задач выполняемые на протяжении ЖЦ.

Каскадная модель:

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

Достоинства модели:

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

2) выполняемые в логичной последовательности этапы работ позволяют планировать сроки завершения и соответственные затраты.

Недостатки модели:

1) существенная задержка получения результатов

2) ошибки и недоработки на любом из этапов выясняются на последних этапах, что приводит к необходимости возврата на предыдущие этапы

3) сложность распараллеливания работ

4) сложность управления проектом

5) высокий уровень риска и ненадежности инвестиций

-------------------------------------------

  1. Дайте определение статических структур данных. Приведите пример. Как определяется адрес элемента структуры?

Структур характеризующаяся тем, что для их размещения в памяти ЭВМ выделяется фиксированный объем памяти.

-------------------------------------------

  1. Дайте определение связного списка. Приведите пример. Дайте пояснения относительно частей этой структуры данных.

Связанный список – это вариант обычного линейного списка, оптимизированный для операций добавления и удаления элементов. Оптимизация заключается в том, что элементы связанного списка не обязаны в памяти располагаться друг за другом. Порядок элементов определяется ссылкой на первый элемент (не обязан быть в самом начале выделенной для списка памяти) и последовательностью ссылок на остальные элементы списка.

-------------------------------------------

  1. Дайте определение какой-либо статической структуры данных, приведите пример конкретной структуры такого класса и поясните, как осуществляется доступ к элементу структуры.

Структур характеризующаяся тем, что для их размещения в памяти ЭВМ выделяется фиксированный объем памяти.

Массив – это в статическая линейная структура однотипных данных, оптимизированная для операций поиска элемента по его индексу. Однозначное местоположение элемента в памяти обеспечивается именно однотипностью элементов в массиве и определяется произведением его индекса на размер памяти, занимаемой одним элементом.

-------------------------------------------

  1. Дайте определение нотации. Приведите пример.

Под нотацией понимают правила формализованного описания структуры системы, элементов данных и других ее компонентов с помощью схем, диаграмм, формальных и естественных языков.

-------------------------------------------

  1. Дайте определение спецификациям ПО, назовите известные Вам внешние спецификации и их особенности. Приведите пример спецификации.

Под спецификацией понимается формальное описание требований, свойств и функций объекта. Пример, ТЗ - исходный документ для разработки и испытания ПО.

-------------------------------------------

  1. Назовите группы символы, которые используются в схемах проектов ПО согласно ГОСТ, и приведите примеры таких символов.

  1. Символы данных: данные

  2. Символы процесса: действие

  3. Символы линий: линия

  4. Специальные символы:коменты

-------------------------------------------

  1. Дайте определение и приведите пример линейного двусвязного списка.

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

следующий

предыдущий

данные

-------------------------------------------

  1. Дайте определения основных типов данных. Приведите пример и дайте развернутую характеристику какого-либо типа данных. целочисленные – int;

вещественные – float, double;

символьный – char;

логические – bool;

-------------------------------------------

  1. Дайте определение схемы, перечислите схемы, которые используются при документировании ПО, и их назначение. Приведите пример какой-либо схемы и назовите группы символов, которые в таких схемах применяются.

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

-схемы данных;

-схемы программ;

-схемы работы системы;

-схемы взаимодействия программ;

-схемы ресурсов системы.

Схемы данных отображают путь данных при решении задач и определяют этапы обработки и применяемые носители данных.

Схемы программ отображают последовательность операций в программе.

Схемы работы системы отображают управление операциями и поток данных в системе.

после

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

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

Линии потока управления и передачи данных в схеме работы системы

-------------------------------------------

  1. Приведите пример и дайте пояснения редуцирования таблицы решений для какой-либо внешней спецификации.

Редуцирование таблицы решений заключается в уменьшении количества столбцов таблицы путем объединения некоторых столбцов.

  1. Дайте определение линейного односвязного списка. Приведите пример линейного односвязного списка до исключения и после исключения из него какой-либо записи. Линейный однонаправленный список — это структура д анных, состоящая из элементов одного типа, связанных между собой последовательно посредством указателей. Каждый элемент списка имеет указатель на следующий элемент. Последний элемент списка указывает на NULL. Элемент, на который нет указателя, является первым (головным) элементом списка. Здесь ссылка в каждом узле указывает на следующий узел в списке. В односвязном списке можно передвигаться только в сторону конца списка. Узнать адрес предыдущего элемента, опираясь на содержимое текущего узла, невозможно.

-------------------------------------------

  1. Дайте определение линейного односвязного списка. Приведите пример линейного односвязного списка до включения и после включения в него новой записи.

Линейный однонаправленный список — это структура данных, состоящая из элементов одного типа, связанных между собой последовательно посредством указателей. Каждый элемент списка имеет указатель на следующий элемент. Последний элемент списка указывает на NULL. Элемент, на который нет указателя, является первым (головным) элементом списка. Здесь ссылка в каждом узле указывает на следующий узел в списке. В односвязном списке можно передвигаться только в сторону конца списка. Узнать адрес предыдущего элемента, опираясь на содержимое текущего узла, невозможно.

-------------------------------------------

  1. Дайте определение линейного двусвязного списка. Приведите пример линейного двусвязного списка до включения и после включения в него новой записи.

В линейном двусвязном списке продвижение возможно в любом из двух направлений по цепочке

элементов. Каждый элемент двусвязного списка содержит два указателя: указатель на следующий элемент, или прямой указатель, и указатель на предыдущий элемент, или обратный указатель.

-------------------------------------------

  1. Назовите нотации и приведите пример нотации для изображения структурных алгоритмов.

Схема алгоритмаблок схема

Псевдокод - формализованное текстовое описание алгоритма (текстовая нотация).

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

Диаграммы Насси-Шнейдермана отличаются от Flow-форм тем, что область обозначения условий и вариантов ветвления изображают в виде треугольников

-------------------------------------------

  1. Дайте определение прочности модуля и приведите примеры модулей с разными классами прочности.

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

ДО

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

-------------------------------------------

  1. Дайте определение сцепления модулей и приведите примеры модулей с разными видами сцепления.

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

-------------------------------------------

  1. Дайте определение линейного двусвязного списка. Приведите пример линейного двусвязного списка до исключения и после исключения из него какой-либо записи.

В линейном двусвязном списке продвижение возможно в любом из двух направлений по цепочке

элементов. Каждый элемент двусвязного списка содержит два указателя: указатель на следующий элемент, или прямой указатель, и указатель на предыдущий элемент, или обратный указатель.

-------------------------------------------

  1. Дайте определение технологии программирования. Какие технологии Вы знаете и к каким периодам относится появление этих технологий?

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

Под методом понимают совокупность приемов и операций практического и теоретического освоения деятельности.

Основные этапы развития ТП:

  1. Стихийное – первые ЭВМ – 60е годы

  2. Структурный – 60-70е гг.

  3. ООП – 80-90е гг.

  4. Компонентный подход и CASE-технологии – с 2000 по наши дни.

-------------------------------------------

  1. Дайте определение объектно-ориентированного программирования (ООП). Назовите и охарактеризуйте основные свойства ООП.

ООП – технология создания сложного ПО, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного типа (класса, а они образуют иерархию с наследованием свойств).

Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм. Под инкапсуляцией понимается сокрытие данных и операций АТД от внешних программ, использующих их.

Наследование - это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода.

Полиморфизм - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных.

-------------------------------------------

  1. Блочно-иерархический подход к созданию программных систем.

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

• непротиворечивость - контроль согласованности элементов между собой;

• полнота - контроль на присутствие лишних элементов;

• формализация - строгость методического подхода;

• повторяем. В основе блочно-иерархического подхода лежат декомпозиция и иерархическое упорядочение. Важную роль играют также следующие принципы:

• непротиворечивость - контроль согласованности элементов между собой;

• полнота - контроль на присутствие лишних элементов;

• формализация - строгость методического подхода;

• повторяемость - необходимость выделения одинаковых блоков для удешевления и ускорения разработки;

• локальная оптимизация - оптимизация в пределах уровня иерархии

-------------------------------------------

  1. Проблемы разработки сложных программных систем.

Главная причина сложности современных программных систем - логическая сложность решаемых ими задач.

Доп. факторами, увеличивающими сложность программных систем, являются:

• сложность формального определения требований к программным системам;

• отсутствие удовлетворительных средств описания поведения дискретных систем с большим числом состояний при недетерминированной последовательности входных воздействий;

• коллективная разработка;

• необходимость увеличения степени повторяемости кодов.

------------------------------------------

  1. Дайте определение модели жизненного цикла (ЖЦ) программного продукта (ПП). Каскадная модель ЖЦ ПП. Область применения, достоинства и недостатки.

Модель ЖЦПП – структура определяющая последовательность осуществления процессов, действий и задач выполняемые на протяжении ЖЦ.

Каскадная модель:

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

Достоинства модели:

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

2) выполняемые в логичной последовательности этапы работ позволяют планировать сроки завершения и соответственные затраты.

Недостатки модели:

1) существенная задержка получения результатов

2) ошибки и недоработки на любом из этапов выясняются на последних этапах, что приводит к необходимости возврата на предыдущие этапы

3) сложность распараллеливания работ

4) сложность управления проектом

5) высокий уровень риска и ненадежности инвестиций

-------------------------------------------

  1. Этапы жизненного цикла (ЖЦ) программных продуктов (ПП). Схема ЖЦ ПП.

Этапы ЖЦ (основные) [график]:

  1. Анализ

  2. Проектирование

  3. Программирование

  4. Тестирование

  5. Документирование

Этапы ЖЦ (дополнительные):

  1. Модернизация

  2. Обучение персонала

-------------------------------------------

  1. Функциональное и структурное тестирование программ: цели, отличия стратегий, рекомендации по применению.

Структурное (белый ящик) – базируется на том, что известна структура тестируемого ПО, в том числе его алгоритмы. Цель – проверить логику ПО.

Функциональное (черный ящик) – структура ПО неизвестна, тесты строятся на основе спецификации.

Цель – проверить ПО на соответствие ТЗ.

-------------------------------------------

  1. Этапы тестирования программ. Стадии тестирования в процессе разработки программного обеспечения. Методы, используемые на каждой стадии.

Стадии:

1) автономное тестирование компонентов программного обеспечения (методы ручного контроля, покрытия операторов, покрытия решений, покрытия условий, комбинаторного покрытия).

2) комплексное тестирование разрабатываемых программ (восходящее и нисходящее тестирование).

3) системное или оценочное тестирование на соответствие основным критериям качества.

В тестирование входят следующие этапы:

а) постановка задачи для теста,

б) проектирование теста,

в) написание тестов,

г) тестирование тестов,

д) выполнение тестов,

е) изучение результатов тестирования.

-------------------------------------------

  1. Ручной контроль как метод тестирования.

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

-------------------------------------------

  1. Методы структурного тестирования. Общий недостаток методов.

  1. метод покрытия операторов,

  2. метод покрытия решений

  3. метод покрытия условий,

  4. метод покрытия решений/условий

  5. метод комбинаторного покрытия условий.

Применения этих методов на практике структура программы должна быть известной.

Метод покрытия операторов

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

Метод покрытия решений

Согласно данному методу должно быть написано достаточное число тестов, такое, что каждое направление перехода должно быть реализовано по крайней мере один раз.

Метод покрытия условий

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

Метод покрытия решений/условий

Метод покрытия решений/условий требует такого достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и, кроме того, каждой точке входа передавалось управление по крайней мере один раз.

Метод комбинаторного покрытия условий

Критерием, который решает эти и некоторые другие проблемы, является комбинаторное покрытие условий. Он требует создания такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз.

-------------------------------------------

  1. Методы функционального тестирования. Области применения.

  1. эквивалентного разбиения

  2. анализа граничных значений

  3. анализ причинно-следственных связей (метод таблиц решений)

  4. предположение об ошибке

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

Тестирование ТР заключается в том, что проектируется такое количество тестов, которое позволяет покрыть все возможные комбинации условий.

-------------------------------------------

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]