One of the issues that developers of service-oriented systems currently discuss is the lack of practical, but formal modeling notations and tools that can assist in developing more robust, reliable and trustworthy systems. Existing solutions tend to be either too specialized and complex to use by common developers, or lack enough formal underpinnings to provide useful analyses.

This line of work presents an approach to model structural and behavioral properties of service-oriented systems with UML and OCL. Essential service-oriented concepts as service request, service provision or orchestration are formally represented by UML concepts. The models can be simulated, tested and analyzed, and feedback is given to the developer in terms of UML and OCL models, improving easy-of-use and understandability of results. This approach also supports the automatic generation of test scenarios in which, for example, the availability of services can be checked. Furthermore, the consistency of the service model can be proved by constructing test scenarios.

Case Studies

Purchase Order Management

The Purchase Order Management (POM) system [2] allows customers to purchase products online. They do this by placing orders and paying them once they have been validated by the system. The validation step consists of checking that there is enough items in stock, there is no problem with the order details and no fraud is being commited. If the three validations are correct the order can be paid by the customer. Once the payment succeeds, an email is sent to confirm the purchase.

Specification of the system in USE: POM.use, POM2.use.
Properties/Configuration: POM.properties.
Test scripts: POM_TestScripts.zip, POM2_TestScripts.zip.
Readme: README.pdf.

Online Test

When creating an online test for students, the first step is its design. Once the teacher has it designed, requests from a service provider to make it available online. Students as service requester conduct the test online. The results are recorded and are passed to the teacher for evaluation and result declaration as another service. A second service provider is the examination administration that offers a service to check for the legitimation of the students to participate in the test and record their results.

Specification of the system in USE: OnlineTest.use.
Properties/Configuration: OnlineTest.properties.
Test scripts: Test_Scripts.zip.
Readme: README.pdf.

Ndi Moyo

Ndi Moyo is a company [3] (its name is fictional for privacy reasons) that provides hundreds of services. For instance, one possible scenario is the following. A customer wants to buy a ticket for a journey. She has already consulted Ndi Moyo's online timetable for her preferred date, time and means of travel. To buy the ticket, the user can choose between various payment methods (credit card, company business card, bank card etc.). She can also choose her preferred way of receiving the ticket (E-ticket, mail, collecting from the customer service desk at Ndi Moyo).

Specification of the system in USE: NdiMoyo.use.
Properties/Configuration: NdiMoyo.properties.
Test scripts: Test_Scripts.zip.
Readme: Readme.pdf.

Manuracturing and Logistics

This case study was presented by Komoda in his work [4] along with other two industrial systems, in all of them SOA is successfully applied. This one deals with the unification and improvement of a manufacturing and logistic system. The main concern was the need for reducing the lead-time from order received to shipment. The SOA solution counts on eight sub-systems that are used as services: order entry system, sales management system, three different production management systems, a logistic management system, a sales department and a logistic center.

One possible scenario of such system is the treatment of purchase orders. When a customer places an order, it is received by the sales department. The sales department registers the order and submits it along with other information to the Order Entry System. This system contacts the Sales Management System, the three Production Management Systems and the Logistic Management System. These systems reply with the due date in which the products will be ready. The Order Entry System also interacts with the Logistic center for designating the shipping. When it has all the required information, the Order Entry System replies to the Sales Department, which in turn replies to the customer. In our scenario, finally, the Customer proceeds to pay the order and confirms when it is received.

The source files (and images of some of the diagrams) for this case study can be downloaded from Manufacturing.zip.


[1] USE tool: https://sourceforge.net/projects/useocl/. Accessed: Jun 2018.

[2] Stopford, B.: Building a Microservices Ecosystem with Kafka Streams and KSQL (2017). https://www.confluent.io/blog/building-a-microservices-ecosystem-with-kafka-streams-and-ksql/. Accessed: Jun 2018.

[3] Nasr, K.A., Gross, H., van Deursen, A.: Adopting and evaluating service oriented architecture in industry. In: 14th European Conference on Software Maintenance and Reengineering, CSMR 2010, 15-18 March 2010, Madrid, Spain, pp. 11-20 (2010)

[4] Komoda, N.: Service oriented architecture (soa) in industrial systems. In: 2006 4th IEEE International Conference on Industrial Informatics, pp. 1-5 (2006)