Abstract: Unified Modelling Language (UML) is a software modelling language that is widely used and accepted. One significant drawback, of which, is that the language lacks formality. This makes carrying out any type of rigorous analysis difficult process. Many researchers attempt to introduce their approaches to formalise UML diagrams. However, it is always hard to decide what language and/or approach to use. Therefore, in this paper, we highlight some of the advantages and disadvantages of number of those approaches. We also try to compare different counterpart approaches. In addition, we draw some guidelines to help in choosing the suitable approach. Special concern is given to the formalisation of the static aspects of UML shown is class diagrams.
Abstract: Due to important issues, such as deadlock, starvation,
communication, non-deterministic behavior and synchronization,
concurrent systems are very complex, sensitive, and error-prone.
Thus ensuring reliability and accuracy of these systems is very
essential. Therefore, there has been a big interest in the formal
specification of concurrent programs in recent years. Nevertheless,
some features of concurrent systems, such as dynamic process
creation, scheduling and starvation have not been specified formally
yet. Also, some other features have been specified partially and/or
have been described using a combination of several different
formalisms and methods whose integration needs too much effort. In
other words, a comprehensive and integrated specification that could
cover all aspects of concurrent systems has not been provided yet.
Thus, this paper makes two major contributions: firstly, it provides a
comprehensive formal framework to specify all well-known features
of concurrent systems. Secondly, it provides an integrated
specification of these features by using just a single formal notation,
i.e., the Z language.