Абстракции пример: Абстракция — ключ к простому коду / Хабр

Содержание

Абстракция актуальной бесконечности – Гуманитарный портал

Абстракция актуальной бесконечности — это метод мысленного отвлечения, направленный на формирование абстрактных понятий (см. Абстракция) в рамках одной из наиболее сложных разновидностей идеи бесконечности (см. Бесконечное и конечное) — идеи актуальной бесконечности. В наиболее простом случае — при рассмотрении какого-либо необрывающегося конструктивного процесса, порождающего объекты определённого типа, — абстракция актуальной бесконечности состоит в отвлечении от принципиальной незавершаемости этого процесса. Представив его как бы «продолженным до конца» и тем самым завершившимся, вводят в рассмотрение его воображаемый результат — множество (совокупность) всех порождённых им объектов. При этом возникшее таким образом множество в дальнейшем начинают трактовать в качестве актуального, «готового» объекта рассмотрения. Так, отправляясь от процесса последовательного порождения натуральных чисел

0, 1, 2, … в результате применения к нему абстракции актуальной бесконечности приходят к актуально бесконечному объекту — натуральному ряду, который в дальнейшем выступает в качестве наличного объекта, равноправного с составляющими его числами. В более сложных случаях аналогичной процедуре подвергаются «процессы» существенно более сложных типов. В результате объектами рассмотрения становятся актуально бесконечные множества элементов произвольной природы, что приводит к необходимости изучения понятия множества как отдельного абстрактного понятия.

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

логическом аспекте (см.  Логика) принятие абстракции актуальной бесконечности ведёт к обоснованию классической аристотелевской логики, и в частности закона исключённого третьего (см. Закон исключённого третьего).

Особую роль абстракция актуальной бесконечности играет в так называемой «архитектурной программе для математики» Г. Кантора, предусматривающей построение математики в виде надстройки над созданной им теорией множеств (точнее было бы, следуя самому Кантору, говорить об учении о множествах). Согласно этой программе, получившей в математике самое широкое распространение, всякий математический объект рассматривается как множество, удовлетворяющее определённому условию, и это обстоятельство делает абстракцию актуальной бесконечности основным в рамках данного подхода объектообразующим фактором. Однако в связи с указанными выше трудностями неограниченное её применение в качестве правомерного средства образования математических понятий неоднократно вызывало возражения со стороны ряда видных математиков (К.

 Ф. Гаусс, Л. Кронекер, Д. Гилберт, Г. Вейль и другие). Альтернативные по отношению к канторовской программе построения математики на основе использования одной лишь абстракции потенциальной осуществимости были предложены Л. Э. Я. Брауэром (см. Интуиционизм) и А. А. Марковым (см. Конструктивизм математический). Без использования абстракции актуальной бесконечности обходится также и теория доказательств
Д. Гилберта.

  • Гейтинг А. Интуиционизм. Введение. — М., 1965.
  • Кантор Г. О различных точках зрения на актуально бесконечное. — В книге: Кантор Г. Труды по теории множеств. — М., 1985.
  • Колмогоров А. Н. Бесконечность в математике. — БСЭ, т. 3. — М., 1970.
  • Марков А. А. О конструктивной математике. — Труды математического Института имени В. А. Стеклова, т. 67. — М., Л., 1962.

6 примеров абстракции данных (с определением и преимуществами) • BUOM

Абстракция данных позволяет потребителям использовать продукт, не зная, как он работает внутри. Он имеет несколько преимуществ для разработки продукта, в том числе делает его более удобным для пользователей и сохраняет уникальность продукта. Узнав о важности абстракции данных, вы сможете сделать свои устройства более простыми в использовании и более безопасными. В этой статье мы даем определение абстракции данных, объясняем ее преимущества и типы, а также приводим несколько примеров абстракции данных для специалистов в области технологий и безопасности.

Что такое абстракция данных?

Абстракция данных — это инструмент программирования и проектирования, который отображает основную информацию об устройстве, скрывая при этом его внутренние функции. Пользователи могут смотреть на интерфейс и определять, как работает машина, но они не могут увидеть, как машина на самом деле может реагировать на их команды. Другими словами, они могут понять, что делает машина, но не понимают, как она это делает.

