- •Технология разработки
- •Введение в программную инженерию
- •Программная инженерия
- •Программная инженерия –
- •Области знаний 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 |
