Rozdzielenie obaw

Oddzielenie obawy (lub rozdzielenia obowiązków ), tłumaczenie koncepcji teoretycznej komputera separacji obawy ( SoC ) w języku angielskim , to konstrukcja zasada celu segmentacji programu komputerowego na kilka części, dzięki czemu każdy z nich izoluje i zarządza specyficzny aspekt ogólnego problemu. Jest to powszechnie uznana dobra praktyka stosowana w inżynierii oprogramowania .

Problemem (angielski koncern ) jest zbiorem informacji i obowiązków (zabiegi dotyczące informacji), które wchodzi w grę w kodzie programu komputerowego. Pojęcie problemu może konkretnie obejmować bardzo zróżnicowane aspekty informatyczne w dowolnej skali.

Program, który zawiera zasady separacji problemów, jest często nazywany programem modułowym , ponieważ rozdziela swój kod na różne moduły (niezależnie od konkretnej implementacji tych modułów). Modułowość, a tym samym oddzielenie problemów, osiąga się poprzez hermetyzację informacji w sekcji kodu, która ma dobrze zdefiniowany interfejs . Hermetyzacja kodu w modułach powoduje ukrycie informacji . Warstwowy architektury systemów informacyjnych stanowi kolejny przykład wykonania oddzielenie dotyczy (na przykład w trójwarstwowej architektury  : warstwy prezentacji, przetwarzanie warstwowej znanej jako warstwa usług, i warstwą dostępu do usług danych.).

Stosowanie zasady separacji zagadnień upraszcza tworzenie i obsługę programów komputerowych. Gdy obawy są ściśle i wyraźnie oddzielone, różne części kodu mogą być ponownie wykorzystywane, rozszerzane lub modyfikowane niezależnie od innych, co poprawia łatwość utrzymania i bezpieczeństwo bazy kodu. Umożliwia to również ingerencję w część kodu bez konieczności posiadania wiedzy na temat innych części.

Wdrożenia

Prawie wszystkie paradygmaty programowania zapewniają narzędzia do oddzielenia problemów. Na przykład języki zorientowane obiektowo, takie jak C # , C ++ , Delphi lub Java, mogą rozdzielać zagadnienia na obiekty lub klasy . Wzorce projektowe aplikacji ( wzorzec projektowy ), takie jak MVC czy MVP, pozwalają w skali makroskopowej oddzielić treść problemów, prezentację i przetwarzanie danych. Service Oriented Architecture ( SOA ) może być również traktowany jako oddzielenie realizacji dotyczy, na jeszcze wyższym poziomie abstrakcji . Te języki proceduralne , takie jak C i Pascala , można oddzielić obawy procedur lub funkcji . Programowanie aspektowe może oddzielić dotyczy aspektów i obiektów. Języki funkcyjne często używają funkcji pogrupowanych w moduły.

Poza dziedziną IT

Zasada oddzielenia obaw jest owocna i mogłaby zostać uogólniona i zastosowana do innych praktyk koncepcyjnych poza dziedziną informatyki, takich jak urbanistyka , architektura czy projektowanie informacji . Celem jest lepsze zrozumienie, projektowanie i zarządzanie złożonymi i współzależnymi systemami, tak aby część przetwarzania informacji mogła zostać wyodrębniona do różnych celów: optymalizacji , zabezpieczania, ponownego wykorzystania , debugowania .

Zobacz też

Uwagi i odniesienia

  1. „  The Separation of Concerns  ” na www.consyst.com (dostęp: 16 maja 2018 )
  2. Ivan Logre „  Zachowanie separacji obawy podczas integracji w systemach heterogenicznych domenach oprogramowania  ”, Université Lazurowe Wybrzeże ,1 st wrzesień 2017( czytaj online , sprawdzono 16 maja 2018 r. )