- •Введение к курсу
- •1. Понятия технологии программирования
- •1.1. Термин технологии программирования
- •1.2. Понятия традиционной архитектуры
- •1.3. Понятия традиционных языков программирования
- •1.4. Понятия формализации
- •1.5. Проблемы технологии
- •2. Команды и данные
- •1.1. Взаимодействие команд и данных
- •1.2. Особенности арифметики
- •Глава 2
1.4. Понятия формализации
Этап проектирования завершается получением документов содержащих формальную запись требований и решений по их выполнению. Есть принятые виды представления формализации:
таблицы решений;
ГОСТ 19.701-90, нотация Гейна-Сарсона, сети Петри;
UML
Таблица решений
Эта нотация подходит для формализации абстрактного исполнителя работающего по принципу конечного автомата
Состояние исходное |
Условие
|
Решение |
Состояние конечное |
1 |
<&Выключатель выключен> .eq. true |
<Лампочка горит >:= false |
1 |
1 |
<&Выключатель включен> .eq. true |
<Лампочка горит >:= true |
1 |
Пример программы для машины Тьюринга инвертирующей машинный код от текущего положения головки вправо
Состояние исходное |
Значение в ячейке |
Состояние конечное |
Направление перемещения | |
исходное |
конечное | |||
1 |
- |
- |
1 |
S |
1 |
0 |
1 |
1 |
R |
1 |
1 |
0 |
1 |
R |
Пример программы для машины Тьюринга удваивающей набор 1, если находимся в его начале
Состояние исходное |
Значение в ячейке |
Состояние конечное |
Направление перемещения | |
исходное |
конечное | |||
1 |
_ |
_ |
1 |
S |
1 |
1 |
_ |
2 |
R |
2 |
_ |
_ |
3 |
R |
2 |
1 |
1 |
2 |
R |
3 |
_ |
1 |
4 |
L |
3 |
1 |
1 |
3 |
R |
4 |
_ |
_ |
5 |
L |
4 |
1 |
1 |
4 |
L |
5 |
_ |
1 |
1 |
R |
5 |
1 |
1 |
5 |
L |
Нотации императивного подхода
Императивное программирование - технология программирования, характеризующаяся принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируемо.
Императивный подход в явную, предполагает наличие некого супервизора (среды выполнения) определяющего последовательность выполнения команд и обработки данных.
ГОСТ 19.701-90 (ISO5807-85) действует с 01.01.92 и определяет нотацию в стиле потока команд
Данные. Символ отображает данные, носитель данных не определен | |
Процесс.Символ отображает функцию обработки данных любого вида (выполнение определенной операции или группы операций, приводящее к изменению значения, формы или размещения информации или к определению, по которому из нескольких направлений потока следует двигаться) | |
Предопределенный процесс. Символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле). | |
Решение.Символ отображает решение или функцию переключательного типа, имеющую один вход и ряд альтернативных выходов, один и только один из которых может быть активизирован после вычисления условий, определенных внутри этого символа. Соответствующие результаты вычисления могут быть записаны по соседству с линиями, отображающими эти пути. | |
Граница цикла.Символ состоящий из двух частей, отображает начало и конец цикла. Условия для инициализации, приращения, завершения и т.д. помещаются внутри символа в начале или в конце в зависимости от расположения операции, проверяющей условие. | |
Соединитель.Символ отображает выход в часть схемы и вход из другой части этой схемы и используется для обрыва линии и продолжения её в другом месте. Соответствующие символы-соединители должны содержать одно и то же уникальное обозначение. | |
Терминатор.Начало или конец схемы программы. | |
Комментарий. Символ используют для добавления описательных комментариев или пояснительных записей в целях объяснения или примечаний. Пунктирные линии в символе комментария связаны с соответствующим символом или могут обводить группу символов. Текст комментариев или примечаний должен быть помещен около ограничивающей фигуры. |
Блок-схема записи алгоритма нахождения факториала:
Нотация Гейна-Сарсона служит для изображения диаграмм потоков данных
Внешняя сущность | |
Система, подсистема или процесс | |
Накопитель данных | |
Поток |
Сеть Петри – это разнородный граф из вершин двух типов: данные и процессы. Направленное соединение может быть только между вершинами разного типа определяя одновременно поток команд и данных
Нотации событийного подхода
Событийно-управляемое программирование – подход при котором задаются реакции программы на различные события
UML – универсальный язык моделирования включает диаграммы различного вида и назначения, служащих для описания при проектировании структуры и динамического поведения объектно-компонентных систем. Универсальность подразумевает применимость к объектам различной организации и функциональности, размещаемых и выполняемых на исполнителях различной архитектуры, взаимодействующих как синхронно так асинхронно.
Понятие актер подразумевает внешнего пользователя (человека или нет) взаимодействующего с системой. Понятие класс подразумевает сущность характеризуемую набором ее свойств – атрибутов и набором описанных в нем действий операций, конкретная реализация сущности объект
Набор диаграмм UML представляет:
Диаграммы прецедентов (описывающих взаимодействие актеров с системрй);
Диаграммы классов (задающие атрибуты и операции);
Диаграммы объектов (как экземпляра класса)
Диаграммы кооперации (обмен сообщениями между объектами)
Диаграммы последовательности (временная последовательность обработки сообщения)
Диаграммы состояний (соединяемые парой условие/действие)
Диаграммы развертывания (привязка к техническим средствам)