Function Module vs Subroutine in ABAP/4
In contrast to normal subroutines function modules have uniquely defined interface. Subroutines do not return values. Sub routines do not return exceptions. Sub routines cannot be tested independently. Declaring data as common parts is not possible for function modules.
Function modules are stored in a central library.
What is a function group?
A function group is a collection of logically related modules that share global data with each other. All the modules in the group are included in the same main program. When an ABAP/4 program contains a CALL FUNCTION statement, the system loads the entire function group in with the program code at runtime. Every function module belongs to a function group.