Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шпоры к государственному экзамену. / шпоры - технология программирования

.doc
Скачиваний:
38
Добавлен:
02.05.2014
Размер:
564.74 Кб
Скачать

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

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

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

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

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

Этапы проектирования программного модуля: 1. кодирование алгоритма обработки и преобразования информации на каком-либо языке программирования 2. отладка модуля 3. тестирование модуля.

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

7 классов точности и 5 видов сцеплений.

Классы точности: 1. прочность по совпадению - Если некоторые операторы многократно используются в программе, то они оформляются в виде модуля. 2. прочность по логике – при каждом вызове выполняется некоторая функция из набора функций модуля. 3. прочность по классу – модуль выполняет несколько функций, отнесенных разработчиком к одному классу. 4. процедурно-прочный модуль – модуль выполняет несколько функций, отнесенных к функциональной процедуре решения задачи.

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

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

1. Сцепление по содержимому – модуль ссылается на содержимое другого модуля 2. Сцепление по общей области - модуль ссылается на одну и ту же глобальную структуру данных. 3. Сцепление по управлению – один модуль управляет функционированием другого. 4. Сцепление по формату – модуль ссылается на одну и ту же структуру данных. 5. Сцепление по данным – передаваемые параметры – простые, неструктурированные данные.

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

Методы: 1. эквивалентного разбиения – два этапа: 1). Выделение классов эквивалентности – выделяют правильные и неправильные классы, по следующим правилам: 1. если входное условие описывает область значений, то определяется 1 правильный класс эквивалентности и 2 неправильных; 2. если входное условие описывает число значений, то определяется 1 правильный класс эквивалентности и 2 неправильных; 3. если входное условие описывает множество входных значений, то определяются правильные классы эквивалентности для каждого значения и 1 неправильный; 4. если входное условие описывает ситуацию “должно быть”,то определяется 1 правильный класс эквивалентности и 1 неправильный; 5. если есть основания считать, что различные элементы класса эквивалентности воспринимаются программой неодинаково, то данный класс эквивалентности разбивается на меньшие классы эквивалентности. 2). построение теста: - назначение каждому классу эквивалентности уникального номера; - проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности, пока все правильные классы эквивалентности не будут покрыты тестами; - запись тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности. Каждый неправильный класс эквивалентности должен быть покрыт индивидуальным тестом.

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

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

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

Целое – множество целых чисел в диапазоне сетки ЭВМ. Операции: +, – , mod, max, min, возведение в целую степень, определение следующего или предыдущего по значению чисел. Действительные – множество вещественных чисел в диапазоне их представления в разрядной сетке ЭВМ. Операции: +, -, *, /, вычисление тригонометрических функций, возведение в степень, извлечение квадратного корня, логарифмирование.

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

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

6. Дайте определение структуры данных. Назовите классы структур данных и их отличительные особенности. Структура данных – совокупность элементов данных, между которыми существуют отношения. Причем элементами структуры данных могут быть как простые типы данных, так и структуры. Структуру данных можно определить, как S=(D,R), где D- множество элементов данных, R-множество отношений (связей) между элементами данных. Статические структуры данных: вектор, массив, запись, таблицы. Вектор – конечное упорядоченное множество простых данных или скаляров одного и того же типа. Между элементами вектора существуют единственные отношения следования.

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

переменной длиной, ограниченной фиксированной максимальной величиной и с ограниченным доступом. Стек - список с переменной длиной, включение и исключение элементов из которого выполняется только с одного конца. Для хранения в памяти ЭВМ отводится сплошная область памяти ограниченного объема. Если указатель выходит за границы стека, то стек переполняется и включение нового элемента невозможно. Очередь – такой последовательный список с переменной длиной, включение элементов в который происходит с одной стороны, а исключение с другой стороны списка. Особенности динамических структур данных: Непостоянство, непредсказуемость размера динамической структуры. Размер - это число элементов структуры в процессе ее обработки. Число элементов динамической структуры может изменяться от 0 до некоторого значения, определяемого спецификой задачи или доступным размером машинной памяти. Отсутствие физической смежности элементов структуры в физической памяти ЭВМ. Логическая последовательность элементов структуры задается в явном виде с помощью одного или нескольких указателей или связок, хранящихся в самих элементах. Следовательно, память, занимаемая динамической структурой не является непрерывной и может быть хаотически разбросана в области памяти. Часто динамические структуры физически представляются в форме связных списков.

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

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

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

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

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

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

10. Дайте определение и приведите нотацию таблицы решений. Назовите этапы создания ПО, при выполнении которых могут быть применены такие таблицы. ТР - это такая внешняя спецификация ПО, в которой отражаются комбинации условий, выполняемых для входных данных, и соответствующие этим комбинациям действия по преобразованию информации. ТР состоит из двух частей. Верхняя часть таблицы используется для определения условий. Обычно условие является ЕСЛИ-частью оператора ЕСЛИ-ТО и требует ответа ‘да-нет’. Нижняя часть ТР используется для определения действий, т.е. ТО-части оператора ЕСЛИ-ТО. Левая часть ТР содержит собственно описание условий и действий, а в правой части перечисляются все возможные комбинации условий и, соответственно, указывается, какие конкретно действия и в какой последовательности выполняются, когда определенная комбинация условий имеет место. Методика построения ТР: 1. Определить все условия и действия в спецификации. 2. Вписать действия и условия в таблицу. 3. В нумерованных столбцах отметить все возможные комбинации условий и действий. 4.При необходимости редуцировать таблицу (если есть два столбца, у которых перечень действий совпадает и они отличаются только результатами условий "да" и "нет" в одной строке, то столбцы могут быть слиты в один; в полученной строке действие отмечается прочерком).

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

1,2 - помеченные действия выполняются в указанном порядке. ТР используется преимущественно на этапе специфицирования функций ПО. На этапе проектирования отметим, что на основе ТР легко осуществить кодирование программы на языке высокого уровня.

Вх. условия

1

2

3

4

С1

да

да

нет

нет

С2

да

нет

да

нет

Решения

D1

1

1

1

D2

2

2

1

D3

2

2

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

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

Методы: 1. эквивалентного разбиения – два этапа: 1). Выделение классов эквивалентности – выделяют правильные и неправильные классы, по следующим правилам: 1. если входное условие описывает область значений, то определяется 1 правильный класс эквивалентности и 2 неправильных; 2. если входное условие описывает число значений, то определяется 1 правильный класс эквивалентности и 2 неправильных; 3. если входное условие описывает множество входных значений, то определяются правильные классы эквивалентности для каждого значения и 1 неправильный; 4. если входное условие описывает ситуацию “должно быть”,то определяется 1 правильный класс эквивалентности и 1 неправильный; 5. если есть основания считать, что различные элементы класса эквивалентности воспринимаются программой неодинаково, то данный класс эквивалентности разбивается на меньшие классы эквивалентности. 2). построение теста: - назначение каждому классу эквивалентности уникального номера; - проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности, пока все правильные классы эквивалентности не будут покрыты тестами; - запись тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности. Каждый неправильный класс эквивалентности должен быть покрыт индивидуальным тестом.

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

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

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

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

13. Дайте определение CASE- технологий, назовите особенности таких технологий и укажите основные их преимущества по сравнению с традиционной технологией проектирования. CASE-технологии (Computer-Aided Software / System Engineering) - совокупность методологий анализа, проектирования, разработки и сопровождения сложных систем программного обеспечения, поддержанную комплексом взаимоcвязанных средств автоматизации. Особенность: Отделить проектирование ПО от его кодирования и последующих этапов внедрения и опытной эксплуатации.

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

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

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

15. Основные принципы структурного программирования.

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

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

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

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

В) циклы с предусловием и с постусловием

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

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

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

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

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

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

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

Символ

Наименование

Назначение

Данные

Данные без определения носителя

Предопределенный процесс

Процесс из одной или нескольких операций или шагов программы, определенных в другом месте (подпрограмме)

Подготовка

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

Решение

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

Параллельные действия

Синхронизация двух или более параллельных операций.

Граница цикла

Начало и конец цикла. Обе части имеют один и тот же идентификатор, условия для инициализации, приращения, завершения.

Линия

Пунктир

Альтернативная связь между символами и для обведения аннотированного участка.

Соединитель

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

Терминатор

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

Комментарий

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

Пропуск

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

18. Назовите группы символов, которые используются в схемах проектов ПО согласно ГОСТ, приведите примеры таких символов и укажите, в каких схемах они применяются. Схемы программ отображают последовательность операций в программе. Схема программы состоит из: 1. Символов процесса, указывающих фактические операции обработки данных 2. Линейных символов для указания потока управления 3. Специальных символов.

Символ

Наименование

Назначение

Данные

Данные без определения носителя

Предопределенный процесс

Процесс из одной или нескольких операций или шагов программы, определенных в другом месте (подпрограмме)

Подготовка

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

Решение

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

Параллельные действия

Синхронизация двух или более параллельных операций.

Граница цикла

Начало и конец цикла. Обе части имеют один и тот же идентификатор, условия для инициализации, приращения, завершения.

Линия

Пунктир

Альтернативная связь между символами и для обведения аннотированного участка.

Соединитель

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

Терминатор

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

Комментарий

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

Пропуск

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

19. Перечислите критерии качества программного продукта и дайте характеристику этих критериев.

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

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

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

20. Как определяется эффективность программного продукта? Какие способы улучшения эффективности Вы знаете?

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

  1. Замена где возможно арифметических операций менее затратными

  2. Минимизация обращений к массивам данных, т.к. линеаризация затратна для процессора

  3. Оптимизация циклов таким образом, чтобы в нем выполнялось минимальное кол-во операторов.

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