  To overcome the limitations of both approaches classical and formal for the
development of complex software, we proposed a hybrid approach combining the
formal approach (Event-B) and the classical approach (UML/OCL). Upstream phases
of our approach include: Rewriting the requirements document, Refinement
strategy, Abstract specification and Horizontal refinement. We have shown the
feasibility of our approach on a case study: An Electronic Hotel Key System
(SCEH). The problem of transition from the formal (Event-B) to the semi-formal
(UML/OCL) is processed through our extension to OCL (EM-OCL).
