Separation of concerns: Difference between revisions
imported>David MacQuigg (stub article) |
mNo edit summary |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{subpages}} | {{subpages}} | ||
'''Separation of concerns''' is an engineering concept, widely used in software engineering, to separate a seemingly overwhelmingly complex problem into a set of more tractable concerns, each with its own technical solution. There will need to be careful engineering among the gateways and interfaces among the various "solution spaces". | |||
One common approach to separation, in [[telecommunications]], is between the consumer and provider of service. The key element in such separation is to understand what each side expects at their shared interface. | |||
== Examples == | |||
=== The Internet === | |||
Separation of concerns is crucial to the design of the Internet. In the Internet Protocol Suite great efforts have been made to separate concerns into well-defined layers. This allows protocol designers to focus on the concerns in one layer, and ignore the other layers. The Application Layer protocol SMTP, for example, is concerned about all the details of conducting an email session over a reliable TCP connection, but not the least concerned about how the Transport Layer protocol TCP makes that connection reliable. Similarly, TCP is not concerned about the routing of data packets, which is handled at the Internet Layer. | |||
=== The email system === | |||
Separation of concerns into two categories - administrative concerns, and process-level concerns, allows the development of simple models which facilitate better understanding of how [[Email system|email systems]] work.[[Category:Suggestion Bot Tag]] |
Latest revision as of 06:01, 17 October 2024
Separation of concerns is an engineering concept, widely used in software engineering, to separate a seemingly overwhelmingly complex problem into a set of more tractable concerns, each with its own technical solution. There will need to be careful engineering among the gateways and interfaces among the various "solution spaces".
One common approach to separation, in telecommunications, is between the consumer and provider of service. The key element in such separation is to understand what each side expects at their shared interface.
Examples
The Internet
Separation of concerns is crucial to the design of the Internet. In the Internet Protocol Suite great efforts have been made to separate concerns into well-defined layers. This allows protocol designers to focus on the concerns in one layer, and ignore the other layers. The Application Layer protocol SMTP, for example, is concerned about all the details of conducting an email session over a reliable TCP connection, but not the least concerned about how the Transport Layer protocol TCP makes that connection reliable. Similarly, TCP is not concerned about the routing of data packets, which is handled at the Internet Layer.
The email system
Separation of concerns into two categories - administrative concerns, and process-level concerns, allows the development of simple models which facilitate better understanding of how email systems work.