Технология разработки программного обеспечения

Содержание

Слайд 2

Технология разработки ПО Цели Познакомиться с основами промышленной разработки программного обеспечения

Технология разработки ПО

Цели

Познакомиться с основами промышленной разработки программного обеспечения
Получить представление о

работе компаний-разработчиков ПО
Помочь подготовиться к работе в таких компаниях
Слайд 3

Технология разработки ПО Литература Хант Э., Томас Д., Программист-прагматик. Путь от

Технология разработки ПО

Литература

Хант Э., Томас Д., Программист-прагматик. Путь от подмастерья к

мастеру.
Макконнелл С., Совершенный код. Мастер-класс
Фаулер М., Рефакторинг: улучшение существующего кода.
Буч Г., Рамбо Дж., Якобсон А., Язык UML. Руководство пользователя
Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж., Приемы объектно-ориентированного проектирования. Паттерны проектирования.
Вигерс К., Разработка требований к программному обеспечению
Бек К., Экстремальное программирование: разработка через тестирование
Ройс Уокер, Управление процессом создания программного обеспечения.
Слайд 4

Введение в программную инженерию Жизненный цикл и процесс разработки ПО

Введение в программную инженерию

Жизненный цикл и процесс разработки ПО

Слайд 5

Технология разработки ПО Программная инженерия «Применение систематического, дисциплинированного, поддающегося количественному определению

Технология разработки ПО

Программная инженерия

«Применение систематического, дисциплинированного, поддающегося количественному определению подхода к

разработке, эксплуатации и сопровождению программного обеспечения»
[IEEE 1990]
Слайд 6

Технология разработки ПО Программная инженерия – Нечто большее, чем просто написание

Технология разработки ПО

Программная инженерия –

Нечто большее, чем просто написание программного

кода (coding) и включает в себя аспекты качества, управления и экономики, а также знание и применение на практике этих принципов и дисциплин
Слайд 7

Технология разработки ПО Больше проект – больше проблем [данные SEI, 2000 г.]

Технология разработки ПО

Больше проект – больше проблем

[данные SEI, 2000 г.]

Слайд 8

Технология разработки ПО Некоторые факты - 1 18% всех проектов по

Технология разработки ПО

Некоторые факты - 1

18% всех проектов по разработке ПО

никогда не завершаются
53% всех проектов по разработке ПО завершаются с перерасходом бюджета в среднем на 56% и превышением сроков на 84%
только 29% проектов укладываются в срок и бюджет

[данные исследований Standish Group, 2004]

Слайд 9

Технология разработки ПО Некоторые факты - 2 Министерство по налогам и

Технология разработки ПО

Некоторые факты - 2

Министерство по налогам и сборам США

провалило $8 млрд проект модернизации информационной системы, что стоило $50 млрд несобранных налогов
Ракета Ariane 5 в 1996 взорвалась через 37 секунд после старта из-за бага в ПО
В аэропорту Хитроу в марте-апреле 2008 воцарился хаос из-за сбоя в работе компьютерных систем при открытии нового 5-го терминала
Слайд 10

Технология разработки ПО Сложность программных продуктов Программные продукты относятся к самым

Технология разработки ПО

Сложность программных продуктов

Программные продукты относятся к самым сложным системам,

которые создаются человеком, и программное обеспечение по самой своей природе обладает рядом существенных и неотъемлемых свойств (таких как сложность, незримость и изменяемость), которые затрудняют работу.
Ф. Брукс, 1995
Слайд 11

Технология разработки ПО

Технология разработки ПО

Слайд 12

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

Технология разработки ПО

Причины провалов проектов

Проектные планы нереалистичны
Низкое качество разработанного продукта
Плохо разработанные

требования
Слайд 13

Технология разработки ПО Пути к успеху Google самоуправляемые небольшие команды, лёгкие

Технология разработки ПО

Пути к успеху

Google
самоуправляемые небольшие команды, лёгкие ориентированные на

