Инженерия программного обеспечения. Введение (модуль 1) презентация

Содержание

Слайд 2

Содержание Определение программной инженерии, ее место в инженерной деятельности при

Содержание

Определение программной инженерии, ее место в инженерной деятельности при создании компьютерных

систем.
Жизненный цикл программных средств.
Модели ЖЦПО.
Методологии разработки ПО.
Слайд 3

И так, начнем! Как Вы пишете свои программы? И что

И так, начнем!

Как Вы пишете свои программы?
И что из этого

получается?
Как быстро программа начинает работать «правильно»?
Слайд 4

Развитие методов обеспечения качества программ

Развитие методов обеспечения качества программ

Слайд 5

Определение программной инженерии Инженерия программного обеспечения – это научная инженерная

Определение программной инженерии

Инженерия программного обеспечения – это научная инженерная дисциплина, охватывающая

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

Инженерия программного обеспечения

Инженерная дисциплина

Охватывает все аспекты создания ПО
Теории
Средства и методы
Управление проектами

Слайд 6

Цель инженерии ПО Основная цель инженерии ПО состоит в обеспечении

Цель инженерии ПО

Основная цель инженерии ПО состоит в обеспечении эффективности всего

жизненного цикла программ.
Среди огромного множества методов и средств инженерии ПО можно выделить следующие основные группы, позволяющие:
создавать программные модули и высокого, гарантированного качества;
предотвращать дефекты проектирования за счет технологий и средств автоматизации этапов жизненного цикла ПО;
обнаруживать и устранять различные ошибки проектирования путем систематического тестирования на всем жизненном цикле ПО;
удостоверять достигнутые значения качества функционирования готовых программных продуктов перед передачей их в эксплуатацию заказчикам.
Слайд 7

Жизненный цикл программного обеспечения Жизненный цикл ПО (ЖЦПО) - весь

Жизненный цикл программного обеспечения

Жизненный цикл ПО (ЖЦПО) - весь период его

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

ЖЦПО: Этап определения требований Под требованиями к программе понимают свойства,

ЖЦПО: Этап определения требований

Под требованиями к программе понимают свойства, которыми должна

обладать эта программа для адекватного выполнения предписанных ей функций.

Выход этапа: набор требований.

Слайд 9

ЖЦПО: Проектирование Процесс определения архитектуры, компонентов, интерфейсов и других характеристик

ЖЦПО: Проектирование

Процесс определения архитектуры, компонентов, интерфейсов и других характеристик системы или

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

Проектирование

Архитектурный
(высокоуровневый) дизайн

Детализированный
дизайн

Выход этапа:
набор спецификаций.

Слайд 10

ЖЦПО: Конструирование (Кодирование) На этапе конструирования (кодирования) ПО создается рабочий

ЖЦПО: Конструирование (Кодирование)

На этапе конструирования (кодирования) ПО создается рабочий программный продукт

посредством комбинации кодирования, верификации (проверки), отладки, модульного и интеграционного тестирования.

Выход этапа: программный код.

Слайд 11

ЖЦПО: Тестирование Тестирование – деятельность, выполняемая для оценки и улучшения

ЖЦПО: Тестирование

Тестирование – деятельность, выполняемая для оценки и улучшения качества программного

обеспечения. Эта деятельность, в общем случае, базируется на обнаружении дефектов и проблем в программных системах.
Виды и уровни тестирования
Техники тестирования
Измерение результатов тестирования
Организация процесса тестирования

Выход этапа: рабочий продукт.

Слайд 12

ЖЦПО: Эксплуатация и поддержка Сопровождение программного обеспечения определяется как вся

ЖЦПО: Эксплуатация и поддержка

Сопровождение программного обеспечения определяется как вся совокупность деятельности,

необходимой для обеспечения эффективной (с точки зрения затрат) поддержки программных систем.
Слайд 13

Модели ЖЦ ПО В общем случае, жизненный цикл определяется моделью

Модели ЖЦ ПО

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

в форме методологии (метода).
Модель жизненного цикла определяет концептуальный взгляд на
организацию жизненного цикла и, часто, основные фазы жизненного цикла и принципы перехода между ними.
Методология задает комплекс работ, их детальное содержание и ролевую ответственность специалистов на всех этапах выбранной модели жизненного цикла, а также рекомендует практики, позволяющие максимально эффективно воспользоваться соответствующей методологией и ее моделью.
Слайд 14

Каскадная (водопадная, waterflow) модель Планирование Формирование требований Анализ и проектирование

Каскадная (водопадная, waterflow) модель

Планирование

Формирование требований

Анализ и проектирование

Поддержка и
эксплуатация

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

План

Спецификация

Дизайн

Продукт

Код

Интеграция и
тестирование

Последовательное и

однократное выполнение однажды и целиком определенных требований.
Слайд 15

Итеративная и инкрементальная модель Итеративная модель предполагает разбиение жизненного цикла

Итеративная и инкрементальная модель

Итеративная модель предполагает разбиение жизненного цикла проекта на

последовательность итераций, каждая из которых напоминает “мини-проект”, включая все фазы жизненного цикла в применении к созданию меньших фрагментов функциональности, по сравнению с проектом, в целом.
Слайд 16

Итеративная и инкрементальная модель

Итеративная и инкрементальная модель

Слайд 17

Итеративная и инкрементальная модель

Итеративная и инкрементальная модель

Слайд 18

Спиральная модель Спиральная модель – это разновидность итерационной модели, в

Спиральная модель

Спиральная модель – это разновидность итерационной модели, в которой специальное

внимание уделяется анализам рисков, влияющих на организацию ЖЦ, и контрольным точкам.
Слайд 19

Методологии разработки ПО Методология задает комплекс работ, их детальное содержание,

Методологии разработки ПО

Методология задает комплекс работ, их детальное содержание, ролевую ответственность

специалистов, а также рекомендует практики.

Методологии разработки ПО

Rational Unified Process (RUP)

Microsoft Solutions Framework (MSF)

Test-driven development (TDD)

Гибкие методологии разработки ПО (Agile)

Scrum

Feature driven development (FDD)

XP

Lean

Слайд 20

Rational Unified Process (RUP) В основе RUP лежат следующие принципы:

Rational Unified Process (RUP)

В основе RUP лежат следующие принципы:
Ранняя идентификация и

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

Rational Unified Process (RUP)

Rational Unified Process (RUP)

Слайд 22

Microsoft Solutions Framework (MSF) MSF опирается на практический опыт Microsoft

Microsoft Solutions Framework (MSF)

MSF опирается на практический опыт Microsoft и описывает

управление людьми и рабочими процессами в процессе разработки решения. MSF представляет собой согласованный набор концепций, моделей и правил.
Основные принципы MSF:
Распределение ответственности при фиксации отчетности
Наделение членов команды полномочиями
Концентрация на бизнес-приоритетах
Единое видение проекта
Гибкость — готовность к переменам
Поощрение свободного общения
Слайд 23

Test-driven development (TDD) Разработка через тестирование — техника разработки программного

Test-driven development (TDD)

Разработка через тестирование — техника разработки программного обеспечения, которая

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

Agile Гибкая методология разработки — серия подходов к разработке программного

Agile

Гибкая методология разработки — серия подходов к разработке программного обеспечения, ориентированных

на использование итеративной разработки и динамического формирования требований, и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля.
Agile-методы делают упор на непосредственное общение лицом к лицу.
Основной метрикой agile-методов является рабочий продукт. Отдавая предпочтение непосредственному общению, agile-методы уменьшают объём письменной документации, по сравнению с другими методами. Это привело к критике этих методов, как недисциплинированных.
Слайд 25

XP Экстремальное программирование: Короткий цикл обратной связи (Fine scale feedback)

XP

Экстремальное программирование:
Короткий цикл обратной связи (Fine scale feedback)
Разработка через тестирование

(Test driven development)
Игра в планирование (Planning game)
Заказчик всегда рядом (Whole team, Onsite customer)
Парное программирование (Pair programming)
Непрерывный, а не пакетный процесс
Непрерывная интеграция (Continuous Integration)
Рефакторинг (Design Improvement, Refactor)
Частые небольшие релизы (Small Releases)
Понимание, разделяемое всеми
Простота (Simple design)
Метафора системы (System metaphor)
Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
Стандарт кодирования (Coding standard or Coding conventions)
Социальная защищенность программиста
40-часовая рабочая неделя (Sustainable pace, Forty hour week)
Слайд 26

Feature driven development (FDD) Feature Driven Development — функционально-ориентированная разработка.

Feature driven development (FDD)

Feature Driven Development — функционально-ориентированная разработка.
FDD включает пять

процессов, последние два из которых повторяются для каждой функции:
Элемент нумерованного списка
Разработка общей модели
Составление списка необходимых функций системы
Планирование работы над каждой функцией
Проектирование функции
Конструирование функции
Слайд 27

Scrum Scrum — методология управления разработкой информационных систем для гибкой

Scrum

Scrum — методология управления разработкой информационных систем для гибкой разработки программного

обеспечения.
Scrum чётко делает акцент на качественном контроле процесса разработки.
Кроме управления проектами по разработке ПО Scrum может также использоваться в работе команд обслуживания программного обеспечения (software maintenance teams), или как подход управления разработкой и сопровождением программ: Scrum of Scrums
Слайд 28

Lean Software Development Бережливая разработка программного обеспечения — методология разработки

Lean Software Development

Бережливая разработка программного обеспечения — методология разработки программного обеспечения,

использующая методы концепции бережливого производства.
Принципы
Исключение затрат (излишняя функциональность; ожидание в процессе разработки; нечёткие требования; бюрократизация; медленное внутреннее сообщение).
Акцент на обучении. Короткие циклы разработки, раннее тестирование, частая обратная связь с заказчиком.
Предельно отсроченное принятие решений. Предельно быстрая доставка заказчику. Короткие итерации.
Мотивация команды. Нельзя рассматривать людей исключительно как ресурс. Людям нужно нечто большее, чем просто список заданий.
Интегрирование. Передать целостную информацию заказчику. Стремиться к целостной архитектуре. Рефакторинг.
Целостное видение. Стандартизация, установление отношений между разработчиками. Разделение разработчиками принципов бережливости. «Мыслить широко, действовать мало, промахиваться быстро; учиться стремительно».
Слайд 29

Итоги Формирование требований Проектирование реализации требований Кодирование требований Тестирование требований

Итоги

Формирование требований

Проектирование реализации требований

Кодирование
требований

Тестирование
требований

Тестирование требования 1

Требование 1

Требование 2

Требование N

проектирование реализации требования

1

проектирование реализации требования 2

проектирование реализации требования N

Кодирование требования 1

Кодирование требования 2

Кодирование требования N

Тестирование требования 2

Тестирование требования N

Слайд 30

Рекомендуемая литература «Инженерия программного обеспечения», Соммервилл И. Основы Программной Инженерии (по SWEBOK) http://swebok.sorlik.ru/

Рекомендуемая литература

«Инженерия программного обеспечения», Соммервилл И.
Основы Программной Инженерии (по SWEBOK) http://swebok.sorlik.ru/

Слайд 31

Вопросы

Вопросы

Имя файла: Инженерия-программного-обеспечения.-Введение-(модуль-1).pptx
Количество просмотров: 72
Количество скачиваний: 1