Diagramming Techniques for Analysis and Programmers