DRAKON.SU

Текущее время: Четверг, 28 Март, 2024 17:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 19 Апрель, 2019 07:58 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Цитата:
Язык ДРАКОН, тестирование и литературное программирование

27 октября 2010, 12:57
1 файл

Владимир Данилович!

Меня зовут Сергей Новиков. Я занимаюсь разработкой Дракон-редактора с 2005 года. Цель письма – установить с вами личный контакт и проинформировать вас о проводимой мною работе.

Я применил созданный мною редактор для тестирования программ. Также разработал прототип для программирования в литературном стиле. Предлагаю вам ознакомиться с полученными результатами.

1. ДРАКОН И ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

В настоящий момент я работаю на предприятии Сигнатек, г. Новосибирск. Предприятие занимается разработкой программного обеспечения. Занимаю должность руководителя отдела тестирования. Основная трудовая функция – руководство процессом тестирования программ.

Для повышения продуктивности тестировщиков я применил Дракон-редактор. Идея была в том, чтобы записывать тесты в виде схем на Драконе. Это возможно, поскольку тест – не что иное, как алгоритм воздействия на тестируемую программу и контроль отклика.

Тесты снабжаются дополнительным текстовым описанием и комментариями. Пакеты тестов объединяются в методики тестирования.

В настоящий момент нами накоплено солидное число тестов (порядка 500). И теперь мы думаем о сетевом варианте редактора, чтобы было удобно обслуживать наш пакет тестов. А также работать совместно.

Особенность – тестировщики применяют Дракон-редактор не только для записи тестов, но и для их интерактивного исполнения.

Предусмотрено два способа исполнения шагов алгоритма – ручной и автоматический.

При ручном исполнении действие осуществляет тестировщик. При автоматическом – Дракон-редактор. Автоматизация стала возможной благодаря новым интерфейсам программирования для Windows.

С помощью этих технологий вполне возможно буквально в одиночку создавать программы, управляющие другими программами вместо человека.

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

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

На мой взгляд, удалось воплотить в жизнь идею «Автоматизация без программистов» (перефразируя лозунг «Программирование без программистов»).

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

В моём же случае, тестировщик средней квалификации, без знания языка программирования, способен составлять полностью автоматические тесты в виде схем на Драконе, да ещё и записанные по-русски.

Дальнейшие планы:

1. Создать завершённый продукт.

2. Открыть сайт.

3. Представить его на конференции тестировщиков. Рассчитываю успеть к июню 2011, когда будет проходить очередная конференция TestLabs.

2. ДРАКОН И ЛИТЕРАТУРНОЕ ПРОГРАММИРОВАНИЕ

Некоторое время назад я ознакомился с концепцией литературного программирования Дональда Кнута. Основной источник: http://www.literateprogramming.com.

Я нашёл, что Дракон и литературное программирование дополняют и усиливают друг друга.

Суть литературного программирования:

1. Программы надо составлять так, как пишется книга. Кусочки программы надо выстраивать в последовательности, удобной для чтения человеком, поскольку основная масса времени программиста тратится именно на чтение, а не на кодирование.

2. С помощью специальной утилиты из кусочков программы формируется код, предназначенный для компилятора.

3. С помощью другой утилиты из тех же самых кусочков собирается аккуратно оформленный текст, предназначенный для прочтения человеком.

В течении октября я внёс изменения в свой Дракон-редактор. И реализовал прототип для составления программ на языке С++ в литературном стиле с использованием Дракона.

Как Дракон стыкуется с литературным программированием:

1. Декларативная часть программы – функции, переменные, классы, файлы – представлена в виде карточек (литературных секций в терминологии Кнута). Каждая карточка содержит текстовое описание, паспорт (объявление в соответствиями с требованиями языка программирования) и, если надо, Дракон-схему.

2. Алгоритмическая часть программы – код функций – изображается Дракон-схемами.

3. Функции можно дробить на логически завершённые фрагменты – вставки – это делается для разделения алгоритмов на простые, понятные кусочки. Кроме того, один и тот же кусочек можно использовать в двух разных функциях, но это редкость.

4. По команде пользователя Дракон-редактор собирает кусочки как надо и формирует из них цельный код на языке С++. Компилятор С++ создает из него исполняемую программу.

5. По другой команде пользователя Дракон-редактор генерирует текст на языке HTML. Этот электронный документ можно открыть в обозревателе Интернета, распечатать и проанализировать.

Важно, что Дракон-редактор не использует литературную разметку, которую предложил Кнут. Если этой разметкой маркировать текст программы на С++, получается тихий ужас! На мой взгляд, идея литературного программирования очень хороша, но реализация плоха из-за этой разметки. Вместо облегчения интеллектуальной деятельности программист получает усложнение процесса кодирования. Этим перечёркиваются преимущества подхода. Кнут не отказался от текста. А Дракон-редактор вместо разметки использует карточки и схемы.

Привожу несколько иллюстраций.

А) Обозреватель фрагментов программы и вид на объявление функции. В правой части окна Дракон-редактора находится обозреватель фрагментов. В нем все фрагменты программы представлены в виде упорядоченного дерева.

Логически связанные кусочки программы размещаются рядом друг с другом. Так их проще осмыслить. Во главу угла поставлено удобство для человека, а не компилятора.

В левой (основной) части окна Дракон-редактора находится область редактирования. На рисунке показана карточка, содержащая объявление функции. Функция снабжена текстовым описанием. Показан прототип функции на языке С++. А также приведена Дракон-схема.

Дракон-программа – это структурированный набор карточек. Карточки устроены также, как и статьи в открытой энциклопедии Wikipedia.

Любую карточку можно открыть для просмотра или внесения изменений. Для правки карточки необходимо щёлкнуть по ссылке «править».

Любые изменения можно отменить. Текст в карточках макетируют с помощью разметки. Применяется специальная разметка текста, которая позволяет создавать списки, ссылки и выделять текст различным начертанием.

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

Выноска 2 (с границей): Объявление функции – содержит текстовое описание, прототип и схему функции.

Б) Вид на редактор схемы.
Щёлкнули по ссылке «править» и попали в этот редактор. Чтобы сохранить изменения схемы, надо щёлкнуть кнопку «Готово».

Редактирование осуществляется практически также, как в редакторе Геннадия Тышова – в валентной точке схемы надо вызывать контекстное меню и выбрать в нём икону – действие, условие и т.п.

К настоящему моменту не реализованы такие макроиконы, как Переключатель и Цикл Для. Просто до настоящего момента мы обходились и без них.

Остальные макроиконы реализованы. В том числе конструкции Примитив и Силуэт. Их возможно преобразовывать друг в друга. Не реализованы операция заземления и пересадки лианы.

В отличие от редактора Геннадия Тышова я реализовал автоматическое построение (макетирование) схемы. Пользователю не надо вручную выравнивать иконы. Это дело редактора. Это позволяет сконцентрироваться исключительно на логике алгоритма, а не отвлекаться на рутину с выравниванием икон.

Я потратил много времени на разработку алгоритма выравнивания. И как мне кажется, это самая трудная часть в Дракон-редакторе.

Начало и конец алгоритма изображаются не вполне «канонически», но я ещё не брался за оптимизацию внешнего вида схемы. Со временем, это обязательно будет сделано.

Также в отличие от редактора Геннадия в моём варианте нет ограничения на размер схемы. Можно рисовать схемы любых размеров, от миниатюрных до гигантских.

Редактор Геннадия изначально является разновидностью графического редактора. Мой же работает на более высоком уровне – на уровне языка Дракон.

Также я прилагаю электронный текст, сгенерированный Дракон-редактором. Для просмотра распакуйте прилагаемый архив и откройте файл Demo.html.

Дальнейшие планы:

1. Довести до ума, когда не стыдно будет показать сообществу на OberonCore.

2. Презентовать и далее улучшать по отзывам.

Намереваюсь развивать это направление следующим образом. Перепишу Дракон-редактор на языке С++ (исходно он написан на Visual Basic 2008 с использованием .NET Framework 3.5).

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

К тому же, мне уже давно хочется отказаться от .NET Framework, т.к. в ряде случаев я был вынужден бороться с этим каркасом, подстраиваться под него.

3. КАК ДРАКОН ПОВЛИЯЛ НА МОЮ СУДЬБУ

Владимир Данилович, хотел бы выразить вам искреннюю благодарность за вашу работу по популяризации Дракона!

Лично на меня ваши идеи оказали самое непосредственное влияние. Впервые я познакомился с Драконом в 2000 году, когда прочитал «Как улучшить работу ума».

Тогда же задумался о создании Дракон-редактора. Примерно в 2003 скопил немного денег, уволился с работы и занялся разработкой.

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

Одновременно я прекратил разработку, поскольку зашёл в тупик. Зато открыл для себя теорию автоматов и понял, что это может быть решением задачи макетирования.

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

Я решил найти что-то попроще. Поэтому, в 2004-м я перебрался из Томска в Новосибирск и устроился на работу тестировщиком.

Через год я стал руководителем отдела тестирования и у меня появилось и время, и силы на продолжение работы по Дракон-редактору.

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

В это время я также активно экспериментировал с хронометражём (система Любищева А.А.). Целью было научиться распределять дела и время так, чтобы оставались силы на Дракон-редактор. И стал большим поклонником этой системы. Занимаюсь хронометражом уже более 3-х лет.

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

Как только сделал базовый вариант редактора, возникла положительная обратная связь от применения его для задач тестирования. Это придало мне дополнительный мотив.

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

У меня масса идей по улучшению проекта (около 1000 карточек). Все их я тщательно записываю и структурирую. Надеюсь, мне удастся внести определённый вклад в развитие Дракона.

С уважением, Сергей Новиков.

Все файлы проверены, вирусов нет
1 файл

Demo.zip


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Апрель, 2019 09:33 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Прошло несколько лет.
Выкладываю письмо Сергея Новикова от 2015 года

Цитата:
RE: Дракон, тестирование и литературное программирование
26 января 2015, 13:19

Здравствуйте, Владимир!

Рад, что вы интересуетесь!

Разработку дракон-редактора я заморозил в начале 2012 года. Так получилось, что моя активность в компании не осталась незамеченной, и я стал коммерческим директором.

Эта работа дала мне приличные деньги, но высосала все силы. Я отработал коммерческим полных два года, с 2012 по 2013 включительно, в январе 2014 года получил премиальными миллион и ушёл из компании.

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

Вторую половину 2014 года я уже работал, но к сожалению, опять ошибся с компанией – работа снова высасывала все мои силы и не давала возможности работать над Драконом.

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

Требования к службе я сформулировал и думаю, что на этот раз с выбором не ошибусь. В идеале, мне нужна свободная профессия, которая бы закрывала материальные вопросы и оставляла бы время и силы на продолжение работы по Дракону.

Относительно дракон-редактора у меня план такой. Лично мне одного лишь языка Дракон недостаточно для программирования. Я хочу объединить в одном продукте три компонента:

· Графический язык Дракон для визуализации алгоритмов.

· Литературное программирование по Кнуту (http://www.literateprogramming.com) для составления документации на программу.

· Вариантное программирование по Горбунову-Посадову (http://www.keldysh.ru/gorbunov) для разработки методом «вширь».

Что я сделал к настоящему моменту. У меня есть простой дракон-редактор на момент его заморозки в 2012 году. На нём я обкатал алгоритмы автоматического построения дракон-схем и опробовал на практике в области создания автоматических тестов для настольных приложений под Windows.

За 2014 год я успел составить простой редактор для визуального программирования в литературном стиле. Сначала я разрабатывал его в обычной среде разработки, затем, когда редактор накопил достаточно функций, я перешел на работу непосредственно в редакторе.

Применяю раскрутку – редактор пишу непосредственно в нём. Я также теоретически проработал механизмы вариантного программирования, но ещё не реализовал их в коде. В общем, понимаю, как срастить вместе все три компонента.

В целом, работа идёт медленно. Но, по крайней мере, идёт. Иногда мне бывает непросто.

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

В идеале я хочу, чтобы работа над редактором и стала моей свободной профессией. Чтобы не было необходимости подрабатывать где-нибудь ещё, а заниматься исключительно редактором.

Вот вы, например, пишите книги по Дракону. Я умею писать программы и немножко умею их продавать.

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

Есть надежда, что даже если редактор не принесёт никаких денег, то удастся заработать в какой-то смежной или неожиданной области. Если ничего не получится с заработком, выложу продукт в бесплатное общее пользование.

Вот так.

С уважением, Сергей Новиков.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Апрель, 2019 09:39 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Они придумали очень крутую вещь (наверно стоит говорить о коллективе). За 9 лет можно было греметь по всем конференциям. Разработку засекретили?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Апрель, 2019 10:10 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Дмитрий, это не они, а один человек — Сергей Новиков.
Про секретность речь не идет. Сергей мечтал превратить разработку в коммерческий продукт.

Но ситуация, по-видимому, печальная.
Сегодня я написал обычное письмо Сергею:
Цитата:
Уважаемый Сергей Новиков!

Как Ваши дела? Что нового? Как успехи?

Продвинулась ли вперед Ваша работа по дракон-редактору?
Но моментально получил автоматический ответ, что мое письмо не доставлено адресату.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Апрель, 2019 11:12 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Я тоже разрабатываю генератор самостоятельно, но от коллектива не отрываюсь: они мои тестировщики, идейные вдохновители, консультанты и потребители. Поэтому и использовал такой оборот. :)

Сергей упомянул, что с ним работали его коллеги:
Цитата:
В настоящий момент нами накоплено солидное число тестов (порядка 500). И теперь мы думаем о сетевом варианте редактора, чтобы было удобно обслуживать наш пакет тестов. А также работать совместно.

Цитата:
Вторую попытку я предпринял, наняв себе в помощь ещё одного разработчика. Но через полгода работы дела снова зашли в тупик, и второй вариант Дракон-редактора пришлось выбросить на свалку.


Если проект заглох, то очень жаль.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Апрель, 2019 11:14 

Зарегистрирован: Среда, 07 Январь, 2015 14:53
Сообщения: 1356
Дракон плохо повлиял на судьбу Сергея Новикова.

Это не единственный пример.

Плохо сложилось у Романа Еремеева.
https://forum.drakon.su/viewtopic.php?f=143&t=6220
http://erv-program.blogspot.com


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Апрель, 2019 13:32 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Дмитрий Бардынин писал(а):
Сергей упомянул, что с ним работали его коллеги:
Цитата:
В настоящий момент нами накоплено солидное число тестов (порядка 500). И теперь мы думаем о сетевом варианте редактора, чтобы было удобно обслуживать наш пакет тестов. А также работать совместно.

Цитата:
Вторую попытку я предпринял, наняв себе в помощь ещё одного разработчика. Но через полгода работы дела снова зашли в тупик, и второй вариант Дракон-редактора пришлось выбросить на свалку.
Дмитрий, вы правы.
Сергей Новиков работал начальником отдела тестирования и конечно он перестроил (на основе языка ДРАКОН) работу отдела, как считал нужным: давал поручения сотрудникам отдела и т. д.

А потом он поднялся еще выше и стал коммерческим директором этой фирмы.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 19 Апрель, 2019 15:42 

Зарегистрирован: Среда, 27 Сентябрь, 2017 18:44
Сообщения: 332
LKom писал(а):
Дракон плохо повлиял на судьбу Сергея Новикова.

Это не единственный пример.

Плохо сложилось у Романа Еремеева.
https://forum.drakon.su/viewtopic.php?f=143&t=6220
http://erv-program.blogspot.com

LKom, что у Вас за упадническое настроение? Развитие Дракона идет же? На месте не стоит?
Да, не хватило у людей возможности... но они пробовали, шли к своей цели!
Хороший пример Вы, Степан и т.д. А статистика редакторов из 10 пробовавших написать редактор как минимум 7 написали!
Другое дело, что кто-то продолжает разработку, а кто-то нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 13 Июль, 2019 19:43 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Интерес у людей есть, и примером тому могут являться занятия в нашем парке. Люди спрашивают, читают. Примеряют к себе.
Есть эксперименты по развитию инструментария.

Мы в "Сириусе" уже умеем делать динамические схемы, показывающие движение Указателя по диаграмме, умеем конвертировать диаграммы в векторную графику (SVG), умеем проверять произвольные знания с помощью диаграмм, например: исторические события, биологические циклы и т.д. Все это только робкие шаги, но они могут быть примером характерных тенденций.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 14 Июль, 2019 07:48 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Дмитрий Бардынин писал(а):
Мы в "Сириусе" уже умеем делать динамические схемы, показывающие движение Указателя по диаграмме

Дмитрий, имеется в виду вот такая анимация?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 14 Июль, 2019 15:09 

Зарегистрирован: Пятница, 08 Декабрь, 2017 18:24
Сообщения: 439
Откуда: Астрахань-Сочи
Да, похожая. Наша диаграмма поиконно подсвечивается прямо в редакторе. Шампуры не подсвечиваем.

Порядок подсветки пока задается специальным скриптом, в котором можно настроить цвет, интервалы подсветки, частоту повторов.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB