Разделение ответственности

07-10-2023

Разделение ответственности (Separation of Concerns, SoC)[1] — один из основополагающих принципов инженерного дела. В частности — программной инженерии.

В информатике, разделение ответственности представляет собой процесс разделения компьютерной программы на функциональные блоки, как можно меньше перекрывающие функции друг друга. В более общем случае, разделение ответственности — это упрощение единого монолитного решения задачи путём разделения на взаимодействующие решения подзадач.

Разделение ответственности позволяет снизить системную сложность, повысить надёжность и адаптивность (гибкость) программ, обеспечить возможность их повторного использования.

Любая парадигма программирования заключается в разделении ответственности. В случае процедурного программирования — между процедурами и функциями, ООП — между объектами, Аспектно-ориентированное программирование добавляет к этому списку аспекты.

Шаблоны проектирования, такие как MVC, обеспечивают Разделение представления и содержания.

Сервис-ориентированная архитектура (SOA) предполагает разделение ответственности между сервисами.

Происхождение

Термин Separation of Concerns был впервые предложен Эдсгером Дейкстрой в 1974 году в статье «On the role of scientific thought»[2] для описания процесса научного мышления. В современном значении этот термин был использован в 1989 году Крисом Ридом в его книге «Элементы функционального программирования»[3].


Примечания

  1. Этот термин также можно перевести и как «разделение сфер влияния». Слово англ. concern в юриспруденции означает «долю» или пай
  2. E.W.Dijkstra, On the role of scientific thought (EWD447)
  3. Chris Reade Elements of Functional Programming. — Addison-Wesley, April 1989. — 600 p. — ISBN 978-0201129151

Ссылки

  • Леонид Черняк. Загадка SOA «Открытые системы» 28/09/2007 № 07


Разделение ответственности.

© 2011–2023 stamp-i-k.ru, Россия, Барнаул, ул. Анатолия 32, +7 (3852) 15-49-47