- •Технология разработки
- •Введение в программную инженерию
- •Программная инженерия
- •Программная инженерия –
- •Области знаний SWEBOK, 2004
- •Больше проект – больше проблем
- •Некоторые факты - 1
- •Некоторые факты - 2
- •Сложность программных продуктов
- •Причины провалов проектов
- •Пути к успеху
- •Ключ к успеху
- •Процесс разработки ПО –
- •Процесс описывает:
- •Характеристики процесса
- •Пример блок-схемы процесса (CQG)
- •Жизненный цикл разработки ПО
- •Водопадный жизненный цикл
- •Итерационный жизненный цикл
- •Водопадный Итерационный
- •Пример жизненного цикла (CQG)
- •Capability Maturity Model
- •Уровни CMM
- •Что следует запомнить
Технология разработки
программного
обеспечения
Савкин Вадим Сергеевич vadim.savkin@gmail.com
Введение в программную инженерию
Жизненный цикл и процесс разработки ПО
Программная инженерия
«Применение систематического,
дисциплинированного, поддающегося
количественному определению подхода
к разработке, эксплуатации и
сопровождению программного
обеспечения»
[IEEE 1990]
Технология разработки ПО |
3 |
Программная инженерия –
Нечто большее, чем просто написание
программного кода (coding) и включает
в себя аспекты качества, управленияи
экономики, а также знание и
применение на практике этих принципов и дисциплин
Технология разработки ПО |
4 |
Области знаний 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 – качество программного обеспечения
Технология разработки ПО |
5 |
|
Размер проектов всё больше |
|||||||||
кода) |
10,000,000 |
|
|
|
|
|
|
|
|
|
1,000,000 |
|
|
|
|
|
|
|
|
|
|
100,000 |
|
|
|
|
|
|
|
|
|
|
строк |
|
|
|
|
|
|
|
|
|
|
10,000 |
|
|
|
|
|
|
|
|
|
|
1,000 |
|
|
|
|
|
|
|
|
|
|
(тыс. |
|
|
|
|
|
|
|
|
|
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Размер |
10 |
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
Закон Мура: |
|
0 |
|
|
|
|
|
|
|
|
производительность |
|
|
|
|
|
|
|
|
|
|
удваивается |
|
|
0 |
5 |
0 |
5 |
0 |
5 |
0 |
5 |
0 |
|
|
|
|||||||||
|
6 |
6 |
7 |
7 |
8 |
8 |
9 |
9 |
0 |
каждые 18 мес |
|
9 |
9 |
9 |
9 |
9 |
9 |
9 |
9 |
0 |
|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
[данные SEI, 2000 г.]
Технология разработки ПО |
6 |
Больше проект – больше проблем
Размер |
Разработчики |
|
проекта |
||
|
||
Менее $750K |
6 |
|
От $750K до |
12 |
|
$1.5M |
||
|
||
От $1.5M до |
25 |
|
$3M |
||
|
||
От $3M до |
40 |
|
$6M |
||
|
||
От $6M до |
+250 |
|
$10M |
||
|
||
Более $10M |
+500 |
Время
(месяцы)
6 9
12
18
+24
+36
%успеха
55%
33%
25%
15%
8%
0%
[данные SEI, 2000 г.]
Технология разработки ПО |
7 |
Некоторые факты - 1
18% всех проектов по разработке ПО
никогда не завершаются
53% всех проектов по разработке ПО
завершаются с перерасходом бюджета в
среднем на 56% и превышением сроков
на 84%
только 29% проектов укладываются в срок и бюджет
[данные исследований Standish Group, 2004]
Технология разработки ПО |
8 |
Некоторые факты - 2
Министерство по налогам и сборам США
провалило $8 млрд проект модернизации информационной системы, что стоило $50
млрд несобранных налогов
Ракета Ariane 5 в 1996 взорвалась через 37
секунд после старта из-за бага в ПО
В аэропорту Хитроу в марте-апреле 2008
воцарился хаос из-за сбоя в работе компьютерных систем при открытии нового 5- го терминала
Технология разработки ПО |
9 |
Сложность программных продуктов
Программные продукты относятся к
самым сложным системам, которые создаются человеком, и программное
обеспечение по самой своейприроде
обладает рядом существенных и
неотъемлемых свойств (таких как
сложность, незримость и изменяемость), которые затрудняют работу.
Ф. Брукс, 1995
Технология разработки ПО |
10 |