Home > Wiki encyclopedia > Algorithm module

# Algorithm module

Module is the basic unit that constitutes a system 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.

## Catalogues

### Concept

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. 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 portable.

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.

### Module

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:

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

• 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.

• The clarity of the connection：Its position and role in the system are clearly and strictly regulated.

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

#### Reusability

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.

#### Library

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. However, the disadvantage is that third-party applications or frameworks are often only applicable within a specific application scope.

#### portability

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 the 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.

## ASSOCIATED PRODUCTS

• XC5VFX70T-2FFG665C

FPGA Virtex-5 FXT Family 65nm Technology 1V 665-Pin FCBGA

• XC5VFX70T-3FFG665C

FPGA Virtex-5 FXT Family 65nm Technology 1V 665-Pin FCBGA

• XCV200E-6FG256C

FPGA Virtex-E Family 63.504K Gates 5292 Cells 357MHz 0.18um Technology 1.8V 256-Pin FBGA

• XC4028XL-3HQ160I

FPGA XC4000X Family 28K Gates 2432 Cells 0.35um Technology 3.3V 160-Pin HSPQFP EP

• XC4028XL-4BG352C

XC4000E and XC4000X Series Field Programmable Gate Arrays

Need Help?

Support