воскресенье, 30 октября 2011 г.

Омут памяти. Системная инженерия

http://www.slideshare.net/ailev/ss-998595 - слайд-лекция Анатолия Левенчука
http://ru.rise-russia.org/rusec2010 - проблемы системной инженерия (российская конференция)
http://www.osp.ru/os/2002/05/181460/ - Системная инженерия программного обеспечения: введение
http://www.e-joe.ru/i-joe/i-joe_02/files/batovrin.pdf - ОБРАЗОВАНИЕ В СИСТЕМНОЙ ИНЖЕНЕРИИ – ПРОБЛЕМЫ ПОДГОТОВКИ СПЕЦИАЛИСТОВ ДЛЯ СОЗДАНИЯ КОНКУРЕНТОСПОСОБНЫХ СИСТЕМ
http://academy.ibs.ru/content/aca/624/6244-article.asp - Программа курса - 72 часа
http://www.aticourses.com/fundamentals_of_systems_engineering.htm - ATI's Fundamentals of Systems Engineering course

среда, 26 октября 2011 г.

Ticket Sale Automaton (Source)

This is task that I give to my students during course of Modeling Systems
There is simple task: make a model and simulate it
The automaton can be given by
transition function:

output function:



Then we can build the model in Matlab:Simulink

and in Stateflow
the first variant

and
the second one

понедельник, 10 октября 2011 г.

Translated copy of MailModelioOpensource-Sept2011-russian.doc
Среда с открытым исходным кодом для моделирования на UML и BPMN
Компания Modeliosoft и сообщество modelio.org рады сообщить о рождении первой профессиональной среды моделирования с открытым исходным кодом.
В результате 20-ти лет непрерывного совершенствования и инноваций Modelio 2.0 выходит под лицензией GPL и становится первой профессиональной средой с открытым исходным кодом для моделирования на UML и BPMN - средой, по качеству сравнимой с лидерами этой области.
  1. Modelio - единственная среда моделирования c  открытым исходным кодом, поддерживающая одновременно UML и BPMN и позволяющая моделировать широкий спектр различных систем. 
  2. В магазине Modelio Store вы найдете широкий выбор расширений (модулей) с открытым исходным кодом включая:
  1. генератор (и реверс) кода на Java;
  2. систему моделирования  архитектуры предприятия на базе TOGAF;
  3. систему моделирование производственных систем  на базе SysML;
  4. и многие другие расширения.
Открытое сообщество modelio.org управляет разработкой Modelio и различных расширений (модулей) для многих областей моделирования. Пользователи Modelio могут свободно обращаться в магазин Modelio Store, где найдут широкий выбор модулей, как с открытым исходным кодом, так и коммерческих.
Modelio распространяется под лицензией GPL, но движок модулей для Modelio распространяется под лицензией Apache, а это означает, что любой разработчик может создать модуль для  Modelio и распространять его под любой лицензией включая коммерческую. Магазин Modelio Store открыт для разработчиков, вы можете свободно распространять ваши модули, используя нашу платформу.
Modeliosoft - это коммерческая структура, которая разрабатывает бизнес-решения на базе платформы Modelio. Modeliosoft обеспечивает гарантии для Modelio, поддержку и консультационные услуги, а также предлагает широкий набор бизнес-ориентированных расширений. Таким образом,  наши клиенты получают доступ к дистрибутивам платформы и бизнес-решениям, для которых Modeliosoft предоставляет гарантии и сервис, а также к разработкам сообщества modelio.org.
Само собой разумеется, что Modeliosoft продолжает обеспечивать техническое обслуживание и поддержку для всех пользователей Objecteering и более ранних версий Modelio.
  1. Скачайте Modelio c открытым исходным кодом на www.modelio.org.
  2. Скачайте и попробуйте в действии  модули для Modelio в магазине Modelio Store.
  3. Скачайте и попробуйте в действии дистрибутивы и бизнес-решения от Modeliosoft на www.modeliosoft.com.
  4. Примите участие в разработке Modelio и вступите в сообщество modelio.org.

суббота, 8 октября 2011 г.

КЛИЕНТ! ВСЕГДА! ПРАВ!

