If you are familiar with MS-Windows, the usual mean of installing software under that system is the
setup.exe. As you've seen, Ubuntu uses packages.
The main (HUGE) difference is that packages have what is called dependencies so a system such as APT can go out and download all the necessary dependencies before installing the package you selected. Of course at times all dependencies were already satisfied, so just that one package gets installed.
setup.exe and a package is an agglomeration of files within a single binary file. In most cases this is a compressed archive of some sort. Under MS-Windows, they generally use zip. Debian / Ubuntu packages use ar and tar (ar as a wrapper, tar to save all the files of the package.)
So... according to the general definition of software, one package can often be viewed as a software (a program). The fact that it needs dependencies that automatically get installed is an artifact. However, some packages are not software per se. That is, a -doc package is probably just HTML or man files. Others just include debug symbols.
As a programmer, I would say that the software is the file that gets installed under
/usr/bin (or an equivalent). These files are the actual brain of the software, the compiled program that is sent to the CPU in your computer to do stuff.