Процесс проектирования и разработки ПО Введение

Содержание

Слайд 2

Цели Представить: Цель и содержание модуля Учебный материал модуля Требования к

Цели

Представить:
Цель и содержание модуля
Учебный материал модуля
Требования к лабораторным работам
Концепция процессов программной

инженерии
Слайд 3

Сокращения SS – Software System(s)/Программная система SEP – Software Engineering Process/Процесс

Сокращения

SS – Software System(s)/Программная система
SEP – Software Engineering Process/Процесс программной инженерии
SWEBOK

– guide to the Software Engineering Body of Knowledge/руководство по ядру знаний программной инженерии
IW – Individual Work / Самостоятельная работа
UCM – Use Case Model / Модель вариантов использования
AM – Analysis Model / Модель анализа
DM – Design Model/Проектная модель
Слайд 4

Цель модуля Главная цель – ознакомиться с процессами разработки больших программных

Цель модуля

Главная цель – ознакомиться с процессами разработки больших программных систем

(SS);
Ознакомиться с процессами и моделями программной инженерии, быть готовым к выпускной работе.
Разработка понимается как процесс, который включает действия от идеи SS до её разработки и повторного использования
Слайд 5

Содержание модуля Модуль: Анализирует процесс разработки SS Представляет основные концепции и

Содержание модуля

Модуль:
Анализирует процесс разработки SS
Представляет основные концепции и определения
Анализирует и оценивает

различные модели процессов программной инженерии (SEP)
Слайд 6

Student Hello! (participant)

Student
Hello!
(participant)

Слайд 7

Учебный материал (1) 1. Guide to the Software Engineering Body of

Учебный материал (1)

1. Guide to the Software Engineering Body of knowledge (SWEBOK),

Software Engineering Process, IEEE, 2004 version.
(definition of SEP content, links to other resources)
I.Jacobson, G.Booch, J.Rumbaugh. The Unified Software Development Process, Addison-Wesley, 463 p.
Грейди Буч, Джеймс Рамбо, Айвар Джекобсон. UML руководство пользователя. М.: ДМ К, 2000.
(most related book with first part)
Слайд 8

Учебный материал(2) 4. С. А. Орлов. Технологии разработки программного обеспечения: учебник

Учебный материал(2)

4. С. А. Орлов. Технологии разработки программного обеспечения: учебник для

вузов. СПБ.: Питер, 2004th - 527 с.
Ian Sommerville. Software Engineering. 6 th Edition. Addison-Wesley, 2001.Йан Соммервилл «Инженерия программного обеспечения». Издат. Дом Москва, 2002г.
6. Леоненков А. В. Самоучитель UML. СПб.: BHV, 2006.
Слайд 9

Учебный материал(3) http://en.wikipedia.org/wiki/ Rational_Unified_Process http://www-306.ibm.com/software/rational/ Л.Г. Гагарина, Е.В. Кокорева, Б.Д.Виснадул. Технология

Учебный материал(3)

http://en.wikipedia.org/wiki/ Rational_Unified_Process
http://www-306.ibm.com/software/rational/
Л.Г. Гагарина, Е.В. Кокорева, Б.Д.Виснадул. Технология разработки программного

обеспечения. Москва, 2008.
Ресурсы кафедры ПОКС.
Слайд 10

Руководство по ядру знаний программной инженерии ( SWEBOK) Введение в руководство

Руководство по ядру знаний программной инженерии ( SWEBOK)

Введение в руководство
Требования

к программному обеспечению (ПО)
Разработка архитектуры (структуры) ПО
Разработка (конструирование) ПО
Тестирование ПО
Сопровождение ПО
Управление конфигурацией ПО
Управление программной инженерией (Software Engineering Management)
Процессы программной инженерии
Методы и средства программной инженерии
Качество ПО
Дисциплины, связанные с программной инженерией
Слайд 11

What about experience?

What about experience?

Слайд 12

Структура модуля Число кредитов 6: 32 ч. лекций, 32 ч. лаб.работ,

Структура модуля

Число кредитов 6:
32 ч. лекций,
32 ч. лаб.работ,
32

ч. лаб.работ,
самостоятельная работа,
индивидуальная работа (IW), экзамен (Е)
Слайд 13

Цели исследования и индивидуальная работа Аналитическая часть UCM AM DM Исследование Индивидуальная работа ...

Цели исследования и индивидуальная работа

Аналитическая часть

UCM
AM
DM

Исследование

Индивидуальная
работа

...

Слайд 14

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

Самостоятельная работа

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

