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

Post on 06-Oct-2020

20 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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