0% found this document useful (0 votes)
38 views3 pages

Topic: The Modularity of Codes and The Scalability of The Systems

Modularity in computer science refers to dividing a complex code into independent modules that can communicate through defined interfaces. This allows problems to be broken down into simpler sub-problems and solved individually. There are two types of scalability: vertical involves upgrading a single node's resources, while horizontal uses multiple computers or nodes and distributes processing for improved overall performance based on modularity. The key factors in scalability are a system's ability to adapt to significant increases in users while maintaining performance through hardware or combined hardware/software solutions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views3 pages

Topic: The Modularity of Codes and The Scalability of The Systems

Modularity in computer science refers to dividing a complex code into independent modules that can communicate through defined interfaces. This allows problems to be broken down into simpler sub-problems and solved individually. There are two types of scalability: vertical involves upgrading a single node's resources, while horizontal uses multiple computers or nodes and distributes processing for improved overall performance based on modularity. The key factors in scalability are a system's ability to adapt to significant increases in users while maintaining performance through hardware or combined hardware/software solutions.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Reading in English Week 1 Day 5.

Topic: The modularity of codes and the scalability of the systems.

Modularity in Computer Science is related to the fact that a code is composed of parts known
as modules, whose programming technique is known as structured design. This concept is
based on the ability of a system to be studied, seen and understood as the union of several
parts that interact with each other in order to solve a problem or achieve a goal. Each of
these parts in which the system is divided is called a module. Ideally, a module should be
able to meet the conditions of black box, ie, be independent of the rest of the modules and
communicate with them (with all or only one part) through some inputs and outputs well
defined.

Through these modules, complex and tedious tasks such as a closed block are avoided,
moving to other simpler ones and from this methodology to the solution. This technique is
also called as top-down design or theory of divide and conquer (top - down). In summary,
through this strategy we will work with sub-problems that will be solved individually and at
the end will be integrated as a whole, in case that a module needs another one, these can
communicate through a communication interface that must also be well defined.

If we talk about modularity as a function of principles, it is possible to summarize them in the


following ones: Ability to decompose a complex system, ability to compose through its
modules and understanding of systems in parts. These principles highlight that this
methodology helps us to understand the code, its environment and also its modification.

Another very important issue in relation to the design of computer systems is what is known
as Scalability. This can be defined as the capacity of adaptation and response of a system
with respect to its performance as the number of users of the system increases significantly.
Scalability is a critical factor in the growth of a system. If a system aims to grow in the number
of users while maintaining its current performance, it has to evaluate two possible options:
With a more powerful hardware or with a better combination of hardware and software. In
this sense it is possible to distinguish two types of scalability, vertical and horizontal:

“Formando líderes para la construcción de un nuevo país en paz”


Universidad de Pamplona
Pamplona - Norte de Santander - Colombia 1
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750
SC-CER96940 www.unipamplona.edu.co
Vertical Scalability

Concept related to scaling up, adding more resources to a single particular node within a
system, such as adding memory or a faster hard drive to a computer, in other words it means
migrating the entire system to new hardware more powerful and efficient than the current
one. The idea is that applications running under the old hardware architecture do not suffer
from the migration and that the impact on the code is minimal.

Horizontal Scalability

Horizontal scalability is about boosting system performance from an overall improvement


aspect, as opposed to increasing the power of a single part of the system. This type of
scalability is based on the modularity of its functionality. For this reason, it is usually made
up of a group of computers that support the complete functionality. Normally, in a horizontal
scalability teams are added to give more power to the network.

Figure 1. Difference between vertical and horizontal scalability (Image taken from Erik Rivera, Pycon
Latam).

“Formando líderes para la construcción de un nuevo país en paz”


Universidad de Pamplona
Pamplona - Norte de Santander - Colombia 2
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750
SC-CER96940 www.unipamplona.edu.co
With an environment of this type, it is logical to think that the processing power is directly
proportional to the number of computers in the network. The total processing power is the
sum of the physical speed of each computer transferred by the application and data partition
spread across the nodes (RECU – 0220, Servicios Madeja).

In conclusion, it is important to mention that in scalability, user growth is a critical factor. It is


much easier to design a system with a constant number of users (no matter how high it is)
than to design a system with a growing and variable number of users. The relative growth
of the numbers is much more important than the absolute numbers.

“Formando líderes para la construcción de un nuevo país en paz”


Universidad de Pamplona
Pamplona - Norte de Santander - Colombia 3
Tels: (7) 5685303 - 5685304 - 5685305 - Fax: 5682750
SC-CER96940 www.unipamplona.edu.co

You might also like