Отправляет email-рассылки с помощью сервиса Sendsay

Бизнес on-line

  Все выпуски  

softcraft: новости сайта и не только (005)


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Softcraft: материалы сайта и не только

http://softcraft.al.ru

Приветствую всех своих подписчиков!

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

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

Личное ощущение от использования таких фундаментальных знаний при решении конкретных задач изложил один из авторов статьи - Никита Туккель:

"Вообще самый впечатляющий пример применения нашей технологии - разработанная нами система управления судовым дизель-генератором. Полученную программную документацию мы оформили в виде брошюры объемом около 300 страниц. Изучение этой брошюры показывает всю крутизну подхода, как он реально работает на больших задачах, и, самое главное, что в нашей технологии "концы сходятся с концами". Мы начали с описания алгоритмов в виде конечных автоматов, а закончили работающей программой, в процессе функционирования которой автоматически строится протокол работы в терминах, опять же, конечных автоматов. Hам кажется, что в комплексе такого результата не достиг никто в мире. Даже в "вершине" человеческой программистской мысли на сегодняшний день, UML, нет стержня: единой и сквозной методологии проектирования, в который бы следующий этап логично и формально вытекал из предыдущего. Нет поддержки этапа отладки. В плане задания поведения разрабатываемой программы - по сравнению с нашим подходом полный провал. Вопрос генерации исходного текста полностью переложен на CASE-средства - и немудрено, невозможно для кучи формально не связанных диаграмм в двух словах (как у нас) определить правила перехода к тексту программы. Зато есть коммерциализация - наверно самая раздутая за всю историю компьютерной индустрии".

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

Конечно, ОО подход позволил повысить возможности, связанные с эволюционным наращиванием программ. Но этот же эффект можно получить и другими методами. Кроме того, не ОО подход плох сам по себе, а попытки его использования во всех дырках. Программирование должно быть разноликим! В ближайшее время я собираюсь начать выкладывать на сайт свои материалы, посвященные особенностям развития и использования различных парадигм программирования. Эти же вопросы я планирую более подробно освещать в подписке.

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

С наилучшими пожеланиями!

А.Л.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Поиск

В избранное