The research of the past few decades has shown that process-oriented programming languages provide a suitable means for developing concurrent systems. In this paper, certain features of a process-programming language, namely Erasmus, are studied in some depth using formal methods, basic ideas of software engineering and a simple example. In particular, formal design and implementation of the example concurrent system are given. A category theoretical approach, as a means for formally verifying processes and communications of the system in implementation against design, is also presented.