Процесс разработки на языках высокого уровня

Содержание

Слайд 2

Уровни языков программирования

«Железное» программирование
Поведение программируемого устройства задается путем операций с физическими связями

Уровни языков программирования «Железное» программирование Поведение программируемого устройства задается путем операций с
его компонентов.
Машинные языки программирования
Программа представляет собой последовательность элементарных инструкций для центрального процессора.
Машинно-ориентированные языки (ассемблеры)
Язык содержит мнемонические команды, операторы для управления ходом исполнения, макрокоманды.
Языки программирования высокого уровня
Язык в определенном смысле приближен к естественному человеческому языку, обладает сложной грамматикой, средствами управления ходом исполнения и т.п.

Слайд 3

Области применения

Создание автоматизированных комплексов различного назначения
Разработка систем автоматизации уровня предприятия (ERP)
Создание сложных

Области применения Создание автоматизированных комплексов различного назначения Разработка систем автоматизации уровня предприятия
систем обслуживания конечного пользователя
Реализация аналитических систем и систем поддержки принятия решения (DSS)
Развлечения и досуг
Встраивание возможностей глубокой персонализации

Слайд 4

Особенности и сложности

Системы сложны как алгоритмически, так и архитектурно.
Для реализации системы требуются

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

Слайд 5

Следствия

Разработка системы осуществляется группой, объединяющей специалистов из различных областей, разной квалификации, использующими

Следствия Разработка системы осуществляется группой, объединяющей специалистов из различных областей, разной квалификации,
различные подходы к работе.
Требуется обеспечить предсказуемость и управляемость процесса разработки с точки зрения содержания конечного продукта, качества, сроков реализации, стоимости.
Требования к результату могут изменяться в процессе реализации.
Требуется обеспечить коммерческую привлекательность продукта с точки зрения перспектив его развития в будущем.

Слайд 6

Требования к процессу разработки

Обеспечивается координация распределенных групп разноплановых специалистов.
Обеспечивается реалистичное планирование и

Требования к процессу разработки Обеспечивается координация распределенных групп разноплановых специалистов. Обеспечивается реалистичное
прогнозирование течения процесса разработки.
Текущее состояние разработки прозрачно для всех участников процесса (заинтересованных лиц).
Доступны средства оценки содержания, качества, сроков и затраченных средств.
Есть средства прогнозирования неблагоприятных изменений в будущем и предотвращения их.
Обеспечивается управляемость содержанием конечного результата в зависимости от внешних изменений.

Слайд 7

Основные подходы

Водопадная модель
Разработка разбивается на этапы по содержанию работ.
Итерационный процесс
Разработка осуществляется итерациями

Основные подходы Водопадная модель Разработка разбивается на этапы по содержанию работ. Итерационный
по результату.
Гибкие технологии разработки (agile)
Разработка обеспечивает плавное эволюционное развитие системы при постоянном наличии законченного решения.

Слайд 8

Водопадная модель

Выделяются этапы работ, исходя из содержания деятельности.
Проектирование
Планирование
Осуществление разработки
Приемка
Испытания и внедрение
Сопровождение

Водопадная модель Выделяются этапы работ, исходя из содержания деятельности. Проектирование Планирование Осуществление

Слайд 9

Водопадная модель

Водопадная модель

Слайд 10

Водопадная модель

Плюсы.
На ранних стадиях есть полное видение ожидаемого результата
Понятно содержание, сроки, необходимые

Водопадная модель Плюсы. На ранних стадиях есть полное видение ожидаемого результата Понятно
ресурсы, инвестиции.
Участие специалистов различного профиля разделено во времени
Процесс хорошо формализуем и не требует высоких навыков управления
Минусы
Любое изменение обесценивает все предыдущие работы.
Получение результата далеко отстоит по времени от постановки задачи.
Результат чувствителен к рискам – реакция на изменения внешней среды не заложена в процесс.

Слайд 11

Водопадная модель - применимость

Наличие большого числа формальных и неизменных ограничений (законодательных, технических,

Водопадная модель - применимость Наличие большого числа формальных и неизменных ограничений (законодательных,
ресурсных и т.п.).
Необходимость заложить основу для длительного развития (создание программной платформы, ОС)
Создание процесса массового производства (конвейерное производство).
Реализация системы с высокой защитой от рисков (системы безопасности, управление особыми объектами и т.п.).

Слайд 12

Итерационный процесс

Работа разделяется на этапы по содержанию результата.
На каждом этапе осуществляются все

Итерационный процесс Работа разделяется на этапы по содержанию результата. На каждом этапе
виды работ, меняются акценты:
Проектирование-планирование – на начальных стадиях
Quality Assurance - на завершающих
Менеджмент процесса – постоянно, в больших объемах.

Слайд 13

Итерационный процесс

Итерационный процесс

Слайд 14

Итерационный процесс

Плюсы.
Результат достигается последовательным приближением, обеспечивается оценка и корректировка содержания.
Процесс неплохо формализуем

Итерационный процесс Плюсы. Результат достигается последовательным приближением, обеспечивается оценка и корректировка содержания.
и широко применим.
Имеется возможность реакции на события внешней среды.
Процесс применяется крупными игроками рынка производства ПО (RUP, MSF, Motorola, SixSigma и т.п.).
Минусы
Требуется постоянное участие специалистов всех профилей.
Менеджмент представляет собой нетривиальную, сложную и трудоемкую задачу.
Имеется доля неопределенности в треугольнике «содержание-время-инвестиции».
Высокие накладные расходы на управление.

Слайд 15

Итерационный процесс – применимость

Создание уникальных крупных систем, обладающих перспективой развития.
Производство продуктовых линий

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

Слайд 16

Гибкий подход

Работа разделяется на небольшие итерации (2 нед. – 1 мес.).
Разделение специалистов

Гибкий подход Работа разделяется на небольшие итерации (2 нед. – 1 мес.).
по функциям максимально нивелируется.
На каждом этапе осуществляются все виды работ, каждый этап дает законченный результат.
Цель этапа (требования к результату) фиксируются непосредственно перед началом этапа.

Слайд 17

Гибкий подход

Гибкий подход

Слайд 18

Гибкий подход

Плюсы.
Обновление системы происходит практически постоянно, непрерывно. Всегда есть готовая «свежая версия».
Адаптивность

Гибкий подход Плюсы. Обновление системы происходит практически постоянно, непрерывно. Всегда есть готовая
к внешним изменениям очень высока.
Накладные расходы на управление серьезно снижены.
Акцентируется «командность» работы – общая вовлеченность и самоорганизация.
Прозрачность текущего состояния системы, непрерывность оценки содержания результата.
Минусы
Низкая управляемость в долгосрочной перспективе.
Необходимость обеспечивать рефакторинг и реинжиниринг.
Крайне трудно создать «с нуля» крупную систему.