Вопросы к экзамену
Описание файла
Документ из архива "Вопросы к экзамену", который расположен в категории "". Всё это находится в предмете "технологии разработки программного обеспечения (по)" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "технологии разработки по" в общих файлах.
Онлайн просмотр документа "Вопросы к экзамену"
Текст из документа "Вопросы к экзамену"
Экзамен по курсу Технологии проектирования 2013 г.
Билет содержит два вопроса и упражнение.
По каждому вопросу необходимо написать теорию и привести примеры для конкретной темы (тема выдается отдельно).
-
При написаннии ответов на вопросы можно пользоваться любой литературой.
-
Упражнение выполняется без использования какой-либо литературы.
Темы вопросов:
Методологии и стратегии разработки ПО и модели жизненного цикла:
-
каскадная модель,
-
спиральная модель,
-
инкрементная модель,
-
макетирование,
-
модель быстрой разработки RAD,
-
экстремальное программирование (XP-процесс),
-
компонентно-ориентированная модель,
-
тяжеловесные (прогнозирующие) процессы разработки,
-
адаптивные (облегченные) процессы разработки,
-
Agile\Scrum,
-
модель, управляемая архитектурой (MDA),
-
унифицированный процесс (RUP).
Перечень, последовательность и содержимое этапов разработки по методологиям.
Руководство программным проектом. Меры и метрики. Планирование проекта.
Анализ и управление рисками. Планирование проектных задач. Распределение работ.
Структурная декомпозиция работ. Диаграммы Ганта, сетевой график, метод критического пути.
Трассировка и контроль. Вехи. Оценка границ времени выполнения. Типы связей задач.
Рекуррентные и суммарные задачи. Календари ресурсов. Связи задач по ресурсам.
Планирование, определяемое трудозатратами. Распределение ресурсов.
Оценка бюджета проекта:
-
экспертная,
-
по аналогии,
-
алгоритмическая,
-
на основе графика выполнения. Метод наращивания затрат.
Отслеживание выполнения проекта. Отслеживание графика выполнения и бюджета.
Анализ выполненной стоимости.
Модели качества ПО. Модель СММ.
Управление процессом создания и отслеживания ПО:
-
управление и планирование,
-
управление людьми, рисками, качеством, конфигурациями и изменениями.
Оценка затрат на разработку. Точность оценки.
Оценка затрат, длительности и стоимости разработки. Метрический базис.
Оценка размера проекта на основе LOC, FP или OP.
Размерно-ориентированные и функционально-ориентированные метрики.
Вычисление затрат, длительности и стоимости разработки на основе моделей СОСОМО -81,
СОСОМО –II. Модели композиции приложения, раннего этапа проектирования и этапа пост-архитектуры. Анализ чувствительности программного проекта с применением СОСОМО –II.
Унифицированный процесс RUP. Этапы и итерации. Вехи. Управление рисками.
Рабочие процессы и их модели:
-
Определение требований. Кандидаты в требования. Контекст системы. Функциональные и нефункциональные требования. Модели прецедентов (требований) и предметной области. Нахождение актеров и прецедентов. Определение приоритетов и детализация прецедентов. Создание прототипа пользовательского интерфейса. Структурирование модели прецедентов.
-
Анализ. Модель анализа (пакеты, их зависимости и состав, диаграммы коопераций анализа). Анализ архитектуры, прецедентов, классов и пакетов. Виды классов анализа: сущности, граничные и управляющие.
-
Проектирование. Модель проектирования (подсистемы всех уровней, их состав, интерфейсы и зависимости, диаграмма развертывания и активные классы, примеры диаграмм взаимодействия подсистем). Проектирование архитектуры, прецедентов, классов и подсистем.
-
Реализация. Модели реализации (компоненты, интерфейсы и подсистемы реализации, стереотипы и зависимости файлов). Реализация архитектуры, подсистем, классов. Сборка системы. Тестирование модулей.
-
Тестирование. Этапы, методы, методики и инструменты.
Трассировка между элементами моделей различных рабочих процессов.
Оценка качества проекта на основе объектно-ориентированых метрик.
Определение архитектурно-значимых прецедентов. Модель прецедентов, модель анализа (пакеты, классы и кооперации), модель проектирования (диаграммы развертывания, подсистемы, их интерфейсы и активные классы) и модель реализации (подсистемы и компоненты). Трассировка между элементами моделей.
Проектирование программных систем. Переход от моделей анализа к моделям проектирования.
Инструменты проектирования. Структурное и объектное проектирование.
Виды структурного проектирования: восходящее, нисходящее, метод расширения ядра.
Предварительное и детальное проектирование. Проектирование GUI.
Структурирование системы. Модели архитектуры:
-
хранилище данных,
-
клиент-сервер,
-
трехуровневая модель,
-
многоуровневая модель,
-
каналы и фильтры,
-
компонентная,
-
каркасы.
Модели управления:
-
вызов-возврат,
-
менеджер,
-
широковещательная,
-
с прерываниями.
Интерфейсы взаимодействия на основе:
-
API,
-
иерархии классов,
-
форматов данных,
-
компонентных технологий.
Спецификации. Назначение и классификация. Характеристики.
Состав и назначение спецификаций:
-
требований,
-
архитектуры,
-
пользовательского интерфейса
-
функциональная,
-
проектная,
-
тестирования.
Взаимосвязь спецификаций между собой и с этапами разработки.
Декомпозиция подсистем на модули. Модуль и модульность. Оптимальное разбиение.
Связность модуля:
-
функциональная,
-
информационная,
-
коммуникативная,
-
процедурная,
-
временная,
-
логическая,
-
по совпадению.
Сцепление модулей:
-
по данным,
-
по образцу,
-
по управлению,
-
по внешним ссылкам,
-
по общей области,
-
по содержанию.
Структурный проект. Состав. Процесс построения. Выделение уровней.
Управление зависимостями. Устранение циклической зависимости. Зависимости наследования, уровней, методов. Делегирование. Зависимости реализации и интерфейсов.
Интерфейсы предоставляемые и требуемые. Доминирующий класс.
Использование интерфейсов для устранения циклических зависимостей.
Синхронные и асинхронные сообщения. Организация подписки. Знакомства. Пакет знакомств.
Структурные шаблоны:
-
MVC,
-
PCMEF,
-
PCMEF+.
Подсистемы шаблонов, их назначение и схема взаимодействия. Требования и особенности.
Использование в шаблонах паттернов проектирования: наблюдатель, компоновщик, команда и стратегия, фабричный метод. Делегирование и знакомство. Диаграммы классов и взаимодействия.
Проектирование пользовательского интерфейса. Применение паттернов: наблюдатель, абстрактная фабрика, фасад, цепочка обязанностей, посредник, декоратор и команда. Диаграммы классов и последовательностей.
Паттерны для работы с базой данных (Диаграммы классов и последовательностей):
-
шлюз таблицы,
-
шлюз записи,
-
активная запись,
-
медиатор (посредник).
Паттерны для реализации бизнес-логики (Диаграммы классов и взаимодействия):
-
сценарий транзакций,
-
модель предметной области,
-
модуль таблицы,
-
слой служб.
Паттерны проектирования. Назначение и принцип описания. Параметры.
Паттерны GoF. Структурные, порождающие и поведенческие. Паттерны классов и объектов. Диаграммы классов и взаимодействия для паттернов GoF.
Метрики объектно-ориентированных систем:
-
Чидамбера и Кемерера,
-
Лоренца и Кидда,
-
Абреу.
Тестирование ПО. Назначение и цели. Процесс. Возможности. Оценка качества.
Тестовый вариант. Критерии разработки и оценки качества.
Функциональное и структурное тестирование. Особенности и возможности.
Тестирование базового пути. Тестирование условий.
Тестирование ветвей и операторов отношений.
Тестирование данных. Тестирование циклов.
разбиение по эквивалентности. Анализ граничных значений.
Организация процесса тестирования. Виды тестирования: модульное, интеграционное, регрессионное и системное. Виды системного тестирования.
Драйверы и заглушки. Восходящее и нисходящее тестирование.
Объектно-ориентированное тестирование. Отличие от функционального.
CRC-карты. Тестирование, основанное на ошибках. Тестирование, основанное на сценариях. Стохастическое тестирование классса. Способы тестирования взаимодействия классов.
Пример темы для примеров к вопросам
Дана задача разработки АСУ/ИС: Создать АСУ для наблюдения и корректировки температурного режима некого устройства. АСУ получает данные о температуре от множества датчиков. При выходе из допустимого температурного диапазона формируются и посылаются в устройство команды изменения температуры. Данные о наблюдаемых температурах и управляющих воздействиях фиксируются в журнале. Диапазоны допустимых температур и наборы корректирующих команд хранятся в БД. АРМ оператора АСУ позволяет просматривать журнал и наполнять БД.
Упражнения (для конкретной темы, которая выдается отдельно)
-
Для указанного прецедента определить набор пакетов в соответствии (по варианту):
-
MVC,
-
PCMEF,
-
PCMEF+,
указать входящие в пакеты классы и интерфейсы и зависимости между ними.
Продемонстрировать пример использования (по варианту):
-
делегирования,
-
отделенного интерфейса,
-
оповещения,
-
знакомства,
-
пакета знакомств.
Построить диаграммы классов и последовательностей для реализации бизнес-логики прецедента с применением паттерна (по варианту):
-
сценарий транзакций,
-
модель предметной области,
-
модуль таблицы,
-
слой служб;
и с применением паттерна для обращения к хранилищу данных (по варианту):
-
шлюз таблицы,
-
шлюз записи,
-
активная запись,
-
медиатор (посредник).
Для набора паттернов GoF (по варианту) указать возможности их применения в прецеденте (роли классов прецедента в паттерне). Построить диаграммы классов и взаимодействия для применения паттернов GoF (по варианту) в прецеденте.
-
Для указанной подсистемы в соответствии с методологией RUP выполнить (по варианту):
-
Составить и детализировать модели прецедентов (требований) и предметной области. Преобразовать ее к модели анализа (пакеты анализа и сервисные пакеты, диаграммы классов анализа и их кооперации, состав и зависимости пакетов). Указать трассировку между элементами моделей.
-
Составить модель анализа (пакеты, их зависимости и состав, диаграммы коопераций анализа). Преобразовать ее к модели проектирования (подсистемы всех уровней, их интерфейсы и зависимости, диаграмма развертывания, примеры диаграмм класов и их взаимодействия). Указать трассировку между элементами моделей.
-
Составить модель проектирования (подсистемы всех уровней, их состав, интерфейсы и зависимости, диаграмма развертывания и активные классы, примеры диаграмм взаимодействия подсистем). Преобразовать ее к модели реализации (компоненты, интерфейсы и подсистемы реализации, стереотипы и зависимости файлов). Указать трассировку между элементами моделей.
-
Определить архитектурно-значимые прецеденты. Составить для них модель прецедентов, модель анализа (пакеты, классы и кооперации), модель проектирования (диаграммы развертывания, подсистемы, их интерфейсы и активные классы) и модель реализации (подсистемы и компоненты). Указать трассировку между элементами моделей.
-
Определить перечень, последовательность и содержимое этапов разработки АСУ/ИС в соответствии с одной из методологий (по варианту) разработки:
-
каскадная модель,
-
спиральная модель,
-
инкрементная модель,
-
макетирование,
-
модель быстрой разработки RAD,
-
экстремальное программирование (XP-процесс),
-
компонентно-ориентированная модель,
-
унифицированный процесс (RUP).
Определить задачи и вехи, ресурсы и риски проекта. Составить план проекта. Построить сетевой график или диаграмму Ганта (по варианту) процесса разработки.
Привести примеры календаря одного из ресурсов (по варианту).
Выполнить оценку затрат, длительности и стоимости разработки на основе моделей (по варианту):
-
размерно-ориентированные метрики,
-
функционально-ориентированные метрики,
-
модель СОСОМО-81,
-
модель СОСОМО-2 различных жтапов (постр-архитектуры, раннего проектирования, композиции приложения).
Выполнить оценку чувствительности проекта.
-
Выделить для ИС/АСУ подсистемы, определить их функции и методы их взаимодействия по управлению и данным, используя модель архитектуры (по варианту):
-
хранилище данных,
-
клиент-сервер,
-
трехуровневая модель,
-
многоуровневая модель,
-
каналы и фильтры,
-
компонентная,
-
каркасы.
и модель управления (по варианту):
-
вызов-возврат,
-
менеджер,
-
широковещательная,
-
с прерываниями.
Привести пример взаимодействия подсистем на основе (по варианту):
-
API,
-
иерархии классов,
-
форматов данных,
-
компонентных технологий.
Составить спецификацию для АСУ/ИС (по варианту):
-
требований,
-
архитектуры,
-
пользовательского интерфейса
-
функциональную.
Для указанной подсистемы привести пример модуля подсистемы, имеющего связность (по варианту):
-
функциональную,
-
информационную,
-
коммуникативную,
-
процедурную,
-
временную,
-
логическую.
Привести пример двух подсистемы, сцепленных (по варианту):
-
по данным,
-
по образцу,
-
по управлению,
-
по внешним ссылкам,
-
по общей области,
-
по данным.
Составить тестовые варианты для проведения тестирования указанной функции методавми (по варианту):
-
Тестирование базового пути.
-
Тестирование ветвей и операторов отношений.
-
Тестирование потоков данных.
-
Тестирование циклов.
-
Разбиение по эквивалентности.
-
Анализ граничных значений.
Литература
-
Конспект лекций по курсу Технология проектирования.
-
Орлов С.А. Технологии разработки программного обеспечения. - Спб.: Питер. - 2002 г. (http://wmate.ru ).
-
Якобсон А, Дуч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. - Спб.: Питер. - 2002 г.
-
Мацяшек Л.А., Лионг Б.Л. Практическая программная инженерия. - М.: Бином, 2009 г.
-
материалы сайта http://interface.ru
-
Гамма Э. и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – СПб.:Питер. - 2009 г.
Дополнительная
-
Гудлиф П. Ремесло программиста. -Спб.: Символ-плюс. - 2009 г.
-
Мацяшек Л.А., Лионг Б.Л. Практическая программная инженерия. - М.: Бином. - 2009 г.
-
Фаулер М. Архитектура корпоративных программных приложений. – М.: Издательский дом Вильямс. – 2008г.
-
материалы сайта http://interface.ru