Именно так и никак иначе следует считать, если ты зарабатываешь на том. что продаешь свои или чужие товары, или оказываешь какие-то важные услуги за деньги. Ясно, что ты делаешь это для того, чтобы получать деньги, прибыль. Как ты будешь использовать другой вопрос. Здесь весьма важна твоя репутация. Если ты будешь отказывать клиенту в его правоте, это может сказаться на твоей репутации, и ты можешь остаться без клиентов. Удержание клиента в 12 раз дешевле, чем привлечение нового. И совершенно плохо, когда от тебя уходит клиент к кому-то другому.

Но всегда ли это работает? Действительно ли следует придерживаться клиент-ориентированности всегда? Вообще,  эти два вопроса стоило бы рассматривать независимо. На первый я бы ответил, что нет. Просто клиенту деваться некуда. Это не значит, что мы можем им управлять. но мы можем указать на его неправоту, доказать это, попытаться уговорить его не делать это, но ... потом сделать то, что он хочет. Т.е. придерживаться ответа "да", на второй вопрос. Почему? Да потому, что в такой ситуации и ты, и твой клиент - почти уже семья, этакий сплоченный коллектив, пронизанный обязательствами, историей отношений и т.п. Т.е. проще сделать то абсурд, который почему-то нужен клиенту. Проще тебе - спокойней нервы, проще для клиента - он доволен в данный момент (даже если ты понимаешь, что клиент загоняет себя в ловушку). Клиент же - это тоже человек, зачем учить его жить?

История такова, понимаю, мало кто сюда забредет, и заинтересуется текстом, и уж вовсе вероятность того, что кто-то еще и даст комментарий, исчезающее мала, но прет, понимаете, нужно излить желчь мысли  на бумагу.
Клиент - некоторая организация, имеющая штаты  и пытающаяся их учитывать и управлять ими.
Рамки разговора - автоматизированная система кадрового учета.
Предмет разговора - возможность неоднократного приема сотрудника организации как внутреннего совместителя.
Действующие правила:
- 1. сотруднику может быть оформлен только один приказ на приме по основному месту работы (т.е. сотрудник работает по основному месту работы только на одной должности и в одном подразделении одновременно)
- 2. сотрудник может быть принят по совместительству несколько раз
- 3. сумма ставок по внутреннему совместительству не превышает заданного числа (обычно 0.5)
- 4. сотрудник не может быть принят по совместительству в тоже самое подразделение и на ту же саму должность (штатная единица), если он уже был принят на эту штатную единицу по совместительству
Проблема или потребность клиента - нужно чтобы была возможность неоднократного приема по внутреннему совместительству на одну и ту же штатную единицу, т.е. необходимо отменить правило 4.
С чем это связано? Рассмотрим пример:
пусть сотрудник Х был принят по совместительству на 0.25 ставки штатной единицы Y.
по какой-то причине образовалась вакансия по этой же штатной единице, которую решено дать сотруднику Х, т.е. увеличить занимаемую сотрудником Х 0.25 ставки на 0.5 ставки.
Сейчас система позволяет это делать просто, оформляется кадровое перемещение  с изменением количества занимаемых ставок (а следовательно и получаемых денег) и дополнительное соглашение к трудовому договору.
Юрист организации считает, что это неправильно, что сотрудника нужно не переводить (хотя переводом это сложно назвать) а вновь принять на туже самую должность еще раз на 0.25 ставки, заключить с сотрудником Х новый трудовой договор, оформить новую личную карточку. Продиктовано это тем, что при первом приеме был заключен договор, при котором сотруднику гарантировались определенные условия, а в случае кадрового перемещение на 0.5 эти условия типа изменяются и частично теряются. Потому и надо отдельно принять сотрудника Х еще на 0.25 ставки отдельным приказом оформить с ним ТД параллельный первому и тогда все будут счастливы.
Я не искушен в столь сложных юридических перепитиях, но мне кажется это полным бредом. Почему нельзя просто указать (описать) эту ситуацию в допсоглашении, например, что устанавливается 0.5 ставки до выхода основного сотрудника на работу. Почему это ущемляет права сотрудник работающего как ВНУТРЕННИЙ СОВМЕСТИТЕЛЬ???

Однако внимательно подумав и взвесив все за и против, пришел к выводу, да проще дать такую возможность, пускай решают сами. Таких ситуаций у меня было немало в практике взаимодействия с этим клиентом. Каждый раз все равно, мы делали им то, что им хотелось, несмотря на то, что это было похоже на бред. Главное, что клиент доволен?!


воскресенье, 2 октября 2011 г.

Автоматизация тестирования: через терни к звездам?

Давно собираюсь поделиться собственным опытом вхождения в автоматизацию тестирования и использование его в промышленной разработке. Ну вот созрел. Поделиться есть чем, все-таки опыта более 3-х лет. Понятны достоинства и недостатки. Понятны подводные камни и способы их избежать.

Так получилось, что начало моей деятельности в качестве тестировщика и решение задачи автоматизации тестирования полностью совпали и более того, по-другому, видимо, тогда бы и не получилось.

Я как человек науки привык сначала исследовать поле деятельности, понять перспективы, правильные и неправильные пути. И по началу автоматизация меня не привлекла. Слишком сложно, слишком долго, много требуется первичных высокопрофессиональных навыков. Кроме того, много критики в публицистике: книгах, интернет-печати, на форумах, в блогах. С другой стороны ежедневные повторения одного и того же в ручном режиме, монотонно повторяя один чек-лист за другим, бессилие перед Горой "руды", которую следует перелопатить и желательно, нет НУЖНО, было лопатить ежедневно - все это + мудрое и настойчивое наставничество руководителя проекта, его вера в чудо автоматизации, привело нас к однозначной ставке на автоматизацию тестирования.

Это было обусловлено и  объективными причинами. Ранее отсутствие систематического тестирования, скудость ресурсов на тестирование, многообразный функционал тестируемой системы, значительные изменения, потребность резкого расширения рынка - все это потребовало предотвращения того довольно большого количества ошибок, которое возникало при очередном обновлении клиента на новый релиз. Ставка была сделана на постепенное расширение покрытия (требований) и регрессию. А специфика выпуска и поддержания релизов (фактически одновременно поддерживаются три релиза по порядку) требовало быстрых и относительно недорогих мероприятий.

Среди средств автоматизации мы выбрали TestComplete. По честности сказать, особо выбирать-то и не пришлось. Почитали обзоры, форумы, поговорили. Скачали демоверсию, месяц ее погоняли. Решили покупаем. Купили и не жалеем. Тем более, что в конце концов пришли к выводу, что вполне по зубам все-то же делать, используя, например, ту же Visual Studio.

Первые опыты были далеки от совершенства. Первая версия была 6.5. Первая проблема, с которой мы тогда столкнулись, как нам сделать наше тестируемое приложение открытым, чтобы обеспечить доступ к непосредственно к объектам и их методам. Рекомендации на форумах предлагали особую компиляцию тестируемой программы. Это в разы увеличивало ее размеры, существенно сказывалось на производительности тестового стенда и устойчивости взаимодействия ТС и тестируемого приложения.
Вторая проблема, во многом перекликалась с первой. При тестировании через графический интерфейс нам часто приходилось обрабатывать координатные клики. О, вы просто не представляете, какие эмоции у нас вызывали самые незначительные изменения в расположении элементов на формах. Другой момент - это регионы. Никогда не пользуйтесь регионами. Это зло, зло! Ну в некоторых ситуациях, конечно, иначе никак.
Первые 40 или 50 тестовых процедур, охватывающих три наиболее важных направления, увидели свет примерно через пару месяцев работы. Первый ночной полностью автоматический (без участия человека) прогон дал просто ошеломляющие результаты. Простая систематичность и скрупулезность проверки роботом показали свое преимущество. Было чертовски осознавать, что ты сумел удивить окружающих. Правда, они это не показывали. Можно было догадаться по второстепенным признакам.
Следует отметить, что сразу нами были заложены верные принципы . В данном случае это довольно универсальные процедуры, управляемые данными. Мы скармливали таким процедурам хорошо подобранными парами данные - результаты. Причем эти же процедуры использовались для начального получения результатов, которые потом анализировались. Результат анализ приводил либо к описанию дефекта, либо к получению ожидаемого результат для автотестов, либо к идеям расширения тестовых ситуаций и поиску нужных тестовых данных.

Тут я поехал в командировку на учебу в Воронеж. А когда вернулся ... Ну это будет продолжением серии :о)



Изучаем возможности редкатора

Зачеркнуто,   Подчеркнуто и т.п.