Разделы презентаций


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

Содержание

Технология разработки ПОО себе Савкин Вадим СергеевичОкончил МИЭМ в 1999Стаж работы разработчиком ПО с 1997Основная специализация – прикладное и системное программирование на C++Последние 5 лет работаю в CQGПоследние 3 года в CQG

Слайды и текст этой презентации

Слайд 1Технология разработки программного обеспечения
Савкин Вадим Сергеевич vadim.savkin@gmail.com

Технология разработки программного обеспеченияСавкин Вадим Сергеевич vadim.savkin@gmail.com

Слайд 2Технология разработки ПО
О себе
Савкин Вадим Сергеевич
Окончил МИЭМ в 1999
Стаж работы

разработчиком ПО с 1997
Основная специализация – прикладное и системное программирование

на C++
Последние 5 лет работаю в CQG
Последние 3 года в CQG занимаюсь поддержкой процессов разработки и тренингами для программистов
Технология разработки ПОО себе	Савкин Вадим СергеевичОкончил МИЭМ в 1999Стаж работы разработчиком ПО с 1997Основная специализация – прикладное

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

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

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

Слайд 4Технология разработки ПО
Содержание
Введение в программную инженерию; Процесс разработки ПО
Основы управления

требованиями
Основы планирования и оценки
Проектирование ПО
Управление качеством ПО
Тестирование ПО
Качество

кода
Автоматизация процесса разработки ПО
Разработка ПО в команде
Современные методологии разработки ПО
Технология разработки ПОСодержаниеВведение в программную инженерию; Процесс разработки ПООсновы управления требованиямиОсновы планирования и оценкиПроектирование ПОУправление качеством ПО

Слайд 5Технология разработки ПО
Формат курса
Лекции
Семинары
9 практических заданий
6 – в аудитории на

семинарах
3 – частично в аудитории на семинарах, частично дома в

качестве самостоятельной работы
Контрольный тест в середине семестра
Экзамен
Технология разработки ПОФормат курсаЛекцииСеминары9 практических заданий6 – в аудитории на семинарах3 – частично в аудитории на семинарах,

Слайд 6Технология разработки ПО
Практические задания

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

Слайд 7Технология разработки ПО
Баллы
Посещение – 10
Задания 2 и 3 (требования и

план) – 5
Задания 4 и 6 (дизайн и тест-план) –

5
Задания 5 (кодирование) – 10
Задания 7,8,9 (UT, инспекции, отчёт) – 5
Контрольный тест – 5
Экзамен – 60
Технология разработки ПОБаллыПосещение – 10Задания 2 и 3 (требования и план) – 5Задания 4 и 6 (дизайн

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

к мастеру.
Макконнелл С., Совершенный код. Мастер-класс
Фаулер М., Рефакторинг: улучшение существующего

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

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

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

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

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

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

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

программного кода (coding) и включает в себя аспекты качества, управления

и экономики, а также знание и применение на практике этих принципов и дисциплин
Технология разработки ПОПрограммная инженерия – Нечто большее, чем просто написание программного кода (coding) и включает в себя

Слайд 12Технология разработки ПО
Области знаний SWEBOK, 2004
Software requirements – программные требования
Software

design – дизайн (архитектура)
Software construction – конструирование программного обеспечения
Software testing

- тестирование
Software maintenance – эксплуатация (поддержка) программного обеспечения
Software configuration management – конфигурационное управление
Software engineering management – управление в программной инженерии
Software engineering process – процессы программной инженерии
Software engineering tools and methods – инструменты и методы
Software quality – качество программного обеспечения
Технология разработки ПООбласти знаний SWEBOK, 2004Software requirements – программные требованияSoftware design – дизайн (архитектура)Software construction – конструирование

Слайд 13Технология разработки ПО
Размер проектов всё больше
0
1
10
100
1,000
10,000
100,000
1,000,000
10,000,000
1960
1965
1970
1975
1980
1985
1990
1995
2000
Размер (тыс. строк кода)
Закон Мура:


производительность
удваивается
каждые 18 мес
[данные SEI, 2000 г.]

Технология разработки ПОРазмер проектов всё больше01101001,00010,000100,0001,000,00010,000,000196019651970197519801985199019952000Размер (тыс. строк кода)Закон Мура: производительностьудваивается каждые 18 мес[данные SEI, 2000 г.]

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

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

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

ПО никогда не завершаются
53% всех проектов по разработке ПО

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

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

Технология разработки ПОНекоторые факты - 118% всех проектов по разработке ПО никогда не завершаются 53% всех проектов

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

США провалило $8 млрд проект модернизации информационной системы, что стоило

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

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

системам, которые создаются человеком, и программное обеспечение по самой своей

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

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

разработанные требования

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

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

на людей Agile процессы.
NASA
высоко-формализованные процессы, постоянное совершенствование процессов.
Microsoft
MSF,

в некоторых подразделениях – SEI PSP.
Boeing, Northrop-Grumman, Lockheed-Martin
SEI PSP/TSP, «зрелые» процессы CMM 5 level.
Технология разработки ПОПути к успехуGoogle 	самоуправляемые небольшие команды, лёгкие ориентированные на людей Agile процессы.NASA 	высоко-формализованные процессы, постоянное

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

ПО

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

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

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

Технология разработки ПОПроцесс разработки ПО –Это набор правил и стандартов, согласно которым разрабатывается программный продуктОпределяет то, как

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

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

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

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

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

Слайд 24Технология разработки ПО
Пример блок-схемы процесса (CQG)

Технология разработки ПОПример блок-схемы процесса (CQG)

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

создания продукта к его выпуску
Разработка ПО
Идея
Продукт

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

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

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

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

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

Слайд 28Технология разработки ПО
Водопадный Итерационный
Классический водопад
Водопад с возвратами
V-образная модель
Спиральная модель
Модель

RAD
Инкрементная модель
Модель эволюционного прототипирования

Технология разработки ПОВодопадный  ИтерационныйКлассический водопадВодопад с возвратамиV-образная модельСпиральная модельМодель RADИнкрементная модельМодель эволюционного прототипирования

Слайд 29Технология разработки ПО
Пример жизненного цикла (CQG)

Технология разработки ПОПример жизненного цикла (CQG)

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

компании
Разработана в Software Engineering Institute (Carnegie Mellon University) по заказу

Министерства обороны США
Используется для оценки качества процесса разработки ПО
Ориентирована на крупные компании и проекты
Технология разработки ПОCapability Maturity ModelМодель зрелости процесса разработки ПО в компанииРазработана в Software Engineering Institute (Carnegie Mellon

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

процесса
Качество продукта и процесса
Целостность процесса
Управление проектами
Управление изменением технологий
Управление изменением процесса
Измерение

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

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

Уровень

Фокус

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

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

1 Начальный

Технология разработки ПОУровни CMM5 Оптимизирующий4 Управляемый 3 Определённый2 ПовторяемыйПостоянное улучшение процессаКачество продукта и процессаЦелостность процессаУправление проектамиУправление изменением

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

высоким риском неудачи
При разработке ПО необходимо применять процессный подход
Процесс –

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

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика