This website uses cookies. By using this site, you consent to the use of cookies. For more information, please take a look at our Privacy Policy.
Home > Wiki encyclopedia > Algorithm module

Algorithm module

Module is the basic unit that constitutes a system and realizes system functions, and can be understood as a subroutine in a general sense. Algorithm module refers to the design of different algorithms into different software modules. Algorithm modules can be called by different applications to solve different problems. The algorithm module greatly improves the application field of the algorithm.

Algorithm module


An algorithm is a description of the steps to solve a specific problem. It is a finite sequence of instructions, where each instruction represents one or more operations [1]. The algorithm module simply means that the algorithm is designed into independent software modules. In practical applications, the application calls to algorithms can be seen as module calls again and again. The algorithm is written in a programming language into algorithm modules, which makes the algorithm reusable and better portability. The algorithm module also reduces the difficulty of using the algorithm and promotes the application field of the algorithm. The interface (API) of the algorithm module provides the functions provided by the module and the elements required to call it.


A concept often used in system analysis is a relatively independent part of the system that completes a certain function.

The module has the following attributes:

1. Cohesion. Its function or content has a certain inherent logical connection.

2. Independence. The relationship between it and other parts of the system (calling relationship and parameter calling relationship) is clearly defined and limited within a certain limit. In addition, internal processing does not interact with other parts.

3. The clarity of the connection. Its position and role in the system are clearly and strictly regulated [2].

A system divided into modules (called a modular structure system) has the characteristics of easy division of labor, easy management, easy understanding, and easy modification. Therefore, it is considered a well-structured system and becomes the desired goal in system analysis and design. Correspondingly, dividing modules reasonably has become an important and critical task in understanding, analyzing, and designing complex systems.

Porting and reuse


It can also be called code reuse. It is to re-use existing code or related knowledge to write new code to construct software. The forms of reuse generally include program libraries, design patterns, and application frameworks. Algorithm modules also have these three forms, but they mainly focus on the reuse of libraries.


Writing a library is the most common method for code reuse. Many common operations, such as file reading/writing, and operating system information acquisition actions are encapsulated in a library, and then called by software developers. A major advantage of using a library is that the operations it provides are fully tested, but the disadvantage is that the specific implementation of the operations provided by the library cannot be adjusted, and the library also requires software developers to spend a lot of time to learn Its usage.

Design Patterns

Design patterns provide general solutions to similar problems of the same kind. What it provides is a conceptual solution, and it is often necessary to implement a specific code for specific problems. Using abstract classes or interfaces can often achieve code reuse in specific design patterns.

Application framework

Software developers can often achieve large-scale reuse of a program through third-party applications or frameworks, which can effectively improve production efficiency. But the disadvantage is that third-party applications or frameworks are often only applicable within a specific application scope.


Portability (English Portability), also known as portability, portability, refers to whether software written in a high-level language has the nature of being reusable under different environments. Generally speaking, the measure of whether the software has portability is the cost of how many man-hours are required to perform the software migration. Software with high portability does not need to do much when transplanting to different system platforms, so it can reduce the cost of software development and deployment. In order to make the software highly portable, programmers need to abstract and modularize the application program interface.

Application program interface

Software interface. A program specially designed between the system and the user, between the sub-system and the sub-system, and between the two program blocks. The software support environment requires the unity of the software interface. For example, in order to realize the communication between users and various software tools, a unified calling method is required.

Application Programming Interface (API), also known as Application Programming Interface, is a convention for the connection of different components of a software system. Due to the increasing scale of software in recent years, it is often necessary to divide complex systems into small components. The design of programming interfaces is very important. In the practice of programming, the design of programming interface must first reasonably divide the responsibilities of the software system. A good interface design can reduce the interdependence of various parts of the system, improve the cohesion of the constituent units, and reduce the degree of coupling between the constituent units, thereby improving the maintainability and scalability of the system.


  • XC3S50A-4VQ100C


    FPGA Spartan-3A Family 50K Gates 1584 Cells 667MHz 90nm Technology 1.2V 100-Pin VTQFP

  • XC4028EX-4HQ240I


    FPGA XC4000E Family 28K Gates 2432 Cells 0.35um Technology 5V 240-Pin HSPQFP EP

  • XC3S50A-5TQ144C


    FPGA Spartan-3A Family 50K Gates 1584 Cells 770MHz 90nm Technology 1.2V 144-Pin TQFP

  • XC3S50AN-4TQ144I


    FPGA Spartan-3AN Family 50K Gates 1584 Cells 667MHz 90nm Technology 1.2V Automotive Medical 144-Pin TQFP EP

  • XCS20-3TQ144C


    FPGA Spartan Family 20K Gates 950 Cells 125MHz 5V 144-Pin TQFP EP

FPGA Tutorial Lattice FPGA
Need Help?


If you have any questions about the product and related issues, Please contact us.