Лекция 01 - Введение....
TRANSCRIPT
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
ПРОГРАММА КУРСА¥ 18лекций;9практическихзанятий¥ Основныебаллы:
¥ Дополнительныебаллы:
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 2
Блок Максимумбаллов БалловнааттестациюПодготовкакурсовойработы 15 7Выполнение практическихработ 30 15Тестыналекциях 5 -Экзамен 50 25
Блок МаксимумбалловПосещаемость практическихзанятий 10Подготовка ипредставлениедоклада 10Выполнение дополнительныхзаданийпопрактическимработам 10
ИТОГОВАЯ АТТЕСТАЦИЯ
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 3
1) Аттестованповсемблокам:экзаменввидетеста2) Неаттестованхотябыпоодномублоку:экзамен
ввидетеста+практическоезаданиесделатьналисточке/всредемоделированияUML.
3) Переэкзаменовка: экзаменввидетеста+практическоезаданиесделатьналисточке/всредемоделированияUML. Оценка Баллы
2(Неуд.) 0-503(Удовл.) 50.01-654 (Хор.) 65.01-755 (Отл.) 75.01-100
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 4
ЛИТЕРАТУРА
¥ Арлоу Д.,Нейштад А.UML2иУнифицированныйпроцесс.Практическийобъектно-ориентированныйанализипроектирование,2-еиздание.2007.624с.
¥ СергейОрлов,БорисЦилькер.Технологииразработкипрограммногообеспечения 4-еиздание.2012г.608с.
¥ БучГ.идр.Объектно-ориентированныйанализипроектированиеспримерамиприложений.3-еиздание.2010г.718с.
¥ БруксФ.Мифическийчеловеко-месяц,илиКаксоздаютсяпрограммныесистемы.2007.304с.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 5
ДОКЛАДЫ
Максимум10балловзадоклад(минимум45минут).
1. Выбрать(илиуказать)темудокладавфоруменастраницекурса.
2. Выбратьзанятие,накоторомвыхотитесделатьсвойдоклад,назначиввстречунасоответствующийденьвкалендаредокладов.
3. Минимумзанеделюдодокладазагрузитьнафорумпрезентацию,получитьотзывиотредактироватьпрезентациювсоответствиисзамечаниями.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 6
ВОЗМОЖНЫЕ ТЕМЫ ДОКЛАДОВ
Выможетевыбратьоднуизтемпредставленныхниже,либопредложитьсобственнуютемупопрограммнойинженерии:
¥ ГибкиеметодологииразработкиПО.Методологияэкстремальногопрограммирования.Scrum,Kanban.
¥ Системыуправленияверсиями(VCS)ПО:история,видыVCS,современныеVCS:SVN,GIT,Mercurial.
¥ Разработкачерезтестирование(TDD).Разработканаосновеповедения(BDD).СистемыподдержкиTDDиBDD(Cucumber,SpecFlow).
¥ КонцепциянепрерывнойинтеграцииПО.Системыподдержкинепрерывнойинтеграции.TeamCity,Jenkins (Hudson)- функциональныевозможности,настройкаииспользование.
¥ МетодыиподходыккоманднойразработкеПО.Системыиметодологииподдержкикоманднойразработки.
Пожалуйста,проверяйте,чтобыжелаемаявамитемадокладанебылавыбранадовас.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ7
ОСНОВНЫЕ ТЕМЫ КУРСА
¥ ЖизненныйциклПО
¥ СоставлениетребованийкПОивариантыиспользования
¥ Объектно-ориентированныйанализПО
¥ Объектно-ориентированноепроектированиеПО
¥ Кодированиеитестирование
¥ Архитектурапрограммныхсистем
¥ МетрикииоценкакачестваПО© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 8
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 9
ИНЖЕНЕРИЯ
¥ Инженерияобеспечиваетрешениепоставленныхзадачпосредствомсуществующихтеорийиметодов.
¥ Инженерначинаетспостановкизадачиипоискаинструментовдлянаилучшегорешениязадачиврамкахсуществующихорганизационных,финансовыхивременныхограничений.
¥ Программнаяинженерияделаетзначительныйупорнаметодыиподходы аненаинструменты.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 10
ОРФОГРАФИЯ
Инжен’ерия
Engin’eering© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 11
Инжен’ерия
Engin’eering
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
¥ Терминбылпредложенв1968г.наконференциипосвященной«КризисуПО»,возникшеговрезультатепоявленияинтегральныхсхемикатастрофическогоусложненияПО:
¤ Реализацияпроектовзадерживаласьнагоды
¤ Стоимостьпроектоввдесяткиразпревышалапрогнозируемую
¤ Необходимыбылиметодыразработкииконтролятакихсложныхпрограммныхсистем
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 12
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
¥ Программноеобеспечение(программныйпродукт) – этокомпьютернаяпрограммаисоответствующаядокументация.Программныепродуктымогутбытьразработаныкакдляконкретногозаказчика,такидлявсегорынкавцелом.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 13
ПРОГРАММА И ПРОГРАММНЫЙ ПРОДУКТ
Программа
Программныйкомплекс
(интерфейсы,системнаяинтеграция)
Программныйпродукт
(обобщение,тестирование,документирование,сопровождение)
Системныйпрограммный
продукт
Ф. БРУКС. МИФИЧЕСКИЙ ЧЕЛОВЕКО-МЕСЯЦ 14
x3
x3
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
¥ Программнаяинженерия– этоинженернаядисциплина,отражающаявсеграниразработкипрограммногообеспечения.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 15
ПРОГРАММНАЯ ИНЖЕНЕРИЯVS КОМПЬЮТЕРНЫЕ НАУКИ
Программная инженерия
Практикаиподходыкразработкеполезныхдляконечногопользователяпрограммныхпродуктов
Компьютерные науки
Теорияифундаментальныеосновыпосозданиюалгоритмовикомпьютерныхпрограмм
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 16
В идеале, каждый программный инженер должен знать компьютерные науки (как каждый электрик должен знатьфизику)
Программист
© IVAN MARSIC. SOFTWARE ENGINEERENG. RUTGERS THE STATE UNIVERSITY OF NEW JERSEY 17
ПРОГРАММНАЯИНЖЕНЕРИЯ
ЗаказчикЗадача,
требования,ограничения
ХОРОШЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
МожновыделитьследующиеважныепризнакихорошегоПО:
¥ Удобствосопровождения- ПОдолжнобытьнаписанотакимобразом,чтобыономоглоразвиваться,чтобысоответствоватьизменяющимсятребованиямпользователей.
¥ Функциональнаянадежность– надежноеПОнедолжноприноситьфизическогоилиэкономическоговредавслучаесистемнойошибки.
¥ ЭффективностьПО– должноэффективноиспользоватьресурсысистемы,включаяпамять(оперативнуюи/илипостоянную),процессорноевремяит.п.
¥ Применимость – ПОдолжнообеспечиватьрешениезадачпользователядлякоторыхонобылоразработано,безчрезмерныхусилий
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 18
СОВРЕМЕННЫЕ ПРОБЛЕМЫПРОГРАММНОЙ ИНЖЕНЕРИИ
¥ Проблемагетерогенности
¥ Проблемасвоевременногопредставлениярезультатов
¥ Проблемадоверия
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 19
SWEBOK
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 20
ЧТО ТАКОЕ SWEBOK
¥ SWEBOK– это SoftwareEngineeringBodyofKnowledge(Сводзнаниипо программной инженерии)
¥ SWEBOK– этооткрытыйпроект,реализуемыйприподдержкемеждународногокомитетаIEEE начинаяс1998года.
¥ ВSWEBOKопределеннаборзнанийирекомендуемыепрактикипоинженериипрограммногообеспечения.
¥ Последняяверсия(SWEBOKV3)выпущенав2013году
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 21
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 22
1. РАБОТА С ТРЕБОВАНИЯМИ К ПО¤ ОсновытребованийкПО(чтотакоетребованиекПО; Функциональные
инефункциональныетребования)¤ Процессработыстребованиями¤ Методывыявлениятребований¤ АнализтребованийкПО¤ Методыспецификацииивалидациитребований¤ Системыдляподдержкиработыстребованиями
23
2. ПРОЕКТИРОВАНИЕ ПО¤ ОсновыпроектированияПО(принципыи
концепциипроектированияПО)¤ Основныесложностиприпроектировании
(управлениепараллелизмом,обработкасобытий,распределениекомпонентовсистем,согласованностьданных,обработкаисключительныхситуаций,представлениеданных,безопасность)
¤ СтруктураиархитектураПО(паттерныпроектирования,архитектурныерешенияипринципы,основныефреймворки)
¤ Проектированиепользовательскогоинтерфейса¤ ОценкакачестваПО¤ ЯзыкиинотациидляописанияархитектурыПО¤ СтратегиииметодыпроектированияПО¤ СистемыподдержкипроектированияПО
3. РАЗРАБОТКА (КОДИРОВАНИЕ) ПО
¤ ОсновыразработкиПО¤ Практическиеподходык
кодированиюсучетомповторногоиспользованияикачествакода
¤ Технологииразработки(созданиеAPI,объектно-ориентированнаяразработка,обработкаошибокиисключительныхситуаций,идр.)
¤ СредыразработкиПО.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 24
4. ТЕСТИРОВАНИЕ ПО
¤ ОсновытестированияПО
¤ УровнитестированияПО
¤ МетодытестированияПО
¤ МетрикитестированияПО
¤ Процесстестирования
¤ СистемыподдержкитестированияПО
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 25
5. ПОДДЕРЖКА ПО
¤ ОсновыподдержкиПО
¤ ОсновныепроблемыприподдержкеПО
¤ Процессподдержки
¤ ТехникиобеспеченияподдержкиПО
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 26
6. УПРАВЛЕНИЕ КОНФИГУРАЦИЯМИ:
¤ ЧтотакоеконфигурацияПОичтотакоеуправлениеконфигурациями.
¤ ПроцессуправлениеконфигурациямиПО
¤ АудитконфигурацииПО¤ Управлениепроцессомсборкии
развертыванияпрограммныхсистем¤ Программныесистемыдля
поддержкипроцессауправленияконфигурациями
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 27
8. ПРОЦЕСС РАЗРАБОТКИ ПО¤ Определениепонятия
процессаразработкиПО¤ Понятиежизненногоцикла
ПО¤ Оценкакачестваи
улучшениепроцессаразработки
¤ ИзмерениеПО¤ Программныесистемыдля
поддержкипроцессаразработкиПО
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 28
9. МОДЕЛИ И МЕТОДЫ РАЗРАБОТКИ ПО
¤ ПонятиемоделированиявразработкеПО
¤ Типымоделей(информационные,структурные,поведенческие)
¤ Методыпрограммнойинженерии(эвристические,формальные,прототипирование,гибкиеметоды)
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 29
10. КАЧЕСТВО ПО
¤ ПонятиекачестваПО(культураиэтикаприразработкеПО,безопасностьПО)
¤ УправлениекачествомПО
¤ Практическиеметодыуправлениякачеством(требованияккачествуПО,определениедефектов,измерениекачестваПО)
¤ Программныесистемыдляуправлениякачеством
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 30
11. ПРОФЕССИОНАЛЬНЫЕ ПРАКТИКИ
¤ Понятиепрофессионализма:¢ профессиональнаяаккредитацияилицензирование,кодексэтики;¢ профессиональныесообщества,профессиональныестандарты;¢ экономическиеэффектыПО;¢ понятиеконтрактанаразработкуПО,контрактнаработу;¢ юридическиеособенностиразработкиПО
¤ Управлениегруппами¢ особенностигрупповойработы¢ управлениесложностью¢ взаимодействиесзаказчиком¢ взаимодействиеслюдьмииздругихкультур
¤ Коммуникация¢ Чтение¢ Письмо¢ Взаимодействиевнутрикоманды¢ Навыкипрезентации
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 31
12. ЭКОНОМИКА РАЗРАБОТКИ ПО
¤ ОсновыэкономикиразработкиПО(финансы,бухгалтерия,денежныйпоток,налоги)
¤ Экономикапрограммногопродукта(проект,продукт,жизненныйциклпроектаипродукта,инвестиции,горизонтыпланирования,определениецены)
¤ Рискиинеопределенность¤ Моделиэкономическогоанализа
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 32
13. ОСНОВЫ ВЫЧИСЛЕНИЙ
¤ ОсновыСУБДиуправленияданными
¤ Основыкомпьютерныхсетей¤ Параллельныеи
распределенныевычисления¤ Взаимодействиес
пользователем¤ БезопасностьПО
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 33
¤ Основыпрограммирования¤ Основыязыков
программирования¤ Методыисистемыотладки¤ Структурыданных¤ Алгоритмыисложность¤ Архитектуракомпьютера¤ Основыкомпиляторов¤ Основыоперационныхсистем
14. МАТЕМАТИЧЕСКИЕ ОСНОВЫ
¤ Множества,отношения,функции¤ Математическаялогика¤ Методыдоказательств¤ Графыидеревья¤ Дискретнаявероятность¤ Машиныконечныхсостояний¤ Грамматики¤ Численныеметоды,точность¤ Теориячисел¤ Алгебраическиеструктуры
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 34
15. ОСНОВЫ ИНЖЕНЕРИИ
¤ Эмпирическиеметодыитехникиэксперимента
¤ Статистическийанализ¤ Основыизмерений¤ Моделирование,симуляция,
прототипирование¤ Стандарты
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 35