Например, при использовании мобильного телефона вы можете понять, как отвечать на входящие звонки и текстовые сообщения. Благодаря абстракции данных вы не можете сказать, как сам телефон передает сигналы. Целью абстракции данных является раскрытие только основных элементов устройства.

Почему абстракция данных важна?

Абстрагирование данных является важной частью разработки новых технологий и делает их безопасными и удобными для пользователя. К преимуществам абстракции данных относятся:

Делаем устройства проще в использовании

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

Сохранение целостности устройства

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

Возможность повторного использования данных

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

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

Типы абстракции данных

Существует два типа абстракции данных. Они включают:

  • Абстракция с использованием классов: класс организует данные по категориям. С помощью спецификаторов доступа классы определяют, какие функции могут видеть пользователи, а какие остаются скрытыми.

  • Абстракция в файлах заголовков: файлы заголовков скрывают от пользователя все внутренние функции.

Есть также три уровня абстракции данных. Они включают:

  • Физический: физический уровень — это самый низкий уровень абстракции данных. Он диктует, как система хранит данные.

  • Логический: логический уровень указывает на конкретные типы данных в хранилище и связи между данными. Профессионалы могут просмотреть логический уровень, чтобы определить, какие данные следует сохранить.

  • Представление: уровень представления представляет собой самый высокий уровень абстракции данных. Он объясняет часть всей базы данных, позволяя профессионалам получить доступ к необходимой им информации.

Примеры абстракции данных для технологий

Вот примеры, которые могут применяться профессионалами в области высоких технологий при разработке новых электронных устройств:

Прослушивание музыки в наушниках

Предположим, у вас есть пара беспроводных наушников, которые вы хотите использовать для прослушивания музыки со своего смартфона. Вы знаете, что вам нужно включить функцию Bluetooth на вашем телефоне, чтобы подключиться к наушникам. Также есть кнопка для включения и выключения наушников, позволяющая сохранить аккумулятор, и небольшой порт для подключения USB-кабеля для зарядки аккумулятора.

Тем не менее, абстракция данных не позволяет вам увидеть, как сигнал передается от Bluetooth к наушникам, что позволяет вам слышать звук без проводного соединения. Когда вы перезаряжаете аккумулятор, вы также не видите, как энергия из розетки передается по кабелю для зарядки наушников, что позволяет им работать эффективно. Инженеры по аппаратному обеспечению могут внедрить абстракцию данных, чтобы помочь вам сосредоточиться на основных функциях продуктов, что поможет вам легко разобраться в беспроводных функциях.

Делаем снимок на смартфон

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

Тем не менее, абстракция данных не позволяет вам увидеть, как камера отражает ваше лицо и внешний вид, когда вы поворачиваете ее к себе, а также то, как она захватывает крупный план объекта, когда вы используете функцию увеличения. Единственная характеристика, которая соответствует вашим интересам, — это способность камеры делать отличные фотографии.

Играем в игру на планшете

Разработчики программного и аппаратного обеспечения могут иметь схожие цели при использовании абстракции данных при разработке новых технологий. Например, компьютерный планшет имеет центральную кнопку для доступа пользователя к главному экрану, а также порт для подключения наушников и зарядки планшета. Пользователи также знают, что нужно одновременно удерживать кнопку питания и кнопку «Домой», чтобы сделать снимок экрана. При доступе к игровому приложению пользователи узнают значок для настройки параметров игры и могут нажимать кнопки «вперед» или «назад» для навигации по его функциям.

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

Список примеров абстракции данных для безопасности

Вот три примера абстрагирования данных, которые могут применяться специалистами по безопасности или профессионалами, работающими в правоохранительных органах:

Выдача денег из банкомата

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

Из-за абстракции данных клиенты не могут видеть, как банкомат выдает деньги изнутри в прорезь снаружи, позволяя клиенту взять купюры. Они также не могут сказать, каким образом банкомат выдает распечатанную квитанцию ​​о снятии средств. Таким образом, детали акции остаются конфиденциальными, что не позволяет посторонним получить доступ к их средствам.

Прохождение контрольно-пропускного пункта в аэропорту

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

Сканирование удостоверений личности перед входом в помещение

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

