This paper presents first a formal development methodology that enables the validation of formal specifications as well as program codes wrt client's requirements. The methodology is based on the two languages framework: it advocates the joint use of a model-oriented specification and a logical language. Second, the paper describes development guidelines for system design within the proposed methodology. Guidelines, specific to each kind of system, can be defined. They enable the specifier to add progressively the complexity into the system desing. Two development processes are proposed: the first one leads to a traditional client/server desing; the second one enables to integrate fault-tolerance in the design. Both development processes have been applied on an example and produced a Java program.