- •Лекция 3. Модели решения функциональных и вычислительных задач. Основные понятия.
- •Классификация видов моделирования:
- •Математические модели.
- •Информационные модели.
- •Основы алгоритмизации. Понятие алгоритма и его свойства.
- •Способы описания алгоритмов.
- •Основные алгоритмические структуры:
- •1.Линейная структура:
- •2.Разветвляющеяся структура:
- •3.Циклическая структура:
- •4. Рекурсивная структура:
Информационные модели.
Информационные модели во многих случаях опираются на математические модели, так как при решении задач математическая модель исследуемого объекта, процесса или явления неизбежно преобразуется в информационную для ее реализации на компьютере.
Основные понятия информационной модели:
- информационный объект – описание реального объекта, процесса или явления в виде совокупностей его характеристик (информационных элементов);
- реквизиты – характеристики (или информационные элементы) реального объекта;
- тип (или класс) – совокупность объектов определенной структуры (реквизитного состава);
- экземпляр – информационный объект с конкретными характеристиками;
- ключ (ключевой реквизит) – идентификационный номер экземпляра.
Информационная модель – связанная совокупность информационных объектов, описывающих информационные процессы в исследуемой области. Информационные модели подразделяются на:
- универсальные модели, предназначенные для использования в различных предметных областях (базы данных, системы управления базами данных, автоматизированные системы управления, базы знаний, экспертные системы);
- специализированные модели предназначены для описания конкретных систем.
В отличие от многих инженерных дисциплин, при проектировании программного обеспечения (ПО) не существует методов прогнозирования результата и нет регламентированных моделей. Тем не менее программное обеспечение со временем становится все более объемное, и универсальное.
Рассмотрим основные модели разработки программного обеспечения:
Метод «водопада»:
При данной модели каждый этап проекта завершается до начала следующего и не осуществляется возврата к предыдущему этапу.
Данный метод может быть проверен только на стадии тестирования, поэтому при возникновении ошибок на любой из стадий придется начинать сначала, и повторять все стадии.
Поэтому метод «водопада» был улучшен введением временных прототипов:
Данная модель позволяет проверять только некоторые части общего программного обеспечения (в основном это интерфейс) до прохождения всех стадий модели.
Третья наиболее поздняя спиральная модель:
В данной модели жизненный цикл ПО не заканчивается (как в предыдущих двух), а продолжается его модернизация, на что и указывает спираль. Анализ рисков состоит в определении затрат, в случае ошибок, допущенных на первом этапе. Для снижения рисков могут дополнительно создаваться дополнительные временные прототипы. По данной модели на сегодняшний день разрабатывается большая часть программного обеспечения.
Основы алгоритмизации. Понятие алгоритма и его свойства.
Понятие алгоритма, являющееся фундаментальным в математике и информатике, возникло в средние века задолго по появления средств вычислительной техники. Первоначально под алгоритмом понимали способ выполнения арифметических действий над десятичными числами. В дальнейшем это понятие стали использовать для обозначения любой последовательности действий, приводящей к решению поставленной задачи.
Алгоритм– описанная на некотором языке точная конечная система правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых дает решение поставленной задачи.
Любой алгоритм существует не сам по себе, а предназначен для определенного исполнителя. Совокупность команд, которые умеет выполнять исполнитель, называется системой команд исполнителя. Объекты, над которыми исполнитель может совершать действия, образуют среду исполнителя.
Алгоритм характеризуется следующими свойствами: дискретностью, массовостью, определенностью, результативностью, формальностью.
Дискретность(разрывность) – свойство алгоритма, характеризующее его структуру: каждый алгоритм состоит из отдельных законченных действий.
Массовость– применимость алгоритма ко всем задачам рассматриваемого типа, при любых исходных данных.
Определенность(детерминированность, точность) – свойство алгоритма, указывающее на то, что каждый шаг алгоритма должен быть строго определен и не допускать различных толкований; также строго должен быть определен порядок выполнения отдельных шагов.
Результативность– свойство, состоящее в том, что любой алгоритм должен завершаться за конечное число шагов.
Формальность– это свойство указывает на то, что любой исполнитель, способный воспринимать и выполнять инструкции алгоритма, действует формально, т.е. отвлекается от содержания поставленной задачи и лишь строго выполняет инструкции.