- •Вопросы к экзамену по курсу "Технология программирования"
- •История развития языков программирования высокого уровня.
- •Архитектура языков программирования (три поколения).
- •Архитектура объектно-ориентированных языков программирования.
- •Сложность, присущая по (основные причины). Проблемы, возникающие при создании сложных систем.
- •Структура сложных систем (пять признаков). Примеры сложных систем (выделить признаки).
- •Основные понятия: метод, методология, технология. Классификация методов проектирования пс. Общая характеристика методов проектирования.
- •Эволюция программного продукта. Основные определения, понятия, отличительные черты.
- •Понятие «модуль» в программировании. Различные виды модулей при использовании основных методов проектирования пс.
- •Case – технологии (инструменты, системы, средства). Эволюция case – средств, их классификация, характеристики современных case – инструментов. Перспективы развития.
- •Роль case – инструментов в объектно-ориентированной методологии разработки пс. Связь case – технологии с методами быстрой разработки приложений (rad).
- •Классификация средств разработки (case - инструментов).
- •Жизненный цикл по (жц). Структура жц, основные фазы жц.
- •Организация процесса разработки пс (методы, средства, процедуры).
- •Модели процесса разработки пс (каскадная, спиральная)
- •Модели процесса разработки пс (компонентно-ориентированная, инкрементная, rad – модель).
- •Тяжеловесные и облегченные процессы разработки пс.
- •Унифицированный процесс разработки пс.
- •Iconix – процесс.
- •Scrum – процесс.
- •Артефакты
- •Встречи
- •Планирование спринта происходит в начале итерации(не более 4-8 часов), выбирается что будет сделано и обсуждается как это будет сделано.
- •Митинг Происходит каждый день в течение спринта(не более 15 минут), ищутся ответы на вопросы: что сделано? Что надо сделать? Какие есть проблемы?
- •Демонстрация проходит в конце спринта(не более 4-8 часов), показывается инкремент.
- •Прототип системы (достоинства и недостатки макетирования).
- •Масштаб проекта и риски
- •Содержание основных рабочих процессов по созданию по (анализ требований, системный анализ, проектирование).
- •Содержание основных рабочих процессов по созданию по (кодирование, тестирование).
- •Изменения в процессе эволюции программных систем, стоимость каждого вида изменения (в смысле затрат).
- •Организационные процессы (распределение ресурсов, управление проектом, организация коллектива разработчиков).
- •Документирование программного продукта. Различные виды документов, их содержание.
- •Виды документов при использовании объектно-ориентированной методологии разработки пс.
- •Временные затраты на реализацию этапов разработки по. Особенности распределения ресурсов при использовании объектно-ориентированной методологии.
- •Методы и средства структурного анализа.
- •Диаграммы потоков данных с расширениями для реального времени.
- •Пример банковской задачи (провести анализ).
- •Средства структурного проектирования (карты Константайна).
- •Методы проведения анализа объектно-ориентированных систем.
- •Типовая и структурная иерархии в объектно-ориентированной методологии.
- •Унифицированный язык моделирования пс (uml). Словарь, достоинства и возможности
- •Механизмы расширения в uml.
- •Диаграммы классов (точки зрения).
- •Отношения в диаграмме классов.
- •Классы ассоциаций.
- •Диаграммы вариантов использования, реализации вариантов использования.
- •Диаграммы взаимодействий.
- •Диаграммы пакетов и компонентов.
- •Диаграммы состояний.
- •Диаграммы активности (деятельностей).
- •Каркасы и паттерны.
- •Основные понятия и определения теории тестирования. Подходы к тестированию. Стратегии тестирования. Критерии тестирования.
- •Критерии тестирования стратегии "черного ящика".
- •1. Эквивалентное разбиение (самый популярный критерий из-за простоты)
- •2. Анализ граничных условий.
- •3. Метод функциональных диаграмм
- •Классический процесс тестирования по.
- •Тестирование модулей (блоков) программы. Тестирование интеграции.
- •Тестирование правильности (функциональное тестирование). Системное тестирование.
- •Особенности тестирования объектно-ориентированных программ. Тестирование классов.
- •Тестирование взаимодействия классов и функционирования компонентов.
- •Вопросы автоматизации тестирования. Инструменты тестирования.
Жизненный цикл по (жц). Структура жц, основные фазы жц.
ЖЦ ПО – это непрерывный процесс, который начинается с момента принятия решения о необходимости создания ПО и заканчивается в момент его изъятия из эксплуатации. Основным нормативным документом, который регламентирует ЖЦ ПО, является международный стандарт ISO/IEC 12207 (ISO – Международная организация по стандартизации , IEC – Международная комиссия по электротехнике).
Этот стандарт определяет структуру ЖЦ, его фазы, действия и задачи, которые должны быть выполнены в процессе разработки и эволюции ПО.
Структура ЖЦ ПО по стандарту ISO/IEC 12207 базируется на трех группах процессов:
Основные процессы:
разработка;
использование (сопровождение);
эволюция (модификация).
Это 3 основные фазы жизненного цикла ПО.
Вспомогательные процессы:
документирование;
обеспечение качества ПО;
верификация;
аттестация;
оценка;
управление конфигурацией.
Организационные процессы:
управление проектом;
улучшение самого ЖЦ;
обучение и другие
Организация процесса разработки пс (методы, средства, процедуры).
Технология разработки ПО (ТР ПО) – это целая система инженерных принципов для создания ПО, которое должно надежно и эффективно работать в реальных условиях.
Методы обеспечивают решение следующих задач:
планирование и оценка проекта;
анализ системных и программных требований;
проектирование алгоритмов, структур данных и программных структур;
кодирование;
тестирование;
сопровождение.
Средства (утилиты) обеспечивают автоматизированную поддержку методов. В целях совместного применения утилиты могут объединяться в системы автоматизированного конструирования ПО. Такие системы, как уже отмечалось, принято сегодня называть CASE-системами (средствами, инструментами). (Аббревиатура CASE расшифровывается как Computer Aided Software Engineering (программная инженерия с компьютерной поддержкой).)
Процедуры являются “клеем”, который соединяет методы и утилиты так, что они обеспечивают непрерывную технологическую цепочку разработки. Процедуры должны определять следующее:
порядок применения методов и утилит;
формирование отчетов и форм по соответствующим требованиям;
контроль, который помогает обеспечивать качество и помогает управлять изменениями;
формирование сроков (говорят, “вех” (ага, может, ещё “эпох”, нэ?)), по которым руководители оценивают проект.
Поэтому процесс конструирования ПО состоит из последовательности шагов, использующих методы, утилиты и процедуры. Эти последовательности шагов часто называют парадигмами ТР ПО.
Модели процесса разработки пс (каскадная, спиральная)
Модель процесса разработки ПО — структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач на протяжении жизненного цикла. Модель жизненного цикла зависит от специфики, масштаба и сложности проекта и специфики условий, в которых система создается и функционирует.
Любая модель процесса разработки ПО должна определять кто (какой член команды), что делает (какие действия), а также когда (действия по отношению к другим действиям) и как (детали и этапы действий) делает для достижения цели (цель – создание качественного продукта).
Модель ЖЦ ПО включает в себя:
Стадии;
Результаты выполнения работ на каждой стадии;
Ключевые события — точки завершения работ и принятия решений.
В 1970 году Уинстон Ройс (компания TRW) предложил модель разработки, известную как модель “водопада” (или “каскадная” модель). Схематично ее можно изобразить следующим образом:
В модели “водопада” содержатся следующие усовершенствования строго “пошаговой” модели:
Фазы в модели изображены в виде лесенки, т. е. фазы частично перекрываются, и любую из фаз можно начинать до того, как будет полностью завершена предыдущая.
Появились петли обратной связи между этапами, т.е. есть возможность вернуться на этап выше, если необходимо.
Ройсом предлагается параллельно с анализом требований и проектированием разработать систему – прототип
Возросла роль анализа требований – они являются основой для проектирования и кодирования.
Каждый этап завершается выпуском полного комплекта документации, т. е. достаточной для того, чтобы разработка могла быть продолжена на следующем этапе.
Преимущества:
Полная и согласованная документация на каждом этапе;
Легко определить сроки и затраты на проект.
Недостатки:
Основное заблуждение авторов водопадной модели состоит в предположениях, что проект проходит через весь процесс один раз. В водопадной модели переход от одной фазы проекта к другой предполагает полную корректность результата (выхода) предыдущей фазы, однако неточность какого-либо требования или некорректная его интерпретация в результате приводит к тому, что приходится «откатываться» к ранней фазе проекта.
Спиральная модель
Впервые эту модель предложил Боэм в 1988 году. Модель базируется на лучших свойствах классической модели и макетирования, к которым добавляется новый элемент – анализ риска. И еще появился новый этап – системный анализ.
Схематично спиральную модель можно изобразить следующим образом:
Итак, модель определяет 4 основных действия, которые представлены четырьмя квадрантами спирали.
Планирование – определение целей, требований, ограничений, а также составление плана разработки витка спирали (начиная со 2-го витка спирали, планирование проводится уже на основе оценки и рекомендаций заказчика).
Анализ риска (на 1-м витке спирали анализ риска на основе начальных требований, на следующих – на основе реакции заказчика).
Конструирование – разработка ПС (на 1-м витке – начальный макет, на 2-м – следующий уровень макета, на последнем – готовая система).
Оценивание – оценка заказчиком текущих результатов конструирования.
Получается, что с каждым витком спирали строятся все более полные версии ПО (и по функциональности, и по эффективности).
Достоинства спиральной модели:
• наиболее реально (в виде эволюции) отображает разработку ПО;
• позволяет явно учитывать риск на каждом витке эволюции разработки;
• использует моделирование для уменьшения риска.
Недостатки спиральной модели:
• повышенные требования к заказчику;
• трудности контроля и управления временем разработки (практически трудно составить план перехода на каждый этап.