The Korso project aims, by the use of formal methods, at the enhancement of the quality of software development in all phases of the software life cycle. In requirements engineering domain modeling with formal specifications is integrated with informal and pre-formal approaches for the construction of a formal requirements specification of the "functional" properties of the required system. The specifications are used in the modeling and analysis parts of the requirement process and provide means for validation, including early prototyping and theorem-proving. An evolutionary process model is proposed for system design and program development, whereby the correctness of all development steps is checked by suitable verification tools. The model centers around a development graph which consists of units, e.g. formal specifications, proofs, and programs, and relations between these units. There are three kinds of relations: syntactic relations, semantic relations, and modificat..