Adskillelse af bekymringer [ 1] er et af de grundlæggende principper for teknik . Især software engineering .
I datalogi er adskillelse af bekymringer processen med at opdele et computerprogram i funktionelle blokke, der overlapper hinandens funktioner så lidt som muligt. I et mere generelt tilfælde er adskillelsen af ansvar en forenkling af en enkelt proces til løsning af et problem ved at opdele det i interagerende processer til løsning af delopgaver.
Adskillelse af ansvar giver dig mulighed for at reducere systemkompleksiteten, øge programmernes pålidelighed og tilpasningsevne (fleksibilitet) og sikre deres genbrug .
Ethvert programmeringsparadigme handler om adskillelse af bekymringer. I tilfælde af proceduremæssig programmering - mellem procedurer og funktioner , OOP - mellem objekter , tilføjer aspektorienteret programmering aspekter til denne liste.
Designmønstre som MVC giver en adskillelse af præsentation og indhold .
Service Oriented Architecture (SOA) involverer ansvarsfordeling mellem tjenester.
Udtrykket Separation of Concerns blev første gang foreslået af Edsger Dijkstra i 1974 i artiklen "On the role of scientific thought" [2] for at beskrive processen med videnskabelig tænkning. I sin moderne betydning blev dette udtryk brugt i 1989 af Chris Reid i hans bog The Elements of Functional Programming [3] .