This paper describes a theoretical framework for designing parallel processor software to achieve high multipliers on developer productivity as well as run-time speed. It is based upon Generalized State Space, used to define a discrete event simulation environment, and the Separation Principle, used to define software architecture for parallel processors. This framework provides visualization of modular software architectures in the same manner as hardware architectures. The resulting software architectures provide a one-to-one mapping from drawings to code. The property of independence defined by the Separation Principle raises the parallel processing problem to a module architecture level, eliminating concerns for thread level timing and synchronization. The approach is based upon the author’s experience in Computer-Aided Design (CAD) systems for electronic circuit design and computer system design.