определение внешних спецификаций уравнений

Решение задачи Коши для дифференциального уравнения методом Рунге-Кутта и Адамса с автоматическим выбором шага и заданным шагом. Интерполирование табличной функции. Численное решение системы линейных алгебраических уравнений методами простой итерации.

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 15.03.2009
Размер файла 35,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Лабораторная работа №1

ОПРЕДЕЛЕНИЕ ВНЕШНИХ СПЕЦИФИКАЦИЙ ПРОГРАММ

С ПОМОЩЬЮ HIPO-ТЕХНОЛОГИИ

Цель работы: ознакомиться с методикой разработки внешних специфи-ка-ций программ, основанной на использовании HIPO-технологии проектирования программ; приобрести практические навыки определения и оформления внешних спецификаций программ.

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

Контрольные вопросы

1. Что называется спецификациями программы?

2. Кто составляет спецификации программы?

3. В чем отличие спецификации требований и функциональных спецификаций?

4. Какие языки применяются для описания спецификаций?

5. Какие вопросы следует осветить при составлении внешних спецификаций?

6. Назовите методы проверки правильности разработанных спецификаций?

7. Каковы особенности HIPO-технологии проектирования программ?

8. Как составляются IPO-диаграммы и схема состава разложения?

Методические указания

Методика разработки программ на базе структурного подхода состоит из следующих этапов:

анализ требований и определение внешних спецификаций;

проектирование алгоритмов;

кодирование алгоритмов;

тестирование и документирование программы.

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

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

язык спецификаций требований (язык технического задания);

язык функциональных спецификаций.

Языки описания требований к программному продукту почти не формали-зованы. К этому классу относятся, например, языки PSL(США), СИПЛ(СНГ) и соответствующие им транслирующие системы PSA, ADS[ ] и СИПЛ, которые автоматизируют разработку требований на ЭВМ. Анализатор этих систем, обща-ясь с заказчиком в диалоговом режиме "вопрос-ответ", проверяет ответы на не-противоречивость, полноту и в результате формирует листинг спецификаций тре-бований. Однако эти схемы не нашли широкого распространения из-за узкой специализации и необходимости выделения для их работы большого количества машинного времени. В настоящее время разрабатываются новые поколения средств системного анализа.

Языки функциональных спецификаций являются полуформальными и описывают все функции, реализуемые программой на ЭВМ. Для этой цели был разработан универсальный международный язык SDL (США) и аналогичный ему в СНГ язык PLUS. Кроме того, для малых и средних программ очень часто применяются специализированные стандарты, определяющие правила записи спецификаций с учетом специфики решаемых задач и утвердившихся традиций в технологии программирования. В любом случае внешние спецификации каждой функции должны освещать следующие вопросы.

Описание исходных данных. Должны быть точно описаны синтаксис (формат) и семантика (назначение, тип, допустимые значения, область изменения) всех исходных данных, которые вводит пользователь в программу.

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

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

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

Для проверки правильности внешних спецификаций применяют ряд мето-дов. Например, неполноту и неоднозначность спецификаций можно проверить с помощью таблицы решений [ ]. Также эффективным приемом оценки внешних спецификаций служит сквозной контроль по схеме "вход - интерпретация специ-фи-каций - выход" [ ]. В соответствии с этим методом в начале для каждой функ-ции строятся "тесты на бумаге", а затем имитируется ввод этих данных в систему и прослеживается преобразование их в соответствующие выходные данные, ис-пользуя при этом спецификации как описание поведения системы. Если специфи-кации для какого-нибудь набора входных данных недостаточно полно и правиль-но описывают выходные данные, то это означает, что обнаружена ошибка.

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

деление обьекта должно осущетвляться последовательно и сверху вниз;

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

В результате разработчик получает коплект документации: схема состава разложения и схемы (IPO-диаграммы) каждого из элементов разложения.

Исходное описание

Системы Диспетчер

Схема Состава

Номер: 0.1

Схема

состава разложения

Лист: 2

Автор: Иванов А.

Отдел: каф. ПОИС

Дата: 1.09.99

Рис. 1. Схема состава разложения

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

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

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

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

IPO-диаграмму рекомендуется чертить на бланках, применяя линейки - шаблоны. Бланк "по вертикали" делится на три зоны. Верхняя зона служит для идентификации схемы, т.е. содержит сведения о самой схеме и авторе. Во второй зоне размещается сама диаграмма, а в третьей, отводимой в нижней части бланка, помещаются комментарии к элементам схемы. Зона размещения диаграммы "по горизонтали" делится также на три части: входные данные, функции преобразо-вания (обработка) данных, выходные данные. Функции преобразования с входны-ми и выходными данными соединяются стрелками. Применяемые условные обозначения данных, путей их передачи и т.п. должны приводиться в каждом альбоме (рис. 2).