Однако абстракция данных скрывает то, как сканер различает штрих-коды с разных удостоверений личности и сигналы, которые он передает для записи времени и даты, когда сотрудник вошел в ворота.

Абстракция

UML — это зависимость, которая связывает два элемента, представляющих одну и ту же концепцию, но на разных уровнях абстракции.

Общая структура UML

Абстракция есть отношения зависимости, которые относятся два именованных элемента или наборы именованных элементов, представляющих

одно и то же понятие но на разных уровнях абстракции или с разных точек зрения .

Поскольку абстракция — это зависимость, ее обычно определяют как отношение между клиент (ы) и поставщик (и), где клиент (подмножество источник ) зависит от поставщик (подмножество цель ). Это соответствует общему соглашению OOAD для рассмотрения более абстрактного элемента в отношении абстракции. как поставщик . Тем не менее, разработчик моделей UML может решить, что для какой-то конкретной области или задачи более уместно иметь более абстрактный элемент поставщика зависит от более конкретного элемента клиента .

Абстракция позволяет

отображать между поставщиком и клиентом. быть формальным или неформальным , и однонаправленный или двунаправленный , в зависимости от конкретного подкласса или стереотипа абстракции. Например, вывод могут быть формальными и однонаправленными, в то время как трассировка может быть неофициальным и двусторонним.

Если абстракция имеет более одного клиента , поставщик отображается в набор клиентов как группа. Например, класс уровня анализа может служить абстракцией для одного или нескольких уровней проектирования. классы. Вариант использования может быть абстракцией для нескольких совместных работ.

Абстрактный синтаксис

Абстракция имеет два подкласса: Реализация и Проявление. Проявление помечено ключевым словом

«манифест» и используется в схемы развертывания.

Абстракция — это зависимость, она является подклассом реализации и проявления,
и имеет стандартные стереотипы «Извлечь», «Уточнить», «Отследить».

Абстракция также имеет несколько стандартных стереотипы — «Вывод», «Уточнить», и «След», определено в стандартном профиле.

Обозначение

Отношение абстракции показано как стрелка отношения зависимости от клиента в хвосте к поставщику на острие, с «абстракция» ключевое слово или какое-то другое предопределенное имя стереотипа, прикрепленное к.

Например, класс уровня анализа Заказчик ( поставщик , подмножество цель ) может быть реализован как класс уровня проектирования CustomerInfo ( клиент , подмножество источника ).

Customer from Domain — это абстракция для CustomerInfo из DataTransfer.
(Общий пример соглашения — более абстрактный элемент в качестве поставщика.)

Если какой-то разработчик моделей UML решит, что лучше показать более абстрактный элемент, зависящий от на более конкретном элементе отношение будет обратным.

Customer from Domain — это абстракция для CustomerInfo из DataTransfer.
(Пример обратной записи — менее абстрактный элемент в качестве поставщика.)

«Вывести»

«Вывод» — это стандартный стереотип абстракции, который используется для определения отношения вывода. среди элементов модели, которые обычно, но не обязательно, одного типа. Этот вывод определен в UML как «клиент может быть вычислен из поставщика». Причиной наличия такого «вычислительного клиента» может быть эффективность реализации. , отображающий

из отношения абстракции, определяет вычисление.

Отношения происхождения связаны с производные свойства, свойства, значения которых создаются или вычисляются из другой информации, например, используя значения других свойств.

Класс Age является производным от класса BirthDate.

Ревизии

Определение отношения «Извлечь» не изменилось со времен UML 1.3. Как и другие стереотипы, до UML 2.4.1 «вывод» был в нижнем регистре.

«Уточнить»

«Уточнить» — это стандартный стереотип абстракции, который используется для определения отношения уточнения. между элементами модели на разных семантических уровнях, таких как анализ, проектирование и реализация. Его можно использовать для моделирования преобразований от анализа к проектированию, от проектирования к реализации и т. д. Абстракция , отображающая

, может быть или не быть вычислимой, и она может быть однонаправленной или двунаправленной.

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

Класс Customer из модели Design уточняет класс Customer из модели Analysis.

Ревизии

Определение глоссария UML 1.4.2 для уточнения было следующим:

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

