This paper describes a software development environment based on a new approach for managing large-scale evolving systems. Under this approach, the conventional notion of a system is augmented with a new component called the law of the system, which is an explicit and strictly enforced set of rules about the operation of the system, about its evolution and about the evolution of the law itself. The resulting combination is called a law-governed system (LGS). The law of a system is not meant to provide its functional specification but to establish the ground rules under which the system is to operate and evolve. We believe that the very existence of such a law, together with assurances that it cannot be violated, can make the system more understandable and, in effect, simpler; in a similar way to how the physical world is effectively simplified by the laws of nature. The feasibility of the proposed architecture has been demonstrated by the construction of a prototype environment (Darwin/1) that supports law-governed systems. The efficacy of this approach has been tested by establishing a wide range of regimes over both the operation of a system and its evolution. These include encapsulation, class-inheritance, evolving layered architecture, various module-interconnection schemes, strategies for exception handling etc.