Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический...
Post on 06-Oct-2020
20 Views
Preview:
Transcript
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
ПРОГРАММА КУРСА
17 лекций
8 практических заданий
Аттестация
8 практических заданий: 40 баллов
После дедлайна сдать задание можно только при пропуске предыдущего занятия по уважительной причине.
экзамен в виде теста: 50 баллов
Тесты на занятиях: 10 баллов
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 2
2: 0-50 баллов
3: 51-65 баллов
4: 65-75 баллов
5: 76-100 баллов
ОСНОВНЫЕ ТЕМЫ КУРСА
Жизненный цикл ПО
Составление требований к ПО и варианты использования
Объектно-ориентированный анализ ПО
Объектно-ориентированное проектирование ПО
Кодирование и тестирование
Архитектура программных систем
Метрики и оценка качества ПО© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 3
ЛИТЕРАТУРА
Арлоу Д., Нейштад А. UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование, 2-е издание. 2007. 624 с.
Сергей Орлов, Борис Цилькер. Технологии разработки программного обеспечения 4-е издание. 2012 г. 608 с.
Ian Sommerville. Software Engineering (8th Edition). 2006. 864 p.
Брукс Ф. Мифический человеко-месяц, или Как создаются программные системы. 2007. 304 с.
Marsic I. Software Engineering. 2009. 430 p.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 4
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 5
ИНЖЕНЕРИЯ
Инженерия обеспечивает решение поставленных задач посредством существующих теорий и методов.
Инженер начинает с постановки задачи и поиска инструментов для наилучшего решения задачи в рамках существующих организационных, финансовых и временных ограничений.
Программная инженерия делает значительный упор на методы и подходы а не на инструменты.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 6
ОРФОГРАФИЯ
Инжен’ерия
Engin’eering© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 7
Инжен’ерия
Engin’eering
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
Термин был предложен в 1968 г. на конференции посвященной «Кризису ПО», возникшего в результате появления интегральных схем и катастрофического усложнения ПО:
Реализация проектов задерживалась на годы
Стоимость проектов в десятки раз превышала прогнозируемую
Необходимы были методы разработки и контроля таких сложных программных систем
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 8
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Программное обеспечение (программный продукт) – это компьютерная программа и соответствующая документация. Программные продукты могут быть разработаны как для конкретного заказчика, так и для всего рынка в целом.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 9
ПРОГРАММА И ПРОГРАММНЫЙ ПРОДУКТ
Программа
Программный комплекс
(интерфейсы, системная интеграция)
Программный продукт
(обобщение, тестирование, документирование,
сопровождение)
Системный программный
продукт
Ф. БРУКС. МИФИЧЕСКИЙ ЧЕЛОВЕКО-МЕСЯЦ 10
x 3
x 3
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
Программная инженерия – это инженерная дисциплина, отражающая все грани разработки программного обеспечения.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 11
ПРОГРАММНАЯ ИНЖЕНЕРИЯ
VS КОМПЬЮТЕРНЫЕ НАУКИ
Программная инженерия
Практика и подходы к разработке полезных для конечного пользователя программных продуктов
Компьютерные науки
Теория и фундаментальные основы по созданию алгоритмов и компьютерных программ
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 12
В идеале, каждый программный инженер должен знать
компьютерные науки (как каждый электрик должен знать
физику)
Программист
© IVAN MARSIC. SOFTWARE ENGINEERENG. RUTGERS THE STATE UNIVERSITY OF NEW JERSEY 13
ПРОГРАММНАЯ
ИНЖЕНЕРИЯ
ЗаказчикЗадача,
требования, ограничения
ХОРОШЕЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Можно выделить следующие важные признаки хорошего ПО:
Удобство сопровождения - ПО должно быть написано таким образом, чтобы оно могло развиваться, чтобы соответствовать изменяющимся требованиям пользователей.
Функциональная надежность – надежное ПО не должно приносить физического или экономического вреда в случае системной ошибки.
Эффективность ПО – должно эффективно использовать ресурсы системы, включая память (оперативную и/или постоянную), процессорное время и т.п.
Применимость – ПО должно обеспечивать решение задач пользователя для которых оно было разработано, без чрезмерных усилий
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 14
СОВРЕМЕННЫЕ ПРОБЛЕМЫ
ПРОГРАММНОЙ ИНЖЕНЕРИИ
Проблема гетерогенности
Проблема своевременного представления результатов
Проблема доверия
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 15
ПРОЦЕСС РАЗРАБОТКИ ПО
(ЖИЗНЕННЫЙ ЦИКЛ ПО)
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 16
ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 17
«КАЧЕЛИ» - КАК ПРОЕКТИРУЮТСЯ ПРОГРАММЫ
( 1975 ! )
ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 18
ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 19
ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 20
ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 21
ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 22
ПРОЦЕСС РАЗРАБОТКИ ПО
Процесс разработки ПО (жизненный цикл ПО) – это набор действий и связанных с ними результатов, направленных на разработку и/или развитие программного продукта:
1. Спецификация требований
2. Разработка
3. Валидация
4. Развитие
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 23
ПРОЦЕСС РАЗРАБОТКИ ПО
Не существует «идеального процесса разработки ПО»
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 24
НЕ СУЩЕСТВУЕТ!!!!
МОДЕЛЬ ПРОЦЕССА РАЗРАБОТКИ ПО
Модель процесса разработки ПО – это абстрактная репрезентация процесса разработки ПО, представляющая данный процесс в определенной перспективе.
Модель – это не всеобъемлющее описание процесса разработки ПО. Это скорее абстракция, которая позволяет описать различные подходы к процессу разработки.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 25
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 26
Каркасный подход
Итерационныйподход
Высоко-формализованный
Низко-формализованный
Как получится
Водопадная модель
«Гибкая» (Agile) методология
Унифицированный процесс разработки
(RUP, UP)
SCRUM
XP
ГОСТ 19
ГОСТ 34
ГОСТ 12207
CMM SEI
МОДЕЛИ РАЗРАБОТКИ ПО
Можно выделить 3 основных модели разработки ПО:
Водопадная модель
Поэтапная (эволюционная) разработка
Компонентно-ориентированная разработка
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 27
Часто эти модели объединяются в рамках одного проекта (подсистемы могут создаваться
посредством различных подходов)
ВОДОПАДНАЯ МОДЕЛЬ
Определение требований
Проектирование системы
Реализация и тестирование
Интеграция и комплексное тестирование
Функционирование и поддержка
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 28
ФАЗЫ ВОДОПАДНОЙ МОДЕЛИ
Результатом каждой фазы в водопадной модели является один или несколько утвержденных документов.
Последующая фаза не может начаться пока предыдущая не завершена.
Но только в идеальном мире процесс разработки линеен и не обладает обратными связями
=> в реальном мире в водопадной модели подразумевается несколько итераций, после которых результат «замораживается» и происходит переход ко следующей фазе.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 29
ДОСТОИНСТВА И НЕДОСТАТКИ
Достоинства:
Очень формализованная, в результате каждой фазы формируется утвержденный документ
Соответствует стандартным моделям инженерной разработки.
Недостатки:
Отсутствие гибкости
Все договоренности – на ранней стадии, соответственно нет возможности подстроиться под изменяющиеся требования пользователя.
© РАДЧЕНКО Г.И., КАФЕДРА СП ЮУРГУ 30
top related