Слайд 2Уровни языков программирования
«Железное» программирование
Поведение программируемого устройства задается путем операций с физическими связями
его компонентов.
Машинные языки программирования
Программа представляет собой последовательность элементарных инструкций для центрального процессора.
Машинно-ориентированные языки (ассемблеры)
Язык содержит мнемонические команды, операторы для управления ходом исполнения, макрокоманды.
Языки программирования высокого уровня
Язык в определенном смысле приближен к естественному человеческому языку, обладает сложной грамматикой, средствами управления ходом исполнения и т.п.
Слайд 3Области применения
Создание автоматизированных комплексов различного назначения
Разработка систем автоматизации уровня предприятия (ERP)
Создание сложных
систем обслуживания конечного пользователя
Реализация аналитических систем и систем поддержки принятия решения (DSS)
Развлечения и досуг
Встраивание возможностей глубокой персонализации
Слайд 4Особенности и сложности
Системы сложны как алгоритмически, так и архитектурно.
Для реализации системы требуются
высокопрофессиональные навыки в различных предметных областях.
Рынок прикладного программного обеспечения является высококонкурентным.
Потребности пользователей изменяются очень динамично.
Доля затрат на автоматизацию (внедрение и сопровождение компьютерных систем) велика и является одним из факторов эффективности бизнеса
Слайд 5Следствия
Разработка системы осуществляется группой, объединяющей специалистов из различных областей, разной квалификации, использующими
различные подходы к работе.
Требуется обеспечить предсказуемость и управляемость процесса разработки с точки зрения содержания конечного продукта, качества, сроков реализации, стоимости.
Требования к результату могут изменяться в процессе реализации.
Требуется обеспечить коммерческую привлекательность продукта с точки зрения перспектив его развития в будущем.
Слайд 6Требования к процессу разработки
Обеспечивается координация распределенных групп разноплановых специалистов.
Обеспечивается реалистичное планирование и
прогнозирование течения процесса разработки.
Текущее состояние разработки прозрачно для всех участников процесса (заинтересованных лиц).
Доступны средства оценки содержания, качества, сроков и затраченных средств.
Есть средства прогнозирования неблагоприятных изменений в будущем и предотвращения их.
Обеспечивается управляемость содержанием конечного результата в зависимости от внешних изменений.
Слайд 7Основные подходы
Водопадная модель
Разработка разбивается на этапы по содержанию работ.
Итерационный процесс
Разработка осуществляется итерациями
по результату.
Гибкие технологии разработки (agile)
Разработка обеспечивает плавное эволюционное развитие системы при постоянном наличии законченного решения.
Слайд 8Водопадная модель
Выделяются этапы работ, исходя из содержания деятельности.
Проектирование
Планирование
Осуществление разработки
Приемка
Испытания и внедрение
Сопровождение
Слайд 10Водопадная модель
Плюсы.
На ранних стадиях есть полное видение ожидаемого результата
Понятно содержание, сроки, необходимые
ресурсы, инвестиции.
Участие специалистов различного профиля разделено во времени
Процесс хорошо формализуем и не требует высоких навыков управления
Минусы
Любое изменение обесценивает все предыдущие работы.
Получение результата далеко отстоит по времени от постановки задачи.
Результат чувствителен к рискам – реакция на изменения внешней среды не заложена в процесс.
Слайд 11Водопадная модель - применимость
Наличие большого числа формальных и неизменных ограничений (законодательных, технических,
ресурсных и т.п.).
Необходимость заложить основу для длительного развития (создание программной платформы, ОС)
Создание процесса массового производства (конвейерное производство).
Реализация системы с высокой защитой от рисков (системы безопасности, управление особыми объектами и т.п.).
Слайд 12Итерационный процесс
Работа разделяется на этапы по содержанию результата.
На каждом этапе осуществляются все
виды работ, меняются акценты:
Проектирование-планирование – на начальных стадиях
Quality Assurance - на завершающих
Менеджмент процесса – постоянно, в больших объемах.
Слайд 14Итерационный процесс
Плюсы.
Результат достигается последовательным приближением, обеспечивается оценка и корректировка содержания.
Процесс неплохо формализуем
и широко применим.
Имеется возможность реакции на события внешней среды.
Процесс применяется крупными игроками рынка производства ПО (RUP, MSF, Motorola, SixSigma и т.п.).
Минусы
Требуется постоянное участие специалистов всех профилей.
Менеджмент представляет собой нетривиальную, сложную и трудоемкую задачу.
Имеется доля неопределенности в треугольнике «содержание-время-инвестиции».
Высокие накладные расходы на управление.
Слайд 15Итерационный процесс – применимость
Создание уникальных крупных систем, обладающих перспективой развития.
Производство продуктовых линий
(коробочных продуктов).
Сопряжение процесса производства ПО и экономической деятельности фирмы.
Компромисс между управляемостью и адаптивностью.
Слайд 16Гибкий подход
Работа разделяется на небольшие итерации (2 нед. – 1 мес.).
Разделение специалистов
по функциям максимально нивелируется.
На каждом этапе осуществляются все виды работ, каждый этап дает законченный результат.
Цель этапа (требования к результату) фиксируются непосредственно перед началом этапа.
Слайд 18Гибкий подход
Плюсы.
Обновление системы происходит практически постоянно, непрерывно. Всегда есть готовая «свежая версия».
Адаптивность
к внешним изменениям очень высока.
Накладные расходы на управление серьезно снижены.
Акцентируется «командность» работы – общая вовлеченность и самоорганизация.
Прозрачность текущего состояния системы, непрерывность оценки содержания результата.
Минусы
Низкая управляемость в долгосрочной перспективе.
Необходимость обеспечивать рефакторинг и реинжиниринг.
Крайне трудно создать «с нуля» крупную систему.