В разработке программного обеспечения прототипирование играет ту же роль, что и лепет младенца в постановке речи. Только появившийся на свет маленький человек учится общаться - в первую очередь для удовлетворения собственных потребностей: в еде, комфорте. Изначально имея в своем распоряжении исключительно примитивные инструменты - в-основном градации громкости плача и смеха - младенец решает проблемы общения со взрослыми родителями. По мере усложнения задач ребенок учится складывать несколько звуков в последовательности, назначая каждому из новооткрытых явлений окружающего мира одну из них. "Мама", "Баба", "Кака" - не просто наборы звуков, это термины в которых младенец способен описать окружающий мир.
Начинающий разрабатывать новую информационную систему программист преодолевает те же трудности. Только вместо звуков в его распоряжении операторы языка программирования, а вместо любящей мамы общаться приходится с операционной системой. И подобно новорожденному малышу, имея лишь приблизительное представление о решаемой задаче, программист начинает подбирать инструкции интуитивно, складывая их в подобие слов.
Здесь нужно несомненно сделать оговорку: автор понимает, что обычный здоровый ребенок учится разговаривать один лишь раз, в то время как большинство программистов имеют перед началом разработки хоть какой-нибудь багаж знаний. Так что данная статья использует процесс изучения ребенком речи не как модель процесса разработки информационных систем во всех деталях, а лишь как полезную и интересную аналогию.
Итак наш ребенок растет, усложняются задачи, усложняется и развивается используемый язык. И вот уже появляются в его речи "Мафына" и "Больфая мафына". С папой он едет в садик на "мафыне", а с мамой на "больфой мафыне". Но ведь еще есть "больфая мафына, которая чистит снег", а еще ведь есть "больфая зеленая мафына на параде". Однако рано или поздно обнаруживается, возможно в детском саду, когда резко возрастает объем коммуникаций, что постоянно повторять разные комбинации простых слов в сочетании с "мафыной" крайне неудобно. И тогда исключительно из практических соображений появляются в речи "Джип", "Снегоуборщик" и "РТ-2ПМ2" (в крайнем случае "Тополь-М", если ребенок - девочка и танчиками не интересуется).
Так вот в этих "мафынах" и просматривается очевидная аналогия с прототипом информационной системы. Используя простые "слова" - блоки чуть более сложные, чем исходные операторы языка программирования, разработчик добивается работоспособного и адекватного отклика от компьютера эффективно моделируя части "языка предметной области". А вот насколько быстро будет готов и насколько близок этот прототип будет к действительному языку предметной области, полностью описывающему как задачу информационной системы так и ее решение - это целиком зависит от таланта и опыта разработчика, так же как познание окружающего мира зависит от таланта и упорства ребенка.
No comments:
Post a Comment