- •1. Раскройте содержание предварительного и детального внешнего проектирования по.
- •2. Дайте определение структуры данных.
- •4. Перечислите принципы модульного программирования.
- •5. В чем заключаются восходящий и нисходящий методы проектирования по?
- •6. Какие стратегии тестирования Вы знаете? в чем их отличие?
- •7. Назовите символы, которые используются в схемах проектов по согласно гост, и приведите примеры таких символов.
- •8. В чем отличия нисходящего и восходящего метода тестирования программных модулей?
- •9. Дайте определения полустатических структур данных. Каковы их отличительные особенности?
- •10. Приведите пример структуры данных. Дайте пояснения относительно ее частей.
- •11. Назовите цель и перечислите принципы модульного программирования.
- •12. В чем отличия двумерного массива (матрицы) и таблицы?
- •45. Дайте определение технологии, методологии и метода.
- •14. Опишите этапы отладки и тестирования программ. В чем отличие целей отладки и тестирования?
- •16. Приведите структуры управления (последовательности операторов) в структурном программировании.
- •17. Дайте определения основных типов данных и назовите операции их обработки
- •18.Дайте определение схемы, перечислите схемы, которые используются при документировании по, и их назначение.
- •20. Перечислите основные стратегии тестирования. Какие известные Вам методы реализуют каждую из стратегий?
- •21. На чем основано процедурное программирование и каковы его недостатки?
- •22. Дайте определение структуры данных и приведите пример.
- •23. Назовите основные преимущества case- технологий по сравнению с традиционной технологией проектирования.
- •24. Приведите пример таблицы решений для какой-либо внешней спецификации.
- •25. Дайте определения статических структур данных. Каковы их отличительные особенности?
- •35. Дайте определение и приведите пример линейного односвязного списка.
- •36. Изложите цель и основные этапы реализации метода эквивалентного разбиения.
- •37. Дайте определение и приведите пример линейного двусвязного списка.
- •40. Дайте определение модуля и назовите его основные атрибуты.
- •41. Что такое макетирование программ, каковы его основные достоинства и где этот метод нашел широкое применение?
- •42. Перечислите критерии качества по и приведите их определения. Какие из них являются обязательными для по?
- •43. Перечислите особенности динамических структур данных.
- •44. Назовите последовательность работ при тестировании по. Какой или какие этапы являются наиболее ответственными и почему?
- •46. В чем отличие каскадной и спиральной моделей жизненного цикла по?
- •49.Перечислите основные принципы структурного программирования.
- •55.Дайте определение и приведите пример нотации.
- •61. Какие подходы применяют при тестировании модульных программ? в чем их отличие?
- •64. В каком случае представление разреженной матрицы в виде нелинейного списка выгоднее представления в памяти эвм всех элементов матрицы?
- •67.Приведите компактную структуру в памяти эвм для хранения приведенной ниже матрицы:
- •69. Приведите более быстрый вариант вычисления и мотивируйте его преимущества:
- •70. Приведите двумерную матрицу, которая в памяти эвм хранится в виде следующего нелинейного списка:
- •71. Приведите двумерную матрицу, которая в памяти эвм хранится в виде следующего нелинейного списка:
- •72. Укажите обратную логическую последовательность содержательных частей двусвязного списка, физическая последовательность записей которых является следующей:
- •73. Укажите логическую последовательность содержательных частей односвязного списка, физическая последовательность записей которых является следующей:
- •74. Приведите компактную структуру в памяти эвм для хранения приведенной ниже матрицы:
- •75. Приведите двумерную матрицу, которая в памяти эвм хранится в виде следующего нелинейного списка:
- •76. Укажите обратную логическую последовательность содержательных частей двусвязного списка, физическая последовательность записей которых является следующей:
- •83.Отметьте правильные утверждения относительно массива и таблицы:
4. Перечислите принципы модульного программирования.
Модуль – это замкнутая программа, которую можно вызвать из другого модуля и самостоятельно откомпилировать. Принципы модульного пр-ия следующие:
а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);
б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).
5. В чем заключаются восходящий и нисходящий методы проектирования по?
Суть нисходящей стратегии в том, что проектировщик должен приступить к работе, имея только концептуальный абстрактный замысел о том, что система или программа будет делать. Затем этот замысел постепенно конкретизируется шаг за шагом, тем самым погружаясь в подробности окончательного программного продукта до тех пор, пока не будет достигнуто «дно», под которым понимаются программные модули, реализующие отдельные функции или процедуры преобразования данных (принцип декомпозиции).
Суть восходящей стратегии отличается от сути нисходящей стратегии. Для этой стратегии характерна первичная разработка модулей или функций, являющихся «дном» ПП, т.е. модулей, которые являясь самостоятельными, не используют какие-либо программные модули низшего уровня.
Далее разрабатываются модули более высоких уровней, пока не будет достигнута «верхушка». Наиболее популярна нисходящая стратегия разработки ПО.
6. Какие стратегии тестирования Вы знаете? в чем их отличие?
Чаще всего используются следующие два подхода к тестированию. Первый состоит в том, что тесты проектируются на основе внешних спецификаций программ и модулей, либо спецификаций сопряжения программы или модуля. Программа при этом рассматривается как черный ящик (стратегия ‘черного ящика’). Существо такого подхода - проверить соответствует ли программа внешним спецификациям. При этом логика модуля совершенно не принимается во внимание. Второй подход основан на анализе логики программы (стратегия ‘белого ящика’). Существо подхода - в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается.
7. Назовите символы, которые используются в схемах проектов по согласно гост, и приведите примеры таких символов.
В схемах проектов ПО согласно ГОСТ используются 4 вида символов: символы данных, символы процесса, символы линий и специальные символы.
Символы данных: основные – данные, запоминаемые данные; специфические – оперативное запоминающее устройство, запоминающее устройство с последовательной выборкой (ЗУПВ), запоминающее устройство с прямым доступом (ЗУПД), документ, карта, бумажная лента, дисплей. Символы процесса: основные – процесс; специфические – предопределённый процесс, ручная операция, подготовка, решение, параллельные действия, граница цикла. Символы линий: основные - линия; специфические – передача управления, канал связи, пунктирная линия. Специальные символы: соединитель, терминатор, комментарий, пропуск.
8. В чем отличия нисходящего и восходящего метода тестирования программных модулей?
Методика восходящего тестирования включает следующие щаги: Сначала тестируются ‘листья’ дерева структуры программы, т.е. модули Е,C,F. Поскольку это вызываемые программы, то для их тестирования программируются драйверы. В его функции входит формирование тестовых данных для отлаживаемого модуля и передача ему управления (вызов модуля). Затем аналогично тестируются модули вышележащего уровня совместно с уже оттестированными модулями нижележащего уровня. Применительно к рассматриваемому нами примеру проектируются драйверы для тестирования пар B-E и D-F. Пошаговый процесс продолжается до тех пор, пока не будет включен в процесс тестирования последний модуль. Для нашего примера это будет модуль А. Для его тестирования совместно с вызываемыми программами нижележащего уровня драйвер разрабатывать не требуется.
Альтернативное нисходящее тестирование состоит из следующих действий: Тестирование начинается с вызывающего модуля программы. Для модулей нижележащего уровня (вызываемых) программируются так называемые ‘заглушки’. После проверки ‘корня’ дерева структуры комплексирующей программы переходят к тестированию нижележащих модулей. Причем, формализованной процедуры подключения к вызывающему модулю нижележащих вызываемых модулей не существует. Единственное ограничение, которым руководствуются при выборе очередного претендента на тестирование, заключается в том, что этот модуль должен вызываться уже оттестированным модулем вышележащего уровня. Если очередной тестируемый модуль вызывает модули еще нижележащего уровня, то аналогично пункту а) для нижележащих модулей программируются ‘заглушки’ Процесс тестирования продолжается до тех пор, пока не будет оттестирован последний модуль из ‘листьев’ дерева структуры программы.