Моделирование
Моделирование
В начале работы над проектом почти всегда возникает ряд важных вопросов, связанных с реализацией той или иной технологии. Моделирование — важная методика, которая поможет получить необходимые ответы.
О чём пойдёт речь
Создание прототипа — важный этап, который любая группа разработчиков может осуществить ещё до начала работы над проектом. Работа с прототипом поможет понять, как эффективно воплотить ключевые функции программы, оценить сложность реализации ключевых технологий и необходимое для этого время, а также свести к минимуму общий риск ошибок и срыва планов.
Рассмотрим примеры того, что может случиться, если отказаться от работы с прототипом, Определив все компоненты программы, команда решила сначала реализовать её инфраструктуру, так как без этого компонента, обычно самого важного и самого сложного, ничего не работает. В результате этот компонент был спроектирован и построен без предварительной работы с прототипом. Когда он был готов, группа решила подключить к нему другие. Но после интеграции новых компонентов стало ясно, что возможности инфраструктуры недостаточны, конструкция её плоха или не масштабируется. После этого приходится искать места, где и что пошло не так, проектировать и кодировать все заново. Перепроектирование программы и изменение её кода во время цикла разработки, очевидно, приведёт к задержке выпуска ПО.
Рассмотрим ещё один пример, на сей раз с противоположным сценарием. Участники группы отдают себе отчёт в том, что нельзя строить компоненты инфраструктуры проекта, не поняв технических требований других частей системы, поэтому решено сначала создать полную спецификацию системы. Но эта задача оказалась затруднительной, так как не все проблемы, с которыми придётся столкнуться, известны заранее. Фактически здесь возникают сплошные вопросы, на которые никто не знает ответа. Конечно, можно попытаться действовать наугад в надежде, что всё будет хорошо, но это слишком рискованно.
Все эти проблемы позволяет решить прототип. В первом примере работа с прототипом помогла бы заранее смоделировать систему. Это позволило бы понять, как собрать все компоненты. Во втором примере работа с прототипом подсказала бы проектные решения.
Из собственного опыта
Оба рассмотренных выше примера взяты из работы над реальными проектами. На заре нашей деятельности мы не уделяли должного внимания созданию прототипов тех элементов, использование которых таило в себе наибольший риск или неопределённость. Оглядываясь в прошлое, понимаешь, что всех проблем удалось бы избежать, если бы конструкция программы была заранее проверена с помощью прототипа.
Как это делается
Прототип — не законченная программа, но он даёт возможность получить фактические данные, которые позволят принимать более удачные решения. Важнее всего — время, поэтому нужно действовать быстро. Ниже описаны этапы кратчайшего пути, который, однако, позволяет создать вполне приличный прототип.
• Определите ключевые факторы риска
Первый этап — создание списка основных вопросов, на которые нужно ответить. Изучите все вопросы, в которых нужно разобраться, чтобы разработать точный план. Если вопросов много, нужно определить приоритетные и проработать их в первую очередь. Помните: нужно сосредоточиться только на ключевых моментах, а не на всех неизвестных.
• Составьте план экспериментов
Следует создать план экспериментов, которые помогут ответить на поставленные вопросы. Можно искать ответ на каждый вопрос посредством отдельного эксперимента или решать несколько проблем одновременно, проводя ряд экспериментов.
Независимо от числа экспериментов нужно смоделировать взаимодействие любых ключевых технологий или компонентов. Здесь задача заключается в том, чтобы проработать продукт «вширь», а не «вглубь», т.е. охватить максимально возможное число функций, а не пытаться полностью воспроизвести какую-то одну из них. Вы не поверите, как часто мне приходилось встречать проекты, в которых возникали катастрофические проблемы при попытке собрать воедино все фрагменты программы. Обычно причина была в том, что в течение первых недель реализации проекта этим проблемам не было уделено внимания.
• Попробуйте сымитировать конечный результат
Одно из ключевых требований, выполнив которое, можно считать создание прототипа завершённым, — имитация конечного результата. Для этого придётся заглянуть в будущее, чтобы увидеть программу в окончательном виде и попытаться заранее смоделировать её ключевые составляющие, Чтобы преуспеть в этом, придётся ограничиться созданием модели на основе набора временных компонентов и API, имитирующих готовую программу. Возможно, часть функций придётся запрограммировать жёстко, для других вообще написать заглушки, а реальные данные заменить имитационными. Все это допустимо на данном этапе — ведь создаётся всего лишь эмулятор реальной программы. Главная задача сейчас — создать «скелет» программы, а «мясом» он обрастёт позже.
• Используйте существующие наработки
Ещё один важный способ ускорения создания прототипа — использование существующих решений. Вовсе не обязательно все писать «с нуля». Некоторые наиболее успешные прототипы появились в результате модификация копии исходного текста рабочей программы.
• Оценивайте результаты
Когда прототип готов, не забудьте оценить результаты своей работы. В частности, работая с прототипом, можно оценить производительность на макроуровне, необходимый объём памяти и то, как она используется. Можно определить и сложность внедрения, и качество технологии, а также попытаться разобраться в её принципах. Короче говоря, какими бы ни были потребности, нужно выжать из прототипа максимум пользы.
• Документируйте результаты.
Это полезно не только для сегодняшних участников группы, но и для будущих. Если при работе с прототипом обнаружились серьёзные проблемы, то они скорее всего снова возникнут и в будущем. Каждый участник группы должен знать, почему принято то или иное важное решение. Со временем у вас соберётся целая библиотека проектных заметок, которая станет историческим документом проекта.
Из собственного опыта
Во время работы над BoundsChecker 5.0 разработчикам NuMega пришлось почти полностью переписать внутренние компоненты программы. При этом работа шла в основном на двух фронтах: обновление систем сбора и анализа информации. Из-за сложности проекта мы испытывали большой соблазн сначала довести до конца конструирование системы сбора данных, а затем закончить систему анализа. Но опять же в силу сложности проекта мы пришли к выводу, что лучше создать прототипы для обеих систем, чем тратить время на создание подробных спецификаций. Было решено смоделировать сбор части нужных данных и написать лишь части кода для анализа только этих данных. Если программа функционировала нормально, выводилось простое диалоговое окно с сообщением, что все работает.
Спустя неделю один из программистов зазвал меня в свой кабинет и продемонстрировал маленькое простенькое диалоговое окно. Прототип работал! Теперь мы знали, что все задуманное осуществимо от начала до конца и серьёзных проблем с производительностью не предвидится. Следующие две недели мы по очереди наращивали все функции, обретая все большую уверенность в успехе. Таким образом, окончательная архитектура и конструкция программы были существенно улучшены. Через три недели у нас был готовый проект, который мы могли точно спланировать. В конечном итоге это позволило нам сэкономить кучу времени при его реализации. Я не говорю, что после всё было прекрасно, но без этих простых действий у нас бы не хватило уверенности, знаний и понимания, чтобы правильно спланировать проект.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Моделирование себя как трейдера
Моделирование себя как трейдера Вышесказанное объясняет, почему модели идеального трейдера должны возникать на основе собственного торгового опыта, а не фантазий. Изучая свои прошлые результаты торговли, я нашел, что моими самыми успешными сделками были сделки
4.2. Моделирование процессов в логистической системе
4.2. Моделирование процессов в логистической системе Моделирование основывается на подобии систем или процессов, которое может быть полным или частичным. Основная цель моделирования – прогноз поведения процесса или системы. Ключевой вопрос моделирования – «Что будет,
2. Моделирование инвестиционных проектов
2. Моделирование инвестиционных проектов Цифры управляют миром; по крайней мере нет сомнения в том, что цифры показывают, как он управляется. Иоганн Гете Моделирование инвестиционных проектов по сути является работой с механизмом расчетов различных параметров и
2.5. Моделирование рисков
2.5. Моделирование рисков Определение, расчет и анализ факторов риска – одна из главных частей инвестиционного проектирования. Созданный проект является, в сущности, прогнозом, который показывает, что при определенных значениях исходных данных могут быть получены
Глава I ДИНАМИЧЕСКОЕ МОДЕЛИРОВАНИЕ ПРЕДПРИЯТИЯ
Глава I ДИНАМИЧЕСКОЕ МОДЕЛИРОВАНИЕ ПРЕДПРИЯТИЯ Динамическое моделирование предприятия представляет собой исследование предприятия как информационной системы с обратной связью; оно предусматривает применение моделей для проектирования усовершенствованных форм
7. Детерминированное моделирование факторных систем
7. Детерминированное моделирование факторных систем Одной из задач факторного анализа является моделирование взаимосвязей между результативными показателями и факторами, которые определяют их величину. Сущность моделирования факторных систем заключается в том, что
27. Экономико-математическое моделирование
27. Экономико-математическое моделирование Применение математики в экономике принимает форму экономико-математического моделирования. С помощью экономико-математической модели изображается тот или иной действительный экономический процесс. Такая модель может быть
68. Моделирование
68. Моделирование Признанной группой расчетных методов является моделирование. В общем случае модель – это допустимо упрощенный аналог реальной или предполагаемой к созданию системы, используемой в процессе исследования. При проведении анализа используются два класса
Моделирование по методу Монте-Карло
Моделирование по методу Монте-Карло Моделирование по методу Монте-Карло представляет собой способ определения силы системы и отвечает на вопросы: «Что могло бы произойти, если бы прошлое было чуть другим?» или «Что может принести будущее?» Вы можете рассматривать метод
Моделирование
Моделирование Моделирование – это метод обучения, сочетающий в себе анализ конкретных ситуаций с ролевыми играми и позволяющий максимально приблизиться к реальности в условиях учебной аудитории. Цель метода заключается в том, чтобы способствовать переносу знаний,
МОДЕЛИРОВАНИЕ КОМПЕТЕНЦИЙ
МОДЕЛИРОВАНИЕ КОМПЕТЕНЦИЙ Моделирование компетенций сводит данные по организационному проектированию и управлению показателями труда, чтобы установить, какие навыки или компетенции требуются для выполнения определенных работ. Оно способствует принятию решений по
Шаг 7. Имитационное моделирование
Шаг 7. Имитационное моделирование Имитационное моделирование – это один из методов определить реализуемость и эффективность предлагаемых вариантов перестроенных процессов. Имитация также может применяться для проверки логики и согласованности процессов перед их
Моделирование
Моделирование Большинство современных моделей науки управления настолько сложны, что применять их можно только с помощью компьютерной техники. Однако сама концепция модели очень проста. По определению Р. Шеннона «Модель – это представление объекта, системы или идеи в
Моделирование успешного коучинга
Моделирование успешного коучинга Перенос моделей из других областей Мы покажем вам «сборную солянку» из различных коучинговых программ. Посмотрите их, чтобы понять, как ведется работа у других и что можно внедрить в своем бизнесе.Под словом «коучинг» можно выдавать
Моделирование процесса социального предпринимательства
Моделирование процесса социального предпринимательства Социальное предпринимательство можно рассматривать с точки зрения отдельного предпринимателя, предприятия или контекста, в рамках которого они действуют. Однако в любом случае социальное предпринимательство
Моделирование нового средства рекламы
Моделирование нового средства рекламы В то время как Интернет развивался, становясь средством всемирной связи, Yahoo! быстро становилась одним из немногих мест, где множество людей, искавших возможность связаться друг с другом, могли регулярно регистрироваться. Эти люди