YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

Page 2: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПРОГРАММА КУРСА

17 лекций

8 практических заданий

Аттестация

8 практических заданий: 40 баллов

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

экзамен в виде теста: 50 баллов

Тесты на занятиях: 10 баллов

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

2: 0-50 баллов

3: 51-65 баллов

4: 65-75 баллов

5: 76-100 баллов

Page 3: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

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

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

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

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

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

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

Page 4: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ЛИТЕРАТУРА

Арлоу Д., Нейштад А. 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

Page 5: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

Page 6: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ИНЖЕНЕРИЯ

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

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

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

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

Page 7: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ОРФОГРАФИЯ

Инжен’ерия

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

Инжен’ерия

Engin’eering

Page 8: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

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

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

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

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

Page 9: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

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

Page 10: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

Программа

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

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

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

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

сопровождение)

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

продукт

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

x 3

x 3

Page 11: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

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

Page 12: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

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

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

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

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

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

В идеале, каждый программный инженер должен знать

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

физику)

Page 13: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

Программист

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

ПРОГРАММНАЯ

ИНЖЕНЕРИЯ

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

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

Page 14: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

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

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

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

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

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

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

Page 15: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

СОВРЕМЕННЫЕ ПРОБЛЕМЫ

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

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

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

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

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

Page 16: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПРОЦЕСС РАЗРАБОТКИ ПО

(ЖИЗНЕННЫЙ ЦИКЛ ПО)

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

Page 17: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 17

«КАЧЕЛИ» - КАК ПРОЕКТИРУЮТСЯ ПРОГРАММЫ

( 1975 ! )

Page 18: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 18

Page 19: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 19

Page 20: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 20

Page 21: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 21

Page 22: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПАВЛОВСКАЯ Т.А. (СПБГУИТМО) 22

Page 23: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПРОЦЕСС РАЗРАБОТКИ ПО

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

1. Спецификация требований

2. Разработка

3. Валидация

4. Развитие

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

Page 24: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ПРОЦЕСС РАЗРАБОТКИ ПО

Не существует «идеального процесса разработки ПО»

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

НЕ СУЩЕСТВУЕТ!!!!

Page 25: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

МОДЕЛЬ ПРОЦЕССА РАЗРАБОТКИ ПО

Модель процесса разработки ПО – это абстрактная репрезентация процесса разработки ПО, представляющая данный процесс в определенной перспективе.

Модель – это не всеобъемлющее описание процесса разработки ПО. Это скорее абстракция, которая позволяет описать различные подходы к процессу разработки.

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

Page 26: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

Каркасный подход

Итерационныйподход

Высоко-формализованный

Низко-формализованный

Как получится

Водопадная модель

«Гибкая» (Agile) методология

Унифицированный процесс разработки

(RUP, UP)

SCRUM

XP

ГОСТ 19

ГОСТ 34

ГОСТ 12207

CMM SEI

Page 27: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

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

Можно выделить 3 основных модели разработки ПО:

Водопадная модель

Поэтапная (эволюционная) разработка

Компонентно-ориентированная разработка

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

Часто эти модели объединяются в рамках одного проекта (подсистемы могут создаваться

посредством различных подходов)

Page 28: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ВОДОПАДНАЯ МОДЕЛЬ

Определение требований

Проектирование системы

Реализация и тестирование

Интеграция и комплексное тестирование

Функционирование и поддержка

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

Page 29: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ФАЗЫ ВОДОПАДНОЙ МОДЕЛИ

Результатом каждой фазы в водопадной модели является один или несколько утвержденных документов.

Последующая фаза не может начаться пока предыдущая не завершена.

Но только в идеальном мире процесс разработки линеен и не обладает обратными связями

=> в реальном мире в водопадной модели подразумевается несколько итераций, после которых результат «замораживается» и происходит переход ко следующей фазе.

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

Page 30: Распределенные вычислительные системы€¦ · uml 2 и Унифицированный процесс. Практический объектно-ориентированный

ДОСТОИНСТВА И НЕДОСТАТКИ

Достоинства:

Очень формализованная, в результате каждой фазы формируется утвержденный документ

Соответствует стандартным моделям инженерной разработки.

Недостатки:

Отсутствие гибкости

Все договоренности – на ранней стадии, соответственно нет возможности подстроиться под изменяющиеся требования пользователя.

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


Related Documents