людей Agile процессы.
NASA
высоко-формализованные процессы, постоянное совершенствование процессов.
Microsoft
MSF, в некоторых подразделениях – SEI PSP.
Boeing, Northrop-Grumman, Lockheed-Martin
SEI PSP/TSP, «зрелые» процессы CMM 5 level.
Слайд 14

Технология разработки ПО Ключ к успеху Дисциплинированное использование процессного подхода при разработке ПО

Технология разработки ПО

Ключ к успеху

Дисциплинированное использование процессного подхода при разработке ПО

Слайд 15

Технология разработки ПО Процесс разработки ПО – Это набор правил и

Технология разработки ПО

Процесс разработки ПО –

Это набор правил и стандартов, согласно

которым разрабатывается программный продукт
Определяет то, как мы работаем
Слайд 16

Технология разработки ПО Процесс описывает: Действия (активности) – какие шаги необходимы

Технология разработки ПО

Процесс описывает:

Действия (активности) – какие шаги необходимы и их

последовательность
Люди – исполнители, кто выполняют эти действия
Артефакты – производимые результаты действий
Другие ресурсы
Слайд 17

Технология разработки ПО Характеристики процесса Повторяемость Эффективность Стабильность Предсказуемость Качество Контролируемость Гибкость Усовершенствование

Технология разработки ПО

Характеристики процесса

Повторяемость
Эффективность
Стабильность
Предсказуемость
Качество
Контролируемость
Гибкость
Усовершенствование

Слайд 18

Технология разработки ПО Жизненный цикл разработки ПО Последовательность этапов, приводящих от

Технология разработки ПО

Жизненный цикл разработки ПО

Последовательность этапов, приводящих от идеи создания

продукта к его выпуску

Разработка ПО

Идея

Продукт

Слайд 19

Технология разработки ПО Водопадный жизненный цикл [Уинстон Ройс,1970] Разработка требований Проектирование Кодирование Тестирование продукт идея

Технология разработки ПО

Водопадный жизненный цикл

[Уинстон Ройс,1970]

Разработка требований

Проектирование

Кодирование

Тестирование

продукт

идея

Слайд 20

Технология разработки ПО Итерационный жизненный цикл Разработка требований Проектирование Кодирование Тестирование идея продукт

Технология разработки ПО

Итерационный жизненный цикл

Разработка требований

Проектирование

Кодирование

Тестирование

идея

продукт

Слайд 21

Технология разработки ПО Capability Maturity Model Модель зрелости процесса разработки ПО

Технология разработки ПО

Capability Maturity Model

Модель зрелости процесса разработки ПО в компании
Разработана

в Software Engineering Institute (Carnegie Mellon University) по заказу Министерства обороны США
Используется для оценки качества процесса разработки ПО
Ориентирована на крупные компании и проекты
Слайд 22

Технология разработки ПО Уровни CMM 5 Оптимизирующий 4 Управляемый 3 Определённый

Технология разработки ПО

Уровни CMM

5 Оптимизирующий

4 Управляемый

3 Определённый

2 Повторяемый

Постоянное улучшение процесса

Качество

продукта и процесса

Целостность процесса

Управление проектами

Управление изменением технологий
Управление изменением процесса

Измерение и анализ процесса
Управление качеством
Предотвращение дефектов

Управление требованиями
Планирование проекта
Отслеживание проекта
Обеспечение качества ПО
Управление конфигурацией

Уровень

Фокус

Ключевые области процесса

Внимание процессу организации
Определение процесса организации
Программа обучения
Интегрированное управление созданием ПО
Инженерия программных продуктов
Координация между группами
Обзоры и проверки

1 Начальный

Слайд 23

Технология разработки ПО Что следует запомнить Разработка ПО – сложное дело

Технология разработки ПО

Что следует запомнить

Разработка ПО – сложное дело с высоким

риском неудачи
При разработке ПО необходимо применять процессный подход
Процесс – это «программа» для людей
Основные виды жизненных циклов ПО – водопадный и итерационный