Слайд 1Программная инженерия
Самочадин Александр Викторович
Samochadin_av@spbstu.ru
Слайд 2Курс: Программная инженерия
Лекции: 1 час в неделю
Лабораторные: 1 час в
неделю
Курсовое проектирование: консультации
Зачет
Экзамен
Слайд 3Программная инженерия: активности
Слайд 4Программная инженерия
Соммервилл, Иан Инженерия программного обеспечения, 6-е издание.: Пер. с
англ. – М.: Издательский дом
"Вильямс", 2002. – 624 с.
Дана широкая
панорама тем инженерии ПО, охватывающих все этапы и технологии разработки программных систем. В книге представлен весь спектр процессов, ведущих к созданию программного обеспечения, начиная от начальной разработки системных требований и далее через проектирование, непосредственное программирование и аттестацию до модернизации программных систем.
Слайд 5Разработка требований
Вигерс Карл, Битти Джой Разработка требований к программному обеспечению.
3-е изд., дополненное / Пер. с англ. — М. :
Издательство «Русская редакция» ; СПб. : БХВ-Петербург, 2014. — 736 стр.
Эта книга - подробное руководство по разработке качественных требований к программному обеспечению. Здесь описаны десятки проверенных на практике приемов выявления, формулирования, разработки, проверки, утверждения и тестирования требований, которые помогут разработчикам, менеджерам и маркетологам создать эффективное ПО. Третье издание дополнено новыми приемами, посвященными разработке требований в проектах гибкой разработки (agile).
Слайд 6Объектно-ориентированный анализ и проектирование
Крэг Ларман, Применение UML 2.0 и шаблонов
проектирования (3-е издание). Вильямс 2006. — 736 стр .
В
книге рассматриваются основные принципы и приемы объектно-ориентированного анализа и проектирования (ООА/П). В ней содержатся сведения об итеративном и гибком моделировании, шаблонах проектирования, архитектурном анализе и многих других вопросах. Весь материал рассматривается в контексте гибкого подхода к разработке с совместным применением процесса UP и других итеративных методов. Книга будет хорошим руководством для всех, кто интересуется вопросами ООА/П, языком моделирования UML 2 и современными эволюционными подходами к разработке программного обеспечения.
Слайд 7UML
А. Леоненков Самоучитель UML 2. :Издательство: BHV - Санкт –
Петербург, 2007, с. 576
Рассмотрена современная технология объектно риентированного анализа и
проектирования программных систем и бизнес-процессов в контексте нотации унифицированного языка моделирования UML 2. Подробно изложены все понятия языка UML 2 в полном соответствии с оригинальной спецификацией последней версии этого языка. Приведены конкретные рекомендации по разработке канонических диаграмм языка
Слайд 8UML
Г. Буч, А. Якобсон, Дж. Рамбо UML Издание второе Издательство:
Питер Серия: Классика Computer Science 2006 г., с. 736
Эта книга
представляет собой полный справочник по языку UML. Она адресована в первую очередь разработчикам, системным архитекторам, руководителям проектов, инженерам-системщикам, программистам, аналитикам, заказчикам и вообще всем, кому по роду деятельности приходится описывать, проектировать и строить сложные программные системы, а также разбираться в их функционировании. В книге дается всестороннее описание понятий и конструкций UML, включая их семантику, нотацию и назначение. Материал организован таким образом, чтобы книгой было удобно пользоваться, несмотря на ее объем и полноту содержания.
Слайд 9Программная инженерия
Программная инженерия (Software engineering) – это инженерная дисциплина, которая
охватывает все аспекты производства программных продуктов.
Программная инженерия— приложение систематического, дисциплинированного,
измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению (ISO/IEC/IEEE 24765:2017)
Слайд 10Области знаний программной инженерии (Software Engineering
Body of Knowledge v 3.0
SWEBOK)
Слайд 12Организационные области знаний SWEBOK
Слайд 14UML
Unified Modeling Language (UML) — унифицированный язык моделирования для
описания, визуализации и документирования объектно-ориентированных систем в процессе их анализа
и проектирования
Язык UML предоставляет стандартный способ написания проектной документации на системы
Слайд 15Стандарт UML
Стандарт на язык моделирования разработан консорциумом фирм Object Management
Group: http://www.omg.org
Текущая версия стандарта, доступная для свободного скачивания, UML 2.5.1:
https://www.omg.org/spec/UML/2.5.1/PDF
UML
2.4.1 принят в качестве международного стандарта ISO/IEC 19505-1, 19505-2.
Слайд 16BPMN
Business Process Model and Notation (BPMN) нотация и модель бизнес-процессов
— система условных обозначений (нотация) для моделирования бизнес-процессов.
Последняя версия стандарта
— BPMN 2.0.2 (январь 2014).
Слайд 17Курс: Программная инженерия
Курсовая работа по курсу «Программная инженерия»
Разделы курсовой
работы:
1. Концепция проекта, которая отражает в краткой форме все составляющие
проекта.
2. Технико-экономическое обоснование проекта
3. Требования к проекту (Use case документ)
4. Описание содержания проекта, которое содержит описание работ, которые предстоит выполнить, и результатов поставки.
5. План реализации проекта.
6. Описание проекта
7. Тест-план
Слайд 18Требования к ПО
Требования к ПО – Software Requirements – свойства
программного обеспечения, которые должны быть надлежащим образом представлены в нѐм
для решения конкретных практических задач.
Требование определяется как некое свойство ПО, необходимое пользователю для решения проблемы при достижении поставленной цели;
“Условие или возможность, которое система должна выполнять или поддерживать”.
Слайд 19Требования к ПО
Разработка требований включает следующие типы деятельности:
Сбор (выявление)требований —
общение с клиентами и пользователями, чтобы определить, каковы их требования;
анализ предметной области.
Анализ требований — систематизация требований. Определение, являются ли собранные требования неясными, неполными, неоднозначными или противоречащими; выявление взаимосвязи требований.
Документирование требований — требования могут быть в различных формах, таких как простое описание, сценарии использования, пользовательские истории.
Специфицирование требований.
Управление требованиями.
Слайд 20Требования к ПО
Уровни требований по Вигерсу
Слайд 21Требования к ПО
Бизнес-требования (business requirements). Примеры бизнес-требования: система должна сократить
срок оборачиваемости обрабатываемых на предприятии заказов в три раза. Бизнес-требования
обычно формулируются заказчиком.
Пользовательские требования (Пользовательские потребности). (User Requirement Specification - URS) Описание на естественном языке (плюс поясняющие диаграммы) функций, выполняемых системой, и ограничений, накладываемых на нее. Ориентированы на заказчика ПО (руководство и специалисты организации – заказчика, пользователи)
Специфицированные требования (или просто требования) (Software Requirement Specification - SRS). Детализированное описание системных функций и ограничений. Системные требования служат основой для контракта между заказчиком и разработчиком. Ориентированы на заказчика и разработчика (специалисты разработчика и исполнителя)
Слайд 22Требования к ПО
Сегодняшняя задача: разработка пользовательских функциональных требований к ПО
с помощью методики основанной на вариантах использования.
В рамках этой методики
разрабатываются:
1. Диаграммы вариантов использования (Use Case диаграмма)
2. Сценарии вариантов использования
3. Создается Use Case документ
Слайд 23Назначение диаграммы вариантов использования
Определить общие границы функциональности проектируемой системы в
контексте моделируемой предметной области.
Специфицировать требования к функциональному поведению проектируемой системы
в форме вариантов использования.
Разработать исходную концептуальную модель системы для ее последующей детализации в форме логических и физических моделей.
Подготовить исходную документацию для взаимодействия разработчиков системы с ее заказчиками и пользователями
Слайд 24Основные обозначения на диаграмме вариантов использования
Слайд 25Вариант использования (use case)
Представляет собой общую спецификацию совокупности выполняемых системой действий
с целью предоставления некоторого наблюдаемого результата, который имеет значение для
одного или нескольких актеров
Отвечает на вопрос «Что должна выполнять система?», не отвечая на вопрос «Как она должна выполнять это?»
Имена – отглагольное существительное или глагол в неопределенной форме
Слайд 26Действующее лицо, Актер (actor)
Любая внешняя по отношению к проектируемой системе
сущность, которая взаимодействует с системой и использует ее функциональные возможности
для достижения определенных целей или решения частных задач
Примеры актеров: кассир, клиент банка, банковский служащий, президент, продавец магазина, менеджер отдела продаж, пассажир авиарейса, водитель автомобиля, администратор гостиницы, сотовый телефон
Слайд 27Вопросы для идентификации действующих лиц в системе
Какие организации или лица
будут использовать систему
Кто будет получать пользу от использования системы
Кто будет
использовать информацию от системы
Будет ли использовать система внешние ресурсы
Может ли один пользователь играть несколько ролей при взаимодействии с системой
Могут ли различные пользователи играть одну роль при взаимодействии с системой
Будет ли система взаимодействовать с законодательными, исполнительными, налоговыми или другими органами
Слайд 28Отношение ассоциации
Ассоциация (association) является одним из фундаментальных понятий в
языке UML 2.х и может использоваться на различных канонических диаграммах
при построении визуальных моделей
Применительно к диаграммам вариантов использования отношение ассоциации может служить только для обозначения взаимодействия актера с вариантом использования.
Слайд 29Отношение включения
Отношение включения (include) специфицирует тот факт, что некоторый
вариант использования содержит поведение, определенное в другом варианте использования
Слайд 30Отношение расширения
Отношение расширения (extend) определяет взаимосвязь одного варианта использования
с некоторым другим вариантом использования, функциональность или поведение которого задействуется
первым не всегда, а только при выполнении некоторых дополнительных условий.
Слайд 31Отношение обобщения
Отношение обобщения (generalization relationship) предназначено для спецификации того
факта, что один элемент модели является специальным или частным случаем
другого элемента модели
Слайд 32Диаграмма вариантов использования
Слайд 33Диаграмма вариантов использования
Слайд 34Диаграмма вариантов использования (с ошибками)
Слайд 35Диаграмма вариантов использования (с ошибками)
Слайд 36Диаграмма вариантов использования (с ошибками)
Слайд 37Диаграмма вариантов использования (с ошибками)
Слайд 38Диаграмма вариантов использования
Слайд 39Диаграмма вариантов использования
Слайд 40Диаграмма вариантов использования
Слайд 41Диаграмма вариантов использования (с ошибками)
Слайд 42Сценарии вариантов использования.
Сценарий варианта использования – последовательность действий (сценарий), включая
варианты, при которых система приносит действующему лицу полезный и понятный
результат и действия, которые не приносят такого результата.
Действующее лицо – определяет связанный набор ролей, которые пользователи системы могут играть при взаимодействии с этой системой. Пользователем может быть человек или внешняя система.
Действующее лицо – кто-то или что-то обладающее поведением.
Основное действующее лицо: действующее лицо, инициирующее взаимодействие с системой для достижения некоторой цели.
Предусловие объявляет выполнение какого условия гарантируется перед тем, как разрешить запуск этого варианта использования
Триггер – событие, которое запускает вариант использования.
Гарантия успеха – устанавливает, что интересы участников удовлетворены
Основной сценарий – вариант, в котором не возникает никаких ошибок
Расширения – различные отклонения от основного сценария.
Область действия – идентифицирует рассматриваемую систему
Уровень цели: обобщенный (описание бизнес-процесса), уровень цели пользователя (которую можно достигнуть за один сеанс), уровень подцели.
Слайд 43Сценарий варианта использования.
Пример сценария варианта использования.
Оформление продажи
Основное действующее лицо: кассир
Область
действия: система автоматизации торговли
Уровень: пользовательский
Участники и интересы:
Кассир – хочет точно
и быстро ввести данные
Покупатель – хочет купить товары и быстро оформить покупку с минимальными усилиями. Хочет получить подтверждение факта покупки.
Компания – хочет оформить покупку и удовлетворить интересы покупателя
Налоговые службы – хотят получать налог с каждой продажи.
Триггер: покупатель подходит к кассовому аппарату с выбранными товарами.
Слайд 44Основной сценарий:
Кассир открывает новую продажу.
Кассир вводит идентификатор товара
Система записывает наименование
товара и на основании каталога товаров и выдает его описание,
цену и общую стоимость. Цена вычисляется на основе набора правил.
Кассир повторяет действия , описанные в пп. 2-3, для каждого наименования товара
Система вычисляет общую стоимость покупки с налогом
Кассир сообщает покупателю общую стоимость и предлагает оплатить покупку
Покупатель оплачивает покупку, система обрабатывает платеж
Система регистрирует продажу в реестре продаж и отправляет информацию о продаже внешней бухгалтерской системе и системе складского учета (для обновления данных)
Система выдает товарный чек
Покупатель покидает магазин с чеком и товарами (если он что-то купил)
Сценарий варианта использования.
Слайд 45Расширения:
2а. Неправильный идентификатор
2а1. Система уведомляет об ошибке и отменяет ввод
данного наименования товара
2б. В рамках одной категории существует несколько наименований
товара
2б1. Кассир может ввести идентификатор товара и количество единиц.
2в. Покупатель просит продавца отменить покупку одного из товаров
2в1. Кассир вводит идентификатор товара для удаления из продажи
2в2. Система отображает обновленную промежуточную стоимость.
Сценарий варианта использования.
Слайд 46Пример. Фрагмент диаграммы вариантов использования для системы заказов
Сценарий варианта
использования.
Слайд 47Сценарий варианта использования.
Слайд 48Сценарий варианта использования.
Слайд 49Основные разработчики языка UML
(Three amigos)
Grady Booch
Гради Буч
Dr. James Rumbaugh
Джеймс Рамбо
(Джим
Румбах)
Dr. Ivar Jacobson
Айвар Джекобсон
(Ивар Якобсон)
OMG (Object Management Group) — название
консорциума, созданного в 1989 году для разработки индустриальных стандартов с их последующим использованием в процессе создания масштабируемых неоднородных распределенных объектных сред.
Официальный сайт: www.omg.org
Слайд 51Назначение языка UML
Предоставить разработчикам легко воспринимаемый и выразительный язык визуального
моделирования, специально предназначенный для разработки и документирования моделей сложных систем
различного целевого назначения
Снабдить исходные понятия языка UML возможностью расширения и специализации для более точного представления моделей систем в конкретной предметной области
Графическое представление моделей в нотации UML не должно зависеть от конкретных языков программирования и инструментальных средств проектирования
Описание языка UML должно включать в себя семантический базис для понимания общих особенностей ООАП
Способствовать распространению объектных технологий и поощрять развитие рынка программных инструментальных средств
Интегрировать в себя новейшие и наилучшие достижения практики ООАП
Слайд 52Классификация моделей в языке UML
Структурные модели (structured models) – модели,
предназначенные для описания статической структуры сущностей или элементов некоторой системы,
включая их классы, интерфейсы, атрибуты и отношения.
Модели поведения (behavioral models) – модели, предназначенные для описания процесса функционирования элементов системы, включая их методы и взаимодействие между ними, а также процесс изменения состояний отдельных элементов и системы в целом.
Слайд 53Канонические диаграммы языка UML 2.х
Слайд 54Канонические диаграммы языка UML 2.х