
- •Архитектуры баз данных. Преимущества и недостатки
- •Реляционные базы данных, основные понятия.
- •Понятия и терминология, связанные с таблицей реляционной базы данных
- •1.4.1. Отношение "один-ко-многим"
- •Отношение "один-к-одному"
- •Отношение "многие-ко-многим"
- •Понятия терминология, связанные с полем таблицы
- •Понятия ключевых атрибутов для таблиц и индексов.
- •1.7. Индексы и методы доступа
- •Реляционные отношения и целостность данных. Пример
- •1.4.1. Отношение "один-ко-многим"
- •1.4.2. Отношение "один-к-одному"
- •1.4.3. Отношение "многие-ко-многим"
- •1.4.4. Связь между записями одной таблицы
- •1.5. Ссылочная целостность и каскадные воздействия
- •Навигационный и sql ориентированный подход к обработке данных.
- •Нормализация данных. Первая нормальная форма. Пример
- •Нормализация данных. Третья нормальная форма. Пример
- •Индексы. Определение, назначение, характеристики.
- •Жизненный цикл программного обеспечения. Модели жизненного цикла.
- •Основные этапы программирования (структурный, rad технологии, case технологии). Кризис программирования.
- •Методология системного анализа и системного моделирования. Диаграммы idefo.
- •Язык uml. Назначение.
- •Статические диаграммы uml (варианты использования, классов)
- •Диаграммы поведения uml ( состояний, последовательности, деятельности).
- •Основные принципы организации процесса разработки по по rup.
- •Понятие rup. Основные принципы. Структура процесса проектирования. Инструментальная поддержка.
- •Статическая структура описания rup. Понятия исполнителей и артефактов. Основные технологические процессы.
- •Технологический процесс управления проектом.
- •Технологический процесс процесса моделирования производства. 6 сценариев разработки моделей.
- •Технологический процесс управления требованиями
- •Технологический процесс анализа и проектирования
- •Технологический процесс реализации
- •Технологический процесс тестирования
- •Технологический процесс управления конфигурацией и изменениями
- •Технологический процесс управления средой
- •Технологический процесс распространения
- •Конфигурирование и реализация rup
Технологический процесс реализации
Существует четыре основные цели технологического процесса реализации.
Определить структуру кода через подсистемы реализации, организованные в уровни.
Реализовать классы и объекты через компоненты (исходные файлы, двоичные коды, исполняемые файлы и др.).
Провести блочное тестирование разработанных компонентов.
Интегрировать результаты отдельных конструкторов или команд в исполняемую систему.
Тестирование в технологическом процессе реализации ограничено блочным тестированием отдельных компонентов. Тестирование системы и тестирование интеграции будут описаны в технологическом процессе тестирования (см. главу 12). Такое разделение происходит вследствие того, что за блочное тестирование отвечает не испытатель (основной исполнитель технологического процесса тестирования), а конструктор (основной исполнитель технологического процесса реализации). В то же время следует помнить, что на практике эти технологические процессы обычно переплетаются.
Для уяснения особенностей технологического процесса реализации в Rational Unified Process необходимо ввести три следующих ключевых понятия.
Конструкция
Интеграция
Прототипы
Конструкции
Конструкция— это функциональная версия системы или части системы, демонстрирующая сокращенный вариант возможностей конечного продукта.
В процессе итеративной разработки программного обеспечения будут создаваться множественные конструкции. Каждая такая конструкция может быть проанализирована, что способствует выявлению потенциальных проблем на ранних стадиях процесса реализации.
Конструкции — это неотъемлемая часть итеративного жизненного цикла. Они представляют собой попытки демонстрации функциональных возможностей, полученных на данный момент. Конструкции могут подчиняться управлению конфигурацией, особенно если требуется вернуться к предыдущей версии, а дополнительные функциональные возможности или необходимость каких-либо компромиссов угрожают целостности продукта.
Как правило, конструкции в проектах пытаются создавать через определенные интервалы времени, максимум по одной в день, но не менее одной в неделю (к концу итерации).
Интеграция
В процессе разработки программного обеспечения термин интеграция означает объединение отдельных программных компонентов в единое целое. Интеграция выполняется на нескольких уровнях и этапах процесса реализации. Делается это исходя из следующих соображений.
Для интеграции результатов работы команды, занимающейся одной подсистемой реализации, до того, как эта подсистема будет предоставлена системным интеграторам.
Для интеграции подсистем в целостную систему.
Согласно подходу к реализации, принятому в Rational Unified Process, программное обеспечение интегрируется поэлементно. Поэлементная интеграция означает, что коды пишутся и тестируются небольшими блоками, после чего они объединяются в рабочее целое путем постепенного добавления блоков.
Противоположным подходом является поэтапная интеграция, заключающаяся в одновременной интеграции множественных (новых или измененных) компонентов. Основным недостатком такой интеграции является одновременное введение нескольких новых переменных, что затрудняет локализацию ошибок. Ошибка может находиться в любом из новых компонентов, во взаимодействии между этими компонентами или во взаимодействии между новыми и существовавшими ранее компонентами.
Использование поэлементной интеграции имеет следующие преимущества.
■ Ошибки легче локализовать. При появлении в процессе поэлементной интеграции новой проблемы наиболее вероятным ее источником является новый или измененный компонент (или его взаимодействие с ранее интегрированными компонентами). Кроме того, такая интеграция делает более вероятным выявление дефектов по одному, что иногда облегчает определение неполадок.
Компоненты тестируются полнее. Они интегрируются и начинают тестироваться непосредственно после разработки. Это означает, что они используются чаще, чем при единовременной интеграции множественных компонентов.
Некоторые части системы раньше эксплуатируются. Это оказывает положительное воздействие на моральное состояние разработчиков, которые могут увидеть результаты своей работы сразу, не дожидаясь глобального тестирования. Кроме того, это позволяет раньше организовать обратную связь по вопросам проектирования, использования инструментальных средств, правил или стиля.
Важно понимать, что интеграция происходит в каждой итерации (иногда в итерации проходит даже несколько интеграций). План итерации определяет прецеденты, которые будут спроектированы, а следовательно, и классы, которые будут реализованы. Таким образом, от выбора стратегии интеграции будет зависеть порядок реализации классов и их последующего соединения.
Прототипы используются для снижения вероятности риска. Они могут прояснить следующие моменты.
Коммерческая жизнеспособность разрабатываемого проекта
Устойчивость или производительность ключевой технологии
Обязательства по проекту или финансирование проекта (для этого создается небольшой испытательный прототип)
Понимание требований
Впечатление и ощущение от продукта (в конечном счете — удобство и простота использования)
Прототип может обеспечить поддержку продукта путем демонстрации пользователям, заказчикам и руководству чего-то конкретного и исполняемого.
В то же время природа и цель прототипа должны оставаться ясными в течение всего жизненного цикла проекта. Если прототип не планировалось развивать в реальный продукт, то не стоит, глядя на его прекрасную работоспособность, внезапно решать, что он должен быть преобразован в окончательный продукт. Например, пробные и поведенческие прототипы крайне редко развиваются в сильный, жизнеспособный продукт; их цель — всего лишь быстрая проверка пользовательского интерфейса.
Типы прототипов
Прототипы можно рассматривать двояко: через то, что они изучают, и через то, как они развиваются (их результаты). В первом случае прототипы можно разделить на две группы.
Поведенческие, акцентирующие внимание на исследовании определенного поведения системы
Структурные, исследующие архитектурные или технологические вопросы
Во втором случае также имеется два типа прототипов.
Пробные прототипы, также называемые временными или одноразовыми, которые отбрасываются непосредственно после завершения и предоставления требуемых от них знаний
Эволюционные прототипы, развивающиеся в конечную систему
Исполнители и артефакты
Основными исполнителями, участвующими в технологическом процессе реализации, являются следующие.
Конструктор, разрабатывающий компоненты и связанные с ними артефакты, а также выполняющий блочное тестирование
Системный интегратор, создающий конструкции
В число иных исполнителей входят следующие.
Архитектор, определяющий структуру модели реализации (организацию уровней и подсистем)
Рецензент кода, проверяющий качество кода и его соответствие стандартам проекта
Ключевыми артефактами процесса реализации являются следующие.
Подсистема реализации
Набор компонентов и других подсистем реализации, используемых для образования структуры модели реализации путем разбиения последней на несколько меньших частей.
Компонент
Часть программного кода (исходного, двоичного или исполняемого) или файл, содержащий информацию (например, файл запуска или ознакомительный файл). Кроме того, компонентом может быть совокупность других компонентов — например, приложение, состоящее из нескольких исполняемых файлов.
План проведения интеграции
Этот документ определяет порядок реализации компонентов и подсистем и задает, какие конструкции должны быть созданы при интеграции системы.
Реализация неразрывно связана с проектированием, вследствие чего весьма легко проследить преобразование элементов проекта в элементы реализации (например, классов в код).
Применительно к некоторым языкам программирования, инструментальным средствам, таким как Rational Rose, а также к некоторым типам приложений возможно использование циклического проектирования, позволяющего тесно связать проектирование и реализацию. Сотрудник, попеременно действующий как разработчик и конструктор, может либо видоизменять модель проектирования и создавать соответствующий код, либо видоизменять код реализации с последующей переработкой проекта, чтобы он соответствовал внесенному изменению. Такой подход позволяет избежать задержек в процессе производства и ошибок, возникающих при реализации проекта или потере синхронности между проектом и его реализацией (что, как правило, приводит к недоверию конструкторов к проекту).
Характерной особенностью Rational Unified Process является поэлементная интеграция в течение всего жизненного цикла.
В фазе построения создается эволюционный структурный прототип, со временем развивающийся в конечную систему.
Параллельно создается несколько одноразовых поведенческих прототипов для проведения определенных исследований (например, пользовательского интерфейса).
Циклическое проектирование – это технология, поддерживаемая таким инструментальным средством, как Rational Rose; она тесно связывает процессы проектирования и реализации.