基本的には、このうちの3つをシステムエンジニア行うことになり、プログラミングの部分だけをプログラマーが行うことになりますね。ここで気を付けなければいけないのが、システムエンジニアだからと言って、プログラムを書かないわけではない。テストの工程に参加しないわけではない。「主な仕事」の話であって、企業などによって役割分担のバランスは様々でしょう。呼び方を分ける理由は、ニュアンス、意味合いの違いから「どんな仕事をするかイメージしやすいから」ということもあると思います。「システムエンジニアか。クライアントと話すこともあるんだろうな。