На схеме возле каждого данного пишется его имя. Записи в разделе "обработка" выполняются в формализованном виде. Используются записи двух типов: записи-функции и записи-условия.

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

Записи-условия могут быть альтернативными или итеративными.

Альтернативная запись может иметь следующий вид:

ЕСЛИ <содержательное описание условия> ТО

<запись>

ИНАЧЕ

<запись> . . .

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

ПОКА <содержательное описание условия окончания цикла>

<запись>

<запись>.

Исходное описание

Системы Диспетчер

Схема Оглавление

Номер: 0.0

Оглавление альбома

документов и условные

обозначания

Лист: 1

Автор: Иванов А.

Отдел: каф. ПОИС

Дата: 1.09.99

Обозначение

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

Лист

Примечание

0.0

0.1

1.1

2.4

Оглавление альбома документации и условные обозначения

Схема состава разложения

Автоматизировать обработку очереди

заявок по командам оператора

Удалить из очереди указанную заявку

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

1

2

3

4

5

Структурная схема (рис. 3)

Данные Связи

Данные, вводимые Передача данных

с клавиатуры

Данные, печатаемые на Слияние потоков

принтере данных

Данные на магнитном Пересечение

диске потоков данных

Единое данное Анализ данных

А Связь по управле-

Групповое данное нию внутри листа

с выделением части А А-номер или буква

Групповое данное, В Связь по управле-

состоящее из С нию между листами

нескольких В - номер листа

составляющих В С - номер элемента

С

Рис. 2. Оглавление и условные обозначения

Все записи в IPO-диаграмме индексируются наиболее удобным для разработчика способом (для ссылок). Текст каждой записи рекомендуется начинать с глагола в повелительном наклонении.

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

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

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

В альбом допускается включение документов, оформленных по другим правилам, если на них имеется ссылка в одной из схем: формы отчетов, описание входных (выходных) данных сложной структуры и т.д. Процесс составления схем является ИТЕРАТИВНЫМ!

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

расположение заявок в обратном порядке (реверс);

упорядочение заявок по возрастанию приоритета (сортировка);

удаление заявки с указанным именем из очереди (удаление);

перестановку заявки с указанным именем в начало очереди (перемещение).

Схема состава разложения и оглавление исходного описания программы показаны на рис. 1 и 2. Примеры оформления IPO-диаграмм представлены на рис. 4 и 5.

Вход Обработка Выход

п/п

Элемент

Комментарий

Схема

Номер

Лист

1

Команда

Вводимая оператором команда:

<операция> [:<имя_заявки>]

Рис. 4. IPO-диаграмма.

очередь

заявок

А

имя_заявки

заявка

В

буфер

заявок

1. Прочитать очередную заявку

из очереди

2. ЕСЛИ заявок нет

ТО закончить просмотр очереди

3. ЕСЛИ имя прочитанной заявки не

Равно указанному в команде

ТО

3.1 Занести заявку в буферный

массив записей

3.2 Счет заявок N:=N+1

4. Продолжить просмотр очереди

5. Переслать N заявок из буфера

в очередь

Заявка

Имя

Приоритет

В

буфер

заявок

N

А

очередь

заявок

п/п

Элемент

Комментарий

Схема

Номер

Лист

1

2

3

4

5

Очередь

Имя_заявки

Буфер за-

явок

Заявка

N

Последовательный файл заявок

Имя_заявки, введенное опера-

Тором

Временный массив записей

Строка: Имя Приоритет

Cчетчик заявок

Дис-петчер

1.1

3

Рис. 5. HIPO-диаграмма.

Задание к лабораторной работе

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

1.Численное решение задачи Коши для дифференциального уравнения ме-тодом Рунге-Кутта и Адамса с автоматическим выбором шага и заданным шагом.

2.Интерполирование табличной функции.

3.Численное решение системы линейных алгебраических уравнений мето-дами простой итерации, Зейделя и верхней релаксации.

4.Сглаживание функции кубическими сплайнами и многочленами средне-квадратичного приближения.

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

6.Вычисление обратной матрицы и определителей по схеме Гауса.

7.Численное решение нелинейного уравнения методами дихотамии, каса-тельных, хорд, итерации и комбинированным.

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

9.Численное решение задачи Коши для обыкновенного дифференциального уравнения методами Эйлера, Эйлера-Коши и усовершенствованным.

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

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

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

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

14.Нахождение экстремумов одномерных функций методами дихотомии, "золотого" сечения и Фибоначчи.

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

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

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

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

