Разработку программного обеспечения (ПО) можно разделить таким образом:
1) Серверное ПО
2) Клиентское desktop ПО ("толстый клиент")
3) Клиентское web ПО ("тонкий клиент")
4) Мобильное ПО
5) Специализированное ПО (обработка датчиков, ПО для управления устройствами и так далее)
Может, кто-то еще что-нибудь добавит.
Второй вопрос не понял.