
- •Раздел 1. Вопросы по общепрофессиональным дисциплинам
- •1)Понятие программирования. Жизненный цикл по. Восходящее и нисходящее проектирование по.
- •2) Основные структуры программирования. Операторы языка си Базовые структуры программирования
- •3)Функции. Шаблоны функций, перегрузка функций.
- •4) Пользовательские типы данных: назначение, ввод-вывод.
- •5)Статические и динамическое распределение памяти.
- •6) Динамические структуры данных (стек, очередь, список).
- •7)Объектно-ориентированное программирование. Классы. Конструкторы. Деструкторы.
- •8)Паттерны проектирования и программирования
- •9) Общая классификация видов информационных технологий и их реализация в технических областях.
- •10)Процессы передачи, обработки и накопления данных в информационных системах.
- •11) Фон Неймановская архитектура вычислительных машин. Принципы фон Неймана. Состав и устройство персонального компьютера.
- •12)Чипсет и шинно-мостовая архитектура системной платы.
- •13)Микроархитектура процессоров Intel Core. Исполнение программного кода на основе конвейерной обработки
- •14)Архитектура оперативного запоминающего устройства на основе динамической памяти с произвольным доступом
- •15)Принцип работы электронной памяти различных типов. Параметры микросхем памяти.
- •16)Архитектура графической подсистемы. Принцип расчета трехмерного изображения. Рендеринг.
- •17)Структура и принцип действия накопителя на жестких магнитных дисках. Последовательная шина sata.
- •18)Структура и принцип действия оптических приводов cd и dvd.
- •19) Внутренние и внешние параллельные и последовательные компьютерные шины
- •20) Средства передачи информации – кабельные и беспроводные каналы связи
- •21)Основы теории управления. Общие принципы системной организации.
- •22)Рабочие операции и операции управления.
- •23 ) Характеристики объекта управления: устойчивость, управляемость, наблюдаемость.
- •24)Использование микропроцессоров и эвм в системах управления.
- •25)Общее информационное представление системы управления.
- •26)Понятие операционной системы, основные функции и назначение. Классификация ос.
- •27)Файловые системы: примеры, функции и назначение. Методы физической организации файлов
- •28) Архитектура операционной системы. Ядро и вспомогательные модули, функции и назначение. Загружаемые модули ядра.
- •29) Концепции построения структур хранилищ данных
8)Паттерны проектирования и программирования
В разработке программного обеспечения, шаблон проектирования или паттерн (англ. design pattern) — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Обычно шаблон не является законченным образцом, который может быть прямо преобразован в код; это лишь пример решения задачи, который можно использовать в различных ситуациях. Объектно-ориентированные шаблоны показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться.
«Низкоуровневые» шаблоны, учитывающие специфику конкретного языка программирования, называются идиомами. Это хорошие решения проектирования, характерные для конкретного языка или программной платформы, и потому не универсальные.
На наивысшем уровне существуют архитектурные шаблоны, они охватывают собой архитектуру всей программной системы.
Алгоритмы по своей сути также являются шаблонами, но не проектирования, а вычисления, так как решают вычислительные задачи.
История шаблонов проектирования (design patterns) началась вовсе не с программирования, а с архитектуры. В 70-е годы прошлого века известный архитектор Кристофер Александр (Christopher Alexander) описал основные шаблоны проектирования при построении зданий. Его идеи получили широкое распространение и в мире разработки программного обеспечения.
Первые шаблоны проектирования для языка программирования Smalltalk представили в 1987 г. Кэнт Бэк и Вард Каннингем. Но это было только началом, настоящее признание в мире программирования они получили после публикации книги «Приемы объектно-ориентированного проектирования. Паттерны проектирования», написанной программистами Э. Гаммом, Р. Хелмом, Р. Джонсоном и Дж. Влиссидесом. В ней были представлены 23 шаблона, ставших сейчас основными. Данная работа дала толчок к изучению паттернов программистами. Издание «банды четырех» (так в шутку прозвали авторов книги) до сих пор остается одним из ИТ-бестселлеров, и его постоянно публикуют.
В целом паттерны представляют собой некую архитектурную конструкцию, помогающую описать и решить определенную общую задачу проектирования. Они приобрели такую популярность потому, что разработка ПО ко времени их формализации уже была достаточно развита. Многие понимали, что не стоит изобретать велосипед, а использование паттернов часто бывает полезным как отдельному разработчику, так и целой команде.
Впрочем, применение шаблонов проектирования связано и с определенными проблемами. В частности, распространено мнение, что только специалист, обладающий достаточно высокой квалификацией и понимающий, какие из паттернов ему нужны, сумеет правильно использовать их в своих программах. Кроме того, зачастую некоторые разработчики, изучившие лишь несколько шаблонов проектирования, начинают употреблять их повсюду, даже там, где они не слишком хорошо справляются с задачей и усложняют создаваемое ПО.
Паттерны проектирования на три основные группы:
• порождающие — призванные создавать объекты;
• структурные — меняющие структуру взаимодействия между классами;
• поведенческие — отвечающие за поведение объектов.
в наши дни несложно выделить и другие группы и даже антипаттерны, подсказывающие, как не надо разрабатывать ПО.