49
Разработка ПО Подготовка Павел Егоров @xoposhiy [email protected]

Разработка ПО. Введение в специальность 3. Требования

Embed Size (px)

DESCRIPTION

Третья часть из серии обзорных лекций про промышленную разработку ПО студентам первых курсов УрФУ. Работа с требованиями.

Citation preview

Page 1: Разработка ПО. Введение в специальность 3. Требования

Разработка ПОПодготовка

Павел Егоров@xoposhiy

[email protected]

Page 2: Разработка ПО. Введение в специальность 3. Требования

Супер-способность:

не хвататься за клавиатуру

сразу!

Page 3: Разработка ПО. Введение в специальность 3. Требования

Собрать требования к продукту

Спроектировать интерфейс

Спроектировать

архитектуру

Page 4: Разработка ПО. Введение в специальность 3. Требования

Стоимость исправления ошибки

Требования Интерфейсы Архитектура Код0

1

2

3

4

5

6

7

8

9

10

Page 5: Разработка ПО. Введение в специальность 3. Требования

Стоимость разработки

Подготовка50%

Кодирование

20%

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

30%

Page 6: Разработка ПО. Введение в специальность 3. Требования

Как собиратьи фиксировать требования?

Joel Spolsky Функциональные спецификации малой кровью Подкаст u http://habrahabr.ru/post/64608/

eng: http://www.scrumalliance.org/articlesrus: http://blog.scrumtrek.ru/

Доклады: http://www.req-labs.ru/

Page 7: Разработка ПО. Введение в специальность 3. Требования

…500+ страниц каждая…

Как собиратьи фиксировать требования?

Page 8: Разработка ПО. Введение в специальность 3. Требования

Самое простоеuser-story

Page 9: Разработка ПО. Введение в специальность 3. Требования
Page 10: Разработка ПО. Введение в специальность 3. Требования

User Storyтипичная история из жизни пользователя

Page 11: Разработка ПО. Введение в специальность 3. Требования

После трудной недели, Петя проспал целых 20 часов. Разлепив глаза, он открыл Твиттер и начал читать накопившиеся за это время новости

Позиционировать в ленте на последнем прочитанном

сообщении

Page 12: Разработка ПО. Введение в специальность 3. Требования

После трудной недели, Петя проспал целых 20 часов. Разлепив глаза, он открыл Твиттер и начал читать накопившиеся за это время новости

Позиционировать в ленте на последнем прочитанном

сообщении

Page 13: Разработка ПО. Введение в специальность 3. Требования

Прочитав непонятный ответ, Петя решил перечитать всю беседу, чтобы вспомнить, о чем речь

Загружать беседу сразу при

открытии твита

Page 14: Разработка ПО. Введение в специальность 3. Требования

Прочитав непонятный ответ, Петя решил перечитать всю беседу, чтобы вспомнить, о чем речь

Загружать беседу сразу при

открытии твита

Page 15: Разработка ПО. Введение в специальность 3. Требования

Увидев интересную ссылку, Петя решил открыть ее в браузере.Но из-за медленного интернета, оставив браузер открывать ссылку, вернулся обратно читать твиттер

Сделать кнопку «Открыть в фоне» / «Прочитать

позже»

Page 16: Разработка ПО. Введение в специальность 3. Требования

Удачные User story помогают

формулировать требования

Page 17: Разработка ПО. Введение в специальность 3. Требования

На что ещё годятся User Stories?

Page 18: Разработка ПО. Введение в специальность 3. Требования

User Stories с приоритетами — это и есть план!

Page 19: Разработка ПО. Введение в специальность 3. Требования

Прогон user story при тестировании помогает

вскрывать проблемы

Page 20: Разработка ПО. Введение в специальность 3. Требования

При должном старании можно

сформулировать сотни User Stories!

Page 21: Разработка ПО. Введение в специальность 3. Требования

«Эпик» — цель пользователя

• Петя продвигает сайт через twitterДля этого он фоловит, отвечает, ищет, пишет, ставит кнопки на сайт…

• Катя следит за жизнью супер-звездДля этого она читает, смотрит фотки, ходит по ссылкам

Page 22: Разработка ПО. Введение в специальность 3. Требования

User Story — важные жизненные истории,

вскрывающие требованияпомогающие планировать

и тестировать

Обрастают детальными требованиями

и группируются в Эпики

Page 23: Разработка ПО. Введение в специальность 3. Требования

Пользовательские интерфейсы

Page 24: Разработка ПО. Введение в специальность 3. Требования

часто применяется при проектировании

пользовательских интерфейсов

Прототипирование— быстрая проверка идеи

Page 25: Разработка ПО. Введение в специальность 3. Требования

Прототип на бумаге

Page 26: Разработка ПО. Введение в специальность 3. Требования

Прототип на доске

Page 27: Разработка ПО. Введение в специальность 3. Требования

Черновики в блокнотике

Page 28: Разработка ПО. Введение в специальность 3. Требования

http://www.balsamiq.com/

Page 29: Разработка ПО. Введение в специальность 3. Требования

Прототипирование интерфейса вместе с потенциальным пользователем

Проверено, отлично работает!

Впрочем, не только с интерфейсами

Page 30: Разработка ПО. Введение в специальность 3. Требования

Тестирование прототипа:Найти потенциального

пользователяПодготовить “ задачи”

Замечать все затруднения у пользователя!

Пример: http://www.youtube.com/watch?v=9wQkLthhHKA

Page 31: Разработка ПО. Введение в специальность 3. Требования
Page 32: Разработка ПО. Введение в специальность 3. Требования
Page 33: Разработка ПО. Введение в специальность 3. Требования

Курс «Проектирование пользовательских интерфейсов»

от СКБ Контур

следите за объявлениями!

Page 34: Разработка ПО. Введение в специальность 3. Требования

С чего начать«Дизайн пользовательского интерфейса» Влад Головач«Не заставляйте меня думать» Стив Круг«Психбольница в руках пациентов» Алан Купер

В сетиФреш: новости мира юзабилити — http://fresh.gui.ru/Советы Бюро Горбунова — http://artgorbunov.ru/bb/soviet/Дизайн-собака — http://design.artgorbunov.ru/Ководство — http://www.artlebedev.ru/kovodstvo/sections/ 

Page 35: Разработка ПО. Введение в специальность 3. Требования
Page 36: Разработка ПО. Введение в специальность 3. Требования

Сложная структура или логика

лучше описать

словамиили

картинками!

Page 37: Разработка ПО. Введение в специальность 3. Требования

Сложная логика смены состояний

Диаграмма переходов конечного автомата

Page 38: Разработка ПО. Введение в специальность 3. Требования

— блок-схема

© http://xkcd.com

Сложный алгоритм

Page 39: Разработка ПО. Введение в специальность 3. Требования

Блок-схема

© http://xkcd.com

Page 40: Разработка ПО. Введение в специальность 3. Требования
Page 41: Разработка ПО. Введение в специальность 3. Требования

Взаимодействие нескольких участников

Диаграмма последовательности

Page 42: Разработка ПО. Введение в специальность 3. Требования
Page 43: Разработка ПО. Введение в специальность 3. Требования

Данные, сущности, связи

ERM диаграмма

Пользователь

имя email

Организация

названиеадресОГРНИНН

Лицевой счёт

номербаланс

0 .. N 1

11 .. N

.. N

Page 44: Разработка ПО. Введение в специальность 3. Требования

Модули и зависимости

Database

add, deletefind, enumerate

Main Window

show

Robot Crawler

findAllEmailsOnPage(Url)

сохраняетнайденное

Получает данные для отображения

Page 45: Разработка ПО. Введение в специальность 3. Требования

MySQLRepository

MainWindow

Repository

AddDeleteFindEnumerate

InMemoryRepository

Диаграмма классов

Page 47: Разработка ПО. Введение в специальность 3. Требования

UML Unified Modeling Language

190 Страниц :)

Page 48: Разработка ПО. Введение в специальность 3. Требования