Software development is a crucial issue for any PACS implementation. A significant percentage of development time, development cost, and engineering complexity will be committed to the software components. Product performance and user acceptance are highly software dependent. The required software development effort must be accurately estimated for proper resource allocation. Common sources of error in judging effort requirements are underestimating software complexity, device controller firmware problems, personnel education, system documentation inadequacies, and difficulties in implementing resilient error handling. Four person-years were required for the network application and imaging device interface software for network node computers designed and implemented by the authors. As in any complex engineering project, a detailed functional description is a necessary starting point. From the functional description, a formal software design method should be followed to produce a written architectural and data structures definition. With the advent of fast 32 bit microprocessors and continually falling memory costs, there is no reason to consider programming in assembly language. The increased programmer productivity and self documenting qualities of high-level languages surely outweigh the penalties in speed and memory size. Besides a high-level language, a complete set of software development tools such as editors, automatic program version control systems, library maintenance utilities, and document preparation utilities is a necessity. The UNIX operating system provides these facilities as may other possible candidates for development systems. As an example, the software design of a UNIX-based network node computer will be presented in detail, including descriptions of the comprising process modules, interprocess communication and synchronization, device interfacing, and memory requirements.