Прототип это модель: Прототипная модель данных / Хабр
Содержание
Прототипная модель данных / Хабр
В прототипной модели данных объекты создаются на основе других объектов. В этом случае у объекта имеется прототип, его ещё можно назвать эталоном или наследуемым объектом. В такой модели данных отсутствуют типы и классы. Объекты можно различать по тому, кого прототипируют, но эта задача второстепенная. Прототипирование, в первую очередь, применяется для повторного использования существующих структур из объектов.
Структура
Объект является элементарной сущностью, имеющей имя, значение и некоторые другие, стандартные для всех объектов, атрибуты. Назвать объект можно по-разному, но как его назовешь, то он и будет означать. Значение является скалярным, им можно представить числа, адреса, даты, пути на файлы, текст и многое другое. Длина значения не ограничивается. Элементарность объектов обеспечивает гибкость построения сложных структур.
Для представления сложных структур данных, таких как каталоги, товар с множеством свойств, объекты структурируются в иерархию. Каждый объект способен иметь в подчинении неограниченное количество объектов, при этом быть подчиненным только для одного иного объекта, которого нет у него в подчинении. Обычная иерархия из объектов. С помощью иерархии человечество издавна структурирует познания о реальном мире, это естественный и удобный способ представления информации. Иерархия во всем.
Но одной иерархией не смоделировать объекты реального или воображаемого мира. Например, товар не поместить одновременно в несколько каталогов. Необходимо связывание объектов из разных ветвей иерархии.
Наследование
На этом этапе зарождается прототипная модель. Кроме имени и значения каждый объект без исключений может иметь ссылку на любой другой объект, где бы тот не находился. Именно ссылкой образуется связь с прототипом. Ссылка реализуется дополнительным атрибутом объекта, представляющим идентификатор прототипа. Объект может иметь только одну ссылку.
Теперь в нужный каталог можно добавить существующий товар из другого каталога, создав объект товара, прототипируя его от товара второго каталога. Фактически появится новый товар, но без дублирования свойств (подчиненных свойств товара). Обращаясь к новому товару, мы сможем оперировать свойствами его прототипа.
Но товар в магазине может обладать разным набором характеристик: размером, цветом, при этом иметь один и тот же артикул, название, производителя и не маленький список других свойств. С прототипной моделью данных нужно всего лишь в новом прототипированном товаре добавить переопределяемых свойств, в частности, добавить свойство цвета с конкретным значением. Теперь у нового товара свой цвет, а остальные свойства будут браться от прототипа.
Прототипирование позволяет повторно использовать объекты, создавать новые на основе существующих, изменять и дополнять их, не затрагивая исходные, непосредственно решать задачи, а не создавать метаданные для их решения.
Логика
Недостаточно иметь только структуры данных. Их необходимо оживить, наделив объекты логикой. Логика реализуется методами (функциями) объекта. Могут быть методы проверки объекта перед сохранением, методы обработки запросов, формирования отображения и любые другие. Всё зависит от назначения объекта. При прототипировании новый объект вместе со свойствами прототипа наследует и его логику, естественно, с возможностью дополнять и переопределять её.
Идентификация
Для идентификации объектов обычно используются суррогатные ключи, например целые числа. Ввиду отсутствия границ связывания одного объекта с любым другим, уникальность ключа должна обеспечиваться в рамках всей структуры данных. Поэтому идеально иметь неограниченный диапазон значений для ключа. Точнее сказать недостижимый предел значений в рамках проектируемой системы. Но проблема не в этом, а в существовании объектов, которые не могут постоянно обладать суррогатным ключом, так как сами же создаются в момент обращения к ним и на время их использования. В базе данных их нет, значит, обратиться к ним по ключу нет возможности.
Существует два способа реализации прототипирования. В первом способе прототип полностью копируется, новый объект получает копии всех подчиненных прототипа. В случаи изменения прототипа, необходимо осуществлять обновление всех прототипированных объектов и их подчиненных, которые не были ещё переопределены. Минусом является сложность обновления и дублирование данных, зато можем идентифицировать любой объект.
Второй способ предполагает только установку связи с прототипом. Не нужно ничего копировать и обновлять. Но когда оперируем объектом, имеющим прототип, и обращаемся к подчиненным прототипа, эти подчиненные должны восприниматься подчиненными оперируемого объекта. В случаи модификации таких подчиненных, изменения ни в коем случаи не должны коснуться прототипа. Измененные объекты должны сохраниться как новые подчиненные оперируемого объекта. Пока объекты не сохранены, они являются виртуальными, временно создаются, прототипируясь от соответствующих подчиненных прототипа. К таким объектам нельзя обратиться напрямую, необходимо обращаться к ним от их родителя, так как от родителя зависит их существование.
Какие бы не были объекты, их все равно нужно идентифицировать. Необходима возможность сослаться на объект (предопределить связь) даже если объект отсутствует. Здесь поможет использование именований объектов, если сделать их имена уникальными в рамках одного уровня вложенности. Тогда к объектам можно обращаться через путь на них, как на файлы.
P.S.
Прототипная модель данных отличается своей гибкостью и естественностью строения. Не нужно городить вспомогательных сущностей, например, для реализации связей «многие-ко-многим», проектировать структуры данных, пытаясь предусмотреть все варианты развития проекта, ведь в случаи чего нужно будет только перенести данные в другую ветку, всё равно, что сделать перестановку в комнате без переделывания её планировки. Но, ввиду отсутствия готовых решений, прототипную модель приходится моделировать на других моделях данных. Например, на реляционной, от чего проявляются различные проблемы и ограничения. Оставлю этот вопрос открытым для обсуждения. Если кто возьмется за создание СУБД с прототипной моделью, позовите меня в команду.
Дополнительная информация:
1. Применение модели в архитектуре CMS: boolive.ru/createcms/data-and-logic-model
2. Реализация на MySQL с учетом горизонтального масштабирования: boolive.ru/createcms/sectioning
Что такое прототип. Виды прототипов – ProductSense Academy
Прототип и MVP позволяют протестировать идею, продукт или фичу на самых ранних стадиях, чтобы отсекать заведомо неэффективные решения, сосредотачиваться только на том, что приносит максимальную ценность и порверять больше гипотез в единицу времени. Во время микрокурса рассмотрим разные виды портотипов, для каких задач и на какой стадии создания продукта они применяются, как их создавать и проводить тестирования с пользователями.
В этом модуле вы узнаете, для каких задач стоит использовать прототипы, чем они отличаются от MVP и как правильно выбрать вид прототипа для решения своих проблем.
Если коротко, то прототип — это примитивная форма чего-либо, которая позволяет протестировать гипотезу в более-менее реальных условиях.
Прототипы используются повсеместно при тестировании различных продуктов, процессов, моделей и в совершенно разных областях: промышленный дизайн, разработка софта, бизнес-процессы. В рамках микрокурса мы будем говорить об общих аспектах прототипирования, но какие-то моменты будут касаться разработки именно digital-продуктов.
Слово «прототип» происходит от греческого πρωτότυπος — «оригинал, примитив», а оно в свою очередь образовалось из двух слов: πρῶτος — «первый» и τύπος — «впечатление».
Prototyping is the conversation you have with your ideas — Tom Wujec, (исследователь из Autodesk, автор книг о развитии интеллекта, спикер TED)
Прототипы нужны не только для того, чтобы протестировать идею конкретного решения, но и чтобы найти или сформулировать гипотезу.
Прототип ≠ MVP
У прототипа в первую очередь исследовательские задачи:
- найти решение;
- валидировать идею;
- протестировать гипотезу.
У MVP более конкретная цель — проверить «продажеспособность» работающего решения.
Какими бывают прототипы?
Вид прототипа, который вам необходимо создать, зависит от условий и ограничений — то есть от того, что именно вы хотите протестировать, на каком уровне проработки находится тестируемый объект, сколько ресурсов вы готовы потратить на тестирование и т.д.
Прототип низкой точности (low fidelity, sketch, lean/business canvas)
По факту, это бумажные прототипы, наброски, скетчи, очень простые реализации общей задумки. Они идеально подходят на ранних этапах проработки идеи. С помощью таких прототипов проще разобраться, в чем на самом деле смысл предложенного решения. В lo-fi-прототипах больше внимания уделяют способу использования продукта, а не тому, как он будет выглядеть.
Очень интересный пример lo-fi-прототипа Google Glass показал Tom Chi на конференции TED в Киото:
Но когда сложность продукта увеличивается, становится все труднее поддерживать lo-fi-прототипы в цикле разработки и приходится переходить к прототипам следующего уровня.
Плюсы
- Дешевые, быстро создаются.
- Позволяют итерировать в realtime.
- Могут быть созданы кем угодно, независимо от навыков.
- Позволяют быстро проверить идеи разного уровня абстракции и жизнеспособности.
Минусы
- Могут быть сильно далеки от реальности.
- Почти не подходят для тестирования на реальных пользователях.
- Не подходят для тестирования сложных гипотез.
Прототип средней точности (medium fidelity, wireframe, interaction map, storyboard)
Очень хорошее определение прототипов среднего уровня проработки дала Елена Сахарова в своей статье о прототипах на Medium:
Wireframes — это организация полного функционала конечного продукта в виде структуры с представлением элементов интерфейса и навигации, их взаимодействия друг с другом. Как правило, в wireframes не используются типографика, цвет и любые другие графические элементы оформления, так как основное внимание уделяется функциональности, поведению и содержанию.
Если под словом Wireframes понимать Medium Fidelity-прототипы — это будет идеальной интерпретацией моего мнения на этот счет 🙂
По факту, это самый часто используемый внутри команды вид прототипов — lo-fi недостаточно хорош для проверки содержания решения, а hi-fi (следующий уровень) зачастую излишне детализирован, слишком дорогой и создается довольно долго.
Плюсы
- Все еще достаточно быстрый в создании.
- Хороший баланс между ценой создания и получаемым знанием.
- Позволяет проводить полноценные тесты с живой аудиторией.
- Позволяет проверить полноту проектируемого решения. Например, «как закрыть всплывающее окно если нет крестика?».
- Можно использовать как документацию к разработке продукта.
Минусы
- Слабо вовлекает в использование.
- Пользователю необходимо уметь абстрагироваться от визуальных ограничений.
Прототип высокой точности (high fidelity, interactive)
Такие прототипы часто ошибочно принимают за конечный продукт, потому что они наиболее близки к готовому продукту. Hi-fi-прототипы лучше всего передают опыт использования продукта и реальные функциональные возможности.
Они идеально подходят для обсуждения сложных частей продукта и полноценных тестов решения на конечных пользователях, хотя могут быть дорогостоящими и отнимать много времени на создание.
Интересный пример hi-fi-прототипа — «фейковая» страница App Store, на которой тестируют опыт принятия решения о скачивании мобильного приложения. На такие странички привлекаются реальные пользователи — и они даже не особо догадываются, что попали не в App Store, а на тестовую страницу. Это помогает более-менее корректно оценить конверсии в установку еще до публикации приложения.
Плюсы
- Привычнее всего для пользователя, хорошо вовлекают.
- Лучше всего «продают» идею или решение.
- Подходит для тестирования сложных продуктов (или частей продукта).
Минусы
- Дорогие и долгие в создании.
- Их сложно интерпретировать тем, кто не погружен в продукт, могут увести «не туда» своей привлекательностью.
В следующих модулях вы узнаете, зачем нужны прототипы, как их создавать и тестировать, как создавать MVP. Следующий модуль — «Зачем нужен прототип».
404: Страница не найдена
ИТ-директор
Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы извиняемся за любые неудобства.
Что я могу сделать сейчас?
Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:
Поиск
- Узнайте последние новости.
- Наша домашняя страница содержит самую свежую информацию о CIO.
- Наша страница о нас содержит дополнительную информацию о сайте, на котором вы находитесь, ИТ-директор.
- Если вам нужно, свяжитесь с нами, мы будем рады услышать от вас.
Просмотр по категории
Облачные вычисления
-
Как создать оповещение CloudWatch для инстанса EC2Оповещения CloudWatch — это строительные блоки инструментов мониторинга и реагирования в AWS. Познакомьтесь с ними, создав Amazon…
-
5 способов восстановить виртуальную машину AzureСуществуют различные способы восстановления виртуальной машины Azure. Узнайте, почему вам нужно восстановить виртуальную машину, доступные методы восстановления и какие…
-
Преимущества и ограничения Google Cloud RecommenderРасходы на облако могут выйти из-под контроля, но такие службы, как Google Cloud Recommender, предоставляют информацию для оптимизации ваших рабочих нагрузок. Но…
Мобильные вычисления
-
Начало работы в режиме киоска для предприятияВ качестве выделенной конечной точки киоск может служить нескольким целям. Понимание этих возможностей, их преимуществ и проблем …
-
Как обнаружить и удалить вредоносное ПО с iPhoneНесмотря на свою репутацию в плане безопасности, iPhone не застрахован от атак вредоносных программ. ИТ и пользователи должны изучить признаки мобильной…
-
Как обнаружить и удалить вредоносное ПО с Android-устройстваВредоносное ПО для мобильных устройств может проявляться во многих формах, но пользователи могут не знать, как его идентифицировать. Разобраться в признаках вредоносного ПО на мобильных…
Дата-центр
-
5 шагов для миграции мэйнфреймовСложная задача миграции проверенных временем сред мэйнфреймов требует тщательной оценки, внимания к техническим деталям…
-
Ознакомьтесь с основными вариантами использования репатриации общедоступного облакаОблачные технологии могут создавать проблемы с выставлением счетов, управлением и соответствием требованиям. Вот пять причин, почему репатриация облачных рабочих нагрузок обратно …
-
Советы по использованию веб-консолей CockpitАдминистраторы, использующие Cockpit для управления серверами Linux, могут использовать веб-консоли для добавления пользователей, создания брандмауэров и выполнения других задач. …
Разработка программного обеспечения | Прототипирование Модель
Прототипирование определяется как процесс разработки рабочей копии продукта или системы, которые необходимо спроектировать. Он предлагает небольшое факсимиле конечного продукта и используется для получения отзывов клиентов. Концепция прототипирования описана ниже:
Модель прототипирования — одна из наиболее часто используемых моделей жизненного цикла разработки программного обеспечения (модели SDLC). Эта модель используется, когда заказчики заранее не знают точных требований к проекту. В этой модели прототип конечного продукта сначала разрабатывается, тестируется и неоднократно совершенствуется в соответствии с отзывами клиентов, пока не будет получен окончательный приемлемый прототип, который станет основой для разработки конечного продукта.
Концепция прототипирования
В этой модели процесса система частично внедряется до или во время этапа анализа, что дает клиентам возможность увидеть продукт на ранних этапах жизненного цикла. Процесс начинается с опроса клиентов и разработки неполной бумажной модели высокого уровня. Этот документ используется для создания начального прототипа, поддерживающего только базовую функциональность по желанию заказчика. Как только клиент выясняет проблемы, прототип дорабатывается для их устранения. Процесс продолжается до тех пор, пока пользователь не одобрит прототип и не найдет рабочую модель удовлетворительной.
Шаги Создание прототипа модели
Шаг 1: Сбор и анализ требований: Это начальный шаг в разработке прототипа модели. На этом этапе пользователей спрашивают о том, чего они ожидают или чего хотят от системы.
Этап 2: Быстрое проектирование: Это второй этап создания прототипа модели. Эта модель охватывает базовую структуру требования, с помощью которой можно легко описать краткий обзор.
Шаг 3: Создание прототипа: Этот шаг помогает создать фактический прототип на основе знаний, полученных при проектировании прототипа.
Этап 4: Первоначальная оценка пользователем: Этот этап описывает предварительное тестирование, при котором происходит исследование модели производительности, поскольку заказчик сообщает о сильных и слабых сторонах проекта, который был отправлен разработчику.
Шаг 5: Доработка прототипа: Если пользователь дает какой-либо отзыв, то после улучшения реакции клиента на отзывы и предложения окончательная система утверждается.
Шаг 6: Внедрение продукта и его обслуживание: Это последний шаг этапа создания прототипа, на котором окончательная система тестируется и распределяется в производство. Здесь программа регулярно запускается для предотвращения сбоев.
Дополнительную информацию см. в разделе Этапы модели прототипирования программного обеспечения.
Модели-прототипы
Типы моделей-прототипы
Существует четыре типа моделей-прототипов, которые описаны ниже.
- Быстрое создание одноразовых прототипов
- Эволюционное прототипирование
- Инкрементальное прототипирование
- Экстремальное прототипирование
1. Быстрое одноразовое прототипирование
каждый из них. В этом методе разработанный прототип не обязательно должен быть частью окончательно принятого прототипа. Отзывы клиентов помогают предотвратить ненужные ошибки проектирования, и, следовательно, окончательный разработанный прототип имеет лучшее качество.
2. Эволюционное прототипирование
В этом методе прототип, разработанный изначально, постепенно совершенствуется на основе отзывов клиентов, пока, наконец, не будет принят. По сравнению с Rapid Throwaway Prototyping, он предлагает лучший подход, который экономит время и силы. Это связано с тем, что разработка прототипа с нуля для каждой итерации процесса иногда может сильно разочаровать разработчиков.
3. Инкрементное прототипирование
В этом типе пошагового прототипирования конечный ожидаемый продукт разбивается на несколько небольших частей прототипов и разрабатывается индивидуально. В конце концов, когда все отдельные части разработаны должным образом, различные прототипы объединяются в единый конечный продукт в заранее определенном порядке. Это очень эффективный подход, который снижает сложность процесса разработки, когда цель делится на части, и каждая часть разрабатывается отдельно. Временной интервал между началом проекта и окончательной сдачей существенно сокращается, поскольку все части системы прототипируются и тестируются одновременно. Конечно, может быть вероятность того, что части просто не подходят друг к другу из-за некоторого недостатка на этапе разработки — это можно исправить только путем тщательного и полного построения схемы всей системы до начала прототипирования.
4. Экстремальное прототипирование
Этот метод в основном используется для веб-разработки. Он состоит из трех последовательных независимых этапов:
- На этом этапе базовый прототип со всеми существующими статическими страницами представляется в формате HTML.
- На втором этапе создаются функциональные экраны с имитацией обработки данных с использованием уровня сервисов-прототипов.
- Это последний этап, на котором все службы реализуются и связываются с окончательным прототипом.
Этот метод экстремального прототипирования обеспечивает надежную и быструю цикличность проекта и доставку, а также позволяет всей команде разработчиков сконцентрироваться и сконцентрироваться на выпуске продукта, а не на выявлении всех возможных потребностей и спецификаций и добавлении ненужных функций.
Преимущества модели прототипирования
- Клиенты могут увидеть частичный продукт на ранних этапах жизненного цикла. Это обеспечивает более высокий уровень удовлетворенности и комфорта клиентов.
- Новые требования могут быть легко учтены, так как есть возможности для уточнения.
- Отсутствующие функции легко найти.
- Ошибки можно обнаруживать гораздо раньше, что экономит много усилий и средств, а также повышает качество программного обеспечения.
- Разработанный прототип может быть повторно использован разработчиком для более сложных проектов в будущем.
- Гибкость дизайна.
- Своевременная обратная связь от клиентов и заинтересованных лиц может помочь направить процесс разработки и обеспечить соответствие конечного продукта их потребностям и ожиданиям.
- Прототипирование можно использовать для проверки и проверки проектных решений, что позволяет вносить коррективы до того, как в разработку будут вложены значительные ресурсы.
- Прототипирование может помочь снизить риск провала проекта за счет выявления потенциальных проблем и их устранения на ранних стадиях процесса.
- Прототипирование может облегчить общение и сотрудничество между членами команды и заинтересованными сторонами, повышая общую эффективность и результативность проекта.
- Прототипирование может помочь преодолеть разрыв между техническими и нетехническими заинтересованными сторонами, обеспечивая материальное представление продукта.
Недостатки прототипной модели
- Затратно как по времени, так и по деньгам.
- Каждый раз, когда заказчик оценивает прототип, требования могут сильно различаться.
- Плохая документация из-за постоянно меняющихся требований клиентов.
- Разработчикам очень сложно учесть все изменения, требуемые заказчиком.
- Существует неопределенность в определении количества итераций, которые потребуются, прежде чем прототип будет окончательно принят заказчиком.
- Увидев ранний прототип, клиенты иногда требуют, чтобы фактический продукт был доставлен в ближайшее время.
- Разработчики, которые торопятся создавать прототипы, могут столкнуться с неоптимальными решениями.
- Клиент может потерять интерес к продукту, если его/ее не устроит первоначальный прототип.
- Прототип может не соответствовать будущим потребностям заказчика.
- Прототип может неточно представлять конечный продукт из-за ограниченной функциональности или неполных функций.
- Акцент на разработке прототипа может сместить акцент с конечного продукта, что приведет к задержкам в процессе разработки.
- Прототип может дать ложное ощущение завершенности, что приведет к преждевременному выпуску продукта.
- Прототип может не учитывать вопросы технической осуществимости и масштабируемости, которые могут возникнуть при разработке конечного продукта.
Всего комментариев: 0