В чем отличия Miracle от других технологий создания пользовательских приложений.
Новизна любой технологии определяется одним из факторов: либо это новый способ решения старой проблемы, либо это иная постановка старого вопроса с разработкой способа его решения.
Сегодня часть населения с крайне широким диапазоном потребностей составляют целую армию пользователей персональных компьютеров. Если раньше человека, сидящего за компьютером, можно было смело отнести к классу особо посвященных людей - людей-компьютерщиков, то теперь большинство пользователей - это люди знакомые с компьютером не больше чем с кухонным комбайном. Многие из них не имеют времени или возможности приспособиться к общению с компьютером на уровне понимания его внутреннего устройства и команд. Но соблазнительная стоимость и широкие возможности компьютера привлекают их. Круг задач, решаемых с применением ПК расширяется, и как следствие этого, увеличивается потребность в новом прикладном ПО.
Однако, средства разработки программного обеспечения, хотя и развивались все это время, но гораздо меньшими темпами, чем происходило проникновение компьютеров в нашу повседневную жизнь. Для работы с этими средствами до сих пор требуются высококвалифицированные программисты. Несмотря на современные мощные средства разработки, программисты, реально создающие необходимые сегодня программы, до сих пор вынуждены тратить не меньше нескольких недель на проекты, уровень сложности которых, хоть сколько-нибудь отличается от нуля.
Многие приложения не могут появиться на свет не только потому что нет средств на их разработку, но и из-за того, что время, необходимое для их проектирования и реализации может быть велико. К моменту предполагаемого ввода в зксплуатацию, набор свойств, которыми приложение должно обладать для адекватного выполнения своих задач может измениться настолько, что все придется переделывать заново, так и не приступив к эксплуатации. Динамика изменения обстановки в некоторых областях деятельности может быть очень интенсивна. Внедрение в них информационных технологий возможно только при наличии штата программистов, которые систематически могут вносить изменения в программы и следить за целостностью системы.
Технология создания приложений, используемая в инструментальной среде Miracle решает данную проблему в двух направлениях. Во-первых, снижение требований к квалификации разработчика, как программиста, во-вторых, повышение скорости разработки вместе с одновременным снижением затрат на сопровождение и последующие изменения разработанных систем.
Исторически развитие средств разработки было направленно на то, чтобы в процессе реализации крупных и сложных проектов дать программисту возможность более оптимально использовать свое рабочее время. Достигалось это автоматизацией определенных участков цикла проектирования и кодирования прикладных программ, появлением в языках программирования новых более эффективных средств структуризации и абстрагирования. Однако, отсутствие комплексного подхода к процессу автоматизации проектирования и программирования обусловили в качестве основы, “связующего вещества”, использование языков программирования, не далеко ушедших от ФОРТРАНа, или даже макроассемблера. Другими словами, имеем представление кода в виде последовательного текста, где описывается вызов различных функций с передачей им множества необходимых параметров.
Появление мощных средств структуризации таких как объектно-ориентированное программирование и средств генерации кода (различные инструменты проектирования пользовательского интерфейса), не привели к изменению технологии создания прикладного ПО, а только упростили некоторые процессы. Основная же проблема программирования так и осталась либо неосознанной, либо нерешенной.
Возникает простой вопрос - почему так сложно программировать и почему этот процесс требует высокой квалификациии и значительных затрат? Известно, что для того чтобы хорошо написать сложную программу, программист должен думать о ней постоянно, даже во время еды и сна. В противном случае он, не осознав поставленной задачи и не учтя всех важных факторов, допустит слишком много ошибок.
Основная причина сложности процесса скрыта в том, что средства разработки программ во многих случаях предполагают знание программистом внутренних механизмов операционной системы, используемых инструментов и библиотек, понимания всего многообразия и сложности внутренних взаимосвязей сущностей.
Практически все существующие сегодня инструментальные средства и методы проектирования навязывают ряд принципов и правил. Эти принципы и правила, с одной стороны, должны облегчить процесс получения конечного результата, но с другой стороны они требуют постоянного внимания.
Однако, возможности человеческого мозга не безграничны. Человек в каждый момент времени может оперировать, делать выводы или сравнивать лишь ограниченное число правил. Конечно, количество сущностей, хранящихся у нас в сознании огромно. Мы можем поднимать из его глубин и применять в рассуждениях их все сразу, но делать выводы, учитывая одновременно большое количество правил и взаимосвязей, крайне сложно. Для того чтобы, при этом ничего не упустить, требуются огромные умственные усилия.
Это приводит к следующим результатам. Первое: прежде чем приступить к написанию текста программы, приходится дробить задачу на ряд мелких и решать их последовательно одну за другой, но проводить анализ свойств создаваемой программы на соответствие с реальной задачей можно только на высоком уровне абстракции, тогда как о реально работающем коде не идет и речи. Второе: для реализации каждой подзадачи, в соответствии со всеми глобальными принципами и правилами, которые были определены раньше, требуется высокая степень концентрации. И, занимаясь непосредственно программированием, для успешной работы приходится удерживать в сознании все внутреннее устройство системы. Поэтому очень часто происходит так, что предметная область, для которой пишется программа, отодвигается на второй план. Срабатывает принцип наименьшего сопротивления и полученный результат может не устраивать заказчика.
Технология системы Miracle является решением проблемы программирования в следующей постановке. Мы пришли к новому осознанию принципа Оккама - «не преумножай сущностей сверх необходимого». Основная проблема и сложность программирования заключается в количестве сущностей, которыми одновременно оперируют для достижения результата. Именно этот фактор является причиной вынуждающей проводить долгие и мучительные часы, чтобы уложить в своем неповоротливом сознании все многообразие правил и взаимосвязей, необходимых для грамотного написания программы. Конечно, есть объектно-ориентированное программирование, которое по своей сути позволяет последовательно абстрагироваться от деталей реализации, переходя к все более и более общим задачам. Однако эта технология дает лишь возможность пойти по такому пути, но она не обуславливает движение по нему. В технологии Miracle этот путь уже в значительной степени пройден разработчиками самой системы. И хотя, объектно-ориентированное программирование и есть путь достижения такого результата, но вовсе не является его окончательной формой.
Технология Miracle - это компонентно-ориентированное программирование. Тем самым подчеркивается отличие от объектов в ООП. Источник происхождения компонентов Miracle недоступен разработчику, и он не загружает этим свое сознание. Эти компоненты объективно существуют - они неделимы, то есть ни от чего не унаследованные сущности и при этом самодостаточные ( нет необходимости что-либо от них наследовать).
Правила работы с компонентами тоже максимально упрощены и сведены к элементарным действиям - подачам команд. Реакции компонента на внешние воздействия также элементарны - они либо происходят, либо нет.
Процессы и данные, над которыми производятся действия, разделены таким образом, что у них нет параметров. Это дает возможность даже не задумываться в деталях о том, что же конкретно обрабатывается. Потоки данных также проектируются независимо от действий, которые над этими данными производятся, что допускает формализацию проблемы потоков данных в стороне от деталей их конкретной обработки.
Таким образом, любые взаимосвязи между компонентами, устанавливаемые для получения работающей программы, имеют простейшую структуру - конкретная команда одного компонента подается в ответ на конкретное событие (реакцию) в другом компоненте. И эта связь не обременена какими-либо параметрами, т.е. представляет собой такую же элементарную сущность.
Элементарная сущность компонентов, сведенное к минимуму количество команд и потоков данных, обеспечивающих функционирование этих компонентов, а также самостоятельность и элементарность команд и потоков данных сводят к минимуму количество сущностей, которыми необходимо оперировать в сознании при проектировании приложений.
Комплексный подход в предлагаемом наборе компонентов практически исключает необходимость опускаться на низкоуровневое программирование, сопряженное с проблемами упоминавшимися в этой статье. Однако, даже если и возникнет такая необходимость, то факт, что создаваемая часть приложения тоже должна быть компонентом, уже предполагает простоту его использования на уровне стандартных компонентов, а сложность ее реализации останется ее внутренней проблемой.
Наконец, в технологии разработки Miracle предложен принцип раздельного проектирования структуры хранения данных и приложений, осуществляющих ввод, отображение и обработку. Разделение проведено таким образом, что эти части могут создаваться независимо и даже разными людьми. Распределение данных в сети по привилегиям пользователей, структура таблиц, алгоритмы заполнения ячеек устанавливаются независимо от того, какие приложения будут использовать эти данные. Проектируя приложения нет необходимости создавать логику, определяющую распределение данных и обеспечивающую доступ к ней по определенным правилам. Эти правила задаются независимо и едины для всех приложений, использующих конкретные данные.
Таким образом Miracle стал технологией проектирования информационных систем и программ, не требующей больших усилий от разработчика при реализации проекта в виде программы. Минимальное количество сущностей и связей между ними дает возможность заниматься разработкой, оперируя в своем сознании небольшим количеством информации о самой системе и программировании. Количество взаимозависимостей между частями системы, там где это возможно, сведено к минимуму. Это позволяет, разрабатывая конкретную часть не задумываться о влиянии уже созданного и снизить количество сущностей, используемых для успешной разработки.
В конечном счете, и в технологии Miracle к этому созданы все предпосылки, разработчик может с чистой совестью посвятить основное время обдумыванию решаемой задачи, а не проблемам ее программирования,.
Еше одна из особенностей этой технологии - многократное использование одних и тех же компонентов различными приложениями - обеспечивает возможность, изменяя один компонент, изменить поведение всех приложений, в работе которых он участвует. Разработчику предоставляется возможность не только создавать системы программ в кратчайшие сроки, но и создавать эти программы по принципу прототипирования. То есть построить прототип будущей программы, реализовав лишь часть предполагаемых возможностей и даже передать это приложение в эксплуатацию. Впоследствии, этот прототип можно постепенно наращивать, по мере необходимости. При этом пользователи могут этого даже не заметить - в программе просто будут появляться новые возможности или изменяться старые, но целостность данных и системы легко сохраняется. Сопровождение таких программ, очевидно, также не требует затрат, типично ассоциируемых с этим видом деятельности. Вносить изменения в программу также легко как и создавать ее - это утверждение верно для любых средств разработки. Но в данном случае, оно наконец приобрело положительный смысл.
Подводя итог можно сказать, что Miracle - это комплексное решение по-новому осознанной, хотя и старой, но острой на сегодняшний день проблемы, с которой сталкивается разработчик сложных корпоративных приложений.
Для получения более подробной информации о Miracle Вы можете
связаться непосредственно с фирмой разработчиком.
|