This report contains a non-formal motivation and description of ADL-d, a graphical design technique for parallel and distributed software. ADL-d allows a developer to construct an application in terms of communicating processes. The technique distinguishes itself from others by its use of highly orthogonal concepts, and support for automated code generation. Without being committed to one particular design method, ADL-d as a technique can be used from the early phases of application design through phases that concentrate on algorithmic design, and final implementation on some target platform. In this report, we discuss and motivate all ADL-d components, including recently incorporated features such as support for connection-oriented communication, support for modeling dynamically changing communication structures, and a formal semantical basis for each ADL-d component. Also, we discuss our ADL-d implementation, and place ADL-d in context by discussing some related work.