изучения дисциплины. Студент должен самостоятельно спроектировать, закодировать и протестировать компьютерную систему для решения проблемы какой-либо организации (название предметной области можно выбрать из списка).
Работа должна быть командной (до пяти студентов в команде). Каждый из членов команды выполняет одну из функций: руководитель, системный аналитик, проектировщик, кодировщик, тестировщик.
Слайд 15

Самостоятельная работа Отчет по разрабатываемому проекту должен включать следующие разделы: 1.

Самостоятельная работа

Отчет по разрабатываемому проекту должен включать следующие разделы:
1. Введение
Описание предметной

области.
Выполнение структурного анализа для анализа деятельности организации:
построение бизнес-процессов в виде диаграмм IDEF0 и DFD (модель AS - IS);
выявление проблем;
Цель разработки ПО.
Слайд 16

Самостоятельная работа 2. Стадия формирования требований к ПО Построение предлагаемой структуры

Самостоятельная работа

2. Стадия формирования требований к ПО
Построение предлагаемой структуры бизнес-процессов организации

(модель TO – BE) в виде диаграмм DFD;
Описание функциональных требований. Построение диаграммы USE CASE;
Описание нефункциональных требований;
Описание ограничений, если они имеются.
Слайд 17

Самостоятельная работа 3. Стадия проектирования. Построение архитектуры системы: Диаграмма пакетов; диаграмма

Самостоятельная работа

3. Стадия проектирования.
Построение архитектуры системы:
Диаграмма пакетов;
диаграмма классов;
диаграмма взаимодействия;
Построение алгоритмов:
диаграмма

деятельности.
Построение модели пользовательского интерфейса.
Проектирование БД
Построение концептуальной модели данных в виде ERD.
Слайд 18

Самостоятельная работа 4. Реализация (создание прототипа). Выбор и обоснование языка программирования.

Самостоятельная работа

4. Реализация (создание прототипа).
Выбор и обоснование языка программирования.
5. Тестирование.
Тестирование

методом «черного ящика»
6. Заключение (что сделано).
Слайд 19

ПРИМЕРНЫЙ ПЛАН РАБОТЫ НАД ПРОЕКТОМ (1) Согласование темы проекта. Изучение конкретной

ПРИМЕРНЫЙ ПЛАН РАБОТЫ НАД ПРОЕКТОМ (1)

Согласование темы проекта.
Изучение конкретной проблемы, работа

по выявлению требований.
Документирование требований (Спецификация требований с соответствующими приложениями).
Оформление технического задания.
Определение модели ЖЦ разработки ПО и обоснование выбора модели.
Проектирование ПП:
Написание программного кода.
Верификация программы: тестирование ПП (подбор контрольных примеров для тестирования программы).
Слайд 20

ПРИМЕРНЫЙ ПЛАН РАБОТЫ НАД ПРОЕКТОМ (1)(2) Оформление пояснительной записки Сдача пояснительной

ПРИМЕРНЫЙ ПЛАН РАБОТЫ НАД ПРОЕКТОМ (1)(2)

Оформление пояснительной записки
Сдача пояснительной записки на

проверку.
Демонстрация работы программы на тестах.
Защита проекта.
Слайд 21

График (сроки) выполнения работы 1 неделя – регистрация в виртуальной обучающей

График (сроки) выполнения работы

1 неделя – регистрация в виртуальной обучающей среде
3

неделя – завершить обсуждение темы с преподавателем
5 неделя– представить анализ бизнес – процессов (оценка необходимых затрат - приветствуется)
6 неделя– представить модель вариантов использования
10 неделя– представить модели разработки
16 неделя – представить программу и тестовые
17 неделя – представить отчёт
18 неделя– защитить КП (IW)
За каждую неделю просрочки доклада о промежуточных результатах итоговая оценка снижается на 0,25 балла, за каждую неделю просрочки представления ИР и отчёта итоговая оценка снижается на 0,5 балла.
Слайд 22

Проверка (The review) Проверка – обсуждение работы коллегами. Оно не будет

Проверка (The review)

Проверка – обсуждение работы коллегами. Оно не будет влиять

на оценку обсуждаемой работы.
Обсуждение включает:
Оценку актуальности и жизнеспособности темы
Оценку анализа рынка и бизнес-возможностей
Оценку необходимых затрат
Полноту и законченность модели вариантов использования, её достоинств и недостатков
Полноту и законченность модели анализа, её достоинств и недостатков
Полноту и завершённость моделей разработки, их достоинств и недостатков
Итоговые выводы
Будет оценена полнота и завершённость КП, достоинства и недостатки анализа
Слайд 23

Краткая история разработки программных систем (ПС) 1940-е: программирование – это искусство,

Краткая история разработки программных систем (ПС)

1940-е: программирование – это искусство, программист

– это поэт Ограниченное число программ и памяти
1960-е: кризис в программировании, применение общеинженерных положений (основ)
Увеличение числа программ и данных, 3-е поколение компьютеров, высокие затраты на сопровождение ПС, новые области компьютерных приложений
1980-е: программная инженерия признана как отдельная наука
Наука об управлении проектами, работе группами, жизненные циклы ПС, автоматизация разработки
1990-е: стандартизация, специализация, автоматизация, промышленное производство программ, интеграция систем, управление качеством
2010-е: виртуальное окружение (альтернативное для реальной окружающей среды), Internet услуги, Internet of things, “облачные” вычисления, ... ?
Слайд 24

Is that all?

Is that all?

Слайд 25

Процесс программной инженерии Основан на Rational Unified Process (но не =) Соответствует SWEBOK, обновлён

Процесс программной инженерии
Основан на Rational Unified Process
(но не =)
Соответствует SWEBOK, обновлён

Слайд 26

Что такое процесс программной инженерии? Может ли профессиональный оркестр играть без

Что такое процесс программной инженерии?

Может ли профессиональный оркестр играть без дирижёра?

(начало, темп, синхронизация)
Дирижер дирижирует по памяти?(ноты – проект, музыканты – участники, исполнение – процесс, дирижёр – менеджер)
Разработка ПС– новая ветвь инженерии (общая инженерия + особенности; разработать автомобиль, но“мягкий”)
Процесс программной инженерии (далее процесс) определяет кто, что, когда и как делается
От поэзии к инженерному процессу (качество)
Слайд 27

Что такое процесс программной инженерии? Процессы программной инженерии анализируют, как разрабатывать

Что такое процесс программной инженерии?

Процессы программной инженерии анализируют, как разрабатывать ПС,

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

Как процессы программной инженерии могут быть проанализированы? Анализ технических и административных

Как процессы программной инженерии могут быть проанализированы?

Анализ технических и административных мероприятий

в процессах жизненного цикла ПО (приобретение, разработка, обслуживание и демонтаж).

Определение жизненного цикла ПО, реализация, оценка, измерение, управление, изменение и улучшение.

На 1 уровне (детально)

На 2 уровне (абстрактно)

Связаны

Слайд 29

Процессы программной инженерии Процесс реализации и изменений 2. Процесс определения 3.

Процессы программной инженерии

Процесс
реализации и
изменений

2. Процесс
определения

3. Процесс
оценки

4. Процесс и
Результат
измерения


1.1. Процесс создания инфрастр-ры

1.2. Процесс управления

1.3. Модели процесса улучшения

1.4. Практические соображения

2.1. Модели ЖЦ ПО

2.2. Процессы ЖЦ ПО

2.3. Нотации для определения процессов

2.4. Процесс адаптации

2.5. Автоматизация

3.1. Процесс оценки моделей

3.2. Процесс оценки методов

4.1. Процесс измерения

4.2. Измерение ПП

4.3. Качество результатов измерения

4.4. Информац.
Модели ПО

4.5. Процесс
методов измерения

Слайд 30

Стадии процесса разработки ПС (I уровень) Анализ рынка Анализ требований Проект

Стадии процесса разработки ПС (I уровень)

Анализ рынка
Анализ требований
Проект разработки ПС
Разработка и

тестирование подсистем
Интеграция подсистем, тестирование ПС
Инсталляция ПС, оценка
Эксплуатация ПС, сопровождение
Анализ испытаний
Слайд 31

Процессы разработки ПС Анализ рынка Анализ требований Проект Разработки ПС Разработка

Процессы разработки ПС

Анализ
рынка

Анализ
требований

Проект
Разработки ПС

Разработка
подсистем

Интеграция
подсистем,
тестирование ПС

Инсталляция ПС,
оценка

Эксплуатация
ПС,
сопровождение

Анализ опыта

Слайд 32

На этом этапе формируются требования 3 типов


На этом этапе формируются требования 3 типов

Слайд 33

Этапы проектирования систем

Этапы проектирования систем

Слайд 34

Все подсистемы, как правило, разрабатываются параллельно.


Все подсистемы, как правило, разрабатываются параллельно.

Слайд 35


Слайд 36

При инсталляции система «погружается» в то окружение, в котором она должна

При инсталляции система «погружается» в то окружение, в котором она должна

работать. При инсталляции сложных систем могут появиться ряд проблем:
Окружение, в котором инсталлируется система, не совпадает с тем, в котором она должна работать (не та ОС не работают все функции.
Потенциальные пользователи относятся враждебно к внедрению системы.
Новая система работает вместе со старой.
Возможны чисто физические проблемы (не хватает сетевых кабелей).
Слайд 37

Слайд 38

Слайд 39

I was told that it is more difficult ...

I was told that it is more difficult ...