A detailed design is specified including static and dynamic aspects. Software units as specified in the software detailed design are produced. Consistency and bidirectional traceability are established between software detailed design and software architecture; and consistency and bidirectional traceability are established between source code and software detailed design; and consistency and bidirectional traceability are established between the software detailed design and the software requirements. The source code and the agreed software detailed design are communicated to all affected parties.