3. Модели жизненного цикла по. Методологии разработки сложных программных систем. Примеры «тяжелого» и «легкого» процесса. (тп)
Весь период существования ПО, связанный с подготовкой к его разработке, разработкой, использованием и модификациями, начиная с того момента, когда принимается решение разработать/приобрести/собрать из имеющихся компонентов новую систему или приходит сама идея о необходимости программы определенного рода, до того момента, когда полностью прекращается всякое ее использование, называют жизненным циклом ПО.
В ходе жизненного цикла ПО проходит через анализ предметной области, сбор требований, проектирование, кодирование, тестирование, сопровождение и другие виды деятельности. Каждый вид представляет собой достаточно однородный набор действий, выполняемых для решения одной задачи или группы тесно связанных задач в рамках разработки и поддержки эксплуатации ПО.При этом создаются и перерабатываются различного рода артефакты — создаваемые человеком информационные сущности, документы в достаточно общем смысле, участвующие в качестве входных данных и получающиеся в качестве результатов различных деятельностей. Примерами артефактов являются: модель предметной области, описание требований, техническое задание, архитектура системы, проектная документация на систему в целом и на ее компоненты, прототипы системы и компонентов, собственно, исходный код, пользовательская документация, документация администратора системы, руководство по развертыванию, база пользовательских запросов, план проекта и пр.
Модель RUP: Модель выглядит как универсальная схема: с точностью до наименований она отражает то, что включается в любое производство программного обеспечения. Однако она не приспособлена к включению в схему дополнительных этапов и функций, отражающих специфику конкретного процесса или коллектива разработчиков. Это нарушило бы фиксированную связь между жизненным циклом по RUP с моделями уровня проектирования, которым в обсуждаемом подходе уделено особое внимание.
Существенным препятствием для новых операционных маршрутов является то, что не определен регламент применения для них существующих инструментов и методов работы с ними. В RUP представлена масса детально проработанных операционных маршрутов, но связываются они не с деятельностями пользователя, а с конкретными инструментами (используемыми преимущественно для моделирования), допускающими различное применение. Средства моделирования являются элементами языка UML (если угодно — его операционными конструкциями), а не инструментами фиксированной методологии. Такую методологию всегда нужно разрабатывать специально. Выход из положения, предлагаемый авторами RUP, — множество стандартных ситуаций, в которых можно воспользоваться предлагаемыми средствами. Но, к сожалению, на этом пути сложно выстраивать регламенты ситуаций использования инструментов (одна и та же ситуация для одной методологии может быть правомерной, а для другой — нет). И уж совсем не получится организовать контроль связей между объектами, с которыми работают разные инструменты (то, что один и тот же объект используется в разных моделях, установить достаточно просто, но нет возможности проверить нарушение предписания задействовать в разных моделях один и тот же объект).
Модель процессов MSF
По мнению авторов, модель процессов MSF "объединяет в себе лучшие принципы каскадной и спиральной моделей. Она сохраняет преимущества упорядоченности каскадной модели, не теряя при этом гибкости и творческой ориентации модели спиральной, учитывает необходимость постоянного пересмотра, уточнения и оценки проектных требований, стимулирует активное взаимодействие между проектной группой и заказчиком, который оценивает ход и результаты работы на протяжении всего проекта".
К сожалению, авторы предложения MSF не совсем точны в своих оценках модели. Как и в случае с RUP, в этой модели очевидно стремление к универсальности, которое неизбежно приводит к огрублению ситуации в конкретных случаях и к необходимости словесного дополнения схемы. Недостатки моделей, основанных на раскручивающейся спирали, присущи ей в полной мере: невозможность отслеживания временных соотношений между сроками выполнения работ, трудности дополнения специфичных этапов. К тому же ориентация на всеобщность лишает модель и тех преимуществ, которые демонстрирует, например, модель Боэма, снабженная конкретным механизмом интерпретации. Если обратиться к процессам, которые отражают модель MSF, т.е. к их отдельному описанию, то становится заметным стремление авторов сделать методологию гибкой. К примеру, вот что они пишут о сотрудничестве с заказчиком: "Вовлечение заказчика в проект является необходимым условием успешности проектов. Модель процессов MSF предоставляет заказчику широкий спектр возможностей для уточнения и модификации проектных требований и установки контрольных точек (вех) для мониторинга работы над проектом. В свою очередь, это требует затрат времени со стороны заказчика и взятия им на себя определенных обязательств". Однако далее говорится о том, что "MSF признает первостепенную важность договорных и юридических отношений между заказчиком, его поставщиками и проектной командой и необходимость управления этими отношениями".
Тяжелые" и "легкие" процессы разработки
В этой лекции мы рассмотрим детально два процесса разработки — унифицированный процесс Rational (Rational Unified Process, RUP) и экстремальное программирование (Extreme Programming, XP). Оба они являются примерами итеративных процессов, но построены на основе различных предположений о природе разработки программного обеспечения и, соответственно, достаточно сильно отличаются.RUP является примером так называемого "тяжелого" процесса, детально описанного и предполагающего поддержку собственно разработки исходного кода ПО большим количеством вспомогательных действий. Примерами подобных действий являются разработка планов, технических заданий, многочисленных проектных моделей, проектной документации и пр. Основная цель такого процесса — отделить успешные практики разработки и сопровождения ПО от конкретных людей, умеющих их применять. Многочисленные вспомогательные действия дают надежду сделать возможным успешное решение задач по конструированию и поддержке сложных систем с помощью имеющихся работников, не обязательно являющихся суперпрофессионалами. Для достижения этого выполняется иерархическое пошаговое детальное описание предпринимаемых в той или иной ситуации действий, чтобы можно было научить обычного работника действовать аналогичным образом. В ходе проекта создается много промежуточных документов, позволяющих разработчикам последовательно разбивать стоящие перед ними задачи на более простые. Эти же документы служат для проверки правильности решений, принимаемых на каждом шаге, а также отслеживания общего хода работ и уточнения оценок ресурсов, необходимых для получения желаемых результатов.
Экстремальное программирование, наоборот, представляет так называемые "живые" (agile) методы разработки, называемые также "легкими" процессами. Они делают упор на использовании хороших разработчиков, а не хорошо отлаженных процессов разработки. Живые методы избегают фиксации четких схем действий, чтобы обеспечить большую гибкость в каждом конкретном проекте, а также выступают против разработки дополнительных документов, не вносящих непосредственного вклада в получение готовой работающей программы.
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 6
- 1. Автоматы и формальные языки. Классификация формальных языков и автоматов. Концепция порождения и распознавания. (та)
- 2. Технологические процессы изготовления печатных плат. (ктоп)
- 3. Прерывания в мпс. Типы прерываний. (мпс)
- 1. Регулярные языки и конечные автоматы. (та)
- 2. Индуктивные паразитные наводки в цепях эва. (ктоп)
- 3. Обмен информацией между микропроцессором и внешним устройством. (мпс)
- 1. Контекстно-свободные грамматики и магазинные автоматы. (та)
- 2. Эффективность электромагнитного экранирования. Расчёт электромагнитных экранов. (ктоп)
- 3. Система ввода-вывода. Параллельный порт. (мпс)
- 1. Произвольные автоматы и машина Тьюринга. (та)
- 2. Емкостные паразитные наводки в цепях эва. (ктоп)
- 3. Понятие «технология программирования». Характеристики качества программного обеспечения. Сложность по. Пути ограничения сложности. (тп)
- 1. Абстрактный синтез конечных автоматов. Минимизация и детерминация конечных автоматов. Автоматы Мили и Мура. (та)
- 2. Понятие надёжности электронного аппарата. Расчёт времени безотказной работы. (ктоп)
- 3. Модели жизненного цикла по. Методологии разработки сложных программных систем. Примеры «тяжелого» и «легкого» процесса. (тп)
- 1. Структурный автомат. Канонический метод структурного синтеза автоматов. Этапы синтеза. (та)
- 2. Конструкции корпусов эа и механизмы переноса тепла в них. (ктоп)
- 3. Универсальный язык моделирования uml, его назначение. Варианты использования. Диаграммы вариантов использования. Диаграммы классов. (тп)
- 1. Память структурного автомата. Элементы памяти. Триггеры. (та)
- 2. Роль стандартизации в технике конструирования. Применение ескд и естд. (ктоп)
- 3. Универсальный язык моделирования uml, его назначение. Диаграммы взаимодействия: последовательные и кооперативные. Применение этих диаграмм. (тп)
- Кооперативные диаграммы
- 1. Экспертный метод весовых коэффициентов важности. (моделирование)
- 2. Понятие вычислительного процесса и ресурса, классификация ресурсов, основные виды ресурсов. (спо)
- 3. Универсальный язык моделирования uml, его назначение. Диаграммы деятельности. Диаграммы состояний. Применение этих диаграмм. (тп)
- 1. Планирование и обработка результатов расслоенного (ступенчатого) эксперимента. (моделирование)
- 2. Процессы, состояния процесса, операции над процессами, планирование и диспетчеризация процессов. (спо)
- 3. Тестирование и отладка по. Основные принципы тестирования. Стратегии тестирования программных модулей. Методы структурного тестирования. (тп)
- 1. Полный факторный эксперимент (пфэ). (моделирование)
- 2. Параллельная обработка процессов, проблемы критических участков, взаимоисключения. Синхронизация параллельных процессов на низком уровне. (спо)
- 3. Тестирование по. Основные принципы тестирования. Структурное и функциональное тестирование. Методы функционального тестирования. (тп)
- 1. Модифицированный метод случайного баланса (ммсб). (моделирование)
- 2. Параллельная обработка процессов, проблемы критических участков, взаимоисключения. Синхронизация параллельных процессов на высоком уровне. (спо)
- 3. Эволюция технологий программирования. Структурное программирование. Объектно-ориентированное программирование. (тп)
- 1. Метод наименьших квадратов с предварительной ортогонализацией факторов (мнко). (моделирование)
- 2. Тупики, типы ресурсов для изучения тупиковых ситуаций, необходимые условия возникновения тупиков, стратегии предотвращения тупиков (спо)
- 3. Стадии разработки новой сапр и программного обеспечения сапр. (сапр)
- 1. Планирование второго порядка. Типы планов, их особенности.
- 2. Стратегии управления памятью: стратегии вталкивания, стратегии размещения, стратегии выталкивания. (спо)
- 3. Основная функция сапр. Классификация объектов сапр. (сапр)
- 1. Задача оптимизации. Метод крутого восхождения (Бокса-Уилсона). (моделирование)
- 2. Файловая система, функции файловой системы, состав файловой системы, архитектура, примеры современных файловых систем. (спо)
- 3. Виды и назначение составляющих компонентов сапр. Аннотация. (сапр)
- 1. Оптимизация в условиях ограничений. (моделирование)
- 2. Иерархия памяти. Эволюция видов организации памяти. Особенности страничной, сегментной и сегментно-страничной организации памяти. (спо) Иерархия памяти
- Эволюция видов организации памяти
- Сегментация
- Страничная организация памяти
- Комбинированная сегментно-страничная организация памяти
- 3. Моделирование в сапр. Виды моделей. Применение.
- 1. Цифровые интегральные микросхемы. Серии интегральных микросхем. Параметры цифровых имс. (схемотехника)
- 2. Концепция файловых систем fat32 и ntfs: структура логического диска, возможности, преимущества. (спо)
- 3. Метод конечных элементов. Особенности р- и h-версий. Применение. (сапр)
- 1. Базовые логические элементы (блэ). Параметры и характеристики блэ. (схемотехника)
- 2. Стандартный интерфейс ieее-1284. (ипу)
- 3. Графические стандарты сапр. Уровни связи. Международные организации, устанавливающие стандарты. (сапр)
- 1. Основные типы (технологии) базовых логических элементов. Сравнительная характеристика серий ттл, ттлш, кмоп, эсл, иил (схемотехника)
- 2. Стандартный интерфейс rs-232c. (ипу)
- 3. Основные концепции графического программирования в сапр. Краткий обзор (сапр)
- 2. Шина расширения eisa. (ипу)
- 3. Виртуальная инженерия. Понятие. Компоненты. (сапр)
- 1. Комбинационные схемы: шинный формирователь, схема сравнения, сумматоры. (схемотехника)
- 1) Шинный формирователь
- Сумматор Сумматор (англ. – adder) – цифровой узел, вычисляющий код арифметической суммы входных кодов. Сумматор с последовательным переносом
- 2. Организация стандартной шины pci. (ипу)
- 3. Типы данных сапр, поддерживаемых субд. Классификация. (сапр)
- 1. Триггеры. Принцип действия основных типов триггеров. (схемотехника)
- 2. Вид и организация устройств памяти. Интерфейсы устройств памяти. (ипу)
- 3. Базы данных сапр. Особенности хранения и применения. (сапр)
- 1. Счётчики. Основные типы счётчиков. (схемотехника)
- 2) Организация стандартной шины pci (ипу)
- 2. Интерфейсы графических адаптеров и мониторов. (ипу)
- 3. Общие принципы построения вычислительных сетей. Состав сети, квалификация вычислительных сетей. Топологии сетей. (сети)
- 1. Постоянное запоминающее устройство (пзу). Характеристика основных типов пзу. (схемотехника)
- 2. Параллельный интерфейс нжмд ата и его последовательная модернизация Serial ata. (ипу)
- 3. Модель osi. Уровни модели osi. Функции, выполняемые уровнями. (сети)
- 1. Оперативное запоминающее устройство (озу). Статическое и динамическое озу. (схемотехника)
- 2. Функциональное устройство звуковой карты, интерфейс midi, электромузыкальный цифровой синтезатор. (ипу)
- Стандарт на аппаратуру и программное обеспечение
- 3. Система передачи данных в сети. Типы линий связи. Основные характеристики каналов связи. (сети)
- 1. Буферная память типа fifo ("очередь") и lifo ("магазин"). (схемотехника)
- 2. Структура центрального процессора. Основные блоки. (мпс)
- 3. Кодирование информации. Виды кодов. Самосинхронизирующиеся коды. (сети)
- 1. Базовый принцип конструирования и конструктивные модули. (ктоп)
- 2. Традиционная архитектура мпс по принципам фон Неймана. (мпс)
- 3. Способы доступа к сети. Метод доступа опроса/выбора. Маркерный метод доступа. (сети)
- 1. Показатели качества конструкции. (ктоп)
- 2. Система ввода-вывода. Последовательный порт. (мпс)
- 3. Технологии локальных сетей. Сравнить особенности технологий Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, fddi. Оборудование локальных сетей. (сети)
- 1. Влияние внешних факторов на работу эа и методы борьбы с ними. (ктоп)
- 2. Типы памяти микропроцессора. Подключение памяти. (мпс)
- 3. Технологии глобальных сетей X.25, Frame Relay, атм. Формат блока данных. Основные процедуры, используемые протоколы. (сети)