Шпоры к ГОСу по технологии программирования - файл n1.doc
приобрестиШпоры к ГОСу по технологии программированияскачать (1907 kb.)
Доступные файлы (8):
n1.doc
1. Раскройте содержание предварительного и детального внешнего проектирования ПО. Предварительное внешнее проектирование. В процессе внешнего проектирования структурируются цели проекта, определяется взаимодействие с пользователем, но не учитываются многие детали. Во время детального внешнего проектирования определяются внешние спецификации каждой функции для пользовательского проекта (таблица решений).Следует отметить, что наиболее общей рекомендацией для этого этапа является структурирование (декомпозиция) целей программного продукта по схеме: основные цели —> подцели 1-го уровня. . . —>. . . подцели i-го уровня —>. . . . . —> подцели n-го уровня —> функции для пользователя ПО.Поскольку предметные области автоматизации и цели автоматизации могут быть самые разные, общей методики для процесса структурирования пока не предложено. Результатом выполнения этапа должна быть структура целей программного продукта, дополненная подробным словесным описанием содержания функций, подцелей и основной цели ПО.
Детальное внешнее проектирование Содержанием этого этапа является разработка спецификаций функций ПО. Фактически спецификации являются описаниями алгоритмов соответствующих функций. Для этих целей существует достаточно много методов, которые перечислим в порядке увеличения трудности проектирования алгоритмов:- текстовое описание,- структурированный естественный язык,- таблица решений,- дерево решений,- визуальный язык,- блок-схема,- алгоритмический язык программирования.
В перечисленном выше порядке увеличивается степень формализации описания алгоритма и понимание деталей его функционирования проектировщиками и программистами, но уменьшается степень понимания алгоритма заказчиком и будущим пользователем ПО, для которого оно разрабатывается. Компромиссным решением проблемы понимания являются методы алгоритмизации, лежащие в середине спектра методов.
2. Дайте определение внешним спецификациям ПО, назовите известные внешние спецификации и их особенности. Внешняя спецификация ПО – это описание того, что программа должна делать. Это описание может быть выполнено на разных уровнях детализации и с применением разных средств: - текстовое описание, - структурированный естественный язык, - таблица решений, - дерево решений, - визуальный язык, - блок-схема, - алгоритмический язык программирования.
Составлению внешних спецификаций разрабатываемого ПО предшествует анализ целей будущего продукта, который в методиках разработки ПО называется структурным анализом и методической базой которого является нисходящая стратегия.
Структурным анализом принято называть такое исследование системы, которое начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру с все большим числом уровней. Для таких методов характерно разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней (обычно от 3 до 6-7). В технологии программирования эта идея была сформулирована как один из принципов структурного программирования: разработку программ рекомендуется вести сверху-вниз или, иначе, по нисходящей стратегии. Внешние спецификации: структурированный естеств. язык
табл. решений дерево решений блок-схема визуальный язык язык прогр-ия
Спецификации перечислены в порядке увеличения степени описания функц. возможностей разрабатываемой программы. Сл-но, уменьшается понимание будущего программного продукта заказчиком. Как компромисс м/у детализацией и пониманием м.б. предложен выбор спецификаций из середины списка.
3. Назовите этапы проектирования логики программного модуля и дайте им характеристику. Программный модуль- это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса.
Этапы проектирования программного модуля:
кодирование алгоритма обработки и преобразования информации на каком-либо языке программирования
отладка модуля Отладкой называется процесс выявления природы ошибки программы и исправления ошибок, после того, как ошибки были обнаружены в процессе тестирования. Из всех этапов проектирования логики программных модулей этап отладки является наименее формализованным. В нем выделяют две задачи: определение природы ошибки; исправление ошибки. Решение первой из этих задач занимает около 95 % времени, затрачиваемых на отладку. Поэтому любые средства ускорения процесса определения местоположения ошибки в программ имеют важное значение.
тестирование модуля полное тестирование программы невозможно. Тест для любой программы будет обязательно неполным, то есть тестирование не гарантирует отсутствие всех ошибок. Стратегия проектирования тестов заключается в том, чтобы попытаться уменьшить эту неполноту насколько это возможно. При этом ключевым вопросом является следующий: какое подмножество всех возможных тестов имеет наивысшую вероятность обнаружения ошибок при ограниченных времени, трудовых затратах, стоимости, машинном времени и т. п.
Принципы:
сложность взаимодействия модуля с другими модулями должна быть меньше сложности его внутр структуры
хороший модуль снаружи проще, чем изнутри
хороший модуль проще использовать, чем построить
4. Назовите цель и перечислите принципы модульного программирования. Модуль – это замкнутая программа, которую можно вызвать из другого модуля и самостоятельно откомпилировать. Другое определение: программный модуль – это любой фрагмент описания процесса, оформляемый как самостоятельный программный продукт, пригодный для использования в описаниях процесса.
Основная причина по которой разрабатываемое ПО разбивается на модули – борьба со сложностью ПО.Принципы модульного программирования позволяют получать программные комплексы минимальной сложности. Эти принципы следующие:а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля); б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).
Модуль – это программа, обладающая тремя основными атрибутами: он выполняет одну или несколько функций;
модуль реализует некоторую логику (алгоритм).
используется в одном или нескольких контекстах.
При этом функция – это то, что делает модуль, а не то, как он это делает. А вот логика характеризует, как модуль выполняет свои функции. Контекст описывает конкретное применение.Принципы модульного программирования позволяют получать программные комплексы минимальной сложности. Эти принципы следующие:
а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);
б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).
5. В чем отличие отладки и тестирования программ?Какие методы применяются на этих этапах? Отладкой называется процесс выявления природы ошибки программы и исправления ошибок, после того, как ошибки были обнаружены в процессе тестирования. Наиболее распространенными и наименее эффективными для отладки являются так называемые методы ‘грубой силы’. К ним относят: отладку с использованием дампа памяти; отладку с использованием операторов печати по всей программе;
отладку с использованием автоматических средств Общей характеристикой методов "грубой силы" является то, что они не требуют значительных умственных затрат и могут продолжаться бесконечно долго. Существуют и более гибкие методы, к которым относятся: метод индукции; метод дедукции.
Тестирование имеет целью обнаружение ошибок в программе, тогда как отладка-выявление природы ошибок и исправление ошибок после того, как они были обнаружены. Существуют 2 подхода к постановке закономерности проектирования теста: стратегия
"черного ящика" -проверить соответствует ли программа внешним спецификациям.
Методы: А) эквивалентного разбиения
Б) метод граничных условий
В) метод функциональных диаграмм
Стратегия
"белого ящика" - проверка пути каждой ветви алгоритма.При этом внешняя спецификация во внимание не принимается. Тестирование по принципу
"белого ящика" характеризуется степенью, какой тесты выполняют или покрывают логику (исходный текст программы).
Методы: 1) Покрытия операторов (выполнение каждого оператора программы хотя бы один раз).
2)Покрытия решений (покрытия переходов) (должно быть написано достаточное число тестов, такое, что каждое направление перехода должно быть реализовано по крайней мере один раз).
3) Покрытия условий (записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз).
4) Критерий решений (условий)(достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и , кроме того, каждой точке входа передавалось управление по крайней мере один раз).
5) Комбинаторного покрытия условий (создание такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз).
6. Перечислите основные стратегии тестирования. Какие известные Вам методы реализуют каждую из стратегий? Две основные стратегии тестирования:1)стратегия
"белого ящика" - проверка пути каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается. Методы:
1) Покрытия операторов (выполнение каждого оператора программы хотя бы один раз).
2)Покрытия решений (покрытия переходов) (должно быть написано достаточное число тестов, такое, что каждое направление перехода должно быть реализовано по крайней мере один раз).
3) Покрытия условий (записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз).
4) Критерий решений (условий)(достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и , кроме того, каждой точке входа передавалось управление по крайней мере один раз).
5) Комбинаторного покрытия условий (создание такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз).
2)
стратегия «черного ящика» – проверить соответствует ли программа внешним спецификациям. При этом логика модуля совершенно не принимается во внимание Методы:
А) эквивалентного разбиения – разработка теста осуществляется в
два этапа: 1). Выделение классов эквивалентности – выделяют правильные и неправильные классы, разбиение на которые подчиняются следующим правилам:
- если входное условие описывает область значений, например,то определяется один правильный класс эквивалентности и два неправильных; - если входное условие описывает число значений,то определяется один правильный класс эквивалентности и два неправильных;
- если входное условие описывает множество входных значений, то определяются правильные классы эквивалентности для каждого значения и один неправильный;
- если входное условие описывает ситуацию “должно быть”,то определяется один правильный класс эквивалентности и один неправильный; - если есть основания считать, что различные элементы класса эквивалентности воспринимаются программой неодинаково, то данный класс эквивалентности разбивается на меньшие классы эквивалентности.
2). построение теста: - назначение каждому классу эквивалентности уникального номера;- проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности, пока все правильные классы эквивалентности не будут покрыты тестами;- запись тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности. Каждый неправильный класс эквивалентности должен быть покрыт индивидуальным тестом.
Б) метод граничных условий Анализ граничных значений отличается от эквивалентного разбиения в двух отношениях:- выбор любого элемента в классе эквивалентности в качестве представительного при анализе граничных значений осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.
- при разработке тестов рассматривают не только входные условия (пространство входов), но и пространство результатов, то есть выходные классы эквивалентности.
В) метод функциональных диаграмм – они строятся подобно классам эквивалентности их построение заканчивается преобразованием диаграмм в таблицу решений по которой составляется столько тестов, сколько столбцов в таблице
Каждый из методов эффективен для определенного класса задач. Метод тестирования по таблице решений применим, если логика программы определяется комбинацией условий входных данных. Метод эквивалентного разбиения эффективен для языковых процессоров и других элементов лингвистического обеспечения. Метод граничных условий эффективен для программ статистической обработки данных или других видов совместной обработки таблиц когда данные в таблице принадлежат некоторому диапазону значений.
7. Дайте определения основных типов данных и назовите операции их обработки. Тип данного определяется множеством значений данного и набором операций, которые над ним можно выполнять.
Целое - множество целых чисел в диапазоне разрядной сетки ЭВМ.Характеристикой этого типа данных может быть длина, выражаемая максимальным объемом памяти (в байтах) для записи данных. операции: сложения, вычитания, умножения и целочисленного деления, вычисление по заданному модулю (нахождение остатка от деления), определение максимального и минимального числа среди нескольких чисел, возведения в целую степень, определение следующего или предыдущего по значению чисел.
Действительные числа - множество вещественных чисел в диапазоне их представления в разрядной сетке ЭВМ.Характеристикой вещественных чисел является минимальное число, которое может быть представлено в ЭВМ. операции над действительными числами – сложение, вычитание, умножение, деление, вычисление тригонометрических функций, возведение в степень, извлечение квадратного корня, логарифмирование, нахождение минимального и максимального числа из некоторого конечного множества чисел и некоторые другие.
Символьный тип (или данное типа строка) включает множество символов или литер, доступных в конкретной ЭВМ. Типовыми операциями над символьными данными является операция читать и писать. для каждого символа может быть определен соответствующий ему порядковый номер.
Тип логический или BOOLEAN характеризуется тем, что может принимать два значения “истина” или “ ложь”. Типовыми операциями над этими данными является конъюнкция (и), дизъюнкция (или), отрицание (не). Часто в языках программирования используются и более сложные логические операции: исключающее или, импликация, эквивалентность.
Тип указатель (или POINTER) представляет собой множество адресов данных в пределах объема памяти ОЗУ (количество адресуемых байтов, слов). Типичными операциями над такими данными являются операции присвоения адреса памяти или присвоение значения другого указателя
8.
Дайте определение структуры данных и приведите Структура данных – совокупность элементов данных, между которыми существуют отношения. Причем элементами структуры данных могут быть как простые типы данных, так и структуры.
пример. Структуру данных можно определить, как S=(D,R),
где D- множество элементов данных, R-множество отношений (связей) между элементами данных.
Важный признак структуры – ее изменчивость. По этому признаку различают структуры статические, полустатические и динамические. В зависимости от характера взаимного расположения элементов в памяти ЭВМ структуры делят на структуры данных с последовательным расположением элементов в памяти (вектор, массив, стек, очередь) и структуры с произвольным распределением – (односвязные, двусвязные, ассоциативные списки).
9. Дайте определения статических структур данных. Каковы их отличительные особенности? Этот класс структур характеризуется тем, что для их размещения в памяти ЭВМ выделяется фиксированный объем памяти.
Списком называется линейно упорядоченная последовательность данных:Е(1), Е(2), … Е(n), где n>0, причем Е(I) характеризуется одним и тем же набором полей (I= 1,..,n). Если элементы расположены в памяти ЭВМ последовательно и не содержат указателей, то список называется линейным. Если n = const , то линейный список представляет собой статическую структуру.
Статические структуры данных: вектор, массив, запись, таблицы.
Вектор – конечное упорядоченное множество простых данных или скаляров одного и того же типа. Между элементами вектора существуют единственные отношения следования. В памяти ЭВМ элементы вектора представляются последовательностью одинаковых по длине участков памяти, как правило, расположенных в порядке следования элементов в группе. Важнейшая операция над вектором – доступ к заданному элементу. Кроме того, над вектором можно выполнять операции определения верхней и нижней границ индекса. По сути эти операции дают описание вектора.
Массив – вектор, каждый элемент которого вектор В свою очередь элементы вектора “вектора массива” могут быть вектором (3-х и более мерные массивы). Процесс последовательного перехода к элементам вектора рано или поздно должен завершиться на скалярном элементе некоторого типа данных, причем этому типу должны соответствовать все скалярные элементы массива. Поэтому может быть более точным является скалярное определение массива:
к-мерным массивом называется конечное упорядоченное множество (к-1) мерных массивов, все элементы которых принадлежат одному и тому же типу. При к=1 получаем вектор. В связи с массивом следует упомянуть и такую их разновидность, как разреженные матрицы. Это также массивы, большинство элементов которого равны “0”. К таким матрицам приходят в технике при получении ММ систем. Запись – конечное упорядоченное множество элементов, характеризующихся различным типом данных. Элементы записи – поля. Поскольку запись можно рассматривать как обобщение понятия вектор, то для записи характерны аналог операции – доступ к полям записи, и последовательное расположение полей записи в памяти ЭВМ. Для организации доступа в ЭВМ, как правило, создается дескриптор записи, в котором указывается смещение начала поля записи относительно начала записи в целом.
Таблицы – конечное упорядоченное множество записей, имеющих одну и ту же организацию. Записи разных уровней, обобщенный вид массива, поля выбираются таким образом, чтобы значение кода в нем было уникальным. Запись в таблицу осуществляется по ключу, который м.б. простым или сцепленным
. Типичные операции над таблицей: включение в таблицу новой записи, поиск записи по заданному ключу с целью доступа и обработки полей записи и исключение записи из таблицы.
10. Дайте определения полустатических структур данных. Каковы их отличительные особенности? Полустатические структуры данных- это последовательные линейные списки с переменной длиной, ограниченной фиксированной максимальной величиной и с ограниченным доступом К таким структурам относятся стеки и очереди. Стек - такой последовательный линейный список с переменной длиной, включение и исключение элементов из которого выполняется только с одного конца списка. Известно и другое название стека – магазин. Очередь – такой последовательный список с переменной длиной, включение элементов в который происходит с одной стороны, а исключение с другой стороны списка.
Стек - такой последовательный линейный список с переменной длиной, включение и исключение элементов из которого выполняется только с одного конца списка. Известно и другое название стека – магазин. Иногда стек называют еще очередью, функционирующей по принципу LIFO (Last- In-First- Out –последним пришел – первым вышел). Для хранения стека в памяти ЭВМ отводится сплошная область памяти ограниченного объема. Если в процессе заполнения стека указатель выходит за отведенные границы стека, то происходит переполнение стека и включение нового элемента становится невозможным.
Очередь – такой последовательный список с переменной длиной, включение элементов в который происходит с одной стороны, а исключение с другой стороны списка.
Очередь функционирует по принципу – FIFO (First-In-First-Out-первым пришел, первым вышел).
11. Перечислите особенности динамических структур данных. Основные признаки:
Непостоянство, непредсказуемость размера динамической структуры. Размер-это число элементов структуры в процессе ее обработки. Число элементов динамической структуры может изменяться от 0 до некоторого значения, определяемого спецификой задачи или доступным размером машинной памяти.
Отсутствие физической смежности элементов структуры в физической памяти ЭВМ.
Логическая последовательность элементов структуры задается в явном виде с помощью одного или нескольких указателей или связок, хранящихся в самих элементах. Следовательно, память, занимаемая динамической структурой не является непрерывной и может быть хаотически разбросана в области памяти. Часто динамические структуры физически представляются в форме связных списков. Связной список-это структура, элементами которой служат записи с одним и тем же форматом связанные друг с другом, с помощью указателей, хранящихся в самих элементах списка.
12. В чем отличия двумерного массива (матрицы) и таблицы? Вектор – конечное упорядоченное множество простых данных или скаляров одного и того же типа.
Массивом называют такой вектор, каждый элемент которого вектор.
Таблица - конечное упорядоченное множество записей, имеющих одну и ту же организацию
Таблица представляет собой обобщение понятия двумерного массива, в которой свойство однотипности элементов массива требуется лишь для элементов, расположенных в одном и том же столбце. Доступ к записям таблицы может осуществляться по номеру записи (аналог номера строки в двумерном массиве), но чаще доступ осуществляется по ключу, причем целью доступа является получение не отдельного поля записи, а как правило, сначала ищется какая-то одна запись (или группа записей), а затем осуществляется обработка полей этой записи или группы записей.
Отличие массива от таблицы: доступ осуществляется не с помощью индексов, а по ключу, и целью доступа служит не отдельное данное, а запись.
13. В чем отличие стратегий тестирования и какие практические рекомендации можно дать по их применению? Возможен целый ряд подходов к стратегии проектирования тестов Рассмотрим два крайних подхода. Первый состоит в том, что тесты проектируются на основе внешних спецификаций программ и модулей, либо спецификаций сопряжения программы или модуля. Программа при этом рассматривается как черный ящик (стратегия ‘черного ящика’). Существо такого подхода – проверить соответствует ли программа внешним спецификациям. При этом логика модуля совершенно не принимается во внимание.
Второй подход основан на анализе логики программы (стратегия ‘белого ящика’). Существо подхода - в проверке каждого пути, каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается. Тестирование по принципу белого ящика характеризуется степенью, какой тесты выполняют или покрывают логику (исходный текст программы)Ни один из этих подходов не является оптимальным. Тест для любой программы обязательно будет не полным, то есть тестирование не гарантирует отсутствие всех ошибок. Стратегия проектирования тестов заключается в том, чтобы попытаться уменьшить эту неполноту насколько это возможно.
Рекомендуется следующая процедура разработки тестов:
- разрабатывать тесты используя методы стратегии “черного ящика”; - дополнительное тестирование, используя методы стратегии “белого ящика”.
При проектировании тестов разрабатывают такое подмножество тестов, которое имеет наибольшую вероятность обнаружения ошибок при ограничении времени, трудовых затратах и т.д.
14 Приведите компактную структуру в памяти ЭВМ для хранения приведенной ниже матрицы: 1




0 0 10,7 0
0



1 0 0 0.46
0





0 1 0 0
1



1.78 0 1 0
0



0 6,9 0 1











15. Дайте определение и приведите пример линейного односвязного списка. Связный список – такая структура, элементами которой служат записи с одним и тем же форматом, связанные друг с другом с помощью указателей, хранящихся в самих элементах списка.
В односвязном линейном списке каждый элемент состоит из двух различных по назначению полей: содержательного и поля указателя. Логическая структура может быть изображена так: -пустой указатель, означ конец списка.
Физическая структура списка может быть такой :
16. Дайте определение и приведите пример линейного двусвязного списка. С
вязный список – такая структура, элементами которой служат записи с одним и тем же форматом, связанные друг с другом с помощью указателей, хранящихся в самих элементах списка. В лин двусвязном списке любой элемент состоит из 3-х составляющих:
Указатель 1(прямой указатель) адресует следующий элемент в списке, указатель 2 (обратный указатель) – адресует предыдущий элемент списка.
Логическая структура двусвязного списка:

В первой записи пустым является обратный указатель, а в последней – прямой. В этом случае доступ к списку возможен как с начала списка, так и с его конца.
17. Укажите верные утверждения относительно таблицы решений. Таблица решений состоит из:
а) описания условий для входных данных;
б) входных данных для функции ПО;
в) описания действий (выполняемых операций обработки информации) программы;
г) описания операторов программы;
д) указания порядка выполнения действий;
е) комбинации условий для входных данных;
ж) спецификации функций ПО.
18. Отметьте правильные утверждения относительно файла и обмена информацией между внешней и оперативной памятью: а) конечное множество записей на внешнем носителе называется файлом;
б) в файле возможно выделение поля записи;
в) обмен между внешней и оперативной памятью производится кластерами;
г) в кластер могут включаться любое целое количество секторов;
д) кластерам для записи одного файла должны выделяться смежные области дисковой памяти;
е) минимальной единицей информации в операциях обмена между внешней и оперативной памятью является запись;
ж) кластер включает количество секторов, кратное двум;
з) для контроля операций ввода-вывода собственно информация (данные) на магнитном диске снабжаются контрольными кодами.
19. Что такое таблица решений? Назовите этапы создания ПО, при выполнении которых могут быть применены такие таблицы. Таблица решений - внешняя спецификация ПО, в которой отражаются комбинации условий, выполняемых для входных данных, и соответствующие этим комбинациям действия по преобразованию информации. Может быть применена при проектировании, кодировании и тестировании ПО.ТР состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа ‘да-нет’. Нижняя часть ТР используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Левая часть ТР содержит собственно описание условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место. Методика построения ТР:
1)Определить все условия и действия в спецификации.
2)Вписать действия и условия в таблицу.
3)В нумерованных столбцах отметить все возможные комбинации условий и выполняемых действий.
Вх. условия | 1 | 2 | 3 | 4 |
С1 | да | да | нет | нет |
С2 | да | нет | да | нет |
Решения |
|
|
|
|
D1 | 1 | 1 | 1 |
|
D2 | 2 |
| 2 | 1 |
D3 |
| 2 |
| 2 |
4)При необходимости редуцировать таблицу (если есть два столбца, у которых перечень действий совпадает и которые отличаются только результатами условий "да" и "нет" в одной строке, то такие столбцы могут быть слиты в один; в полученной строке результат действия отмечен прочерком).Проектирование спецификаций с помощью ТР заключается в задании матрицы, отображающей множество входных условий и множество решений.
1,2 - помеченные действия выполняются в указанном порядке. ТР используется преимущественно на этапе специфицирования функций ПО.На этапе проектирования отметим, что на основе ТР легко осуществить кодирование программы на языке высокого уровня.
20. Дайте определение жизненного цикла программного продукта и назовите его основные этапы при традиционной технологии разработки ПО. ЖЦ ПП определяется как совокупность последовательных состояний программного продукта (ПП) и всех действий по его преобразованию, начиная с анализа возникающей потребности автоматизации некоторых функций обработки данных до их программной реализации и включения в ПО конкретного применения.
Традиционно в ЖЦ ПП принято выделять следующие этапы:
– анализ, посредством которого осуществляется формализованное специфицирование (описание) предъявляемых к АСОИ требований, или иначе, целей ПП;
– проектирование, включающее разработку иерархической структуры разрабатываемого ПО, функциональые спецификации отдельных модулей и структуры данных БД;
– программирование или, иначе говоря, кодирование функциональных модулей;
– тестирование и отладка, в процессе которых выявляется соответствие ПП его спецификациям;
– эксплуатация и сопровождение, когда разработанное ПО функционирует в составе (или в качестве) АСОИ в конкретной области применения.
21. Назовите основные преимущества CASE- технологий по сравнению с традиционной технологией проектирования. CASE-технологии обладают следующими основными достоинствами: 1) улучшают качество создаваемого ПО за счет средств автоматического контроля, прежде всего, контроля проекта. 2) позволяют за короткое время создавать прототип будущей системы, что позволяет на ранних этапах оценить ожидаемый результат. 3) ускоряют процесс проектирования и разработки. 4) позволяют разработчику больше времени уделять творческой работе по созданию ПО, освобождая его от рутинной работы. 5) поддерживают развитие и сопровождение разработки .6) поддерживают технологии повторного использования компонент разработки. В следующей таблице сравниваются цели и содержание этапов при традиционной разработке и с применением CASE-средств.
22. В чем отличие моделей жизненного цикла (ЖЦ) программного продукта (ПП) в традиционной и CASE- технологии разработки ПО? Модель ЖЦ ПО определяет порядок выполнения этапов, а также критерии перехода от этапа к этапу.
Традиционная модель ЖЦ ПО строится по каскадному принципу (переход на следующий этап происходит после окончания работ по предыдущему этапу) или по поэтапному принципу с промежуточным контролем (с циклами обратной связи между этапами, что предполагает корректировки в процессе проектирования, но растягивает все этапы на весь период разработки).
CASE-технология базируется на спиральной модели ЖЦ ПП, суть кот в следующем. Делается упор на начальные этапы ЖЦ: анализ требований, проектирование спецификаций, предварительное и детальное проектирование. На этих этапах проверяется и обосновывается реализуемость технических решений путем создания прототипов. Все эти этапы выполняются на каждом витке спирали ЖЦ. Каждый виток спирали соответствует некоторому уровню детализации проекта Каждый следующий виток характеризуется более высокой степенью детализации создаваемого ПО. Каждый виток заканчивается тем, что уточняются цели и характеристики проекта и планируются работы следующего витка спирали. Тем самым реализуется нисходящий принцип проектирования. Специалистами отмечаются следующие преимущества спиральной модели: -накопление и повторное использование программных средств, моделей и прототипов; -ориентация на развитие и модификацию ПО в процессе проектирования; -анализ риска и издержек в процессе проектирования.
23. Перечислите основные принципы структурного программирования. Цель структурного программирования -разработка программы, которой присуща определенная структура, основанная на применении принципов структурного программирования. Перечислим эти принципы:
1)Каждый программный модуль (блок, функция, процедура) должен иметь только один вход и один выход
Это позволяет максимально упростить стыковку модулей в программе.
2)В программах рекомендуется применять 4 вида конструкций:
А) последовательность (модулей, блоков, операторов)
Б) разветвление – условный оператор
В) циклы
С предусловием с постусловием
Г) выбор из нескольких альтернатив (переключатель)
1)разработку программ рекомендуется вести сверху-вниз или по нисходящей стратегии
24. Приведите последовательность работ при тестировании ПО. В чем заключается тестирование теста? Тестирование программного обеспечения охватывает целый ряд видов деятельности, аналогичных последовательности процессов разработки программного обеспечения. В него входят:
а) постановка задачи для теста,
б) проектирование теста,
в) написание тестов,
г) тестирование тестов,
д) выполнение тестов,
е) изучение результатов тестирования.
Решающую роль играет проектирование тестов. Возможен целый ряд подходов к стратегии проектирования тестов. Полное тестирование программы невозможно. Тест для любой программы будет обязательно неполным, то есть тестирование не гарантирует отсутствие всех ошибок. Стратегия проектирования тестов заключается в том, чтобы попытаться уменьшить эту неполноту насколько это возможно. При этом ключевым вопросом является следующий: какое подмножество всех возможных тестов имеет наивысшую вероятность обнаружения ошибок при ограничении времени, трудовых затратах, стоимости, машинном времени и т.п.Как правило, исчерпывающее тестирование для всех входных данных программы неосуществимо, поэтому ограничиваются меньшим. При этом исходят из максимальной отдачи теста по сравнению с затратами на его создание. Она измеряется вероятностью того, что тест выявит ошибки, если они имеются в программе. Затраты измеряются временем и стоимостью подготовки, выполнения и проверки результатов теста.
25. Какие схемы применяются при документировании проекта разработки ПО, согласно ГОСТ 19.701-90? Схема - графическое представление определения, анализа или метода решения задачи, в котором используются символы для отображения операций, данных, потока, оборудования и т.д.
С

