Definition
In software, an abstraction provides access while hiding details that otherwise might make access more challenging. It focuses attention on details of greater importance. Examples include the abstract data type which separates use from the representation of data and functions that form a call tree that is more general at the base and more specific towards the leaves.
Related concepts
Abstract data typeAbstract interpretationAbstraction inversionAbstraction layerAbstraction principle (computer programming)AdjudicationAgile software developmentAlgorithmAphorismAspect-oriented programmingAssembly languageBackward compatibilityBinary search treeBoilerplate codeBusiness process modelingC++CI/CDC (programming language)Capability Maturity Model IntegrationCasting out ninesClass (computer science)ClojureCognitive dimensionsCommon LispCommon Lisp Object SystemCompatibility layerCompatibility modeCompile timeComponent-based software engineeringComputer compatibilityComputer configurationComputer engineeringComputer languageComputer programmingComputer scienceControl flowData (computer science)Data modelData modelingData typeDatabase administratorDatabase management systemDecomposition (computer science)Delegation (object-oriented programming)DesignDevOpsDomain-specific languageDomain analysisEmpirical software engineeringEncapsulation (object-oriented programming)Enterprise architectureEnterprise unified processEntity–relationship modelEssential systems analysisExecutable UMLExperimental software engineeringExtreme programmingFirst-generation programming languageForeign function interfaceFormal methodsFormal semantics of programming languagesFormal specificationForward compatibilityFree On-line Dictionary of ComputingFunction (computer programming)Function modelFunctional programmingFunctional specificationGNU Free Documentation LicenseGeneric programmingGerald Jay SussmanGreenspun's Tenth RuleGreenspun's tenth ruleHal AbelsonHash tableHaskellHeuristic (computer science)High-level programming languageHigher-order functionIDEFISO/IEC 15504Incremental build modelIndirectionInformation modelInformation scienceInheritance (object-oriented programming)Integer (computer science)Iterative and incremental developmentJava (programming language)Joel SpolskyJohn GuttagJulie SussmanLambda abstractionLeaky abstractionLegacy analysisLinker (computing)Lisp (programming language)List (computing)List of Lisp-family programming languagesList of abstractions (computer science)Loader (computing)Luciano FloridiMachine languageMacro (computer science)Meta-analysisMetaOCamlMetamodelingMetaprogrammingMethod overloadingModel-driven engineeringModel checkingModel of computationModeling languageModeling languagesModular arithmeticModular programmingName bindingOCamlObject-oriented analysis and designObject-oriented designObject-oriented programmingObject (computer science)Object PascalObject modelOntology (information science)Pascal (programming language)Physical data independencePolymorphism (computer science)Program refinementProgramming languageProgramming paradigmProject managementPython (programming language)Rapid application developmentRequirements engineeringReserved wordRice's theoremRisk managementRound-trip engineeringRun time (program lifecycle phase)Scala (programming language)Scheme (programming language)Scripting languageScrum (software development)Search-based software engineeringSecond-generation programming languageSelf (programming language)Service-oriented architectureSite reliability engineeringSocial software engineeringSoftwareSoftware archaeologySoftware architectureSoftware artifactSoftware componentSoftware configuration managementSoftware deploymentSoftware designSoftware design patternSoftware development processSoftware engineeringSoftware incompatibilitySoftware maintenanceSoftware modelingSoftware prototypingSoftware qualitySoftware quality assuranceSoftware systemSoftware testingSoftware verification and validationSource codeSpecification languageSpiral modelState (computer science)Structured analysisStructured programmingSubroutineSyntax (programming languages)Systematic reviewSystems analysisSystems designSystems development life cycleSystems engineeringSystems modelingSystems modeling languageTemplate HaskellThird-generation programming languageTranslator (computing)Undecidable problemUnified Modeling LanguageUnified processUniversal Systems LanguageUsabilityV-model (software development)View (database)View modelWaterfall model
5 concepts already in your glossary