Абстракция ( «отвлечение»Локшина С. М. Краткий словарь иностранных слов. — 7-е изд. — М.: «Советская энциклопедия», 1984. — 384 с. С. 10—11.) в программной инженерии и информатике — это: Процесс удаления или обобщения физических, пространственных или временных деталей или характеристик при изучении объектов или систем с целью сосредоточения внимания на более важных деталях; он схож по своей природе с процессом обобщения; Создание абстрактных понятий-объектов путем отражения общих особенностей или характеристик различных неабстрактных объектов или исследуемых систем, а также результат процесса абстракции.

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

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

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

применение типов данных для обеспечения абстракции данных для отделения их использования от рабочих представлений структур данных в программах; понятие процедур, функций или подпрограмм, которые представляют собой определенный способ реализации потока управления в программах; правила, обычно называемые «абстракцией», которые обобщают выражения с использованием свободных и связанных переменных в различных версиях лямбда-исчисления; использование S-выражений в качестве абстракции структур данных и программ на языке программирования Lisp; процесс выведения общего поведения в абстрактные классы в объектно-ориентированных языках программирования.

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

В объектно-ориентированном программировании (ООП) термин «абстракция» используется как сокращение от «абстракция данных», но не следует путать последнее с абстрактным типом данных — в ООП под этим понимается наследование классов.

См. также Абстрактный тип данных Абстракция функций Уровень абстракции

Примечания

Категория:Парадигмы программирования Категория:Управление данными Категория:Абстракция