Как и другие стереотипы, до версии UML 2.4.1 «уточнить» было строчными буквами.

«След»

Trace является стандартным абстракция стереотип, который в основном используется для отслеживания требований и изменений по моделям для элементов или наборов элементов, представляющих

одну и ту же концепцию в разных моделях . Таким образом, трассировка является «межмодельной» связью.

Эти зависимости трассировки/сопоставления между Модели обычно представлены зависимостями между элементами, содержащимися в моделях.

Некоторые примеры использования Trace:

  • Вариант использования в Use Case Model можно проследить до сотрудничество или пакет в соответствующей модели Design .
  • Интерфейсы и классы из Дизайн Модель можно проследить до компоненты в модели реализации .
  • Компоненты в модели реализации могут быть отслежены до артефакты в модели развертывания . Однако в этом случае альтернативой является использование специализированных проявление отношение.

Вариант использования «Вывод наличных» в модели вариантов использования отслеживается до совместной работы «Вывод наличных» в модели проектирования.

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

Ревизии

В UML 1.4.2 «трассировка» определялась почти так же, как и в текущей версии. в то время как определение глоссария для трассировки было:

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

Как и другие стереотипы, до UML 2.4.1 «след» был в нижнем регистре.


Помогите учащимся распознать и применить абстракцию

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

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

Чтобы помочь вашим учащимся продолжать развивать понимание и способность создавать абстракции, продолжайте вовлекать их в еще несколько абстракционных занятий. Одна идея может заключаться в том, чтобы начать с разделения вашего класса на группы по пять человек. Выберите фрукты, например яблоко, апельсин, банан и клубнику, и назначьте по одному фрукту каждой группе. В группах назначьте каждому ученику одно из пяти чувств: осязание, обоняние, зрение, слух и вкус. Каждый учащийся в группе должен написать абзац с описанием фруктов. Ограничение состоит в том, что какой бы смысл они ни приписывали, это единственный смысл, который они могут использовать для описания плода. Затем учащиеся могут поделиться своим описанием с группой. Студенты участвуют в создании собственной абстракции фруктов. Группы могут участвовать в более осмысленных беседах о том, что абстракция позволила им узнать о плоде, на котором они вместе сосредоточились. Аналогичное действие можно было бы проделать с картами. Всем в группе можно было назначить одну и ту же территорию, но каждый участник мог либо создать, либо просмотреть карту другого типа — например, дорожную, топографическую, тематическую и кадастровую — и затем поделиться всеми различными вещами, которые могут быть обнаружены о местности. область через абстракцию. Опять же, что-то подобное можно было бы сделать в такой игре, как Майнкрафт . Как игрок может абстрагироваться, сосредоточиться на конкретной сборке, а затем собрать все вместе, чтобы создать потрясающий биом?

Учащиеся также могут использовать картирование понятий, чтобы лучше изучить абстракцию. При отображении понятий учащимся необходимо классифицировать. Студенты берут объект или идею, а затем строят концепции. Например, ученики могут начать с любимой книги. Если начать с «Гарри Поттер », они могут создавать такие категории, как «фэнтези», «магия» и «путешествие героя». Эти категории можно расширить, включив в них такие категории, как «волшебные палочки» или «амулеты». Концептуальные карты можно создавать в аналоговой или цифровой форме с помощью таких сайтов, как Miro, MindMup, MindMeister, Canva или Popplet.

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

Великие программисты берут что-то сложное, находят простой способ работы с ним и позволяют другим работать с этим. Подумайте обо всех «простых» приложениях, которые мы используем в повседневной жизни. Выявление и использование абстракции в основных областях контента — это здорово, но для учащихся важно связать абстракцию с вычислениями. Один из способов сделать это — начать с вещей, которые им знакомы или которые они используют каждый день, например, с видеоигры или популярного приложения, такого как Google Docs. Спросите учащихся, знают ли они, как работают Google Docs. Сколько из них понимают код и программу, которая запускает Google Docs? Почему им не нужно знать тонкости программирования, чтобы создать что-то в Google Docs? Чтобы установить более четкие связи, предложите учащимся создавать свои собственные программы в Scratch или ScratchJr и еще раз спросите их, знают ли они, как работает программа, и понимают ли они код, который запускает программу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *