SWEBOK. Основные области знаний. (Лекция 1) презентация

Инженерия ПО Ядро знаний Программная инженерия. Лекция №1. SWEBOK: основные области знаний. Слайд 2 / 34 На сегодня ядро стабильных знаний по программной инженерии составляет 75% от тех знаний,

Слайд 1

Инженерия программного обеспечения
Лекция 1
SWEBOK. Основные области знаний

Кафедра

компьютерных систем и сетей

к.т.н., ст. преподаватель Стадник Анастасия Александровна
nastya.orehova@rambler.ru
097-97-222-89

Слайд 1 / 34

19 января 2017 г.


Слайд 2

Инженерия ПО
Ядро знаний
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд 2 /

34

На сегодня ядро стабильных знаний по программной инженерии составляет 75% от тех знаний, что используются в практической программисткой деятельности.

В связи с этим мировое компьютерное сообщество пришло к необходимости систематизации накопленных знаний и общие из них зафиксировать в виде ядер знаний (Body of Knowledge – BOK) для разных областей информатики.




Слайд 3

Инженерия ПО
Ядро знаний
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд 3 /

34

Для создания ядра знаний ПО был создан международный комитет при
американском объединении компьютерных специалистов ACM (Association
for Computing Machinery) и институте инженеров по электронике и
электротехнике IEEE Computer Society.

В комитет вошли специалисты мирового уровня в области информатики и
разработки ПО, которые внесли свой опыт и знания, а также
систематизировали накопленные разнородные знания и определили ядро
профессиональных знаний SWEBOK (Software Engineering Body Knowledge)
программной инженерии, как основы проектирования ПО.




Слайд 4

Инженерия ПО
Ядро знаний SWEBOK

Программная инженерия. Лекция №1.
SWEBOK:

основные области знаний.

Слайд 4 / 34

SWEBOK (software engineering body of knowledge) - основной научно-технический документ по программной инженерии, отображающий знания и накопленный опыт специалистов по программной инженерии.

Ядру знаний SWEBOK соответствует стандарт ISO/IEC TR 19759:2005.

Версии:



2004 г. (SWEBOK V2) - десять областей знаний (5 основных и 5 областей управления);
2013 г. (SWEBOK V3) - пятнадцать областей (+ теоретические основы ПИ, экономика и описание профессиональных навыков по ПИ).


Слайд 5

Инженерия ПО
Программная инженерия
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд 5 /

34

Программная инженерия (Software Engineering) является отраслью Computer science.

Изучает вопросы построения компьютерных программ.




Отражает закономерности ее развития.


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


Слайд 6

Инженерия ПО
Программная инженерия
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд 6 /

34




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

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

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


Слайд 7

Инженерия ПО
Отличие программной инженерии от компьютерных наук
Программная инженерия.

Лекция №1.

SWEBOK: основные области знаний.

Слайд 7 / 34



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

Компьютерная наука (computer science) охватывает теорию и методы построения вычислительных и программных систем, тогда как программная инженерия рассматривает вопросы практического построения ПО.


Как говорил известный специалист в области программой техники Ф.Брукс, «ученый строит, чтобы научиться, инженер учится, чтобы строить».


Слайд 8

Инженерия ПО
Основные области знаний

SWEBOK

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 8 / 34



Слайд 9

Инженерия ПО

Области управления SWEBOK

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 9 / 34




Слайд 10

Инженерия ПО
Требования к ПО
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд

10 / 34

Определение
Требование к программному обеспечению (англ. soƒware requirement)


это:


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


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

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


Слайд 11

Инженерия ПО
Виды требований
Программная инженерия. Лекция №1.
SWEBOK: основные

области знаний.

Слайд 11 / 34

Требования к продукту и процессу условия выполнения и режим работы ПО, ограничения на среду исполнения; определение принципов взаимодействия
с другими программами.

Функциональные требования определяют назначение и функции системы.
Нефункциональные требования определяют условия исполнения ПО,
переносимости и доступа к данным.

Системные требования требования к программной системе в целом.


Слайд 12

Инженерия ПО

Инженерия требований

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 12/ 34


Определение
Инженерия требований (англ. requirements engineering) процесс формулировки, документирования и поддержки требований к ПО, а также соответствующая область программной инженерии.


Слайд 13

Инженерия ПО
Составляющие инженерии требований
Программная инженерия.

Лекция №1.

SWEBOK: основные области знаний.

Слайд 13 / 34

определение
(elicitation)

анализ
(analysis)

спецификация
(specification)

проверка
(validation)

управление
(management)











Извлечение информации из договоров;


проведение собеседований;


согласование с заказчиком.


Слайд 14Инженерия ПО
Составляющие инженерии требований
Программная инженерия.

Лекция №1.

SWEBOK: основные области знаний.

Слайд 14 / 34

определение
(elicitation)

анализ
(analysis)

спецификация
(specification)

проверка
(validation)

управление
(management)











Изучение потребностей и целей пользователей;


требования к системе исполнения, аппаратуре и ПО;


устранение конфликтов между требованиями;


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


Слайд 15Инженерия ПО
Составляющие инженерии требований
Программная инженерия.

Лекция №1.

SWEBOK: основные области знаний.

Слайд 15 / 34

определение
(elicitation)

анализ
(analysis)

спецификация
(specification)

проверка
(validation)

управление
(management)











Формальное описание требований;


спецификация требований к структуре ПО, функциям, качеству и документации;


задание архитектуры и логики системы.


Слайд 16Инженерия ПО
Составляющие инженерии требований
Программная инженерия.

Лекция №1.

SWEBOK: основные области знаний.

Слайд 16 / 34

определение
(elicitation)

анализ
(analysis)

спецификация
(specification)

проверка
(validation)

управление
(management)










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


Слайд 17Инженерия ПО
Составляющие инженерии требований
Программная инженерия.

Лекция №1.

SWEBOK: основные области знаний.

Слайд 17 / 34

определение
(elicitation)

анализ
(analysis)

спецификация
(specification)

проверка
(validation)

управление
(management)











Интеграция требований во все процессы ЖЦ;


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


необходимая корректировка требований.


Слайд 18

Инженерия ПО
Проектирование программного обеспечения
Программная инженерия. Лекция №1.
SWEBOK:

основные области знаний.

Слайд 18 / 34

Определение
Проектирование ПО (англ. soƒware design)-процесс определения архитектуры ПО, набора составляющих компонентов и их интерфейсов, прочих характеристик системы
и конечного состава программного продукта.

Основные концепции проектирования ПО:


абстрагирование (отсеивание лишней информации) и уточнение (построение иерархии выполнения);


модульность (выделение автономных компонентов системы) и архитектура
(общая структура системы, связывающая все компоненты);


структуризация (представления взаимоотношений между данными) и инкапусляция (отделение реализации от представления).


Слайд 19

Инженерия ПО

Архитектура ПО

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 19 / 34

Определение
Архитектура программного проекта высокоуровневое представление структуры системы и спецификация ее компонентов и логики их взаимодействия.

Преимущества использования архитектуры ПО:






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


Слайд 20

Инженерия ПО
Шаблоны (паттерны) проектирования
Программная инженерия.

Лекция №1.

SWEBOK: основные области знаний.

Слайд 20 / 34




Определение
Шаблон проектирования (англ. design pattern) типовой конструктивный элемент программной системы, задающий взаимодействие нескольких компонентов
системы, а также роли и сферы ответственности исполнителей. Основным языком задания этого элемента является UML.

Виды шаблонов:




порождающие (англ. creational patterns) связанные с созданием объектов.
структурные (англ. structural patterns) определяющие структуру композиции из нескольких объектов.





поведенческие (англ. behavioral patterns) определяющие поведение объектов.


Слайд 21

Инженерия ПО
Инструменты

проектирования

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 21 / 34

Описание элементов ПО осуществляется с помощью нотаций проектирования. Структурная нотация представление основных аспектов элементов ПО, их интерфейсов и взаимосвязей.


UML-описание шаблона «Декоратор»

Инструменты:





ADL (architecture description language); UML (unified modeling language);
ERD (entity – relation diagrams);
IDL (interface description language).

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


Слайд 22

Инженерия ПО
Инструменты

проектирования

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 22 / 34


Описание элементов ПО осуществляется с помощью нотаций проектирования. Поведенческая нотация определенное представление динамики работы
системы и ее элементов.


Диаграмма состояний эмулятора

Инструменты:




