Что такое абстрагирование? Метод абстрагирования и его цели. Абстракция — что это такое и как абстрактное мышление (абстрагирование) помогает увидеть суть Какое место в познании играет абстрагирование
Абстрагирование - метод научного познания в форме операции мысленного отвлечения от ряда свойств, связей и отношений исследуемого объекта, которые несущественны для решения поставленных задач. Операция отвлечения равносильна операции выделения в объекте существенных свойств, связей и отношений. Результат процесса абстрагирования называют абстракциями (с лат. - отвлечение) или абстрактными предметами.
Разовый цикл абстрагирования носит двухступенчатый характер. На первой ступени абстрагирования определяются несущественные свойства и связи, которыми можно пренебречь, отделить существенное от несущественного, вычленить наиболее важное и интересное для исследователя. Объективным основанием для такого вычленения является относительная независимость или пренебрежимо слабая зависимость изучаемых явлений и их составляющих от определенных факторов.
Подготовка акта абстрагирования (отвлечения) состоит, во-первых, в установлении того, что является общим для многих предметов определенного класса. Так, например, подготовка к формированию абстракции «живое существо» требует обнаружения общего для всех живых существ и в то же время отличающего их от неживых объектов. Таким свойством является способность к обмену веществ. Для абстракции «человек» общим и существенным будут отличительные признаки сознательного отражения среды; для всех существующих товаров, которые могут обмениваться друг на друга, будет понятие меновой стоимости и т.д.
Во-вторых, в установлении независимости или пренебрежимо слабой зависимости изучаемых явлений от определенных факторов. Так, для решения задачи о моменте встречи движущихся друг к другу автомобилей отвлекаются от географического расположения исходных пунктов движения. Здесь важно только расстояние. Решающий задачу отвлечется от марки автомобилей, их масс и вообще от автомобиля, заменив их точками на отрезке пути, поскольку для решения задачи нужна только скорость. Более того, любые задачи окажутся неразрешимыми без процесса абстрагирования.
Вторая ступень абстрагирования, в собственном смысле акт отвлечения, состоит в замещении исследуемого объекта другим, эквивалентным, менее богатым по свойствам, выступающим в качестве «модели» первого. Так, в рассмотренном выше примере задача с автомобилями замещается схемой движения двух точек, которая упрощает исследуемое явление и позволяет рассмотреть процесс в «чистом» виде.
Операция абстрагирования может применяться многократно как к реальным, так и абстрактным объектам. Переходя от одного уровня абстрагирования к другому, постепенно отвлекаясь от ряда свойств получают (в зависимости от задачи) абстракции все возрастающей степени общности, Так, например, отвлекаясь от множества свойств конкретного человека, можно построить абстрактную цепочку: мужчина - человек - живое существо - материальный объект - биологическая форма материи - материя. Как видно, высшие формы абстракции - это философские категории и их системы.
Исходя из различия целевых характеристик, в современной науке наиболее широкое применение находят абстракции следующих основных типов:
1. Изолирующая абстракция. Предполагает выделение свойств и отношений, присущих тому или иному предмету, мысленное отделение этих свойств и отношений от самого предмета, придание им статуса самостоятельного существования. Примерами таких абстрактных предметов могут служить понятия: растворимость, устойчивость надежность, красота, простота, белизна и т.д.
2. Обобщающая абстракция. Здесь отвлекаются от индивидуальных особенностей и черт предметов с выделением таких их общих признаков, которые позволяют вводить в рассмотрение классы предметов. Так, используемые в металлообработке резцы, сверла, фрез протяжки, напильники, ножовки и т.п. с помощью обобщающей абстракции образуют понятие класса «металлорежущий инструмент».
3. Абстракция потенциальной осуществимости, при которой отвлекаются от реальных границ конструктивных возможностей человеческого сознания, связанных с ограниченностью жизни человека в пространстве и времени. С этой точки зрения бесконечность выступает уже не как непосредственно данная, актуальная, а как потенциально осуществимая. Эта абстракция лежит в основе конструктивной математики, теории алгоритмов, абстрактных автоматов и других теорий.
4. Абстракция как продукт идеализации, образованная посредством предельного абстрагирования от свойств реальных предметов. Полученные абстракции (идеализированные объекты) широко распространены в науке: точка, прямая, инерция, точечный электрический заряд, абсолютно черное тело, несжимаемая жидкость, сплошная среда, идеальный газ. Идеализированные объекты составляют важный арсенал понятий научного знания, без которого оно функционировать не может.
Система абстракций образует научный язык, посредством которого формируются и формулируются понятия: научный факт, научная проблема, научная идея, научная гипотеза, научный закон, научная теория.
Абстрагирование (этот термин произошел от латинского слова abstractio, что обозначает отвлечение) определяет взгляд на ситуацию, человека или предмет с отстраненной точки восприятия. Таким образом, происходит отвлечение от конкретики и способность оценить ситуацию вообще. Понятие абстрагирования сыграло важнейшую роль в развитии множества наук.
Абстрагирование - пример
Любое абстрагирование требует двух действий: первое – это мелких и незначительных деталей, второе – сосредоточение внимания на явлении в общем и важных, значимых деталях.
Например, для того, чтобы изучить движение, сначала отбрасывают криволинейное движение во всех его разновидностях, затем – ускоренное движение, и в итоге для рассмотрения остается наиболее чистая и простая его форма, отражающая саму его суть. Таким образом, абстрагирование являет собой тенденцию фокусировки на идеальных условиях.
Не смотря на то, что это кажется элементарным, именно абстрагирование позволило вычленить и изучить важнейшие понятия – скорость, время, расстояние и т.д. Отсюда получаем, что абстрагирование - метод познания.
Этот метод позволяет отбросить менее значимое, вторичное, и сконцентрироваться на важнейшем. Не секрет, что в жизни человека нередко возникают ситуации, в которых важно определиться с главным направлением и не растрачивать силы попусту, распыляясь по мелочам. Определиться с этим первостепенным делом и поможет абстрагирование. Абстрагирование и конкретизация
У каждого понятия есть и своя противоположность. Абстрагирование и конкретизация – это как взгляд вблизи и издали. Стоя близко, вы рассмотрите все в мелочах (конкретизация), а стоя далеко, вы сможете оценить понятие в целом, не отвлекаясь на мелочи (абстрагирование). Таким образом, это два противоположных понятия.
Это легко проиллюстрировать примером. Если вы говорите «я буду худеть» - это абстракция. А если вы говорите «Я откажусь от сладкого и буду делать утренние пробежки» - это уже конкретика.
Метод абстрагирования и его цели
Абстрагирование в психологии и других науках позволяет достичь целого спектра целей, которые помогают более глубоко познать сущность явления, предмета или человека. Этот аналитический метод позволяет отбросить ряд конкретных ситуаций и взглянуть в целом, благодаря чему достигаются следующие цели:
Использовать абстрагирование можно в самых разных ситуациях. Отдаляясь от незначащих деталей, гораздо проще сконцентрироваться на самой сути интересующего явления.
Абстрагирование (abstractio - отвлечение) - положение фокуса внимания человека, взгляд на ситуацию (человека, премет и пр.) из третьей позиции восприятия , постановка себя вне ситуации, над ситуацией. Абстрагирование осуществляется в два приема: с одной стороны, отвлекается от мелких, незначительных деталей, с другой стороны - концентрируется на более общих и более важных вещах.
Как метафора: можно рассматривать предмет вблизи - и будет заметно много маленьких деталей, а если предмет поставить подальше - мелкие детали видны не будут, но зато проще рассмотреть общие очертания и форму предмета.
Результат абстрагирования называется .
Понятийный ряд
Абстрагирование наоборот - это . Если абстракция - это удаление от изучаемого предмета, то конкретизация - это наоборот: приближение и выделение мельчайших деталей.
Например: Буду вести здоровый образ жизни - общие слова и абстракция.
Буду делать зарядку 15 минут в день и обливаться каждый день холодной водой - это конкретика.
Цели абстрагирования:
- Отождествление, поиск общих черт . В этом случае из фокуса внимания выпадают те признаки, которые отличают один предмет (ситуацию, человека) от другого, а внимание сосредотачивается на том, что есть общего между ними.
- Обобщение и систематизация . В этом случае наоборот, в фокус внимания попадают ключевые отличия, по которым можно разделить предметы на независимые и легко отличимые друг от друга группы. Например, у меня есть конкретная цель на день, но в месяце 30 дней и если обощить цель на каждый день - я получаю цель на месяц. Из месяцев складывается год - обобщим цели на месяц получаем цели на год и так далее.
- Четкость и конкретика формулировок. В этом случае в фокусе внимания определенное понятие - и только то, что оно обозначает. Все остальное - оказывается за пределами внимания. Например, если я говорю слово «рост» - я имею ввиду только процесс количественных изменений, когда я говорю «развитие» - строго процесс качественных изменений. В этом случае задача абстрагирования разделить понятия: что обозначает что и где границы одного понятия, где - другого.
- Создание образца. Если меня интересует определенное качество предмета, которое я беру за отправную точку, я сознательно выделяю его и довожу, утрируя, до «чистоты эквивалента». То есть я заведомо знаю, что в реальном мире такое качество существовать в чистом виде не может - но я сознательно ввожу его для того, чтобы был образец (или отправная точка, от чего исходим). Например, Евклид положил в основу своей геометрии первичные термины «точка», «прямая» и «плоскость», которых, в том смысле как их понимал Евклид, нет в реальном мире.
Зачем нужно абстрагирование
Определение целей на жизнь
По жизни абстрагирование помогает задать общее направление, в рамках которого уже можно формулировать конкретные цели. Например, человек определяет для себя общее направление жизни (см. способы человеческой жизни) - а чем он будет заниматься - это уже вторично. Проще и правильнее начинать с выбора общего направления, а завершать конкретикой до мелочей и деталей.
Формирование эмоциональных состояний
Например абстрагироваться от сказки и жить реальностью , когда это необходимо или наоборот.
Наименование параметра | Значение |
Тема статьи: | Абстрагирование |
Рубрика (тематическая категория) | Программирование |
ОБЪЕКТНАЯ МОДЕЛЬ
Объектно-ориентированный подход основывается на совокупности ряда принципов, называемой объектной моделью .
Главными принципами являются: абстрагирование, инкапсуляция, модульность, иерархичность. Главные они в том смысле, что без них модель не будет объектно-ориентированной.
Кроме главных, назовем еще три дополнительных принципа: типизация, параллелизм, сохраняемость. Называя их дополнительными, мы имеем в виду, что они полезны в объектной модели, но не обязательны.
Люди развили чрезвычайно эффективную технологию преодоления сложности. Мы абстрагируемся от нее. В случае если мы не в состоянии полностью воссоздать сложный объект, то приходится игнорировать не чересчур важные детали. В результате мы имеем дело с обобщенной, идеализированной моделью объекта.
К примеру, изучая процесс фотосинтеза у растений, мы концентрируем внимание на химических реакциях в определенных клетках листа и не обращаем внимание на остальные части – черенки, жилки и т.д.
Абстракция – совокупность существенных характеристик некоторого объекта͵ которые отличают его от всех других видов объектов и, таким образом, четко определяют особенности данного объекта с точки зрения дальнейшего рассмотрения и анализа.
Абстрагирование – процесс выделения абстракций в предметной области задачи.
Абстрагирование концентрирует внимание на внешних особенностях объекта и позволяет отделить самые существенные особенности поведения от несущественных. Такое разделение смысла и реализации называют барьером абстракции . Установление того или иного барьера абстракции порождает множество различных абстракций для одного и того же предмета или явления реального мира. Абстрагируясь в большей или меньшей степени от различных аспектов проявления реальности, мы находимся на разных уровнях абстракции .
Для примера рассмотрим системный блок компьютера. Пользователю, использующему компьютер для набора текста͵ не важно, из каких частей состоит данный блок. Стоит сказать, что для него это – коробка с кнопками и возможностью подсоединения внешних запоминающих устройств. Он абстрагируется от таких понятий, как ʼʼпроцессорʼʼ или ʼʼоперативная памятьʼʼ. С другой стороны, у программиста͵ пишущего программы на языках низкого уровня, барьер абстракции лежит намного ниже. Ему крайне важно знать устройство процессора и команды, понимаемые им.
Является полезным еще один дополнительный принцип, называемый принципом наименьшего удивления . Согласно ему абстракция должна охватывать все поведение объекта͵ но не больше и не меньше, и не привносить сюрпризов или побочных эффектов, лежащих вне ее сферы применимости.
Все абстракции обладают как статическими, так и динамическими свойствами. К примеру, файл как объект требует определенного объёма памяти на конкретном устройстве, имеет имя и содержимое. Эти атрибуты являются статическими свойствами. Конкретные же значения каждого из перечисленных свойств динамичны и изменяются в процессе использования объекта: файл можно увеличить или уменьшить, изменить его имя и содержимое.
Будем называть клиентом любой объект, использующий ресурсы другого объекта͵ называемого сервером . Мы будем характеризовать поведение объекта услугами, которые он оказывает другим объектам, и операциями, которые он выполняет над другими объектами. Этот подход концентрирует внимание на внешних проявлениях объекта и реализует так называемую контрактную модель программирования . Эта модель состоит в следующем: внешнее проявление объекта рассматривается с точки зрения его контракта с другими объектами, в соответствии с этим должно быть выполнено и его внутреннее устройство (часто – во взаимодействии с другими объектами). Контракт фиксирует все обязательства, которые объект-сервер имеет перед объектом-клиентом. Другими словами, данный контракт определяет ответственность объекта – то поведение, за ĸᴏᴛᴏᴩᴏᴇ он отвечает.
Каждая операция, предусмотренная контрактом, однозначно определяется ее сигнатурой – списком типов формальных параметров и типом возвращаемого значения (в языке С++ тип возвращаемого значения не является частью сигнатуры). Полный набор операций, которые клиент может осуществлять над другим объектом, вместе с правильным порядком, в котором эти операции вызываются, принято называть протоколом . Протокол отражает все возможные способы, которыми объект может действовать или подвергаться воздействию. Тем самым протокол полностью определяет внешнее поведение абстракции.
Пример.
Размещено на реф.рф
В тепличном хозяйстве, использующем гидропонику, растения выращиваются на питательном растворе без песка, гравия и другой почвы. Управление режимом работы парниковой установки – очень ответственное дело. Оно зависит как от вида выращиваемых культур, так и от стадии выращивания. Нужно контролировать целый ряд факторов: температуру, влажность, освещение, кислотность и концентрацию питательных веществ. В больших хозяйствах для решения этой задачи часто используют автоматические системы, которые контролируют и регулируют указанные факторы. Цель автоматизации состоит здесь в том, чтобы при минимальном вмешательстве человека добиться соблюдения режима выращивания.
Одна из ключевых абстракций в данной задаче – датчик . Известно несколько разновидностей датчиков. Все, что влияет на урожай, должно быть измерено. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, нужны датчики температуры воды, температуры воздуха, влажности, кислотности, освещения и концентрации питательных веществ.
С внешней точки зрения датчик температуры - ϶ᴛᴏ объект, который способен измерять температуру там, где он расположен. Температура - ϶ᴛᴏ числовой параметр, имеющий ограниченный диапазон значений и определенную точность и означающий число градусов по Цельсию.
Местоположение датчика - ϶ᴛᴏ неĸᴏᴛᴏᴩᴏᴇ однозначно определенное место в теплице, температуру в котором крайне важно знать. Таких мест, вероятно, немного. Для датчика температуры при этом существенно не само местоположение, а только то, что данный датчик расположен именно в данном месте.
Рассмотрим элементы реализации нашей абстракции на языке С++.
typedef float Temperature; // Температура по Цельсию
typedef unsigned int Location; // Число, однозначно определяющее
// положение датчика
Здесь два оператора определения типов Temperature и Location вводят удобные псевдонимы для простейших типов, и это позволяет нам выражать свои абстракции на языке предметной области. Temperature - ϶ᴛᴏ числовой тип данных в формате с плавающей точкой для записи температур.
Размещено на реф.рф
Значения типа Location нумеруют места͵ где могут располагаться температурные датчики.
Рассмотрим обязанности датчика температуры. Датчик должен знать значение температуры в своем местонахождении и сообщать ее по запросу. Клиент по отношению к датчику может выполнить такие действия: калибровать датчик и получать от него значение текущей температуры. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, объект ʼʼДатчик температурыʼʼ имеет две операции: ʼʼКалиброватьʼʼ и ʼʼТекущая температураʼʼ.
struct TemperatureSensor { // Датчик температуры
Temperature curTemperature; // текущая температура в
// местонахождении датчика
Location loc; // местонахождение датчика
void calibrate(Temperature actualTemperature); // калибровать
Temperature currentTemperature(); // текущая температура
Данным описанием вводится новый тип TemperatureSensor. Важным здесь является то, что, во-первых, данные и функции, изменяющие их, объединены вместе в одном описании, и, во-вторых, мы не работаем непосредственно с данными, а только посредством соответствующих функций. В частности, здесь мы использовали так называемые set- и get-функции , соответственно устанавливающие и возвращающие значения переменных (calibrate – set-функция, currentTemperature – get-функция).
Объекты данного типа вводятся аналогично тому, как и переменные стандартных типов:
TemperatureSensor TSensors; // массив из ста объектов типа
// TemperatureSensor
Функции, объявленные внутри описания, называются функциями-членами . Их можно вызывать только для переменной соответствующего типа. К примеру, калибровать датчик можно так:
TSensors.calibrate(20.); // калибруется датчик номер 3
Поскольку имя объекта͵ для которого вызывается функция-член, неявно ей передается, в списках аргументов функций отсутствует аргумент типа TemperatureSensor, задающий конкретный датчик, над которым производятся действия. К этому объекту внутри функции можно явно обратиться по указателю this. К примеру, в теле функции calibrate можно написать один из двух эквивалентных операторов
this -> curTemperature = actualTemperature;
Центральной идеей абстракции является понятие инварианта. Инвариант - ϶ᴛᴏ неĸᴏᴛᴏᴩᴏᴇ логическое условие, значение которого (истина или ложь) должно сохраняться. Для каждой операции объекта можно задать предусловия (ᴛ.ᴇ. инварианты, предполагаемые операцией) и постусловия (ᴛ.ᴇ. инварианты, которым удовлетворяет операция).
Рассмотрим инварианты, связанные с операцией currentTemperature. Предусловие включает предположение, что датчик установлен в правильном месте в теплице, а постусловие – что датчик возвращает значение температуры в градусах Цельсия.
Изменение инварианта нарушает контракт, связанный с абстракцией. В случае если нарушено предусловие, то клиент не соблюдает свои обязательства и сервер не может выполнить задачу правильно. В случае если нарушено постусловие, то свои обязательства нарушил сервер, и клиент не может ему больше доверять.
Для проверки условий язык С++ предоставляет ряд специальных средств.
В случае нарушения какого-либо условия следует сгенерировать исключительную ситуацию (исключение) . Объекты могут генерировать исключения, чтобы запретить дальнейшее выполнение операции и предупредить о проблеме другие объекты, которые в свою очередь могут принять на себя перехват исключения и справиться с проблемой. Причиной такого разделения является то, что объект-сервер, обнаруживший ошибку, может не знать, что предпринимать для ее исправления, а объект-клиент может знать, что делать, но не уметь определить место возникновения.
С++ имеет специальный механизм обработки исключений, чувствительный к контексту. Контекстом для генерации исключения является блок try (пробный блок). В случае если при выполнении операторов, находящихся внутри блока try, происходит исключительная ситуация, то управление передается обработчикам исключений, которые задаются ключевым словом catch и находятся ниже блока try. Синтаксически обработчик catch выглядит подобно функции с одним аргументом без указания типа возвращаемого значения. Для одного блока try должна быть задано несколько обработчиков, отличающихся типом аргумента.
try{ // пробный блок
catch(char * error){. . .} // имя аргумента используется в обработчике
catch(int){. . .} // имя аргумента не используется в обработчике
catch(…){. . .} // обрабатываются все исключения
Исключение генерируется посредством указания ключевого слова throw с необязательным аргументом-выражением.
Исключение будет обработано посредством вызова того обработчика catch, тип параметра которого будет соответствовать типу аргумента throw. При поиске подходящего обработчика все обработчики просматриваются в порядке их записи.
При наличии вложенных блоков try (к примеру, из-за вложенности вызовов функций) будет использован обработчик самого глубокого блока. В случае если обработчика, соответствующего типу аргумента throw, на данном уровне не будет найдено, будет осуществлен выход из текущей функции (с уничтожением всех локальных объектов) и поиск в блоке try с меньшей глубиной вложенности и т.д. После обработки исключения управление передается на оператор, следующий за описаниями обработчиков catch.
Пример.
Размещено на реф.рф
Рассмотрим стек, реализованный с использованием массива фиксированной длины.
int stack ; // не более ста элементов в стеке
int top=0; // номер доступного места для помещения элемента
void push(int el) {
if(top = = 100) throw 1; // проверить на переполнение
// (предусловие top < 100)
else stack = el; // поместить элемент в стек
if(top = = 0) throw 0; // проверить на пустоту
// (предусловие top > 0)
else return stack[--top]; // извлечь элемент из стека
try{ // пробный блок
if(i!=k) throw 2; // нарушено постусловие
catch(int error){. . .} // если error = 0, то стек пуст;
// если error = 1, то стек полон; если error = 2, то стек неработоспособен
В примере аргументом throw является целое число – ʼʼномер исключенияʼʼ. В сложных программах разрабатываются специальные типы для исключений, позволяющие передать в обработчик исключения больше информации.
Абстрагирование - понятие и виды. Классификация и особенности категории "Абстрагирование" 2017, 2018.
Познание – важная составляющая жизни человека. Человек познает мир вокруг, чувства, саму жизнь. Издревле люди стремились познать природу, космос, любые явления жизни на Земле.
Человека интересует все – лепестки цветка, птица, порхающая на небе, волны океана, другие планеты. Стремление к познанию – это естественное качество человека.
Стремление познавать мир подвигло человечество к созданию все новых и новых орудий труда и предметов быта. Стремление к познанию привело к созданию и развитию цивилизации.
Процесс познания не был бы столь интересным без абстрагирования. С помощью абстрагирования древние люди стремились увидеть со стороны Землю и космос, а также роль человечества в этом мире.
Абстрагирование в повседневной жизни
Абстрагирование позволяет человеку увидеть со стороны не только происходящие события и окружающую действительность, но и себя. Дает увидеть свои действия и свое поведение с другого ракурса, помогает понять свои устремления и причины тех или иных поступков.
Абстрагироваться – значит, увидеть реальность в качестве зрителя, ощутить себя вне всех событий. При таком подходе снимается эмоциональная зависимость от происходящего. Человеку открываются новые грани, которые он раньше не замечал.
При абстрагировании проблема предстает в ином свете. Становится возможным увидеть ситуацию со всех сторон. И поэтому приходит понимание того, почему это произошло, и как эту ситуацию исправить.
Например, возникла трудная ситуация, которую срочно нужно разрешить. Человек, вовлеченный в проблему, не видит возможные пути решения. Он думает, что находится в тупике. Абстрагировавшись от проблемы, человек поймет, как надо поступить в этой ситуации.
Роль абстрагирования
Абстрагирование помогает человеку в полном объеме познать себя, мир, и все, что ему интересно. И главное – абстрагирование позволяет познать суть жизни на Земле, тайну мироздания, познать собственную роль в этой жизни.
Абстрагирование как сознательный процесс познания и самопознания присущ человеку, осознавшему себя личностью. С другой стороны, маленькие дети тоже иногда рассказывают о себе с третьего лица, как будто наблюдают за собой со стороны. Возможно, для детей процесс абстрагирования является неосознанным. И в какой-то степени для них это механизм самозащиты.
Таким образом, абстрагирование для человека – ключевое свойство познания мира и жизни. Оно позволяет наиболее полно познать реальность. И это свойство заложено в человеке самой природой.