Az aggodalmak szétválasztása [ 1] a tervezés egyik alapelve . Különösen a szoftverfejlesztés .
A számítástechnikában az aggályok szétválasztása az a folyamat, amikor egy számítógépes programot olyan funkcionális blokkra osztanak, amelyek a lehető legkevésbé fedik át egymás funkcióit. Általánosabb esetben a felelősségek szétválasztása egyetlen problémamegoldási folyamat leegyszerűsítése azáltal, hogy a részfeladatok megoldását szolgáló, kölcsönhatásban álló folyamatokra osztják fel.
A felelősségi körök szétválasztása lehetővé teszi a rendszer összetettségének csökkentését, a programok megbízhatóságának és alkalmazkodóképességének (rugalmasságának) növelését, valamint azok újrafelhasználásának biztosítását .
Minden programozási paradigma az aggodalmak szétválasztásáról szól. Procedurális programozás esetén - eljárások és függvények között , OOP - objektumok között , az Aspect-Oriented Programming szempontokat ad hozzá ehhez a listához.
Az olyan tervezési minták , mint az MVC , elválasztják a prezentációt és a tartalmat .
A szolgáltatásorientált architektúra (SOA) magában foglalja a szolgáltatások közötti felelősségmegosztást.
A Separation of Concerns kifejezést először Edsger Dijkstra javasolta 1974-ben „A tudományos gondolkodás szerepéről” [2] című cikkében a tudományos gondolkodás folyamatának leírására. Modern értelmében ezt a kifejezést Chris Reid használta 1989-ben The Elements of Functional Programming [3] című könyvében .