диаграммы потоков данных (data flow); таблицы принятия решений (decision tables); формальные языки спецификации (Z, VDM, RAISE).


Слайд 23

Инженерия ПО

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

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 23 / 34

Определение
Конструирование ПО (англ. soƒware construction) создание ПО из составных элементов (блоков, операторов, функций) и его проверка методами верификации и тестирования.
Техники конструирования: кодирование, верификация, модульное тестирование (unit testing), тестирование итеграции (integration testing), отладка (debugging).
Инструменты конструирования: языки конструирования; программные методы и инструментальные системы (компиляторы, СУБД, генераторы отчетов, системы управления версиями, конфигурацией, тестированием).


Слайд 24

Инженерия ПО

Основы конструирования ПО

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 24/ 34


Снижение сложности (англ. minimizing complexity) - акцент на читаемости кода, а не его «красоте». Keep it simple, stupid (KISS).
Средства достижения: стандарты кодирования.



Ожидание изменений (англ. anticipating change) - использование инструментов, позволяющих оперативно вносить изменения и дополнять код.
Средства достижения: средства коммуникации (напр., системы документирования), диаграммы UML.
Структуризация для проверок (англ. constructing for verification) построение ПО, ошибки в котором выявляются на как можно более ранних этапах.

Средства достижения: обзоры кода (code reviews), модульное тестирование, автоматизация тестирования.


Слайд 25

Инженерия ПО
Стандарты при конструировании

Программная инженерия. Лекция №1.
SWEBOK:

основные области знаний.

Слайд 25 / 34


Слайд 26

Инженерия ПО

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

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 26/ 34

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

Виды тестирования:





модульное (unit testing); интеграционное (integration testing); системное (system testing);
приемка (acceptance testing).


Слайд 27

Инженерия ПО

Сопровождение ПО

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 27 / 34

Определение
Сопровождение ПО (англ. soƒware maintenance) - совокупность действий по обеспечению работы ПО, внесению изменений при выявлении ошибок, адаптации
к новой среде исполнения, улучшения продуктивности или других характеристик ПО.

Основные вопросы сопровождения ПО:





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


Слайд 28

Инженерия ПО
Управление конфигурацией ПО
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд

28/ 34

Определение

Управление конфигурацией – дисциплина идентификации компонентов системы, определения функциональных и физических характеристик аппаратного и программного обеспечения для проведения контроля внесения изменений и трассирования конфигурации на протяжении ЖЦ.


Слайд 29

Инженерия ПО
Управление инженерией ПО
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд

29 / 34

Определение

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


Слайд 30

Инженерия ПО
Процесс инженерии ПО
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд 30

/ 34

Процесс инженерии ПО включает концепции, инфраструктуру, методы определения и измерения этапов ЖЦ, поиск ошибок и внесение изменений, также анализ и оценку качества продукта.

Определение


Слайд 31

Инженерия ПО
Методы и средства инженерии ПО
Программная инженерия. Лекция №1.
SWEBOK:

основные области знаний.

Слайд 31 / 34

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

Средства обеспечивают спецификацию требований, конструирование и сопровождение ПО.

Методы обеспечивают проектирование, реализацию и выполнение ПО на процессах, а также достижение качества процессов и продуктов.





Слайд 32

Инженерия ПО
Качество ПО
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд 32

/ 34

Качество ПО – набор характеристик продукта или сервиса, которые характеризуют его способность удовлетворить установленным или предполагаемым потребностям заказчика.

Определение


Слайд 33

Инженерия ПО

Выводы

Программная инженерия. Лекция №1.

SWEBOK: основные области знаний.

Слайд 33 / 34

Ядро SWEBOK содержит пять основных областей знаний программной инженерии (инженерия требований, проектирование, конструирование, тестирование и сопровождение ПО), которые соответствуют процессам жизненного цикла ПО.
Основные области знаний содержат в себе как теоретические основы, так и систематизированные практические навыки разработки ПО, а также методы управления процессами разработки.
Все пять основных процессов ЖЦ тесно связаны между собой; особенности их взаимодействия сильно зависят от выбранной модели жизненного цикла.


Слайд 34

Инженерия ПО
Программная инженерия. Лекция №1.
SWEBOK: основные области знаний.
Слайд 34/ 34
Спасибо за

внимание!

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика