The semantic layer for software engineering: Connect code to meaning, build on understanding