Difference between abstraction layers and modularisation

In summary: abstraction helps in understanding how the various layers work together, while modularisation helps in creating separate, independent pieces that can be worked on/improved independently.
  • #1
JC2000
186
16
TL;DR Summary
I am having trouble understanding why the OSI model for networks is an example of abstraction levels and not an application of modularisation. This course (https://www.coursera.org/learn/iot/lecture/3JfWa/lecture-2-2-protocols) referred to OSI as 'layers of abstraction', so did the wikipedia page on 'abstraction layer'.
I understand abstraction to be the process of representing a system, concept or process in simple terms, leaving out finer details which may obfuscate the bigger picture.

My understanding of layers of abstraction is that it refers to different depths of understanding of a concept where each 'level' of understanding helps in performing a specific task. For instance, knowing that meaning of the play and pause button in a video player application is enough for the purpose of playing a video. Whereas an understanding of how video is stored in terms of digital signals would be required if one had to design a program to compress a video.

My understanding of modularisation is that it is a concept used to break a complex process/ system into simpler chunks which can be understood and developed independently. So a software application can be split into various modules such as the GUI, data storage, plugins etc. This allows each different module to be coded separately and makes the development process simpler.

Thus, it seems to me that breaking network protocols into different parts (parts for routing, flow control, arbitration etc) is an instance of modularisation. However it seems this is not the case. I would be grateful if you could tell me where my understanding of modularisation and abstraction goes off the rails.

Thank you for your time!
 
Technology news on Phys.org
  • #2
JC2000 said:
My understanding of modularisation is that it is a concept used to break a complex process/ system into simpler chunks which can be understood and developed independently.
Yes.
JC2000 said:
Thus, it seems to me that breaking network protocols into different parts (parts for routing, flow control, arbitration etc) is an instance of modularisation.
The seven layers of the OSI model aren't separate chunks that are independent of each other. From the lowest layer, Physical Layer 1, on up to the highest layer, Application Layer 7, each level higher is an increased abstraction. Each layer at a given level serves the layer above it, and is served by the layer below it.

See https://en.wikipedia.org/wiki/OSI_model.
 
  • Like
  • Informative
Likes hmmm27, JC2000 and berkeman
  • #3
To cite Andrew Tanenbaum: The OSI model is excellent for explaining the concept of network layers, but is almost impossible to implement. The TCP/IP model is useless for explaining the concept of network layers, but it is simple to implement.

Another comment, also from Tanenbaum: The seven layers were a sort of a political compromise. Some of the layers were so complex that they had to be split into sublayers (e.g. the Data Link layer was usually designed with the upper link layer on top of the MAC layer) and some were mostly empty (e.g the Presentation Layer)
 
  • Like
Likes JC2000
  • #4
Personally I am not a big fan of this kind of fancy definitions, I think it is much more important to understand why the layers exist and what is their role in the communication.
But I would tend to agree that it is an "abstraction" concept. For example transport layer doesn't need to care about routing of packets through the network. It relies on network layer to take care of it and doesn't need to know the underlying details. The network connectivity is abstracted to transport layer (e.g. TCP) by network layer (e.g. IP). In general, each layer is abstracting some mechanism to the upper layer, all together making a stack.
 
  • #5
Svein said:
The TCP/IP model is useless for explaining the concept of network layers
I think "useless" is too strong word. TCP/IP just merges the three uppermost layers into single application layer, which totally make sense for most typical network applications.
 
  • #7
Mark44 said:
The seven layers of the OSI model aren't separate chunks that are independent of each other. From the lowest layer, Physical Layer 1, on up to the highest layer, Application Layer 7, each level higher is an increased abstraction. Each layer at a given level serves the layer above it, and is served by the layer below it.

See https://en.wikipedia.org/wiki/OSI_model.

I see! Makes sense now! Thanks!
 
  • Like
Likes berkeman
  • #8
JC2000 said:
Thus, it seems to me that breaking network protocols into different parts (parts for routing, flow control, arbitration etc) is an instance of modularisation. However it seems this is not the case. I would be grateful if you could tell me where my understanding of modularisation and abstraction goes off the rails.
Indeed, there are some similarities, but abstraction is kind of a vertical, while modularisation is rather a horizontal approach.
 
  • #9
Rive said:
Indeed, there are some similarities, but abstraction is kind of a vertical, while modularisation is rather a horizontal approach.

You mean abstraction is vertical in the sense that a single concept can be understood at different depths and modularisation is horizontal in the sense that a system can be sliced into different parts, each independent of the other?
 
  • #10
Exactly.
 
  • Like
Likes JC2000
  • #11
When software is modularized, is in broken into several independently compiled and testable modules. Each module has a defined interface that describes how it is used by other modules. This is primarily a detailed software design and implementation method.

"Abstraction" implies a vertical organization - with higher levels being critically dependent on the functionality of the lower levels. "Abstraction" also implies that some or all layers have multiple implementations. Abstraction is a system design and implementation method. It is not limited to software - and in some cases, there may be a choice as to whether a layer is implemented in software or hardware.

Modularization would be a way (the way) to implement the software abstraction layers. The normal expectation in implementing software abstraction layers is have no modules that support more than one layer. In fact, when a single SW module implements more than one layer, it is commonly described as "not implementing a layer".
 
  • Like
Likes JC2000

What is the difference between abstraction layers and modularisation?

The main difference between abstraction layers and modularisation is their scope and purpose. Abstraction layers refer to a hierarchy of levels of abstraction in a system, with each layer providing a different level of detail. On the other hand, modularisation refers to the process of dividing a system into smaller, independent modules that can be easily maintained and modified.

How do abstraction layers and modularisation improve system design?

Abstraction layers and modularisation both contribute to improved system design by promoting scalability, reusability, and maintainability. Abstraction layers allow for a more efficient and organized way of managing complex systems, while modularisation allows for easier troubleshooting and updating of specific modules without affecting the entire system.

Can abstraction layers and modularisation be used together?

Yes, abstraction layers and modularisation can be used together. In fact, they often complement each other in system design. Abstraction layers can be created for individual modules, allowing for a more detailed and organized representation of the system. Meanwhile, modularisation can be applied within each abstraction layer to further break down the system into smaller, manageable components.

What are some common examples of abstraction layers and modularisation?

One common example of abstraction layers is the OSI (Open Systems Interconnection) model, which defines seven layers of abstraction for computer network protocols. As for modularisation, it is commonly seen in software development, where a large program is divided into smaller modules for easier development and maintenance.

What are the potential drawbacks of abstraction layers and modularisation?

One potential drawback of abstraction layers and modularisation is the increased complexity and overhead in system design. It also requires careful planning and coordination to ensure that all layers and modules work together effectively. Additionally, if not implemented properly, it can lead to difficulties in troubleshooting and debugging issues within the system.

Similar threads

  • Programming and Computer Science
2
Replies
65
Views
2K
  • Programming and Computer Science
Replies
10
Views
3K
Replies
2
Views
883
Replies
1
Views
929
  • Sticky
  • Programming and Computer Science
Replies
13
Views
4K
  • Set Theory, Logic, Probability, Statistics
Replies
4
Views
1K
  • STEM Academic Advising
Replies
6
Views
854
  • STEM Academic Advising
Replies
5
Views
1K
Replies
8
Views
2K
Back
Top