19.Целочисленное решение задачи линейного программирования методом Гомори.

20.Построение кратшайшего остова графа методами Краскала и Прима.

21.Решение задачи о минимальном маршруте в транспортной сети (графе) методами Дейкстры и Форда.

22.Нахождение кратчайших путей между всеми вершинами графа по алгоритму Флойда.

23.Построение Эйлерова цикла в связном неориентированном мультиграфе.

24.Решение задачи о коммивояжере методом Литтла.

25.Решение задачи о максимальном потоке в сети с одним источником и одним стоком методом Форда-Фолкерсона.

26.Подсчитать меру структурированости S=(1-G/С)*100% и меру документированности D=K/C*100% произвольной программы на языке Паскаль, где С-число строк в программе, G-число операторов GOTO в ней, К-число комментариев.

27.Имеется файл с записями Z1,Z2,...,ZN. Каждая запись имеет ключ К. Построить программу сортировки записей как по убыванию, так и по возрастанию их ключей.

28.Нахождение аналитического решения квадратного уравнения. В качестве исходной информации служит символьное представление уравнения вида Ф(Х,Х**2,А,В,С)=0.

29.Анализ вида уравнения (Ф) и приведение его к каноническому виду (ФК).

30.Проверка принадлежности (ФК) к полному квадратному уравнению и формирование формы аналитического решения.

31.Проверка принадлежности (ФК) к приведенному уравнению иформирование формы аналитического решения.

32.Проверка принадлежности (ФК) к неполным уравнениям вида АХ**2+ВХ=0, АХ**2+С=0, ВХ+С=0 и формирование аналитического решения.

Порядок выполнения работы

1.Уяснить исходную постановку задачи и вспомнить суть методов ее решения.

2.На основе системного анализа и декомпозиции разбить исходную задачу на ряд более простых подзадач (расщепление выполнять последовательно и свер-ху вниз). Составить иерархическую схему состава разложения, применяя HIPO-технологию.

3.Выполнить описание каждого элемента разложения в виде IPO-диаграммы.

4.Проверить правильность разработанных внешних спецификаций по таблице решений или по схеме "вход-интерпретация спецификаций - выход".

5.Оформить внешние спецификации программ как альбом связных схем (чертежей).

Содержание отчета

1.Постановка задачи.

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

-оглавление альбома документации и условные обозначения;

-схему состава разложения;

-набор IPO-диаграмм, реализующих элементы структуры.


Подобные документы

  • Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.

    курсовая работа [1,2 M], добавлен 15.06.2013

  • Постановка задачи, математические и алгоритмические основы решения системы линейных алгебраических уравнений. Решение системы данных уравнений методом Гаусса с выбором главного элемента по столбцу. Функциональные модели и блок-схемы решения задачи.

    курсовая работа [428,9 K], добавлен 25.01.2010

  • Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.

    курсовая работа [1,4 M], добавлен 15.08.2012

  • Рассмотрение двух способов решения систем линейных алгебраических уравнений: точечные и приближенные. Использование при программировании метода Гаусса с выбором главного элемента в матрице и принципа Зейделя. Применение простой итерации решения уравнения.

    курсовая работа [879,8 K], добавлен 05.06.2012

  • Суть метода Рунге-Кутта и его свойства. Решение дифференциальных уравнений первого порядка. Вычислительный блок Given/Odesolve. Встроенные функции rkfixed, Rkadapt, Bulstoer. Решения линейных алгебраических уравнений в среде MathCad и Microsoft Excel.

    курсовая работа [1,1 M], добавлен 02.06.2014

  • Численный метод для решения однородного дифференциального уравнения первого порядка методом Эйлера. Решение систем дифференциальных уравнений методом Рунге–Кутта. Решение краевой задачи. Уравнения параболического типа, а также Лапласа и Пуассона.

    курсовая работа [163,5 K], добавлен 27.05.2013

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

    курсовая работа [939,4 K], добавлен 16.01.2014

  • Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.

    курсовая работа [532,9 K], добавлен 14.01.2014

  • Численное решение задачи Коши для обыкновенного дифференциального уравнения первого и второго порядка методом Эйлера и Рунге-Кутты и краевой задачи для ОДУ второго порядка с применением пакета MathCad, электронной таблицы Excel и программы Visual Basic.

    курсовая работа [476,2 K], добавлен 14.02.2016

  • Применение итерационных методов численного решения системы линейных алгебраических уравнений при вычислении на ЭВМ. Математические и алгоритмические основы решения задачи, метод Гаусса. Функциональные модели и блок-схемы, программная реализация решения.

    курсовая работа [527,5 K], добавлен 25.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.