Лекция 01 - Введение. swebok€¦ · ¥ Жизненный цикл ПО ¥...

35
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ П РОГРАММНАЯ ИНЖЕНЕРИЯ

Upload: others

Post on 02-Jun-2020

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ

ПРОГРАММНАЯ ИНЖЕНЕРИЯ

Page 2: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММА КУРСА¥ 18лекций;9практическихзанятий¥ Основныебаллы:

¥ Дополнительныебаллы:

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 2

Блок Максимумбаллов БалловнааттестациюПодготовкакурсовойработы 15 7Выполнение практическихработ 30 15Тестыналекциях 5 -Экзамен 50 25

Блок МаксимумбалловПосещаемость практическихзанятий 10Подготовка ипредставлениедоклада 10Выполнение дополнительныхзаданийпопрактическимработам 10

Page 3: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ИТОГОВАЯ АТТЕСТАЦИЯ

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 3

1) Аттестованповсемблокам:экзаменввидетеста2) Неаттестованхотябыпоодномублоку:экзамен

ввидетеста+практическоезаданиесделатьналисточке/всредемоделированияUML.

3) Переэкзаменовка: экзаменввидетеста+практическоезаданиесделатьналисточке/всредемоделированияUML. Оценка Баллы

2(Неуд.) 0-503(Удовл.) 50.01-654 (Хор.) 65.01-755 (Отл.) 75.01-100

Page 4: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 4

Page 5: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ЛИТЕРАТУРА

¥ Арлоу Д.,Нейштад А.UML2иУнифицированныйпроцесс.Практическийобъектно-ориентированныйанализипроектирование,2-еиздание.2007.624с.

¥ СергейОрлов,БорисЦилькер.Технологииразработкипрограммногообеспечения 4-еиздание.2012г.608с.

¥ БучГ.идр.Объектно-ориентированныйанализипроектированиеспримерамиприложений.3-еиздание.2010г.718с.

¥ БруксФ.Мифическийчеловеко-месяц,илиКаксоздаютсяпрограммныесистемы.2007.304с.

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 5

Page 6: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ДОКЛАДЫ

Максимум10балловзадоклад(минимум45минут).

1. Выбрать(илиуказать)темудокладавфоруменастраницекурса.

2. Выбратьзанятие,накоторомвыхотитесделатьсвойдоклад,назначиввстречунасоответствующийденьвкалендаредокладов.

3. Минимумзанеделюдодокладазагрузитьнафорумпрезентацию,получитьотзывиотредактироватьпрезентациювсоответствиисзамечаниями.

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 6

Page 7: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ВОЗМОЖНЫЕ ТЕМЫ ДОКЛАДОВ

Выможетевыбратьоднуизтемпредставленныхниже,либопредложитьсобственнуютемупопрограммнойинженерии:

¥ ГибкиеметодологииразработкиПО.Методологияэкстремальногопрограммирования.Scrum,Kanban.

¥ Системыуправленияверсиями(VCS)ПО:история,видыVCS,современныеVCS:SVN,GIT,Mercurial.

¥ Разработкачерезтестирование(TDD).Разработканаосновеповедения(BDD).СистемыподдержкиTDDиBDD(Cucumber,SpecFlow).

¥ КонцепциянепрерывнойинтеграцииПО.Системыподдержкинепрерывнойинтеграции.TeamCity,Jenkins (Hudson)- функциональныевозможности,настройкаииспользование.

¥ МетодыиподходыккоманднойразработкеПО.Системыиметодологииподдержкикоманднойразработки.

Пожалуйста,проверяйте,чтобыжелаемаявамитемадокладанебылавыбранадовас.

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ7

Page 8: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ОСНОВНЫЕ ТЕМЫ КУРСА

¥ ЖизненныйциклПО

¥ СоставлениетребованийкПОивариантыиспользования

¥ Объектно-ориентированныйанализПО

¥ Объектно-ориентированноепроектированиеПО

¥ Кодированиеитестирование

¥ Архитектурапрограммныхсистем

¥ МетрикииоценкакачестваПО© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 8

Page 9: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММНАЯ ИНЖЕНЕРИЯ

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 9

Page 10: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ИНЖЕНЕРИЯ

¥ Инженерияобеспечиваетрешениепоставленныхзадачпосредствомсуществующихтеорийиметодов.

¥ Инженерначинаетспостановкизадачиипоискаинструментовдлянаилучшегорешениязадачиврамкахсуществующихорганизационных,финансовыхивременныхограничений.

¥ Программнаяинженерияделаетзначительныйупорнаметодыиподходы аненаинструменты.

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 10

Page 11: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ОРФОГРАФИЯ

Инжен’ерия

Engin’eering© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 11

Инжен’ерия

Engin’eering

Page 12: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММНАЯ ИНЖЕНЕРИЯ

¥ Терминбылпредложенв1968г.наконференциипосвященной«КризисуПО»,возникшеговрезультатепоявленияинтегральныхсхемикатастрофическогоусложненияПО:

¤ Реализацияпроектовзадерживаласьнагоды

¤ Стоимостьпроектоввдесяткиразпревышалапрогнозируемую

¤ Необходимыбылиметодыразработкииконтролятакихсложныхпрограммныхсистем

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 12

Page 13: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

¥ Программноеобеспечение(программныйпродукт) – этокомпьютернаяпрограммаисоответствующаядокументация.Программныепродуктымогутбытьразработаныкакдляконкретногозаказчика,такидлявсегорынкавцелом.

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 13

Page 14: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММА И ПРОГРАММНЫЙ ПРОДУКТ

Программа

Программныйкомплекс

(интерфейсы,системнаяинтеграция)

Программныйпродукт

(обобщение,тестирование,документирование,сопровождение)

Системныйпрограммный

продукт

Ф. БРУКС. МИФИЧЕСКИЙ ЧЕЛОВЕКО-МЕСЯЦ 14

x3

x3

Page 15: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММНАЯ ИНЖЕНЕРИЯ

¥ Программнаяинженерия– этоинженернаядисциплина,отражающаявсеграниразработкипрограммногообеспечения.

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 15

Page 16: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ПРОГРАММНАЯ ИНЖЕНЕРИЯVS КОМПЬЮТЕРНЫЕ НАУКИ

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

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

Компьютерные науки

Теорияифундаментальныеосновыпосозданиюалгоритмовикомпьютерныхпрограмм

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 16

В идеале, каждый программный инженер должен знать компьютерные науки (как каждый электрик должен знатьфизику)

Page 17: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

Программист

© IVAN MARSIC. SOFTWARE ENGINEERENG. RUTGERS THE STATE UNIVERSITY OF NEW JERSEY 17

ПРОГРАММНАЯИНЖЕНЕРИЯ

ЗаказчикЗадача,

требования,ограничения

Page 18: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ХОРОШЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

МожновыделитьследующиеважныепризнакихорошегоПО:

¥ Удобствосопровождения- ПОдолжнобытьнаписанотакимобразом,чтобыономоглоразвиваться,чтобысоответствоватьизменяющимсятребованиямпользователей.

¥ Функциональнаянадежность– надежноеПОнедолжноприноситьфизическогоилиэкономическоговредавслучаесистемнойошибки.

¥ ЭффективностьПО– должноэффективноиспользоватьресурсысистемы,включаяпамять(оперативнуюи/илипостоянную),процессорноевремяит.п.

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

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 18

Page 19: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

СОВРЕМЕННЫЕ ПРОБЛЕМЫПРОГРАММНОЙ ИНЖЕНЕРИИ

¥ Проблемагетерогенности

¥ Проблемасвоевременногопредставлениярезультатов

¥ Проблемадоверия

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 19

Page 20: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

SWEBOK

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 20

Page 21: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

ЧТО ТАКОЕ SWEBOK

¥ SWEBOK– это SoftwareEngineeringBodyofKnowledge(Сводзнаниипо программной инженерии)

¥ SWEBOK– этооткрытыйпроект,реализуемыйприподдержкемеждународногокомитетаIEEE начинаяс1998года.

¥ ВSWEBOKопределеннаборзнанийирекомендуемыепрактикипоинженериипрограммногообеспечения.

¥ Последняяверсия(SWEBOKV3)выпущенав2013году

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 21

Page 22: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 22

1. РАБОТА С ТРЕБОВАНИЯМИ К ПО¤ ОсновытребованийкПО(чтотакоетребованиекПО; Функциональные

инефункциональныетребования)¤ Процессработыстребованиями¤ Методывыявлениятребований¤ АнализтребованийкПО¤ Методыспецификацииивалидациитребований¤ Системыдляподдержкиработыстребованиями

Page 23: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

23

2. ПРОЕКТИРОВАНИЕ ПО¤ ОсновыпроектированияПО(принципыи

концепциипроектированияПО)¤ Основныесложностиприпроектировании

(управлениепараллелизмом,обработкасобытий,распределениекомпонентовсистем,согласованностьданных,обработкаисключительныхситуаций,представлениеданных,безопасность)

¤ СтруктураиархитектураПО(паттерныпроектирования,архитектурныерешенияипринципы,основныефреймворки)

¤ Проектированиепользовательскогоинтерфейса¤ ОценкакачестваПО¤ ЯзыкиинотациидляописанияархитектурыПО¤ СтратегиииметодыпроектированияПО¤ СистемыподдержкипроектированияПО

Page 24: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

3. РАЗРАБОТКА (КОДИРОВАНИЕ) ПО

¤ ОсновыразработкиПО¤ Практическиеподходык

кодированиюсучетомповторногоиспользованияикачествакода

¤ Технологииразработки(созданиеAPI,объектно-ориентированнаяразработка,обработкаошибокиисключительныхситуаций,идр.)

¤ СредыразработкиПО.

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 24

Page 25: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

4. ТЕСТИРОВАНИЕ ПО

¤ ОсновытестированияПО

¤ УровнитестированияПО

¤ МетодытестированияПО

¤ МетрикитестированияПО

¤ Процесстестирования

¤ СистемыподдержкитестированияПО

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 25

Page 26: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

5. ПОДДЕРЖКА ПО

¤ ОсновыподдержкиПО

¤ ОсновныепроблемыприподдержкеПО

¤ Процессподдержки

¤ ТехникиобеспеченияподдержкиПО

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 26

Page 27: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

6. УПРАВЛЕНИЕ КОНФИГУРАЦИЯМИ:

¤ ЧтотакоеконфигурацияПОичтотакоеуправлениеконфигурациями.

¤ ПроцессуправлениеконфигурациямиПО

¤ АудитконфигурацииПО¤ Управлениепроцессомсборкии

развертыванияпрограммныхсистем¤ Программныесистемыдля

поддержкипроцессауправленияконфигурациями

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 27

Page 28: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

8. ПРОЦЕСС РАЗРАБОТКИ ПО¤ Определениепонятия

процессаразработкиПО¤ Понятиежизненногоцикла

ПО¤ Оценкакачестваи

улучшениепроцессаразработки

¤ ИзмерениеПО¤ Программныесистемыдля

поддержкипроцессаразработкиПО

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 28

Page 29: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

9. МОДЕЛИ И МЕТОДЫ РАЗРАБОТКИ ПО

¤ ПонятиемоделированиявразработкеПО

¤ Типымоделей(информационные,структурные,поведенческие)

¤ Методыпрограммнойинженерии(эвристические,формальные,прототипирование,гибкиеметоды)

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 29

Page 30: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

10. КАЧЕСТВО ПО

¤ ПонятиекачестваПО(культураиэтикаприразработкеПО,безопасностьПО)

¤ УправлениекачествомПО

¤ Практическиеметодыуправлениякачеством(требованияккачествуПО,определениедефектов,измерениекачестваПО)

¤ Программныесистемыдляуправлениякачеством

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 30

Page 31: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

11. ПРОФЕССИОНАЛЬНЫЕ ПРАКТИКИ

¤ Понятиепрофессионализма:¢ профессиональнаяаккредитацияилицензирование,кодексэтики;¢ профессиональныесообщества,профессиональныестандарты;¢ экономическиеэффектыПО;¢ понятиеконтрактанаразработкуПО,контрактнаработу;¢ юридическиеособенностиразработкиПО

¤ Управлениегруппами¢ особенностигрупповойработы¢ управлениесложностью¢ взаимодействиесзаказчиком¢ взаимодействиеслюдьмииздругихкультур

¤ Коммуникация¢ Чтение¢ Письмо¢ Взаимодействиевнутрикоманды¢ Навыкипрезентации

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 31

Page 32: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

12. ЭКОНОМИКА РАЗРАБОТКИ ПО

¤ ОсновыэкономикиразработкиПО(финансы,бухгалтерия,денежныйпоток,налоги)

¤ Экономикапрограммногопродукта(проект,продукт,жизненныйциклпроектаипродукта,инвестиции,горизонтыпланирования,определениецены)

¤ Рискиинеопределенность¤ Моделиэкономическогоанализа

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 32

Page 33: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

13. ОСНОВЫ ВЫЧИСЛЕНИЙ

¤ ОсновыСУБДиуправленияданными

¤ Основыкомпьютерныхсетей¤ Параллельныеи

распределенныевычисления¤ Взаимодействиес

пользователем¤ БезопасностьПО

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 33

¤ Основыпрограммирования¤ Основыязыков

программирования¤ Методыисистемыотладки¤ Структурыданных¤ Алгоритмыисложность¤ Архитектуракомпьютера¤ Основыкомпиляторов¤ Основыоперационныхсистем

Page 34: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

14. МАТЕМАТИЧЕСКИЕ ОСНОВЫ

¤ Множества,отношения,функции¤ Математическаялогика¤ Методыдоказательств¤ Графыидеревья¤ Дискретнаявероятность¤ Машиныконечныхсостояний¤ Грамматики¤ Численныеметоды,точность¤ Теориячисел¤ Алгебраическиеструктуры

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 34

Page 35: Лекция 01 - Введение. SWEBOK€¦ · ¥ Жизненный цикл ПО ¥ Составление требований к ПО и варианты использования

15. ОСНОВЫ ИНЖЕНЕРИИ

¤ Эмпирическиеметодыитехникиэксперимента

¤ Статистическийанализ¤ Основыизмерений¤ Моделирование,симуляция,

прототипирование¤ Стандарты

© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 35