Приведите концептуальную модель унифицированного языка моделирования (UML). Опишите назначение различных типов диаграмм. Поясните правила и общие механизмы языка

UML – это стандартный инструмент для разработки «чертежей» программного обеспечения. Его можно использовать для визуализации, спецификации, конструирования и документирования артефактов программных систем. UML также предназначен для документирования архитектуры системы и всех ее деталей. Кроме того, это язык для выражения требований к системе и описания тестов. И, наконец, он подходит для моделирования работ на этапе проектирования и управления версиями.

Назначение различных типов диаграмм:

Вариант использования (use case) – это описания последовательности действий, выполняемых системой и приносящих значимый результат конкретному действующему лицу (actor). Варианты использования применяются для структурирования поведенческих сущностей модели. Реализуются посредством коопераций.

Автомат (state machine) – представляет собой поведение, характеризуемое последовательностью состояний объекта, в которых он оказывается на протяжении своего жизненного цикла в ответ на события, вместе с его реакцией на эти события.

Автомат включает в себя множество других элементов: состояния, переходы (из одного состояния в другое), события (сущности, которые инициируют переходы), а также действия (реакции на переходы).

Деятельность (activity) – специфицирует последовательность шагов процесса вычислений. Во взаимодействий внимание сосредоточено на наборе взаимодействующих объектов, в автомате – на жизненном цикле одного объекта; для деятельности же в центре внимания – последовательность шагов безотносительно к объектам, выполняющим каждый шаг. Отдельный шаг деятельности называется действием (action).

Укажите преимущества модульного программирования. Опишите структуру и основные принципы формирования модулей. Поясните терминологию «область видимости и локализации данных».

Преимущество модульного программирования:

Приступая к разработке каждой программы ПС, следует иметь ввиду, что она, как правило, является большой системой, поэтому мы должны принять меры для ее упрощения. Для этого такую программу разрабатывают по частям, которые называются программными модулями.

Дайте определение экстремальному программированию (XP). Опишите отличия методики экстремального программирования от других методик. Укажите базовые ценности и принципы XP-программирования.

Экстремальное программирование является примером так называемого метода «живой разработки» (Agile Development Method).

Принципы:

Особенности модели жизненного цикла экстремального программирования (XP) поясняют следующие принципы этого метода. Прежде всего, это принципы живой разработки программного обеспечения, зафиксированная в манифесте живой разработки:

· Люди и их общение более важны, чем процессы и инструменты;

· Работающая программа более важна, чем исчерпывающая документация;

· Сотрудничество с заказчиком более важна, чем обсуждения деталей контракта;

· Отработка изменений более важна, чем следование плану.

В основе экстремального программирования лежат не конкретные методики как принято считать, а лишь 4 базовых принципа: общение, простота, обратная связь и храбрость.

Дайте определение понятиям отладки и тестирования ПО. Опишите этапы и методы тестирования ПО. Поясните различие в способах тестирования методами белого и черного ящика.

Тестирование и отладка - это процесс выполнения программы, целью которого является выявление и устранение ошибок. Никакое тестирование не может доказать отсутствие ошибок в хоть сколько-нибудь сложном программном обеспечении. Для такого программного обеспечения выполнение полного тестирования, т. е. задания всех возможных комбинаций исходных данных, становится не-возможным, а, следовательно, всегда имеется вероятность того, что в программном обеспечении остались не выявленные ошибки.

Стадии тестирования:

Процесс разработки программного обеспечения, в том виде, как он определяется в современной модели жизненного цикла программного обеспечения, предполагает три стадии тестирования:

• автономное тестирование компонентов программного обеспечения;

• комплексное тестирование разрабатываемого программного обеспечения;

• системное или оценочное тестирование на соответствие основным критериям качества.

Методы тестирования ПО (белый и черный ящик):

Структурный подход базируется на том, что известка структура тестируемого программного обеспечения, в том числе его алгоритмы («белый ящик»). В этом случае тесты строят так, чтобы проверить правильность реализации заданной логики в коде программы.

Функциональный подход основывается на том, что структура программного обеспечения не известна («черный ящик»). В этом случае тесты строят, опираясь на функциональные спецификации. Этот подход называют также подходом, управляемым данными, так как при его использовании тесты строят на базе различных способов декомпозиции множества данных.

Наши рекомендации