SlideShare a Scribd company logo
WWW.JAVABEGIN.RU
WW.JAVABEGIN.RU
БЛОК: ПРАКТИКА UMLПРОЕКТИРОВАНИЕ ДЛЯ НАЧИНАЮЩИХ
ОПИСАНИЕ ПРЕЦЕДЕНТОВ
WWW.JAVABEGIN.RU
Заметки
• Ответы на вопросы «что», а не «как»
• Не нужно изображать, как работает система внутри – только внешние бизнес-процессы со стороны пользователя
• Заранее выбрать формат описания и придерживаться его для всего проекта
• Простота и понятность – главные требования
• Многие сразу бросаются рисовать диаграммы, но лучше сначала описать в виде текста
• Часто прецеденты в виде текста более понятны, чем диаграммы прецедентов
• На популярные задачи уже существуют готовые «use case», которые можно взять за основу (например: онлайн оплата,
авторизация, работа банкомата и пр.)
WWW.JAVABEGIN.RU
Описание прецедентов
• Понятное имя
• Краткость – главное понять смысл без технических деталей («что», а не «как»)
• Заполнять только существующие пункты (пропускать те, которые не требуют заполнения)
• Правильное разделения действующих лиц (actor) на главные (инициатор) и второстепенные
роли
WWW.JAVABEGIN.RU
Формат
• Подробное описание:
• http://alistair.cockburn.us/Basic+use+case+template
• Можно выполнять в свободной форме, но лучше по формату
WWW.JAVABEGIN.RU
Последовательность
1. Описать основные возможности программы (мозговой штурм) – все, что приходит в голову
выносить на листочек/доску/файл – не выбирая выражения (корректировка будет позже)
– Как вариант – записывать все на диктофон, т.к. бывает, что не все успевают записывать по ходу штурма
– Потом спокойно переносить в текст
– В конечный use case могут попасть не все пункты
2. Составить из этого единый список без нумерации
3. Разделить по смыслу на группы
4. Выделить сценарии
5. Описать use case
WWW.JAVABEGIN.RU
Мозговой штурм (это пока не use case)
• Не слишком сложное, попроще, чтобы познакомиться с
технологиями
• Хранение пользователей
• Редактирование
• Поиск
• Удаление
• Добавление
• Сортировка
• Удобное отображение
• Горячие клавиши
• Удобный интерфейс
• Основная информация чтобы сразу была видна
• Резиновый дизайн
• Это будет локальное приложение или распределенное?
• Юзабилити, всплывающие подсказки
• Десктоп приложение, не веб
• Красивый интерфейс
• Можно добавить анимацию, переключения
• Индикаторы загрузки
• Проверка введенных данных
• Маски для ввода
• Локализация
• Переключение языков «на лету»
• …
Не нужно бояться что-то пропустить. В итеративной разработке это не страшно, постоянно будем возвращаться.
Главное – описать стержень.
WWW.JAVABEGIN.RU
Разбиваем по смыслу на группы
• GUI:
– Удобное отображение
– Удобный интерфейс
– Основная информация чтобы сразу была видна
– Резиновый дизайн
– Юзабилити, всплывающие подсказки
– Красивый интерфейс
– Можно добавить анимацию, переключения
– Индикаторы загрузки
– Горячие клавиши
– Проверка введенных данных
– Маски для ввода
• Процессы:
– Хранение пользователей
– Редактирование
– Поиск
– Удаление
– Добавление
– Сортировка
• Дополнительно:
– Десктоп приложение, не веб
– Это будет локальное приложение или распределенное?
– Не слишком сложное, попроще, чтобы познакомиться с
технологиями
– Переключение языков
Отсюда можно брать сценарии
WWW.JAVABEGIN.RU
Домашнее задание
Изучить формат
http://alistair.cockburn.us/Basic+use+case+template
Установить Visual Use Case
http://www.visualusecase.com/download-visual-use-case-personal-f.html
• Пройти регистрацию, чтобы снять ограничения

More Related Content

What's hot

UML: Первое знакомство
UML: Первое знакомствоUML: Первое знакомство
UML: Первое знакомство
Alexander Babich
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
SQALab
 
Как стать игроком большой команды
Как стать игроком большой командыКак стать игроком большой команды
Как стать игроком большой команды
Agilie Team
 
Архитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UIАрхитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UI
Anton Bevzuk
 
CSS Modules в React | Odessa Frontend Meetup #4
CSS Modules в React | Odessa Frontend Meetup #4CSS Modules в React | Odessa Frontend Meetup #4
CSS Modules в React | Odessa Frontend Meetup #4
OdessaFrontend
 
Adobe Flash. Знакомство.
Adobe Flash. Знакомство.Adobe Flash. Знакомство.
Adobe Flash. Знакомство.
Yulya Borshchova
 
ОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВ
ОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВ
ОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВAleksey Polekhin
 

What's hot (10)

UML: Первое знакомство
UML: Первое знакомствоUML: Первое знакомство
UML: Первое знакомство
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Mockup
MockupMockup
Mockup
 
Как стать игроком большой команды
Как стать игроком большой командыКак стать игроком большой команды
Как стать игроком большой команды
 
Архитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UIАрхитектура для автоматизированного тестирования UI
Архитектура для автоматизированного тестирования UI
 
CSS Modules в React | Odessa Frontend Meetup #4
CSS Modules в React | Odessa Frontend Meetup #4CSS Modules в React | Odessa Frontend Meetup #4
CSS Modules в React | Odessa Frontend Meetup #4
 
Adobe Flash. Знакомство.
Adobe Flash. Знакомство.Adobe Flash. Знакомство.
Adobe Flash. Знакомство.
 
Lessonhome
LessonhomeLessonhome
Lessonhome
 
ОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВ
ОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВ
ОНЛАЙН- ПРОГРАММЫ ОБУЧЕНИЯ ДЛЯ ДИЗАЙНЕРОВ
 
Diploma
DiplomaDiploma
Diploma
 

Viewers also liked

Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
Roman Brovko
 
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Roman Brovko
 
Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.
Roman Brovko
 
Лекция 4. Строки, байты, файлы и ввод/вывод.
 Лекция 4. Строки, байты, файлы и ввод/вывод. Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
Roman Brovko
 
Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.
Roman Brovko
 
Лекция 6. Классы 1.
Лекция 6. Классы 1.Лекция 6. Классы 1.
Лекция 6. Классы 1.
Roman Brovko
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
Roman Brovko
 
Лекция 10. Классы 2.
Лекция 10. Классы 2.Лекция 10. Классы 2.
Лекция 10. Классы 2.
Roman Brovko
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.
Roman Brovko
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.
Roman Brovko
 
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
Roman Brovko
 
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GILЛекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
Roman Brovko
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
Roman Brovko
 

Viewers also liked (13)

Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
 
Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.Лекция 2. Всё, что вы хотели знать о функциях в Python.
Лекция 2. Всё, что вы хотели знать о функциях в Python.
 
Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.Лекция 3. Декораторы и модуль functools.
Лекция 3. Декораторы и модуль functools.
 
Лекция 4. Строки, байты, файлы и ввод/вывод.
 Лекция 4. Строки, байты, файлы и ввод/вывод. Лекция 4. Строки, байты, файлы и ввод/вывод.
Лекция 4. Строки, байты, файлы и ввод/вывод.
 
Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.Лекция 9. Модули, пакеты и система импорта.
Лекция 9. Модули, пакеты и система импорта.
 
Лекция 6. Классы 1.
Лекция 6. Классы 1.Лекция 6. Классы 1.
Лекция 6. Классы 1.
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 
Лекция 10. Классы 2.
Лекция 10. Классы 2.Лекция 10. Классы 2.
Лекция 10. Классы 2.
 
Лекция 1. Начало.
Лекция 1. Начало.Лекция 1. Начало.
Лекция 1. Начало.
 
Лекция 11. Тестирование.
Лекция 11. Тестирование.Лекция 11. Тестирование.
Лекция 11. Тестирование.
 
Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.Лекция 7. Исключения и менеджеры контекста.
Лекция 7. Исключения и менеджеры контекста.
 
Лекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GILЛекция 13. Многопоточность и GIL
Лекция 13. Многопоточность и GIL
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
 

Similar to 04 - Практика UML. Описание прецедентов

разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
Alexander Gornik
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковAlex Tumanoff
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
Roman Dvornov
 
"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей Калинец"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей Калинец
Fwdays
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLID
Pavel Tsukanov
 
Junior java standard edition developer
Junior java standard edition developerJunior java standard edition developer
Junior java standard edition developer
Dmitriy Neguritsa
 
Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализу
Positive Development User Group
 
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделыватьЧек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
Ihor Zenich
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
Max Arshinov
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
 
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Elias Fofanov
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?
Alexey Zinoviev
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
 
Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на Javascript
Denis Latushkin
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
Andrey Bibichev
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Dmytro Zharii
 

Similar to 04 - Практика UML. Описание прецедентов (20)

разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис Цыплаков
 
Компонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективноКомпонентный подход: скучно, неинтересно, бесперспективно
Компонентный подход: скучно, неинтересно, бесперспективно
 
"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей Калинец"Разрушаем .NET мифы" Сергей Калинец
"Разрушаем .NET мифы" Сергей Калинец
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLID
 
Junior java standard edition developer
Junior java standard edition developerJunior java standard edition developer
Junior java standard edition developer
 
Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализу
 
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделыватьЧек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
 
MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?MyBatis и Hibernate на одном проекте. Как подружить?
MyBatis и Hibernate на одном проекте. Как подружить?
 
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
CodeFest 2013. Зиновьев А. — MyBatis & Hibernate, давайте жить дружно!
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на Javascript
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfyЧитабельные отчеты для автоматизации на C# / Gallio / BDDfy
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
 

More from Roman Brovko

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
Roman Brovko
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
Roman Brovko
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
Roman Brovko
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
Roman Brovko
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
Roman Brovko
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
Roman Brovko
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
Roman Brovko
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
Roman Brovko
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
Roman Brovko
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
Roman Brovko
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
Roman Brovko
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
Roman Brovko
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
Roman Brovko
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
Roman Brovko
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
Roman Brovko
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
Roman Brovko
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
Roman Brovko
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
Roman Brovko
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
Roman Brovko
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
Roman Brovko
 

More from Roman Brovko (20)

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
 

04 - Практика UML. Описание прецедентов

  • 1. WWW.JAVABEGIN.RU WW.JAVABEGIN.RU БЛОК: ПРАКТИКА UMLПРОЕКТИРОВАНИЕ ДЛЯ НАЧИНАЮЩИХ ОПИСАНИЕ ПРЕЦЕДЕНТОВ
  • 2. WWW.JAVABEGIN.RU Заметки • Ответы на вопросы «что», а не «как» • Не нужно изображать, как работает система внутри – только внешние бизнес-процессы со стороны пользователя • Заранее выбрать формат описания и придерживаться его для всего проекта • Простота и понятность – главные требования • Многие сразу бросаются рисовать диаграммы, но лучше сначала описать в виде текста • Часто прецеденты в виде текста более понятны, чем диаграммы прецедентов • На популярные задачи уже существуют готовые «use case», которые можно взять за основу (например: онлайн оплата, авторизация, работа банкомата и пр.)
  • 3. WWW.JAVABEGIN.RU Описание прецедентов • Понятное имя • Краткость – главное понять смысл без технических деталей («что», а не «как») • Заполнять только существующие пункты (пропускать те, которые не требуют заполнения) • Правильное разделения действующих лиц (actor) на главные (инициатор) и второстепенные роли
  • 4. WWW.JAVABEGIN.RU Формат • Подробное описание: • http://alistair.cockburn.us/Basic+use+case+template • Можно выполнять в свободной форме, но лучше по формату
  • 5. WWW.JAVABEGIN.RU Последовательность 1. Описать основные возможности программы (мозговой штурм) – все, что приходит в голову выносить на листочек/доску/файл – не выбирая выражения (корректировка будет позже) – Как вариант – записывать все на диктофон, т.к. бывает, что не все успевают записывать по ходу штурма – Потом спокойно переносить в текст – В конечный use case могут попасть не все пункты 2. Составить из этого единый список без нумерации 3. Разделить по смыслу на группы 4. Выделить сценарии 5. Описать use case
  • 6. WWW.JAVABEGIN.RU Мозговой штурм (это пока не use case) • Не слишком сложное, попроще, чтобы познакомиться с технологиями • Хранение пользователей • Редактирование • Поиск • Удаление • Добавление • Сортировка • Удобное отображение • Горячие клавиши • Удобный интерфейс • Основная информация чтобы сразу была видна • Резиновый дизайн • Это будет локальное приложение или распределенное? • Юзабилити, всплывающие подсказки • Десктоп приложение, не веб • Красивый интерфейс • Можно добавить анимацию, переключения • Индикаторы загрузки • Проверка введенных данных • Маски для ввода • Локализация • Переключение языков «на лету» • … Не нужно бояться что-то пропустить. В итеративной разработке это не страшно, постоянно будем возвращаться. Главное – описать стержень.
  • 7. WWW.JAVABEGIN.RU Разбиваем по смыслу на группы • GUI: – Удобное отображение – Удобный интерфейс – Основная информация чтобы сразу была видна – Резиновый дизайн – Юзабилити, всплывающие подсказки – Красивый интерфейс – Можно добавить анимацию, переключения – Индикаторы загрузки – Горячие клавиши – Проверка введенных данных – Маски для ввода • Процессы: – Хранение пользователей – Редактирование – Поиск – Удаление – Добавление – Сортировка • Дополнительно: – Десктоп приложение, не веб – Это будет локальное приложение или распределенное? – Не слишком сложное, попроще, чтобы познакомиться с технологиями – Переключение языков Отсюда можно брать сценарии
  • 8. WWW.JAVABEGIN.RU Домашнее задание Изучить формат http://alistair.cockburn.us/Basic+use+case+template Установить Visual Use Case http://www.visualusecase.com/download-visual-use-case-personal-f.html • Пройти регистрацию, чтобы снять ограничения