Файл: Проектирование и разработка информационных систем Экзамен 26. 06. 2023 ауд. 1121 Начало экзамена в 10 10.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.10.2023
Просмотров: 84
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ПМ.03
Проектирование и разработка информационных систем
Экзамен 26.06.2023 ауд. 1121
Начало экзамена в 10:10
Разработка кода информационных систем
-
Дайте определение понятию HTML, зачем он нужен, какие теги вы знаете? -
Что такое CSS? Какую функцию он выполняет? -
Как происходит хостинг сайта? -
Какова файловая структура сайта? -
Зачем нужен протокол HTTP, на чем он работает? -
Что такое протокол HTTPS, SSL-сертификат? Какую роль они играют в разработке сайтов? -
Как выглядят коды состояний (ответов веб-сервера), где они используются? (404) -
Что такое Grid Layout, зачем он нужен? -
Расскажите про основные особенности методологии разработки БЭМ. -
Зачем нужны meta-теги в HTML? -
Объясните основную структуру html страниц, как они взаимодействуют с клиентом? -
Какова иерархия html страницы? Дайте определение понятиям: секции, заголовки, div-теги. -
Расшифруйте аббревиатуру DNS. Как он работает? -
Понятие CSS. Что такое псевдоклассы и зачем они используются? -
Понятие CSS. Что такое псевдоэлементы и зачем они используются? -
Что такое .htaccess? Какую роль он играет? -
Зачем нужен файл Robots.txt? Как функционирует программа, использующая его? -
Дайте определение понятию CMS? Можно ли создать сайт без нее и зачем она нужна? -
Что вы знаете про доменное имя? Зачем оно нужно? Из чего состоит? -
Что такое SQL-инъекции, какие методы защиты от них бывают? -
Дайте определение понятию XSS-атаки, на что они направлены, как защитить себя от них? -
Что такое Web-Server, как он функционирует, что можно реализовать с его помощью и где используется? -
Расшифруйте аббревиатуру CGI, как эта система работает?
-
Как работает поисковый робот? Зачем он нужен и из чего состоит? -
Дайте определение понятию SEO Продвижение. В чем особенности Белого SEO? -
Дайте определение понятию SEO Продвижение. В чем особенности Серого SEO? -
Дайте определение понятию SEO Продвижение. В чем особенности Черного SEO? -
Что такое контекстная реклама? Насколько она эффективна? -
В чем особенности продвижения в социальных сетях в сравнении с контекстной рекламой? -
Как работает таргетированная реклама? -
В чем заключаются особенности медийной рекламы? -
Как работает реклама на внешних ресурсах? -
Что такое E-mail маркетинг? В чем его особенности? -
Для чего нужна реклама в новостных агрегаторах? -
Как влияют статьи для сайта на продвижение информационных ресурсов? -
Как работают UTM-метки? Зачем они нужны? -
Зачем нужен файл Robots.txt? Как функционирует программа, использующая его? -
Что такое протокол HTTPS, SSL-сертификат? Какую роль они играют в разработке сайтов? -
Каково влияние Meta-тегов для продвижения сайта? Какие теги вы знаете? -
Что такое Google Analytics? Зачем он нужен? -
Что такое Google AdSense? Зачем он нужен? -
Что такое Яндекс Метрика? Зачем она нужна?
Проектирование и дизайн информационных систем
Теоретические вопросы
-
Перечислите основные принципы проектирования.
Принцип модульности: Система должна быть разбита на независимые модули или компоненты, которые могут быть разработаны, тестированы и поддерживаться отдельно. Это позволяет улучшить повторное использование, масштабируемость и облегчить сопровождение системы.
Принцип разделения ответственности: Каждый модуль или компонент системы должен быть ответственен только за конкретную задачу или функциональность. Это способствует улучшению читаемости, поддерживаемости и расширяемости системы.
Принцип открытости и закрытости: Система должна быть открытой для расширения новой функциональности, но закрытой для изменения уже существующей функциональности. Это достигается через использование абстракций, интерфейсов и модульного подхода к проектированию.
Принцип унификации данных: Данные, используемые в системе, должны быть унифицированы и централизованы. Это позволяет избежать дублирования данных, обеспечивает единообразие и согласованность информации в системе.
Принцип минимизации связей: Связи между модулями или компонентами должны быть минимальными и слабыми. Это помогает уменьшить зависимости и повысить гибкость системы при внесении изменений или добавлении новой функциональности.
Принцип согласованности и целостности: Система должна обеспечивать согласованность и целостность данных и функциональности. Это включает контроль правильности ввода данных, поддержку транзакций, обеспечение соответствия бизнес-правилам и управление конфликтами.
Принцип безопасности: Система должна быть проектирована с учетом защиты данных и конфиденциальности. Это включает аутентификацию, авторизацию, шифрование данных и управление доступом.
Принцип масштабируемости: Система должна быть способна масштабироваться для обработки растущего объема данных и нагрузки. Это может включать горизонтальное или вертикальное масштабирование, использование кэширования, асинхронной обработки и других техник.
-
Модуль на этапе логического проектирования. Модульность при проектировании. В чем состоит функциональная независимость модулей?
Модуль на этапе логического проектирования представляет собой независимую часть системы, выполняющую конкретную функциональность или задачу. Он является логическим строительным блоком системы, который объединяет связанные операции, данные и функции.
Модульность при проектировании означает разделение системы на независимые модули, которые могут быть разработаны, тестированы и поддерживаться отдельно. Каждый модуль должен иметь четко определенные входы и выходы, а также интерфейс, через который он взаимодействует с другими модулями или компонентами системы.
Функциональная независимость модулей означает, что каждый модуль должен выполнять определенную функциональность или задачу независимо от других модулей. Это достигается путем определения ясной и ограниченной ответственности для каждого модуля. Функциональная независимость обеспечивает следующие преимущества:
Модули могут быть разработаны и отлажены независимо друг от друга. Это упрощает процесс разработки и тестирования, поскольку изменения в одном модуле не влияют на другие модули.
Модули могут быть повторно использованы в других системах или проектах, поскольку они представляют собой самодостаточные блоки функциональности.
Изменения в одном модуле не должны требовать изменений в других модулях. Это позволяет легко поддерживать и модифицировать систему при необходимости.
Функциональная независимость упрощает распределение работы между разработчиками, поскольку каждый модуль может быть назначен отдельному разработчику или команде.
Изоляция ошибок. Если возникает ошибка или проблема в одном модуле, она не должна распространяться на другие модули, поскольку они являются функционально независимыми.
Важно тщательно определить границы и интерфейсы каждого модуля, чтобы достичь функциональной независимости и обеспечить гибкость, масштабируемость и удобство сопровождения системы.
-
Преимущества модульного подхода к проектированию.
Модульный подход к проектированию имеет множество преимуществ, которые способствуют разработке более эффективных и поддерживаемых систем. Вот некоторые из основных преимуществ модульного подхода:
Модульность повышает повторное использование кода: Модули представляют собой независимые блоки функциональности, которые могут быть повторно использованы в различных частях системы или даже в других проектах. Это сокращает время разработки, упрощает поддержку и способствует повышению производительности.
Улучшение понимаемости и читаемости кода: Разделение системы на модули делает код более организованным и структурированным. Это делает код более понятным, читаемым и легко сопровождаемым как для разработчиков, так и для других заинтересованных лиц.
Упрощение сопровождения: Когда система разделена на независимые модули, изменение или исправление одного модуля не должно затрагивать другие модули. Это упрощает процесс тестирования, отладки и развертывания, поскольку изменения могут быть применены только в соответствующем модуле без влияния на остальную часть системы.
Повышение гибкости и масштабируемости: Модули являются независимыми блоками, что позволяет легко добавлять новую функциональность или изменять существующую. Модульный подход облегчает изменение и расширение системы, а также позволяет легко внедрять новые возможности без нарушения работоспособности других модулей.
Улучшение параллелизма: Модули могут быть разработаны и тестированы параллельно, что позволяет сократить время разработки и улучшить эффективность команды разработчиков. Каждый модуль может быть назначен отдельному разработчику или команде, что способствует параллельной работе.
Легкость интеграции сторонних компонентов: Модульный подход облегчает интеграцию сторонних компонентов или библиотек в систему. Модули могут служить интерфейсами для взаимодействия с внешними компонентами, что позволяет эффективно использовать сторонние решения и расширять функциональность системы.
В целом, модульный подход к проектированию позволяет создавать гибкие, масштабируемые и поддерживаемые системы, которые обеспечивают эффективное использование ресурсов и легкость внесения изменений.
-
Критерии оценивания функциональной независимости.
Оценка функциональной независимости модулей может осуществляться по нескольким критериям. Вот некоторые из них:
Связанность (Cohesion): Связанность оценивает степень, в которой операции, данные и функциональность внутри модуля связаны и взаимосвязаны. Высокая связанность означает, что модуль выполняет одну специфическую задачу или функцию, не пересекаясь с другими модулями. Низкая связанность указывает на то, что модуль выполняет несколько разнородных функций, что может указывать на нарушение функциональной независимости.
Зависимости (Dependencies): Зависимости между модулями указывают на степень, в которой один модуль зависит от другого для выполнения своих функций. Функционально независимые модули должны иметь минимальные зависимости друг от друга. Если изменение в одном модуле требует изменений в другом модуле, это может указывать на нарушение функциональной независимости.
Интерфейсы (Interfaces): Интерфейсы модулей определяют способ взаимодействия между ними. Функционально независимые модули должны иметь четко определенные и ограниченные интерфейсы, через которые они взаимодействуют с другими модулями. Хорошо определенные интерфейсы помогают изолировать функциональность модулей и упрощают их взаимодействие.
Распределение ответственности (Responsibility): Каждый модуль должен иметь четко определенную и ограниченную ответственность. Функционально независимые модули должны выполнять свои задачи без необходимости полагаться на другие модули для выполнения своих функций.
Тестирование и отладка: Функциональная независимость модулей может быть оценена через процесс тестирования и отладки. Если модуль может быть легко тестирован и отлажен независимо от других модулей, это указывает на его функциональную независимость.
Критерии оценки функциональной независимости могут варьироваться в зависимости от контекста и требований системы. Однако, учитывая эти критерии, можно провести оценку функциональной независимости модулей и определить, насколько хорошо они соблюдают принцип функциональной независимости при проектировании информационных систем.
-
Этапы процесса архитектурного проектирования.
Архитектурное проектирование информационных систем обычно включает следующие этапы:
Анализ требований: На этом этапе происходит сбор и анализ требований к системе со стороны пользователей, бизнеса или других заинтересованных сторон. Основная цель этого этапа - понять функциональные и нефункциональные требования к системе, ее цели, ограничения и ожидаемую производительность.
Создание архитектурной концепции: На основе анализа требований разрабатывается высокоуровневая архитектурная концепция, которая определяет общую структуру и компоненты системы. Это включает определение основных модулей, подсистем, взаимосвязей между ними и выбор архитектурных стилей или паттернов, которые будут использоваться.
Детализация архитектуры: На этом этапе концепция архитектуры разрабатывается в более детальный и конкретный план. Определяются подробные спецификации модулей, интерфейсов, взаимодействий между компонентами, а также выбираются конкретные технологии, фреймворки и инструменты, которые будут использоваться.