понедельник, 13 декабря 2010 г.

Возвращаясь к вопросу о use cases и функциях ...

Читая форум UML2.RU, натолкнулся на дискуссию о том что функции системы дублируют юзкейсы, и вообще не понятно что есть что и для чего, кроме этого такие же вопросы иногда возникают у коллег по работе, и у заказчиков, для которых в силу специфики их систем, я разрабатываю еще и модель вариантов использования (Use Cases).... В данной заметке я решил дать краткое пояснение по данному вопросу, не слишком вдаваясь в формальные определения, а больше по сути вопроса.


Юзкейсы (Use Cases, варианты использования) - это взгляд с т.з.  пользователя на систему, который дает ответ на вопрос какие свои задачи (в терминах того же Коберна - цели) решает пользователь при помощи системы, и что при этом делает система в ответ на действия пользователя. Юзкейсы относятся к т.н. "пользовательским требованиям" (по "классификации" Вигерса).
Функции - это некие свойства системы, или нечто полезное, что может делать система, в т.ч. для внешнего по отношению к ней пользователя. Функции системы - это, если так можно выразиться, взгляд "изнутри" системы на ее окружение. Кстати, говорить о функциях системы можно только на этапе ее проектирования. Т,е. когда речь идет о том, что эти функции уже определены и мы их перечисляем, и поясняем механизм их реализации. На этапе требований - можно говорить только о ТРЕБОВАНИЯХ к функциям (или иначе - функциональным требованиям). Т.е. на этапе разработки требований, функций системы как самостоятельных артефактов еще нет, есть только требования к ним!

О разнице м/у юзкейсами и функциями. Юзкейсы не являются функциями а) по-определению б) по своей природе. Поясню на примере - юзкейсом для системы управления корпоративной печатью вполне может быть, например, "Распечатать документ" - это цель пользователя, явная и достаточно крупная. В то же время функцией такой системы может быть "Авторизация пользователя на устройстве печати посредством смарт-карты", или "Удаление заданий из очереди печати (после распечатки)", но таких юзкейсов у системы не будет (как минимум в данном контексте). Еще одной отличительной чертой является то, что функции, в отличии от юзкейсов, могут иметь жесткую иерархию, и могут быть декомпозированы (т.е. двигаясь вниз по иерархии - они будут детализировать "верхнюю" функцию).

Основной вопрос возникает как совмещать оба подхода при разработке требований к системам. И как не допускать явного дублирования. Тут есть несколько подходов.
Есть подход "a-la RUP", в котором юзкейсы могут рассматриваться как основа требований, и дальше разрабатывается только доп. спецификация - в которой описываются те аспекты (часть функциональных требований и нефункциональные требования), которые не затронуты юзкейсами и производится трассировка их на юзкейсы.
Есть подход Вигерса - где наряду с юзкейсами описывается полноценное SRS, в котором перечисляются именно функциональные требования и они так же, могут быть оттрассированы на юзкейсы.
Есть подход без использования юзкейсов - когда можно описать всю возможную функциональность в виде иерархического списка функциональных требований, и при этом вполне могут быть такие высокоуровневые функции (для той же системы управления печатью), как "Печать документа", "Копирование документа", и т.п, которые просто будут декомпозированы. А если при этом распределить эти функции по типам пользователей, то в принципе можно получить представление о том, каким пользователям какая функциональность доступна. При этом можно говорить о формулировке требований в формате "Система должна иметь возможность ..." и "Пользователь должен иметь возможность...". В этом случае можно высокоуровневыми требованиями сделать a-la пользовательские ("Пользователь должен иметь возможность..."), и декомпозировать их чисто функциональными ("Система должна иметь возможность ...").

В любом случае, если есть сомнение "to Use Case or not ...", следует четко понимать, какую дополнительную ценность принесут юзкейсы, не только для разработки требований, но и для проектирования, тестирования и проведения приемо-сдаточных испытаний. И исходя из этого принимать решение, какой из подходов использовать.

воскресенье, 17 октября 2010 г.

Не удалось посетить SECR-2010. Я много потерял?

В этом году мне не удалось посетить конференцию SECR-2010. Честно говоря, когда я посмотрел ее программу, лично у меня она не вызвала явного интереса. Судя по некоторым отзывам - http://blogs.uml2.ru/post/SECR-2010-pervye-vpechatleniya как-то безрадостно.... Неужели все идет по принципу "Что может быть хуже чем Робот-полицейский-2?"  - "Робот-полицейский-3!!!"? Интересно было бы узнать мнения посетивших ....

вторник, 5 октября 2010 г.

Почитал заметку про реакцию на новую школьную программу по информатике ...

Тут http://cnews.ru/news/top/index.shtml?2010/10/04/410981 опубликована заметка про реакцию "представителей ИТ-сообщества" на новую школьную программу по информатике. Не перестаю удивляться нашим академикам от образования ... зачем детям такой объем знаний? Больше всего мне нравятся заявления про то, что большую часть времени преподавание информатики может происходить без компьютеров (по этой программе)! Видимо авторы программы не в курсе про инициативы правительства об информатизации школ и т.п. Интересно, какие задачи призвана решать такая программа образования? Кого готовить? Будущих студентов ИТ-специальностей ВУЗов?
IMHO, на теоретические аспекты по информатике следует отдавать не более 20% времени. Более ценным для школьников было научить их печатать вслепую (страшно смотреть, когда молоденькая операционистка в банке, тычет одним пальцем, набирая мою платежку ..., а ведь изучала в школе информатику!). И научить использовать текстовые редакторы и электронные таблицы для решения прикладных задач (да хоть на примере учета расхода собственных карманных денег). Это бы позволило решить  вопрос элементарной компьютерной грамотности и в большей степени способствовало бы информатизации образования, как такового. Глядишь, доживем до счастливого момента, когда ученики будут отправлять рефераты учителю по e-mail :-).

четверг, 15 июля 2010 г.

Летний аналитический фестиваль 2010 в Иваново

Лето выдалось нынче жаркое ... и насыщенное событиями. В прошлые выходные 10-11 июля состоялся в г. Иваново Летний Аналитический Фестиваль, на который я имел честь быть приглашенным в качестве одного из докладчиков. Хотелось бы сказать много теплых слов принимающей стороне, обеспечивших проведение фестиваля - НПО Консультант, и лично Эдуарду Галиаскарову, приютившего нас в своей квартире! Эд, спасибо!. Я добирался машиной в Иваново, и я слегка подустал, поэтому приехал только к 11 на конференцию,. хотя Эду пришлось в 4 утра вставать встречать коллег приехавших поездом из Москвы .... При этом я доделывал презентацию своего доклада еще в течении часа или двух, и не смог посетить первые доклады. Но потом все-таки выбрался ... Послушал Григория Печенкина, Илью Корнипаева ... ребята как всегда на высоте! Отдельно хотел отметить доклад Александра Белина, рассказавшего про опыт постановки процессов "по Вигерсу" в западной компании - какая была проделана колоссальная работа по выстраиванию процесса, и как я понимаю она принесла свои положительные результаты! Кроме этого посетил доклад Ирины Левенец из НПО Консультант ... заслушался :-). Порадовала уверенность и четкость изложения, да и опыт работы компании достаточно интересен.

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

 Ниже моя презентация:

воскресенье, 27 июня 2010 г.

Мелькнул на телеканале Россия 1 (региональные вести)

Буквально на днях побывал в славном и древнем городе Новгород Великий, где HP активно развивает тему социальной карты или как теперь это называется - универсальной электронной карты гражданина. На текущий момент я, как solution architect, вовлечен в данные активности. Совсем недавно мы с моим коллегой Романом Полозовым завершили пилотный проект по тематике кампусной карты в СПбГУ (кстати, репортаж о событии тут http://www.tv100.ru/news/Universalnaja-karta-studenta-26688/, но на этом торжественном мероприятии мы не присутствовали), и вот теперь на очереди Великий Новгород. 25 июня 2010 г. я с коллегами был приглашен провести презентацию концепции решения для реализации госуслуги по субсидиям за ЖКХ на социальной карте. Презентацию проводили для вице-губернатора Новгородской области - А. Смирнова. Честно говоря мы узнали, что будет снимать телевидение только непосредственно на презентации. Андрею Карташову, пришлось на ходу давать интервью журналистам :-).
Собственно о событии можно почитать тут http://novgorod.rfn.ru/region/rnews.html?id=32357&rid=321, а если нажать на ссылку "видео", то можно увидеть меня с коллегами, и Владимира Зверева - представителя одного из производителей пластиковых карт, с которым мы пересекались и по проекту в СПбГУ. А ниже - несколько снимков из Новгорода ...

суббота, 20 марта 2010 г.

Выступление на встрече Клуба архитекторов в Microsoft

В четверг, 18 марта состоялась встреча Клуба архитекторов в Москве, в офисе Microsoft, посвященная тематике UML. Я был приглашен на это встречу сделать небольшой доклад на тему "Unified Modeling Language - стандарт и практика использования". Мероприятие было анонсировано   в блоге Сергея Орлика. Встреча прошла в формате презентаций и обсуждений материалов. Порадовало, что присутствовало много практиков, использующих в своей работе UML и можно было осудить с коллегами некоторые практически вопросы применения языка. Я со своей стороны, рассказал про свой опыт, про некоторые подходы к использованию UML, которые были удачными в конкретных ситуациях. Презентация моего доклада доступна и презентация Серегя Орлика доступны тут. В целом, хотел отметить, что инициатива проведения встреч именно с архитекторами, и особенно теми кто занимается Enterprise решениями мне показалась своевременной, т.к. потребность в общении и обсуждении тех или иных аспектов работы и технологий (как формально так и неформально) ощущается.

пятница, 19 марта 2010 г.

Силиконовая/кремниевая долина ... в Сколково

Вот так новость ... :-). Вот так место :-). Характерно, что называется именно "силиконовой". Видимо внешний эффект будет обеспечен :-).

суббота, 23 января 2010 г.

Из дискуссии в LinkedIn - Ivy Hooks думает о написании новой книги по RDM

В группе на LinkedIn посвященной Requirements Engineering в разделе обсуждений Ivy Hooks, автор книги "Customer Centered Products: Creating Successful Products Through Smart Requirements Management" опубликовала сообщение, в котором говорит, что ей поступило предложение заняться написанием книги по инженерии требований, и в связи с чем она интересуется у сообщества какие вопросы актуальны и достойны для освещения в книге (особенно учитывая тот факт, как отмечает Ivy Hooks,  что уже есть более 60 книг по этой тематике, и в частности, известные книги Карла Вигерса, Иена Александра, Рольфа Янга). Наряду с другими участниками группы, я тоже высказал свою точку зрения по этой теме (нужно отметить активность российской части аудитории - помимо меня свои комментарии дали Илья Корнипаев и Андрей Вербицкий). Наиболее интересными темами с моей точки зрения, которым не достаточно уделено внимания в известных мне книгах являются:

1. Специфика разработки и управления требованиями при разработки коммерческих "коробочных" программных продуктов.
2. RDM в разработке систем  (система - в терминах  INCOSE SEBOK)
3. "Техники и приемы извлечения требований, шаг-за-шагом"  (с) мой на это название :-)
4. RDM и BABOK/CMMI/SWEBOK.
5. Специфика внедрения RDM в проектах по разработке ПО, которые уже движутся, и уже существует несколько релизов ПО, которые стоят у заказчиков (включая коробочное ПО)
6. Психологические аспекты в RDM (какие skills должен иметь аналитик с т.з. личностных коммуникаций и как их получать).

Было бы интересно узнать мнение читателей по этой теме. Думаю что дискуссию по этому имеет смысл продолжить в форуме на UML2.RU, как минимум там это делать удобнее :-). Я опубликовал там соответствующее сообщение http://www.uml2.ru/forum/index.php?topic=2028.0.

четверг, 21 января 2010 г.

Новый русский сайт по SWEBOK (основы программной инженерии)

С радостью хотел бы поделиться новостью, что благдоаря усилиям и энергии Сергея Орлика запущен новый сайт посвященный основам программной инженерии, базирующийся на переводе (с комментариями и дополнениями) на русский язык IEEE Guide to SWEBOK 2004 - Руководства к своду знаний по программной инженерии. Я имел честь принимать участие как в работах по собственно переводу SWEBOK на русский язык, так и в подготовке материалов для запуска этого сайта. Сразу хотелось бы отметить, что это не вторая редакция перевода, но тем не менее, некоторые изменения были внесены в части комментариев и толкования отдельных положений SWEBOK. Спасибо всем, кто внимательно изучал ранее выложенные в блоге Сергея PDF-ы перевода, присылал свои вопросы и пожелания!

Новый сайт расположен по этой ссылке: