In recent decades, software systems have become an integral part of human lives. One of the most important categories of software systems are systems which have been developed based on service-oriented architecture. Due to the complexity of service-oriented systems, new methods for modeling them before the developing phase are crucial. By modeling a service-oriented system in the earlier phases, the system’s faults could be detected with less cost and effort. Hence, new approaches for modeling service-oriented systems are beneficial. Different approaches exist for modeling service-oriented systems. One of the most practical approaches is using model-driven architecture. Using UML is a relevant approach for modeling phase. However, UML does not provide a practical approach for modeling systems based on service-oriented architecture. Therefore, a UML extension is needed. One of the most reliable mechanisms of extending UML is UML profile. Using UML profile, designers can define new concepts in UML easily. In this thesis, a new UML profile called SoaNfMl has been created. SoaNfMl provides a more complete approach for modeling service-oriented systems. Moreover, model transformation and automatic code generation are supported in this thesis. The applicability of the proposed approach is shown by modeling two applications with SoaNfMl.