СОВРЕМЕННЫЕ ТЕХНОЛОГИИ РАЗРАБОТКИ ПО Лекция 3.2: Функциональные спецификации: примеры Постановка задачи • На предприятии есть система менеджмента качества • ISO 9001:2008, качество продукции: • • • • планирование качества; управление качеством; обеспечение качества; улучшение качества. 2 Постановка задачи • Процесс улучшения качества: • аудит; • анализ данных; • анализ со стороны руководства, ведущий к - предупреждающим действиям (предотвращение событий) - корректирующим действиям (предотвращение рецидивов) 3 Постановка задачи Обнаружение несоответствий: • Соответствие (conformity) = выполнение требования • Несоответствие (nonconformity) = невыполнение требования • Дефект (defect) = несоответствие, связанное с использованием продукции 4 Задача Нужна система управления несоответствиями: • Операторы регистрируют несоответствия • Начальник утверждает ответственных за анализ • Ответственные анализируют несоответствия, предлагают корректирующие действия • Начальник проверяет и утверждает план действий 5 Варианты использования Подход №1 Управление несоответствиями SetOwner Report error «include» Plain user «include» «include» AssignError «include» SendEMail «include» «include» Process owner RejectFix «include» AcceptFix Report error fix RejectError Responsible SetupTables SetupUser Administrator 6 Варианты использования Подход №1 Управление несоответствиями BrowseErrorReports Фрагмент UseCase-диаграммы. Общие для всех пользователей действия. GenerateReport User Plain user Responsible Process owner 7 Варианты использования Подход №2 Управление несоответствиями Operator Executive Register Disparity See RF4.1.9 Pt.#1 Browse Disparity See RF4.1.9 Pt.#3 View Report See RF4.1.9 Pt.#4 Register Corrective Action See RF4.1.9 Pt.#1 See RF4.1.9 Pt.#5 Investigate Corrective Action Manager «include» «include» Reject Corrective Action Approve Corrective Action Reassign Manager See RF4.1.9 Pt.#2 Reject Disparity See RF4.1.9 Pt.#3 Specify See RF4.1.9 Disparity«include» Pt.#1, Pt.#4 Assign Executive 8 Истории пользователя Псевдокод Псевдокод варианта использования «Обнаружение несоответствия» BEGIN ShowForm; While (button not pressed) ProcessOtherFormEvents; end While If (button = "Send") If (Database.CreateRecord) Database.SendData; MailDaemon.SendNotification; Else ShowError; end If Else If (button = "Close") // close later Else // something strange has happened ShowError; end If Псевдокод варианта использования «Выполнение корректирующего действия» ShowForm StartToEditDisparity GetCorrectiveActionsDescription If (UserChoice == ClickOK) then SaveChanges Disparity.SetState(stateActionsPerformed) Disparity.GetManager().SendNotification Else Cancel Changes End If CloseForm CloseForm; END 9 Истории пользователя Текст №1: всё просто Вариант «Смена владельца процесса» Основной сценарий: 1. Менеджер просматривает несоответствие 2. Менеджер выбирает нового владельца процесса 3. Менеджер сохраняет изменения несоответствия 4. Менеджер завершает просмотр несоответствия Альтернативный сценарий: 1. Менеджер просматривает несоответствие 2. Если менеджер не знает, на кого переназначить несоответствие, то он не изменяет владельца 3. Менеджер завершает просмотр несоответствия 10 Истории пользователя Текст №2: Рассказ (в 2х частях) Анализ несоответствия • Однажды в студёную зимнюю пору, менеджеру Иванову пришло сообщение по электронной почте. В нем указывалось, что заказчик Сидоров обнаружил критическое несоответствие своих ожиданий отпечатанным недавно сигаретным упаковкам. Подумав немного и выпив кофе для успокоения, Иванов приступил к анализу несоответствия. • Для этого он открыл приложение "Управление несоответствиями", нашёл там данное несоответствие и приступил к заполнению его полей. • В первую очередь он предположил, что причиной всему являются кривые руки печатников, что и указал в поле "Причина возникновения ошибки". В качестве корректирующих действий (в строке 1) он указал "выпрямление рук", ответственным назначил штатного фельдшера Петрову, а срок выполнения - "ещё вчера". 11 Истории пользователя Текст №2: Рассказ (окончание) • Подумав ещё немного, Иванов решил, что неплохо было бы также исправить настройки печатной машины, что послужили причиной появления несоответствия. Для этого он выбрал из выпадающего списка в строке 2 печатника Быстрова. В качестве причины он написал "ИСПРАВИТЬ НЕМЕДЛЕННО, Я СКАЗАЛ!!!!". А дату в спешке установить он забыл. • Неожиданно Иванову позвонили по телефону и вызвали к шефу. Возвращаясь с достаточно неприятного для него совещания, Иванов вспомнил, что давно не обедал. Вернувшись в 16 на рабочее место он увидел, что его всё ещё ожидает оставленная утром форма. Недолго думая, он нажал кнопку "Регистрация" и пошёл домой. 12 Диаграмма деятельности Подход №1 Блок-схема для варианта использования «Просмотр списка несоответствий» ShowForm WaitForUserEvent [else] [close button pressed] [button is pressed] ProcessFormButton 13 Диаграмма деятельности Подход №1: детали Диаграмма деятельности для процедуры «ProcessFromButton [clear button pressed] [export button pressed] [show record button pressed] [query button pressed] [list not empty] ClearForm ClearRecordsList ExportReport [record selected] SetFilter ShowRecordForm [else] [else] QueryRecords FillRecordsList 14 Диаграмма деятельности Подход №2 Загрузить все данные для несоответствия из БД, включая корректирующие действия Открыть форму Отобразить несоответствие Проверить права доступа [else] [роль=менеджер] Менеджер принимает или отклоняет выполненные действия исполнителя Разрешить редактирование [менеджер принял действие] Перевести несоответствие в состояние "Закрыто" Открыть в режиме просмотра [else] Отправить уведомление об отклонении действий исполнителю Отправить уведомление пользователю об устранении несоответствия Закрыть форму 15 Диаграммы состояний Подход №1 SetOwner Active after: 1 day ReportError Active H [date >= error.timeoutDate] / SendEMail [else] RejectError Submitted AssignError Rejected Closed AssignError Assigned RejectFix ReportErrorFix Fixed AcceptFix 16 Диаграммы состояний Подход №2 Обнаружено несоответствие / Создать несоответствие Изменение владельца / Назначить нового Несоответствие Спецификация / Сообщить исполнителям,Описать ошибку Applied Disparity New Disparity [отклонено или не окончено] Открыть заново Отправить уведомление Произведена коррекция [Пользователь не принял] [принято владельцем] Закрытие несоответствия [Несоответствие отклонено] Closed Disparity 17 Диаграммы классов Reporter +Generate() 1 1 Browser 1 +Browse() +Open() +SetFilter() +ShowFilteredData() +SelectDisparity() 1 Disparity User +Notify() 1 * +Register() +SetAction() +Analize() +Create() +SetType() 18 Диаграммы классов MailDaemon +SendNotification(in user : User, in text) Notification interface Owner interface RecordForm Responsible interface Common user interface BrowseForm Browsing interface User -name Responsible Owner * * -Owns -Owned by Error -Responsible for 0..4 19 1 +SetResponsible() +SetOwner() Диаграммы взаимодействия Сценарий: регистрация несоответствия 2: Type 1: GetType() 3: SetType() 4: Register() 5: Notify() Пользователь Несоответствие Менеджер Тип Несоответствия 20 Диаграммы взаимодействия Сценарий: назначение исполнителя Error Mail Daemon 6: EMail tio n en dN oti fic a :S 5.2 5.1: SetResponsible() s le ib ns le po sib es n R po st s ve Li e a et tR S G Se 5 : 3: 4: 1: OpenRecord Process Owner 2: OpenRecordForm BrowseForm RecordForm Responsible 21 Диаграммы последовательности действий Диаграмма последовательности для варианта использования "Переназначение владельца процесса" BrowseForm OldOwner OpenRecord OpenRecordForm RecordForm GetListOwners Error MailDaemon NewOwner owners list SetOnwer Save SetOwner() SendNotification EMail CloseForm 22 Диаграммы последовательности действий Диаграмма последовательности для варианта использования "Просмотр несоответствия" Operator Open() Browser SetFilter() ShowFilteredData() SelectDisparity() Open Form DisparityForm Show Disparity Close Disparity Form 23 Диаграммы размещения Вариант №1 Server Workstation Microsoft Exchange DataBase Microsoft Outlook OutlookAddIn 24 Диаграммы размещения Вариант №2 Database Server Workstation +server +client Disparity Control Disparity Database 1 * 1 Intranet 1 Exchange Server Exchange 25 Ссылки • ГОСТ-Р-ИСО-9000-2008 «Системы менеджмента качества. Основные положения и словарь» • http://www.sapanet.ru/Kafedra/Podrazd/UMU/ umo/GOST_P_ISO_9000_2008.pdf • ГОСТ-Р-ИСО-9001-2008 «Системы менеджмента качества» • http://smk.nspu.ru/file.php/1/GOST_R_ISO/_9 001-2008.pdf 26