Шпоры к ГОСу по технологии программирования - файл n7.doc

приобрести
Шпоры к ГОСу по технологии программирования
скачать (1907 kb.)
Доступные файлы (8):
n1.doc2130kb.24.05.2004 15:20скачать
n2.doc56kb.05.05.2004 21:15скачать
n3.doc2175kb.25.05.2004 18:45скачать
n4.doc2205kb.25.05.2004 20:07скачать
n5.doc2130kb.24.05.2004 14:49скачать
n6.doc2156kb.24.05.2004 15:48скачать
n7.doc3642kb.05.05.2004 03:21скачать
n8.doc2082kb.07.05.2004 02:38скачать

n7.doc

Технология программирования

1. Раскройте содержание предварительного и детального внешнего проектирования ПО.

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

Следует отметить, что наиболее общей рекомендацией для этого этапа является структурирование (декомпозиция) целей программного продукта по схеме: основные цели —> подцели 1-го уровня. . . —>. . . подцели i-го уровня —>. . . . . —> подцели n-го уровня —> функции для пользователя ПО.

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

Детальное внешнее проектирование

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

- текстовое описание,

- структурированный естественный язык,

- таблица решений,

- дерево решений,

- визуальный язык,

- блок-схема,

- алгоритмический язык программирования.

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

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

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

Структурным анализом принято называть такое исследование системы, которое начинается с ее общего обзора и затем детализируется, приобретая иерархическую структуру с все большим числом уровней. Для таких методов характерно разбиение на уровни абстракции с ограничением числа элементов на каждом из уровней (обычно от 3 до 6-7). В технологии программирования эта идея была сформулирована как один из принципов структурного программирования: разработку программ рекомендуется вести сверху-вниз или, иначе, по нисходящей стратегии. Внешние спецификации :

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

Какие этапы включает проектирование логики программного модуля?

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

Этапы проектирования программного модуля:

  1. кодирование алгоритма обработки и преобразования информации на каком-либо языке программирования

  2. отладка модуля

  3. тестирование модуля

Принципы:

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

  2. хороший модуль снаружи проще, чем изнутри

  3. хороший модуль проще использовать, чем построить

Для качественной характеристики модулей введены 7 классов точности и 5 видов сцеплений.

Классы точности:

  1. прочность по совпадению

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


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

  2. прочность по классу – модуль выполняет несколько функций, отнесенных разработчиком к одному классу.

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

  4. коммуникационно-прочный модуль – нем все функции связаны по данным.

  5. информационная прочность – модуль выполняет несколько функций над одной и той же процедурой.

  6. функциональная прочность – модуль выполняет одну функцию.

Виды сцеплений:

  1. Сцепление по содержимому –модуль ссылается на содержимое другого модуля

  2. Сцепление по общей области модуль ссылается на одну и ту же глобальную структуру данных.

  3. Сцепление по управлению – один модуль управляет функционированием другого.

  4. Сцепление по формату – модуль ссылается на одну и ту же структуру данных.

  5. Сцепление по данным – передаваемые параметры – простые, неструктурированные данные.


В чем суть нисходящего проектирования программных модулей.

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

Основные преимущества такого подхода:

  1. достаточно наглядное представление о будущем программном продукте (ПП)

  2. на нем просматривают основные функции выполняемой системы

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

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

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

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

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

4. Назовите цель и перечислите принципы модульного программирования.

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

Модуль – это программа, обладающая тремя основными атрибутами:

  1. он выполняет одну или несколько функций;

  2. модуль реализует некоторую логику (алгоритм).

  3. используется в одном или нескольких контекстах.

При этом функция – это то, что делает модуль, а не то, как он это делает. А вот логика характеризует, как модуль выполняет свои функции. Контекст описывает конкретное применение.

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

а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);

б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).
5. В чем отличие отладки и тестирования программ?

Какие методы применяются на этих этапах?

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

А) эквивалентного разбиения

Б) метод граничных условий

В) метод функциональных диаграмм

Стратегия "белого ящика" - проверка пути каждой ветви алгоритма.

При этом внешняя спецификация во внимание не принимается. Тестирование по принципу "белого ящика" характеризуется степенью, какой тесты выполняют или покрывают логику (исходный текст программы). Методы: 1) Покрытия операторов (выполнение каждого оператора программы хотя бы один раз). 2)Покрытия решений (покрытия переходов) (должно быть написано достаточное число тестов, такое, что каждое направление перехода должно быть реализовано по крайней мере один раз). 3) Покрытия условий (записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз). 4) Критерий решений (условий)(достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и , кроме того, каждой точке входа передавалось управление по крайней мере один раз). 5) Комбинаторного покрытия условий (создание такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз).

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

6. Перечислите основные стратегии тестирования. Какие известные Вам методы реализуют каждую из стратегий?

Две основные стратегии тестирования:

1)стратегия "белого ящика" - проверка пути каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается.

Методы:

1) Покрытия операторов (выполнение каждого оператора программы хотя бы один раз). 2)Покрытия решений (покрытия переходов) (должно быть написано достаточное число тестов, такое, что каждое направление перехода должно быть реализовано по крайней мере один раз). 3) Покрытия условий (записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз). 4) Критерий решений (условий)(достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и , кроме того, каждой точке входа передавалось управление по крайней мере один раз). 5) Комбинаторного покрытия условий (создание такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз).

2) стратегия «черного ящика» – проверить соответствует ли программа внешним спецификациям. При этом логика модуля совершенно не принимается во внимание

Методы:

А) эквивалентного разбиения – разработка теста осуществляется в два этапа:

1). Выделение классов эквивалентности – выделяют правильные и неправильные классы, разбиение на которые подчиняются следующим правилам:

- если входное условие описывает область значений, например, “целое данное может принимать значения от 1 до 999, то определяется один правильный класс эквивалентности (1значение целого данного  999) и два неправильных (значение целого данного<1 и значение целого данного>999);

- если входное условие описывает число значений, например, “в автомобиле могут ехать от одного до шести человек”, то определяется один правильный класс эквивалентности и два неправильных (ни одного и более 6 человек);

- если входное условие описывает множество входных значений (например, “известными способами передвижения являются: на автобусе, грузовике, такси, пешком или на мотоцикле”), то определяются правильные классы эквивалентности для каждого значения (таких “правильных” классов эквивалентности должно быть 5, по числу возможных способов передвижения) и один неправильный (например, “на прицепе”);

- если входное условие описывает ситуацию “должно быть” (например, “первым символом идентификатора должна быть буква”), то определяется один правильный класс эквивалентности (первый символ - буква) и один неправильный (первый символ - не буква);

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

2). построение теста:

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

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

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

Б) метод граничных условий

Анализ граничных значений отличается от эквивалентного разбиения в двух отношениях:

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

- при разработке тестов рассматривают не только входные условия (пространство входов), но и пространство результатов, то есть выходные классы эквивалентности.

В) метод функциональных диаграмм – они строятся подобно классам эквивалентности их построение заканчивается преобразованием диаграмм в таблицу решений по которой составляется столько тестов, сколько столбцов в таблице

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

7. Дайте определения основных типов данных и назовите операции их обработки.

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

Типы данных:

  1. Целое – множество целых чисел в диапазоне сетки ЭВМ.

Операции: +, – , mod, max, min, возведение в целую степень, определение следующего или предыдущего по значению чисел.

  1. Действительные – множество вещественных чисел в диапазоне их представления в разрядной сетке ЭВМ.

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

  1. Символьный – данные типа строка – включает множество символов или литер доступных конкретной ЭВМ.

Типовые операции: операция читать и писать.

  1. Логический (BOOLEAN) принимает логические значения true иил false.

Операции: конъюнкция (и), дизъюнкция (или), отрицание (не), исключающее или, импликация, эквивалентность. Кроме того, логическое значение является результатом выполнения операций (<, >,=, <=, >=, не равно) над целыми и вещественными числами, символьными и другими данными, над которыми эти операции имеют смысл.

  1. указательный представляет собой множество адресов данных в пределах объема памяти ОЗУ (количество адресуемых байтов, слов). Типичными операциями над такими данными являются операции присвоения адреса памяти или присвоение значения другого указателя.


8. Дайте определение структуры данных и приведите пример.

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

Структуру данных можно определить, как S=(D,R),

где D- множество элементов данных, R-множество отношений (связей) между элементами данных.

Важный признак структуры – ее изменчивость. По этому признаку различают структуры статические, полустатические и динамические. В зависимости от характера взаимного расположения элементов в памяти ЭВМ структуры делят на структуры данных с последовательным расположением элементов в памяти (вектор, массив, стек, очередь) и структуры с произвольным распределением – (односвязные, двусвязные, ассоциативные списки).
9. Дайте определения статических структур данных. Каковы их отличительные особенности?

Списком называется линейно упорядоченная последовательность данных:

Е(1), Е(2), … Е(n), где n>0, причем Е(I) характеризуется одним и тем же набором полей (I= 1,..,n). Если элементы расположены в памяти ЭВМ последовательно и не содержат указателей, то список называется линейным.

Если n = const , то линейный список представляет собой статическую структуру.

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

Вектор – конечное упорядоченное множество простых данных или скаляров одного и того же типа. Между элементами вектора существуют единственные отношения следования.

Массив – вектор, каждый элемент которого вектор В свою очередь элементы вектора “вектора массива” могут быть вектором (3-х и более мерные массивы). Точным является скалярное определение массива: к-мерным массивом называется конечное упорядоченное множество (к-1) мерных массивов, все элементы которых принадлежат одному и тому же типу. При к=1 получаем вектор.

Запись – конечное упорядоченное множество элементов, характеризующихся различным типом данных. Элементы записи – поля.

Таблицы – Записи разных уровней, обобщенный вид массива, поля выбираются таким образом, чтобы значение кода в нем было уникальным. Запись в таблицу осуществляется по ключу, который м.б. простым или сцепленным.
10. Дайте определения полустатических структур данных. Каковы их отличительные особенности?

Списком называется линейно-упорядоченная последовательность элементов данных E(1),E(2)…E(n), где n>0,причем каждый элемент E(i) характеризуется одним и тем же набором полей. Такой список называют линейным списком из-за линейной упорядоченности элементов. Упорядоченность элементов списка может быть задана неявно путем последовательного расположения его элементов как в логической структуре, так и в памяти ЭВМ (т.е физической структуре данных). Список с таким неявным заданием упорядоченности в логической и физической структурах называют еще последовательным линейным списком.

При n=Var последовательный линейный список представляет собой структуру, не обладающую свойством постоянства. Однако, хотя n=Var, максимальное значение n задается явно и ограничивает длину списка. Такие структуры называют полустатические.

Полустатические структуры данных- это последовательные линейные списки с переменной длиной, ограниченной фиксированной максимальной величиной и с ограниченным доступом. К таким структурам относятся стеки и очереди.

Стек - такой последовательный линейный список с переменной длиной, включение и исключение элементов из которого выполняется только с одного конца списка. Известно и другое название стека – магазин. Иногда стек называют еще очередью, функционирующей по принципу LIFO (Last- In-First- Out –последним пришел – первым вышел). Для хранения стека в памяти ЭВМ отводится сплошная область памяти ограниченного объема. Если в процессе заполнения стека указатель выходит за отведенные границы стека, то происходит переполнение стека и включение нового элемента становится невозможным.

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

Очередь функционирует по принципу – FIFO (First-In-First-Out-первым пришел, первым вышел).

11. Перечислите особенности динамических структур данных.

Основные признаки:

  1. Непостоянство, непредсказуемость размера динамической структуры. Размер-это число элементов структуры в процессе ее обработки. Число элементов динамической структуры может изменяться от 0 до некоторого значения, определяемого спецификой задачи или доступным размером машинной памяти.

  2. Отсутствие физической смежности элементов структуры в физической памяти ЭВМ.

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

Вектор – конечное упорядоченное множество простых данных или скаляров одного и того же типа.

Массивом называют такой вектор, каждый элемент которого вектор.

Таблица - конечное упорядоченное множество записей, имеющих одну и ту же организацию

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

Отличие массива от таблицы: доступ осуществляется не с помощью индексов, а по ключу, и целью доступа служит не отдельное данное, а запись.


Массив

Таблица

Поиск по индексу

Поиск по ключу

Цель поиска:

Цель поиска

Элемент

Запись


13. В чем отличие стратегий тестирования и какие практические рекомендации можно дать по их применению?

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

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

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

Рекомендуется следующая процедура разработки тестов:

- разрабатывать тесты используя методы стратегии “черного ящика”;

- дополнительное тестирование, используя методы стратегии “белого ящика”.

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

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

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

Логическая структура может быть изображена так:

-пустой указатель, означает конец списка.
Физическая структура списка может быть такой :





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

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

В линейном двусвязном списке любой элемент состоит из 3-х составляющих:


Указатель 1(прямой указатель) адресует следующий элемент в списке, указатель 2 (обратный указатель) – адресует предыдущий элемент списка.

Логическая структура двусвязного списка:





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

В этом случае доступ к списку возможен как с начала списка, так и с его конца.




19. Что такое таблица решений? Назовите этапы создания ПО, при выполнении которых могут быть применены такие таблицы.

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

ТР состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа ‘да-нет’. Нижняя часть ТР используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Левая часть ТР содержит собственно описание условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место.

Методика построения ТР:

  1. Определить все условия и действия в спецификации.

  2. Вписать действия и условия в таблицу.

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

  4. При необходимости редуцировать таблицу (если есть два столбца, у которых перечень действий совпадает и которые отличаются только результатами условий "да" и "нет" в одной строке, то такие столбцы могут быть слиты в один; в полученной строке результат действия отмечен прочерком).

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

Вх. условия

1

2

3

4

С1

да

да

нет

нет

С2

да

нет

да

нет

Решения













D1

1

1

1




D2

2




2

1

D3




2




2

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

ТР используется преимущественно на этапе специфицирования функций ПО.

На этапе проектирования отметим, что на основе ТР легко осуществить кодирование программы на языке высокого уровня.
20. Дайте определение жизненного цикла программного продукта и назовите его основные этапы при традиционной технологии разработки ПО.

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

Традиционно в ЖЦ ПП принято выделять следующие этапы:

– анализ, посредством которого осуществляется формализованное специфицирование (описание) предъявляемых к АСОИ требований, или иначе, целей ПП;

– проектирование, включающее разработку иерархической структуры разрабатываемого ПО, функциональные спецификации отдельных модулей и структуры данных БД;

– программирование или, иначе говоря, кодирование функциональных модулей;

– тестирование и отладка, в процессе которых выявляется соответствие ПП его спецификациям;

– эксплуатация и сопровождение, когда разработанное ПО функционирует в составе (или в качестве) АСОИ в конкретной области применения.
21. Назовите основные преимущества CASE- технологий по сравнению с традиционной технологией проектирования.

CASE-технологии обладают следующими основными достоинствами: 1) улучшают качество создаваемого ПО за счет средств автоматического контроля, прежде всего, контроля проекта. 2) позволяют за короткое время создавать прототип будущей системы, что позволяет на ранних этапах оценить ожидаемый результат. 3) ускоряют процесс проектирования и разработки. 4) позволяют разработчику больше времени уделять творческой работе по созданию ПО, освобождая его от рутинной работы. 5) поддерживают развитие и сопровождение разработки .6) поддерживают технологии повторного использования компонент разработки.

В следующей таблице сравниваются цели и содержание этапов при традиционной разработке и с применением CASE-средств.

Традиционная разработка

CASE-технология

Основные усилия - на

кодирование и тестирование

Основные усилия - на анализ

и проектирование

‘Бумажные’ спецификации

Быстрое итеративное

прототипирование

Ручное кодирование

Автоматическая кодогенерация

Ручное документирование

Автоматическая генерация

документации

Тестирование кодов

Автоматический контроль

проекта

Сопровождение кодов

Сопровождение спецификаций

проектирования




22. В чем отличие моделей жизненного цикла (ЖЦ) программного продукта (ПП) в традиционной и CASE- технологии разработки ПО?

Модель ЖЦ ПО определяет порядок выполнения этапов, а также критерии перехода от этапа к этапу.

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

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


23. Перечислите основные принципы структурного программирования.

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

  1. Каждый программный модуль (блок, функция, процедура) должен иметь только один вход и один выход


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

  1. В программах рекомендуется применять 4 вида конструкций:

А) последовательность (модулей, блоков, операторов)


Б) разветвление – условный оператор

+да


-нет
В) циклы

С предусловием с постусловием





Р



+

Р









-

for while
Г) выбор из нескольких альтернатив (переключатель)




1

I

n

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


Компоненты 1-го уровня




Уровень функций
ПО структурируется по схеме:

ПО компоненты 1-го уровня –> … –> компоненты i-го уровня –> функции (до тех пор пока конец компонентов уровня становится очевидным)

Основные достоинства струкрур. програм-я – это повышение эффективности разработки ПО. Введение структ. прогр-я сделала работу проекта более строгой, последовательной и более конструктивной. В наиболее конструктивном виде эти принципы выражаются в case-технологиях.
24. Приведите последовательность работ при тестировании ПО. В чем заключается тестирование теста?

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

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

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

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

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

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

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

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

Как правило, исчерпывающее тестирование для всех входных данных программы неосуществимо, поэтому ограничиваются меньшим. При этом исходят из максимальной отдачи теста по сравнению с затратами на его создание. Она измеряется вероятностью того, что тест выявит ошибки, если они имеются в программе. Затраты измеряются временем и стоимостью подготовки, выполнения и проверки результатов теста.
25. Какие схемы применяются при документировании проекта разработки ПО, согласно ГОСТ 19.701-90?

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

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

При документировании проекта разработки ПО применяют схемы:

- работы системы, в которой формализуется процесс выполнения программы, взаимодействие с пользователем и данными;

- программ (или иначе блок-схем), в которых формализуется алгоритм обработки данных;

-
данных, в которых уточняются потоки данных между процессами и (или) носителями данных;

- взаимодействия программ, отображающих путь активации программ и взаимодействий с данными;

- ресурсов системы, отображающих конфигурацию блоков данных и обрабатывающих блоков, требуемую для решения задачи или набора задач.
26. Укажите назначение схем программ (что они отражают) и классы (группы) символов, применяемых в этих схемах (согласно ГОСТ 19.701-90)

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

Схема программы состоит из:

-символов процесса, указывающих фактические операции

обработки данных;

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

-специальных символов.

Символы данных применяют во всех видах схем за исключением схем программ. Исключение составляет символ «данные», который

так же используется и в схемах программ.



1.Символы процесса, указывающих фактические операции

обработки данных


Символ «ручная операция» не применяют в схемах программ. Символ «решение» используют только в схемах программ.

2.Линейные символы


3. Специальные символы



  1. 27. Отметьте правильные утверждения и дайте необходимые пояснения.

Редуцирование таблицы решений заключается в:

а) увеличении количества действий программы (повышении степени детализации действий);

б) уменьшении количества условий для входных действий (объединении условий);

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

Ответ: в


28. Приведите двумерную матрицу, которая в памяти ЭВМ хранится в виде следующего нелинейного списка:


2



















>

1

-1




>

3

0.7

X




























2
















>

2

1




>

5

1.4

Х




























2
















>

3

1

X

>

4

-1

Х






















1
















>

4

1.76

Х








































2













Х

>

1

1.5




>

5

1

X


Решение:

-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



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

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

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

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

Полиморфизм (множество форм) - средство для придания различных значений одному и тому же сообщению в зависимости от типа обрабатываемых данных. Например, если аргументы оператора целого типа, то используется целочисленное деление. Если же один или оба аргумента - значения с плавающей точкой, то используется деление с плавающей точкой. Таким образом, некая величина, переменная или выражение, принадлежащее в данном языке одному типу, называется мономорфной. Если же одно и то же значение может принадлежать разным типам, то налицо полиморфизм.
31. Определите, какие из перечисленных ниже объектов относятся к типам данных, а какие - к структурам данных.

а)список б)указатель в) вектор г)символ д) целое е) массив ж)стек з)таблица к) логическое л) очередь

Типы данных : б, г, д, к.

Структуры данных: а, в, е ,ж, з, л.
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.

35. Пусть в таблице решений описаны n условий для входных данных и m действий программы, тогда количество столбцов полной таблицы решений равно:

а) ;

б) ;

в) ;

г) abs (n-m).

Ответ: а.
36. Отнесите перечисленные символы к соответствующим классам:

Классы: 1) Символы процесса 2) Символы данных3) Специальные символы

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

1: а, б, з, к, л

2: г, е, ж

3: д, и

Технология программирования
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации