- •Алгоритм. Свойства алгоритма.
- •Алгоритм. Представления алгоритмов.
- •Алгоритм. Основные алгоритмические конструкции.
- •Этапы решения задачи на компьютере.
- •Структурное программирование.
- •Объектно-ориентированное программирование.
- •Эволюция и классификация языков программирования.
- •Трансляция, компиляция и интерпретация.
- •Моделирование.
- •Компьютерные сети. Серверы. Рабочие станции. Узлы. Ресурсы.
- •Сетевые протоколы. Модель osi.
- •Интернет.
- •Основы функционирования Интернета
- •Сервисы (службы) Интернета.
- •Защита информации. Юридические аспекты.
- •Защита информации. Вирусы.
- •Защита информации. Технические меры защиты.
- •Защита информации. Программные меры защиты.
- •Криптография. Основные понятия.
- •Криптография. Метод перестановки.
- •Криптография. Метода подстановки.
- •Криптография. Хэш.
-
Структурное программирование.
Цели:
Обеспечить дисциплину программирования;
Улучшить читабельность программы;
Повысить эффективность прог-ммы;
Повысить надежность прог-ммы;
Уменьшить время разработки и стоимость.
Структурный подход охватывает все стадии разработки проекта: анализ требований, проектирование, собственно программирование и тестирование.
первым шагом упрощения сложной системы является ее разбиение на «черные ящики», при этом такое разбиение должно удовлетворять следующим критериям:
каждый «черный ящик» должен реализовывать единственную функцию системы;
функция каждого «черного ящика» должна быть легко понимаема независимо от сложности ее реализации;
связь между «черными ящиками» должна вводиться только при наличии связи между соответствующими функциями системы (например, в бухгалтерии один «черный ящик» необходим для расчета общей заработной платы служащего, а другой для расчета налогов — необходима связь между этими «черными ящиками»: размер заработной платы требуется для расчета налогов);
связи между «черными ящиками» должны быть простыми, насколько это возможно, для обеспечения независимости между ними.
Второй важной идеей, лежащей в основе структурных методов, является идея иерархии. Для понимания сложной системы недостаточно разбиения ее на части, необходимо эти части организовать определенным образом, а именно в виде иерархических структур.
Структурным анализом принято называть метод исследования системы, начинающий с ее общего обзора, который затем детализируется, приобретая иерархическую структуру со все большим числом уровней.
Базовыми принципами являются:
принцип «разделяй и властвуй» — принцип решения трудных проблем путем разбиения их на множество меньших независимых задач, легких для понимания и решения;
принцип иерархического упорядочения — принцип организации составных частей системы в иерархические древовидные структуры с добавлением новых деталей на каждом уровне.
принцип абстрагирования — выделение существенных аспектов системы и отвлечение от несущественных;
принцип непротиворечивости — обоснованность и согласованность элементов системы;
принцип структурирования данных — данные должны быть структурированы и иерархически организованы.
В структурном анализе и проектировании используются различные модели, описывающие:
функциональную структуру системы;
последовательность выполняемых действий;
передачу информации между функциональными процессами;
отношения между данными.
Наиболее распространенными моделями первых трех групп являются:
функциональная модель SADT (Structured Analysis and Design Technique);
модель IDEF3;
DFD (Data Flow Diagrams) — диаграммы потоков данных.
Виды написания программ:
1.Снизу вверх(сначала мал. Задачи, затем более крупные)
2. Нисходящий( сначала всё, затем разбивается на блоки))
В структурном используют нисходящий!
Стандарты программирования:
1.Программа разбивается на независимые части
2.Модуль-независ. Блок, программный код которого отделен физически и логически откода других модулей. Модуль решает 1 логическую задачу, его размер не более 100 строк.модуль имен 1 вход, 1 выход. Каждый одуль начинается с комментария, описывающего его назнач. И принцип работы.
3. Избегать ненужных меток, не испол. Операторы безусловного перехода
4.Названия переменных – смысловые. (print-печать)
5. Родственные идентификаторы имеют одинаковый префикс
6. Испол. Только стандартных управляющие конструкции
7.В одной строке-один оператор.
8.Не допускать вложенности for/if/while более 3х уровней
9.избегать использования языковых конструкций с неочевидной грамматикой (if(1)…) и программистских трюков (while(1)…if ххх back)
10. 70% программы-комментарии!
Вот это относится уже к структурно-модульному, но я думаю, что его тоже надо.:
Под модуляризацией понимается разделение программы на части по некоторым установленным правилам.
этапы создания программ:
1 этап. анализ требований пользователей - постановки задачи. Постановка задачи завершается созданием технического задания, а затем внешней спецификации программы, включающей в себя:
описание исходных данных и результатов (типы, форматы, точность, способ передачи, ограничения);
описание задачи, реализуемой программой;
способ обращения к программе;
описание возможных аварийных ситуаций и ошибок пользователя.
II этап. Разработка внутренних структур данных (Структуры данных могут быть статическими или динамическими.)
III этап. Проектирование (определение общей структуры и взаимодействия модулей). На этом этапе применяется технология нисходящего проектирования программы. Главный критерий разбиения на модули (функциональной декомпозиции) — минимизация взаимодействия модуле
IV этап. Структурное программирование. Процесс программирования также организуется по принципу «сверху вниз»: вначале кодируются модули самого верхнего уровня и составляются тестовые примеры для их отладки, при этом на месте еще не написанных модулей следующего уровня ставятся «заглушки» — временные программы. «Заглушки» в простейшем случае просто выдают сообщение о том, что им передано управление, а затем возвращают его в вызывающий модуль. В других случаях «заглушка» может выдавать значения, заданные заранее или вычисленные по упрощенному алгоритму.
V этап. Нисходящее тестирование. Этот этап записан последним, но это не значит, что тестирование не должно проводиться на предыдущих этапах.