Слайд 2
Содержание
Немного терминологии
Бизнес и IT-проекты. Рынок ПО в России
и в мире. Немного статистики
Причины неудачи IT-проектов
Программная инженерия –
путь к успеху в разработке ПО
Литература
Слайд 3
Содержание
Немного терминологии
IT-проекты
Программное обеспечение
Жизненный цикл ПО
Программы и программные продукты
Бизнес
и IT-проекты. Рынок ПО в России и в мире.
Немного статистики
О предмете
Причины неудачи IT-проектов
Программная инженерия – путь к успеху в разработке ПО
Литература
Слайд 4
IT-проекты
Будем понимать под IT-проектами проекты в области информационных
технологий.
Будем далее рассматривать IT-проекты, целью которых является разработка программного
обеспечения.
Слайд 5
Вопросы
Что такое программное обеспечение (ПО)?
Чем ПО отличается от
обычной программы?
Вчера мы с другом написали «Калькулятор». Определенно, это
программа. Является ли она ПО?
Версии зала...
Слайд 6
Программы и Программное обеспечение
Программное обеспечение (Software) – набор
компьютерных программ, процедур и связанной с ними документации и
данных (ISO/IEC 12207).
Программное
обеспечение
Программа
Слайд 7
Жизненный цикл ПО
Жизненный цикл ПО – период времени,
который начинается с момента принятия решения о необходимости создания
ПО и заканчивается в момент его полного изъятия из эксплуатации
Основным документом, регламентирующим состав процессов ЖЦ ПО является международный стандарт ISO/IEC 12207:1995 ”Information Technology – Software Life Cycle Processes” (ГОСТ Р ИСО/МЭК 12207-99)
ISO – International Organization for Standardization – Международная организация по стандартизации
IEC – International Electrotechnical Commission – Международная комиссия по электротехнике
Слайд 8
Вопросы
Какие виды программного обеспечения существуют? Назовите примеры.
Какова классификация
ПО?
Версии зала...
Слайд 9
Классификация ПО
Системное ПО - комплекс программ, предназначенных для
управления работой персонального компьютера, распределение его ресурсов, поддержание диалога
с пользователем, оказание ему помощи в разработке новых программ и выполнение работ связанных с обслуживанием компьютера.
Прикладное ПО - совокупность программ для решения прикладных задач, в определенной области (в промышленности, математике, бухгалтерии и т.д.).
Слайд 10
Классификация СПО
Операционная система – комплекс управляющих программ, обеспечивающих
функционирование вычислительной машины, включая планирование и управление ресурсами ЭВМ,
решение задач (выполнение прикладных и обслуживающих программ) по запросам пользователей, управление вводом-выводом данных.
Слайд 11
Классификация СПО
Система программирования – комплекс средств для разработки
и отладки программ. В СП включают языки программирования, трансляторы,
различные обслуживающие программы для редактирования текстов и отладки программ
Слайд 12
Классификация СПО
Системные обслуживающие программы -предназначены для выполнения типовых
действий по подготовке носителей информации к записи на них
данных, копирования, переименования и удаления файлов и т.п.
Слайд 13
Классификация СПО
Средства контроля и диагностики - служат для
проверки исправности отдельных устройств машины и локализации выявленных неисправностей
Слайд 15
Определение ППП
Пакеты прикладных программ (ППП) – это совокупность
совместимых программ для решения определенного класса задач.
Слайд 16
Свойства ППП
должен состоять из нескольких программных единиц;
предназначен для
решения определенного класса задач;
в пределах своего класса обладает определенной
универсальностью, т.е. позволяет решать все или почти все задачи этого класса;
предусмотрены средства управления, позволяющие выбирать конкретные возможности из числа предусмотренных в пакете, пакет допускает настройку на конкретные условия применения;
разработан с учетом возможности его использования за пределами той организации, в которой он создан и удовлетворяет общим требованиям к ПИ;
документация и способы применения ориентированы на пользователя, имеющего определенный уровень квалификации в той области знаний, к которой относятся решаемые пакетом задачи.
Слайд 18
Классификация ППО
ППП
Универсальные
Методо-ориентированные
Проблемно-ориентированные
ЭТ
Текстовые процессоры
Экспертные системы
СУБД
Интегриро-ванные
CASE-технологии
ППП общего назначения – универсальные
программные продукты, предназначенные для автоматизации разработки и эксплуатации функциональных
задач пользователя и информационных систем в целом
Слайд 19
Классификация ППО
В алгоритмической основе этих пакетов реализован какой-либо
экономический или математический метод
Примеры
Statistika
MathCad
MathAple
AutoCad
Слайд 20
Классификация ППО
Предназначены для решения какой-либо задачи в конкретной
функциональной области
Примеры
1С Предприятие
1С Бухгалтерия
Галактика
Project Expert
Слайд 21
ПО (Software) и
программный продукт
Итак,
ПО = программа
+ документация + [...].
Вместо ПО часто говорят «программный продукт».
Программный
продукт: одно из главных свойств – продаваемость.
Продаваемость – залог успеха бизнеса по разработке ПО.
Слайд 22
Программное изделие (ПИ)
ПИ – программа на носителе данных,
являющаяся продуктом промышленного производства. (п.5. ГОСТ 19.004-80)
ПИ разрабатывается для
обработки множества набора данных с учетом конкретных условий разных потребителей.
Слайд 23
ПИ должно отвечать ряду требований:
Программное изделие -
программа или логически связанная совокупность программ:
- записанная на
носителях данных;
- являющаяся продуктом промышленного производства;
- снабженная программной документацией;
- предназначенная для широкого распространения посредством продажи или методами freeware, shareware или OEM.
По-английски: Program product
Синонимы: Программный продукт, Программное средство
Слайд 24
Содержание
Немного терминологии
Бизнес и IT-проекты. Рынок ПО в России
и в мире. Немного статистики
Причины неудачи IT-проектов
Программная инженерия –
путь к успеху в разработке ПО
Структура учебного плана
Литература
Слайд 25
Бизнес и IT-проекты...
Сейчас программирование это не только наука
и искусство, но и бизнес.
Для того, чтобы этот бизнес
был успешным, необходимо выполнение многих условий.
Версии зала...
Условия?
Слайд 26
Бизнес и IT-проекты...
Необходимые условия успеха программистской компании:
выпуск продукта
на рынок
надлежащего качества;
вовремя;
интересного потенциальным пользователям.
расходы должны соответствовать изначальному бюджету.
Слайд 27
Бизнес и IT-проекты
Многие проекты:
Цель: Результат:
Функциональность
Время
Бюджет
''
$
Слайд 28
Небольшие проекты – проектная команда – не менее
10 человек, срок от 3 до 6 месяцев;
Средние проекты
– проектная команда от 20 до 30 человек, протяженность проекта 1-2 года;
Крупномасштабные проекты – проектная команда – от 100 до 300 человек, протяженность проекта – 3-5 лет;
Гигантские проекты – армия разработчиков от 1000 до 2000 человек и более (включая консультантов и соискателей), протяженность проекта от 7 до 10 лет.
Категории современных проектов
Слайд 29
Мировая статистика разработки проектов данным отчета Standish Group
– CHAOS Report)
www.standandishgroup.com
Слайд 30
Немного статистики.
IT-проекты
0%
100%
1994
* Источник: The Standish Group International,
Extreme Chaos.
Данные взяты с http://www.softwaremag.com/archive/2001feb/CollaborativeMgt.html,
http://www-128.ibm.com/developerworks/rational/library/feb06/marasco/
1995
1998
2000
Провалены Испытали большие проблемы Успешные
28%
2001
31%
2003
Слайд 31
Еще немного статистики…*
2004г.
3 700 000 000$
ушло на разработку
программных приложений
(без учета консалтинга, обновления
методологии ...)
* Источник: The Standish Group International, Extreme Chaos.
Данные взяты с http://www.softwaremag.com/archive/2001feb/CollaborativeMgt.html,
http://www-128.ibm.com/developerworks/rational/library/feb06/marasco/
Слайд 32
Еще немного статистики*
* Источник: The Standish Group International
Данные взяты с http://www.infoworld.com/infoworld/img/33FEmyth2_ch2.gif
Слайд 33
Об отрасли разработки ПО
в России
На конец 90-х
годов:
Хорошие программисты.
Грамотные аналитики.
Недостаток хороших управленцев.
Проблемы с документированием и локализацией.
Проблемы
с рекламой и продвижением.
Слайд 34
IT-рынок и отрасль разработки ПО в России*
Современные реалии
(2005-2006гг.)
Объем экспорта ПО из России в 2005г. превысил 1млрд.$
(автомобили 380млн.$, атомная энергетика – 850млн.$).
* Источник: Светлана Шляхтина, Компьютер Пресс, 27 января 2006г.
Данные взяты с http://www.aplana.ru/news/fullpublication.asp?id=139&page=1&year=2006
Слайд 35
IT-рынок и отрасль разработки ПО в России*
Современные реалии
(2005-2006г.г.)
IT-рынок в России
2004 – 9,2млрд.$
2005 – рост 22,1% (в
мире ~6%)!
Мировой IT рынок (2005г.) – 900млрд.$
* Источник: Светлана Шляхтина, Компьютер Пресс, 27 января 2006г.
Данные взяты с http://www.aplana.ru/news/fullpublication.asp?id=139&page=1&year=2006
Слайд 36
IT-рынок и отрасль разработки ПО в России*
Современные реалии
(2005-2006г.г.)
Рынок ПО в России
2005 – 1,4млрд.$ (1/8 от всего
IT).
Рост – 40-50% в год.
* Источник: Светлана Шляхтина, Компьютер Пресс, 27 января 2006г.
Данные взяты с http://www.aplana.ru/news/fullpublication.asp?id=139&page=1&year=2006
Слайд 37
IT-рынок и отрасль разработки ПО в России*
Современные реалии
(2011-2012г.г.)
Рост рынка ПО в России
2011 – 716 млрд.руб. .
Рост
– 14,7% по сравнению с 2010 годом
* Источник: Светлана Шляхтина, Компьютер Пресс, 27 января 2006г.
Данные взяты с http://www.aplana.ru/news/fullpublication.asp?id=139&page=1&year=2006
Слайд 38
Тенденции
Быстрый рост объемов IT-рынка, рынка ПО.
Укрепление позиций российских
компаний.
По-прежнему малая доля в мировых объемах.
В чем нуждается отрасль?
В
грамотных специалистах, способных повысить успешность проектов.
Слайд 39
Содержание
Немного терминологии
Бизнес и IT-проекты. Рынок ПО в России
и в мире. Немного статистики
Причины неудачи IT-проектов
Программная инженерия –
путь к успеху в разработке ПО
Структура учебного плана
Литература
Слайд 40
Почему проекты не успешны?
Специалисты выделяют следующие причины:
Нереалистичные временные
рамки.
Недостаток количества исполнителей.
Размытые границы проекта.
Недостаток средств.
Нехватка квалифицированных кадров.
Слайд 41
Кто виноват?
Все 5 пунктов относятся к компетенции управленцев
различного уровня.
Проектами в области разработки ПО очень сложно эффективно
управлять.
Почему?
Версии зала...
Слайд 42
Откуда берется
сложность управления?
Человеческий фактор. Традиционные трудности управления
коллективом.
Новая молодая область. Не хватает квалифицированных кадров, методов, технологий,
опыта.
Сложность задач. Рост возможностей приводит к росту сложности решаемых задач и наоборот.
Трудности в работе с заказчиками и будущими пользователями. Заказчики не знают, что они хотят. Пользователи плохо владеют ПК и не понимают, как он работает и что от него ждать. Все говорят на разных языках.
...
Слайд 43
Недопонимание потребностей пользователей;
Неумение справиться с изменяющимся требованиями;
Программное обеспечение
трудно сопровождать;
Позднее обнаружение серьезных ошибок в проекте;
Неудовлетворительное качество ПО;
Низкая
производительность ПО;
Плохая управляемость командой разработчиков и процессом разработки.
Проблемы сегодняшнего дня
Слайд 44
Нечеткая и неполная формулировка требований к ПО, недостаточное
управление требованиями;
Частное изменение требованиями и спецификаций;
Недостаточное вовлечение пользователей в
работу над проектом;
Отсутствие необходимых ресурсов;
Неудовлетворительное планирование;
Отсутствие грамотного управления проектом;
Недостаточная поддержка со стороны вышестоящего руководства;
Высокая сложность создаваемых систем;
Нестабильная архитектура;
Недостаточное тестирование;
Новизна используемой технологии для организации.
Причины возможных неудач
(по данным Standish Group и Rational Software)
Слайд 45
План проекта сжат более чем наполовину по сравнению
с нормальным расчётным планом;
Количество разработчиков уменьшено более чем наполовину
по сравнению с действительно необходимым для проекта данного масштаба;
Бюджет и связанные с ним ресурсы урезаны наполовину;
Требования к функциям, производительности и другим характеристикам вдвое превышают значения, которые они могли бы иметь в нормальных условиях.
Edward Yourdon “Death March. The complete Software Developer’s Guide to Surviving “Mission Impossible” Projects”
(Эдвард Йордон «Путь камикадзе» М., ЛОРИ, 2000)
Другие причины – экстремальные условия выполнения проектов:
Слайд 46
Как бороться со сложностью?
Как бороться со сложностью задач?
(1)
Как бороться со сложностью управления? (2)
Ответ: разрабатывать и внедрять
специальные технологии и методологии разработки программных систем.
Слайд 47
Содержание
Немного терминологии
Бизнес и IT-проекты. Рынок ПО в России
и в мире. Немного статистики
Причины неудачи IT-проектов
Программная инженерия –
путь к успеху в разработке ПО
Структура учебного плана
Литература
Слайд 48
Программная инженерия
«Программная инженерия»(software engineering) – совокупность инженерных методов
и средств создания ПО – индустриальный способ создания ПО.
Слайд 49
Программная инженерия
Фундаментальная идея программной инженерии – проектирование ПО
является формальным процессом, который можно изучать и совершенствовать.
Слайд 50
Этапы становления и развития программной инженерии:
70-е и
80-е годы – систематизация и стандартизация процессов создания ПО
(на основании структурного подхода);
90-е годы – начало перехода к сборочному, индустриальному способу создания ПО (на основе объектно – ориентированного подхода)
Программная инженерия
Слайд 51
История
Начало 70-х годов – “software crisis” (кризис
ПО)
Проблемы:
отставание от графика;
превышение сметы расходов;
разработанный продукт не обладает
требуемыми функциональными возможностями;
низкая производительность ПО;
качество ПО не устраивает потребителей.
Слайд 52
Инженеры...
Программная инженерия.
Кто такие инженеры?
Версии зала...
Слайд 53
Инженеры...
Инженер *
(франц. ingénieur,
от лат. ingenium – способность, изобретательность),
Специалист
с высшим техническим образованием.
Первоначально – название лиц, управлявших военными машинами.
* Источник: Большая Советская Энциклопедия.
Слайд 54
Инженеры...
Понятие гражданский инженер появилось в 16 в.
в Голландии применительно к строителям мостов и дорог, затем
в Англии и др. странах.
Первые учебные заведения для подготовки инженеров были созданы в 17 в. в Дании, в 18 в. – в Великобритании, Франции, Германии, Австрии и др.
Слайд 55
Инженеры
В России первая инженерная школа основана Петром I
в 1712 в Москве. В Петербурге были открыты Горное
училище, приравненное к академиям (1773), Институт инженеров путей сообщения (1809), Училище гражданских инженеров (1832, с 1882 - Институт гражданских инженеров), Инженерная академия (1855).
С 19 в. за рубежом стали различать инженеров-практиков, или профессиональных инженеров (по существу специалистов, имевших квалификацию техника), и дипломированных инженеров, получивших высшее техническое образование (Civil Engineer).
Слайд 56
Программные инженеры
Кто такие инженеры?
Инженер – дипломированный специалист, имеющий
высшее техническое образование.
Кто такие программные инженеры?
Программный инженер – инженер
в области разработки программного обеспечения.
Слайд 57
Программная инженерия как инженерная дисциплина
Программная инженерия – инженерная
дисциплина, связанная с теорией, методами и средствами профессиональной разработки
ПО.
Программная инженерия способствует решению проблемы роста стоимости разработки ПО.
Программная инженерия имеет дело со всеми аспектами создания ПО.
Слайд 58
Область действия
программной инженерии...
В западной литературе часто используются
термины: software engineering, system engineering и computer science. В
чем разница?
Computer science имеет дело с теорией и основами разработки ПО.
System engineering связано с вопросами разработки систем с участием компьютеров (архитектура, дизайн, интеграция, ПО...).
Software engineering – часть System engineering, имеющая дело с ПО.
Слайд 59
Область действия
программной инженерии
Итак, computer science предоставляет теоретический
базис. На практике его недостаточно. Открытые проблемы:
Поиск финансирования.
Работа с
заказчиком.
Подбор персонала.
Этические вопросы. Микроклимат в коллективе. Команда.
Обеспечение качества программного продукта.
...
Всем этим занимается программная инженерия.
Слайд 60
Цели программных инженеров...
Цели программных инженеров:
Создать качественный продукт.
Уложиться в
бюджет.
Уложиться в сроки.
Слайд 61
Цели программных инженеров. Качественный программный продукт...
Качественный программный продукт:
Должен
представлять требуемую функциональность.
Быть удобным в сопровождении.
Быть надежным.
Быть эффективным.
Быть удобным
в использовании.
Слайд 62
Цели программных инженеров. Качественный программный продукт
ПО должно быть
качественным.
Удобство в сопровождении:
ПО должно допускать развитие в связи с
изменением потребностей пользователей.
Надежность:
Возможные неполадки в работе не должны нанести существенный, тем более невосполнимый ущерб.
Эффективность:
ПО должно эффективно использовать имеющиеся ресурсы.
Удобство в использовании:
ПО должно приниматься пользователями «на ура», работа должна быть удобной и естественной.
Слайд 63
Цели программных инженеров. Бюджет
Создание ПО должно укладываться в
бюджет.
Типовое распределение средств:
60% – разработка.
40% – тестирование.
Развитие – зачастую
больше, чем создание.
Детали зависят от специфики предметной области, требований к ПО, используемых подходов к организации разработки.
Слайд 64
Цели программных инженеров. Сроки
Необходимо грамотное планирование.
Анализ возможных рисков
и способы реагирования.
Борьба за четкие границы проекта.
Мотивирование сотрудников.
Создание ПО
должно укладываться в сроки.
Слайд 65
Программные инженеры и научная среда
Взаимодействие с научной средой
– один из способов повышения эффективности деятельности:
Новые технологии.
Новые методы,
алгоритмы.
Анализ новых перспективных разработок.
Исследовательская работа в смежных областях.
Помощь ученых:
Там где в принципе не решить задачу своими силами.
Там, где есть специалисты, но нет времени и ресурсов для исследований.
Используется современными компаниями:
Intel, Microsoft, IBM…
Слайд 66
Чтобы быть конкурентоспособной, организация-разработчик должна:
Перейти от кустарных к
промышленным методам создания ПО
Обучить сотрудников методам и технологиям программной
инженерии
Регламентировать и автоматизировать технологические процессы
Внедрить систему качества
Слайд 67
Системы должны создаваться в короткие сроки и соответствовать
требованиям заказчика на момент внедрения;
Качество ПО должно быть высоким;
Разработка
должна быть осуществлена в рамках выделенного бюджета;
Системы должны работать на оборудовании заказчика, а также взаимодействовать с имеющимся ПО;
Системы должны быть легко сопровождаемыми и масштабируемыми.
Программная инженерия – способ гарантировать выполнение требований заказчика