хемы состоят из символов, краткого пояснительного текста и соединяющих линий.
При документировании проекта разработки ПО применяют схемы: - работы системы, в которой формализуется процесс выполнения программы, взаимодействие с пользователем и данными; - программ (или иначе блок-схем), в которых формализуется алгоритм обработки данных; - данных, в которых уточняются потоки данных между процессами и (или) носителями данных; - взаимодействия программ, отображающих путь активации программ и взаимодействий с данными; - ресурсов системы, отображающих конфигурацию блоков данных и обрабатывающих блоков, требуемую для решения задачи или набора задач.
27. Отметьте правильные утверждения и дайте необходимые пояснения. Редуцирование таблицы решений заключается в:
а) увеличении количества действий программы (повышении степени детализации действий);
б) уменьшении количества условий для входных действий (объединении условий);
в) уменьшении количества столбцов таблицы путем объединения некоторых столбцов. Ответ: в 28. Приведите двумерную матрицу, которая в памяти ЭВМ хранится в виде следующего нелинейного списка:
Решение:
-1 | 0 | 0.7 | 0 | 0 |
0 | 1 | 0 | 0 | 1.4 |
0 | 0 | 1 | -1 | 0 |
0 | 0 | 0 | 1.76 | 0 |
1.5 | 0 | 0 | 0 | 1 |
29. Назовите группы символов, которые используются в схемах проектов ПО согласно ГОСТ, и приведите примеры таких символов. 26 билет Символы данных, символы процесса, символы линий и специальные символы
30 Дайте краткие определения принципов, на которых базируется объектно-ориентированное программирование (ООП)? Основными свойствами ООП являются инкапсуляция, наследование и полиморфизм.
Под
инкапсуляцией понимается сокрытие данных и операций АТД (абстрактные типы данных) от внешних программ, использующих их.
Наследование - это средство получения новых типов данных (классов) из уже существующих типов, называемых базовыми классами. При этом повторно используется существующий код. Порождённый класс образуется из базового путем добавления или изменения кода. Различают единичное наследование, когда имеется только один базовый класс, и множественное наследование, когда базовых классов несколько. Наследование напрямую связано с идеей многократного использования или универсальности, программных компонент. Единожды разработав конструкцию такого компонента, в дальнейшем на ее основе можно строить новые компоненты, не переделывая того, что уже было заложено в старую.
Полиморфизм (множество форм) - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных. Например, если аргументы оператора целого типа, то используется целочисленное деление. Если же один или оба аргумента - значения с плавающей точкой, то используется деление с плавающей точкой. Таким образом, некая величина, переменная или выражение, принадлежащее в данном языке одному типу, называется
мономорфной. Если же одно и то же значение может принадлежать разным типам, то налицо полиморфизм.
31. Определите, какие из перечисленных ниже объектов относятся к типам данных, а какие - к структурам данных. а)список
б)указатель
в) вектор
г)символ
д) целое
е) массив
ж)стек
з)таблица
к) логическое
л) очередь
Типы данных : б, г, д, к.
Структуры данных: а, в, е ,ж, з, л.
35. Пусть в таблице решений описаны n условий для входных данных и m действий программы, тогда кол-во столбцов в ней равно а) 2
n; б)2
m; в)2
n+m; г) abs (n-m).
Ответ: а. 26. Укажите назначение схем программ (что они отражают) и классы (группы) символов, применяемых в этих схемах (согласно ГОСТ 19.701-90) Схемы программ отображают последовательность операций в программе. Схема программы состоит из: -символов процесса, указывающих фактические операции обработки данных;-линейных символов для указания потока управления;-специальных символов.
Символы данных применяют во всех видах схем за исключением схем программ. Исключение составляет символ «данные», который так же используется и в схемах программ.
1

.
Символы процесса, указывающих фактические опе-рации обработки данных Символ «ручная операция» не применяют в схемах программ. Символ «решение» используют только в схемах программ.
2.
Линейные символы
3.
Специальные символы
36. Отнесите перечисленные символы к соответствующим классам: Классы: 1) Символы процесса
2) Символы данных
3) Специальные символы Символы: а)процесс
б)границы цикла
г)запоминающее устройство с прямым доступом
д) терминатор
е) ручной ввод
ж) документ
з)ручная операция
и) соединитель
к) решение
л) подготовка
1: а, б, з, к, л
2: г, е, ж 3: д, и
32. Отметьте правильные утверждения относительно массива и таблицы: 1) таблица является обобщением двумерного массива, в которой свойство однотипности элементов выполняется для столбцов таблицы;
2) логические структуры массива в разных языках программирования не отличаются;
3) элементами массива являются данные одного типа;
4) физическая структура массива, представленного в разных языках программирования одинакова;
5) поиск элементов таблицы производится по индексам;
6) элементами таблицы являются записи, представляющие совокупность полей;
7) в таблице осуществляется доступ к записи по ключу.
Ответ: 1, 2, 3, 6, 7.33. Отметьте правильные утверждения относительно тестирования по методу эквивалентного разбиения: 1) разрабатываются индивидуальные тесты для каждого правильного и неправильного класса эквивалентности;
2) разрабатываются индивидуальные тесты для каждого неправильного класса эквивалентности;
3) разрабатывается минимальное количество тестов, покрывающих все правильные классы эквивалентности;
4) разрабатывается минимальное количество тестов, покрывающих все неправильные классы эквивалентности.
5) если входное условие описывает диапазон значений, то определяется один правильный класс эквивалентности (в диапазоне значений) и один неправильный класс (за пределами диапазона значений);
6) если входное условие описывает множество входных значений, то определяются правильные классы эквивалентности для каждого значения и один неправильный класс, не совпадающий ни с одним из множества значений.
Ответ: 2, 3, 6.34. Перечислите правильные утверждения: 1)методы стратегии ‘черного ящика’ позволяют проверить соответствие программ их внешним спецификациям;
2) методы стратегии “белого ящика” проектируются на основе внешних спецификаций программ или модулей;
3) методы стратегии “белого ящика” проверяют соответствие программы алгоритму обработки информации;
4) методы стратегии “черного ящика” предназначены для проверки “что делает программа”, а методы стратегии “белого ящика” предназначены для анализа “как программа обрабатывает исходные данные”;
5) методы стратегии “черного ящика” анализируют логику программы.
Ответ:1, 3, 4.
1. Раскройте содержание предварительного и детального внешнего проектирования ПО