Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2.doc
Скачиваний:
33
Добавлен:
22.05.2015
Размер:
1.1 Mб
Скачать

Лабораторная работа № 2 Структурный подход к программированию. Стадия «Эскизный проект»

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

Лабораторная работа рассчитана на 4 академических часа.

Подготовка к лабораторной работе:

  1. Ознакомиться с лекционным материалом по теме "Этапы разработки программного обеспечения. Анализ требований и определение спецификаций программного обеспечения" учебной дисциплины "Технология разработки программного обеспечения".

  2. Изучить соответствующие разделы в изданиях [1, 2].

Теория:

Анализ требований и определение спецификаций при структурном подходе

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

  • спецификаций процессов;

  • словаря терминов;

  • диаграмм переходов состояний (STD – State Transition Diagrams), характеризующих поведение системы во времени;

  • функциональных диаграмм (методология SADT);

  • диаграмм потоков данных (DFD – Data Flow Diagrams), описывающих взаимодействие источников и потребителей информации через процессы, которые должны быть реализованы в системе;

  • диаграмм «сущность-связь» (ERD – Entity-Relationship Diagrams), описывающих базы данных разрабатываемой системы.

  1. Спецификации процессов

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

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

  • линейная структура – выполнение операторов последовательно;

  • разветвленная структура – в зависимости от выполнения некоторого условия выполняется та или иная последовательность операторов;

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

1.1. Схемы алгоритмов

Для изображения схем алгоритмов разработан ГОСТ 19.701-90 (см. табл. 1)

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

  • следование – обозначает последовательное выполнение действий (рис. 1 а);

Таблица 1. Обозначения блоков в схемах алгоритмов программ

Название

Обозначение

Назначение

Терминатор

Начало, завершение программы или подпрограммы

Процесс

Обработка данных (вычисления, пересылки и т. п.)

Данные

Операции ввода-вывода

Решение

Ветвление, выбор, поисковые и итерационные циклы

Подготовка

Счетные циклы

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

Конец

Любые циклы

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

Вызов процедур

Соединитель

Маркировка разрывов линий

Комментарий

Пояснения к операциям

  • ветвление – соответствует выбору одного из двух вариантов действий (рис. 1, б);

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

Рис 1. Базовые алгоритмические структуры:

а - следование; б - ветвление; в - цикл-пока

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

  • выбор – обозначает выбор одного варианта из нескольких в зависимо­сти от значения некоторой величины (рис. 2, а);

  • цикл-до – обозначает повторение некоторых действий до выполнения заданного условия, проверка которого осуществляется после выполнения действий в цикле (рис. 2, б);

  • цикл с заданным числом повторений (счетный цикл) – обозначает по­вторение некоторых действий указанное количество раз (рис. 2, в).

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

EMBED Visio.Drawing.6

Рис. 2. Дополнительные структуры алгоритмов:

а - выбор; б - цикл-до; в - цикл с заданным числом повторений

Пример схемы алгоритма с использованием базовых и дополнительных алгоритмических структур приведен на рис. 3:

Рис. 3. Пример схемы алгоритма поиска максимального элемента массива

1.2. Псевдокоды.

Псевдокод – формализованное текстовое описание алгоритма (текстовая нотация). В литературе были предложены несколько вариантов псевдокодов. Один из них приведен в табл. 2.

Таблица 2 Псевдокоды

Структура

Псевдокод

Структура

Псевдокод

Следование

<Действие1>

<Действие2>

Выбор

Выбор <код>

<код1>:<Действие1>

<код2>: <Действие2>

Все-выбор

Ветвление

Если <Условие>

то <Действие1>

иначе <Действие2>

Все-если

Цикл с заданным количеством повторений

Для <индекс> =

<n>,<k>,<h>

<Действие>

Все-цикл

Цикл-пока

Цикл-пока <Условие>

<Действие>

Все-цикл

Цикл-до

Выполнять

<Действие>

До <Условие>

Пример алгоритма поиска нужных значений, записанного псевдокодом:

Программа

Цикл-пока не конец файла

Прочитать запись

Сравнить заданные поля с критерием поиска

Если совпали

Сохранить в выходной список

Конец-если

Конец-цикл

Вывод результирующего списка

Конец-программа