|
Персональные инструменты |
|||
|
|
SECR-2010: Отчет Белобородова ДмитрияМатериал из CustisWikiСодержание
Регистрация и организацияКонференция проходила там же, где и в предыдущие годы (ГУ-ВШЭ). Из основных дней конференции посетил 2 (первый и третий). Сначала о плохом:
К счастью, в остальном все оказалось относительно неплохо (почти всегда выбрать доклад было из чего, с питанием проблем не возникло и т.д.).
Далее приведены личные впечатления от прослушанных докладов, упорядоченные от очень хороших и интересных до плохих. Старался слушать доклады, максимально связанные с процессом разработки (технические или, если таковых не оказывалось, хотя бы методологические). Очень хорошие докладыВведение в C++0x
Докладчик Бьярн Страуструп является автором языка C++ (на основе которого были созданы C# и Java, соответственно, Андерсом Хейлсбергом и Джеймсом Гослингом). Как раз во время проведения конференции (14 октября) исполнилось 25 лет С++. На приведенном фото слева — Страуструп тогда (точнее, это фотография с задней стороны обложки его главной книги Язык программирования С++), на фото справа — сейчас. Доклад был посвящен новой версии стандарта C++0x языка C++, которая вскоре будет принята. Принятие C++0x позволит
Удалось найти в Интернете презентации Страуструпа для семинара, который проходил на SECR-2010 13 октября. Первая презентация называется «APT tutorial», вторая — «Frequent Mistakes». Слайды, рассказывающие о C++0x, содержатся в 3-й части «APT tutorial» («Part 3 C++0x»).
После краткого вступления (цели нового стандарта, состав комитета) вся остальная часть доклада была отведена описанию новшеств с хорошо подобранными мини-примерами кода, их иллюстрирующими. Новшеств очень много (от синтаксического сахара до действительно серьезных):
Стандарт планируется принять к марту 2011 года. Больше всех старается ускорить принятие фирма Microsoft. При ответах на вопросы сказал, что
После доклада (он был последним на конференции) была устроена автограф-сессия. Устроители подсуетились и организовали продажу книги Страуструпа Программирование: принципы и практика использования C++. Однако
Отличный доклад, полностью оправдал ожидания. P.S. Доклад на подобную тему на ADD-2010 недавно делала Елена Сагалаева (Алена C++), см. ее рассказ и саму презентацию. Автоматическая генерация базовых тестов для программных интерфейсов библиотек на основе заголовочных файлов
Автор доклада Владимир Рубанов (ударение в фамилии на первый слог) является коллегой нашего Стаса Фомина (параллельно с работой в CustIS трудящегося и читающего лекции в Институте системного программирования РАН). Рассказал о пакете API Sanity Autotest, который может быть использован для автоматизации генерации и написания unit-тестов (для C/C++, тесты генерируются по сигнатурам процедур и функций, содержащихся в заголовочных файлах, т.е. в .h-файлах). Пакет использован на тестировании библиотек Инициатором работ, приведших к написанию продукта, была Nokia, обратившаяся к РАН с просьбой протестировать десятки тысяч процедур и функций библиотеки Qt (в ходе тестирования ошибки нашли и Qt Software/Nokia их даже исправила). Возможно (как утверждает Владимир) портирование пакета на C# и Java. Кстати, список, например, этих проектов, выполняемых в ИСП РАН, весьма интригующ. Безусловно, доклад понравился, можно скачать и попытаться поэкспериментировать с пакетом. Уменьшение влияния человеческого фактора при разработке бизнес-приложений
Присутствовал на докладе коллег из отделе технологического развития о разработанном инструментарии, позволяющем использовать декларативные проверки уровня доменной модели. Требуемые методы классов аннотируются правилами, задающими допустимые состояния для выполнения конкретных методов. Реализовано в виде плагина к Microsoft Visual Studio (существует только в виде плагина или не только, точно не понял). Соответственно, язык программирования — C#. Ключевые слова доклада: Model Checking, структура Крипке, CTL. Рассказывали хорошо, сменяя друг друга и иллюстрируя все презентацией. На вопросы отвечали уверенно. Сидевший на первом ряду Стас Фомин помогал отвечать, пространно развивая темы вопросов. Познавательно, интересно, не пожалел, что пошел на доклад. Agile Learning: Эффективные инструменты
Стас, как обычно, был очень хорош! Еще до посещения доклада посмотрел анонс. Стас представил новый формат презентации:
Доклад был живой, большинству присутствовавших явно понравился, в зале было много людей (несмотря на то, что Стасу пришлось конкурировать за внимание слушателей с уже начавшимся обедом). После окончания времени доклада многие остались продолжать слушать Стаса в зале. Несколько небольших замечаний, которые могли бы еще усилить эффект от доклада (надеюсь, Стас не обидится):
Форма доклада очень интересная, энергия докладчика передается слушателям (воплощаясь в желание начать использовать представленные инструменты). Опыт разработки в Яндексе: особенности процесса и ключевые технологии
Глава (точнее, «директор компании по технологиям и разработке») Яндекса рассказал про свою компанию:
Слегка поверхностный доклад (Илья Сегалович успел закончить рассказ задолго до окончания отведенного времени), но очень живой и позитивный. Собственно, доклад преследовал 2 цели:
Уверенно ответил на множество заданных вопросов. Интересно было посмотреть и послушать представителя руководства крупнейшей поисковой российской системы. Хорошие докладыПрограммирование, ориентированное на качество
Прелюдией основной части доклада было перечисление ошибок, возникающих при разработке ПО, и методов обнаружения этих ошибок:
Способом решения для языка Java предлагался продукт Parasoft Jtest, выполняющий
Наглядно было продемонстрировано (виды экрана на слайдах)
Jtest является флагманским продуктом, но есть аналогичные решения для .NET (Parasoft .TEST) и C/C++ (Parasoft C++test) Правда, докладчик слегка перегнул палку со статическим анализом, присутствуя на докладе Ильи Сегаловича (CEO Яндекса) и задав ему соответсвующий вопрос (используют ли они статический анализ и насколько широко). Сегалович, естественно, не дал ему точный ответ. Доклад понравился, продукт заинтересовал. «Mind the Gap» – что делать с растущими ожиданиями клиента
В начале доклада была приведена простая формула, вокруг которой и был построен весь последующий доклад: Expectation Gap (E-gap) = Experiance - Expectations Расхождение ожиданий = Ценность - Ожидания Под ценностью понимается услуга, предоставляемая клиенту (или написанная для клиента программа, которая дорабатывается и сопровождается). Ожидания — то, что клиент ожидает получить. Расхождение ожиданий — отличие между полученным и ожидаемым: > 0 — хорошо (получили больше, чнм ожидали), < 0 — плохо (получили меньше). График я воспроизвел самостоятельно. Когда значение E-gap опускается ниже оси абсцисс (т.е. становится < 0), с клиентом начинаются проблемы. Оставшееся время докладчик рассказывал, как можно повлиять на увеличение ценности. На тот факт, что на ожидания тоже можно (нужно) влиять (снижая их), справедливо указал один из зрителей. Полезный доклад для того, чтобы более осмысленно общаться с клиентами. P.S. Фразой «mind the gap» в метро (первоначально в лондонском) пассажиров предупреждают об опасности промежутка между вагоном и платформой. Любопытные докладыКонфигурационно-ориентированное программирование
Поведал о «дальнейшем развитии ООП» (по мнению докладчика) — конфигурационно-ориентированном программировании (КОП). Насколько я понял (поискав в Интернете и ничего не найдя), термин придуман словацкой компанией DandiWay. Вместо ООП-класса, содержащего данные и код, используется КОП-модуль (дополнительно к данным и коду добавляется некая конфигурация). Вместо экземпляра класса на основе конфигурации создается (инстанцируется) экземпляра КОП-модуля. Якобы существенно уменьшается количество кода при разработке, позволяя дополнительно гибко комбинировать модули. Продукт представляет из себя библиотеку (фреймворк) на Java, называющуюся Box Framework, для построения веб-приложений. Доклад любопытный, однако представленный продукт явно не мейнстрим (и вряд ли им будет). Семантические интерфейсы языков программирования
В начале рассказа было уточнено, что более точная тема — «Семантические интерфейсы языков программирования C++». Фирма Интерстрон занимается написанием компиляторов для специализированной аппаратуры. В процессе компиляции по коду программы создается семантическое представление (строится синтаксическое дерево абстрактное синтаксическое дерево), описал процесс. Рассказал также про архитектурные отличия их проекта (SemantiС++) от программ-конкурентов. Честно говоря, про компиляторы знаниями никакими не обладаю, приходит на ум только книга Dragon Book (она же, как оказалось, Green Dragon Book). Есть еще Red Dragon Book и Purple Dragon Book. Познавательно, но писать компиляторы, увы, вряд ли придется. Сравнение двух моделей предсказания успеха в проектах по разработке программного обеспечения
На доклад попал случайно. Торопился на другой первый доклад третьего дня, но доклад перенесли на более позднее время (увы, для девушки-докладчицы, параллельно с докладом Страуструпа). Группа товарищей из Лаппеенрантского Университета Технологий (в т.ч. докладчик) сравнивали 2 модели предсказания успеха в проектах при разработке ПО:
Было взято большое количество проектов разного размера. Более точной оказалась McConnell Model. В проектах использовались разные методологии (по степени убывания частоты встречаемости):
Что интересно, не выявлено существенной связи используемой методологии и вероятности успеха (sic!). Результаты исследования, рассказанные в докладе, занятные. Проблемы и направления развития инструментария RAD
Краткий экскурс в историю, чтобы стало понятно, чем примечательна фирма Embarcadero. В конце 80-х и в 90-х годах прошлого века средства разработки от фирмы Borland имели достаточно высокую популярность (в нашей стране — даже очень высокую):
В определенный момент компания являлась инновационным лидером в некоторых областях (например, Borland C++ превосходил Microsoft Visual C++), однако это продолжалось не слишком долго. В результате недальновидной политики компания превратилась в аутсайдера в области средств разработки, RAD-продукты потеряли популярность. На 2 года компания Borland меняла название на Inprise (c 1998 по 2000 гг.). В 2006 году направление интегрированных средств разработки (IDE) было выделено в самостоятельное подразделение CodeGear. В 2008 году компания Embarcadero Technologies купила Codegear у Borland (Borland переключилась на область управления жизненным циклом приложений). Embarcadero последние 2 года активно выпускает новые версии продуктов, но их время, увы, ушло. В последнюю версию RAD Studio XE входят:
Лояльно отношусь к продуктам Borland, т.к. приходилось совсем немного пользоваться Turbo Pascal (в учебных целях) и много продуктами линейки C/C++. К счастью, так и не пришлось никогда серьезно использовать Delphi, т.к. вовремя появился его аналог для С++ — C++ Builder (та же среда разработки и библиотека классов, но другой язык). Всегда казалось, что использующих Delphi компания сильно подставляет, т.к. в случае исчезновения продукта (или утраты популярности) перевести живые проекты просто не на что (нет популярных средств разработки для Object Pascal), что и подтвердилось. Докладчик (скорее, евангелист) от Embarcadero порекламировал свежий RAD-продукт компании RAD Studio XE, рассказав, что в него входит (см. выше). Предполагаю, что пока компания будет держаться за свою священную корову Delphi, отодвигая на второй план востребованное рынком (C++, C#, Java), ей ничего не светит. Тем более, на вопрос из зала нынешнего работника фирмы Borland, появятся ли снова бесплатные урезанные версии продуктов (как версии Express у Microsoft), был дан отрицательный ответ. Вывод: люди не учатся на своих ошибках, предлагая слабовостребованные рынком инструменты разработки. P.S. Несмотря на сегодняшнюю непопулярность продуктов Borland/Codegear/Embarcadero (ничтожную популярность) они, как ни странно используются в популярных продуктах:
Основные сложности agile проекта с фиксированной ценой для корпоративного заказчика
Очень большого интереса доклад не вызвал, т.к. за последнее время на конференциях стало достаточно много подобных докладов. Автор рассказывал о своем (и своей фирмы) опыте разработки проектов с использованием Agile. Чувствую себя слегка объевшимся данной темой. Полезными показались приведенные ссылки на продукты, ими используемые:
Доклад без особых откровений, но подробный и добротный. Бесполезные докладыОптимизация процесса разработки программного обеспечения: лучшие методы, практики и техники на сегодняшний день
Купившись на название доклада, остался после открытия конференции в основном зале (это был один из первых докладов конференции). Ожидал, что будет рассказано про какие-нибудь оригинальные приемы, техники, практики и, естественно, программные продукты. Увы, после краткого вступления выступление вылилось в навязчивую рекламу IBM Rational Jazz. Допускаю, что продукт не так и плох. Доклад лично для меня оказался бесполезен. Реализация захватом с помощью UML
Доклад был на английском языке, автор, насколько я понял, является сербом. Рассказывал о преимуществах применения Model Driven Architecture, т.е. в построении абстрактной метамодели и ее преобразовании в существующие технологии программирования (например, на основе ООП-языков). Процесс построения и преобразования демонстрировался на примере продукта Enterprise Analyst, который разработан фирмой Craftware Ltd (к которой Александр имеет прямое отношение). Т.о. это такая реклама коммерческого продукта. Скептически отношусь к рассказанному, доклад не очень понравился. Общие выводы
С интересом прочитал отзывы коллег о конференции (может быть, кто-нибудь еще что-то напишет). Репликация: База Знаний «Заказных Информ Систем» → «SECR-2010: Отчет Белобородова Дмитрия» Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion». |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||