||As workstation and networking technologies advance, the aggregated computing power of a network of workstations (NOW) could be more than that of an expensive parallel computing system. This makes NOW an attractive alternative platform for many classes of parallel applications which were limited to expensive parallel machines in the past. Scientific computing is one of the application classes that require high computational power. However, there is still a lack of tools for developing and running parallel applications on the NOW environment. As a result, few applications exist that can take advantage of the potential of this common and inexpensive computing platform. The aim of this thesis is to develop and implement an object-oriented parallel programming system for the NOW environment. The major contribution of this thesis is that we have considered the complete parallel programming system, covering both the human aspects and the system aspects. In our proposed programming system, a conceptual model, named Synchronous Object Model, is provided to help programmers write parallel programs. The object model makes use of the inherent parallel nature of the object-oriented model to express parallelism. With the Synchronous Object Model, programmers can design and write their parallel programs using existing object-oriented techniques without having to think in terms of parallelism in designing the control flow. This is useful since human beings are weak in thinking parallelism. Apart from that, an object-oriented framework is provided in our programming system. The framework approach reduces the effort of parallel programming by code reuse and design reuse. In addition, our design takes advantage of the underlying hardware architecture of the NOW environment to maximize performance by integrating multicast and load balancing supports. For load balancing, we have proposed a Dynamic Decomposition technique and a technique of mapping time complexity to real execution time. The Dynamic Decomposition technique allows a parallel program to be automatically de-composed by the programming system and allocated to processors for execution while the technique of mapping time complexity to real execution time provides useful infor-mation for improving the performance of scheduling algorithms. The support of multicast is also a unique feature of our programming system. In the Ethernet environment, data can be sent to multiple hosts efficiently using multicast. A new matrix multiplication algorithm which makes use of multicast support is proposed and is compared with Fox's algorithm. The experimental results showed that our proposed algorithm outperforms Fox's algorithm in terms of scalability.