Abstract
UML class and sequence diagrams are used as the basis for runtime profiling along with either offline or online analysis to determine whether the execution conforms to the diagrams. Situations where sequence diagrams are intended to characterize all possible executions are described. The approach generates an execution tree of all possible sequences, using a detailed collection of graph transformations that represent a precise operational semantics for sequence diagrams, including treatment for polymorphism, multiple activations, reference to other diagrams, and the use of frames in sequence diagrams. The sequence diagrams are also used to determine the information that should be gathered about method calls in the system. Aspects that can follow the flow of messages in a distributed system, are generated and the results of execution are recorded. The execution tree is used to automatically check the recorded execution to detect operations that do not correspond to any of the diagrams. These represent either new types of sequence diagrams that should be added to the collection, or implementation errors where the system is not responding as designed. In either case, it is important to identify such situations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
UML: Unified modeling language, http://www.uml.org
Damm, W., Harel, D.: Lscs: Breathing life into message sequence charts. Formal Methods in System Design 19, 45–80 (2001)
Kienzle, J., Guelfi, N., Mustafiz, S.: Crisis Management Systems: A Case Study for Aspect-Oriented Modeling. Trans. on Aspect-Oriented Software Development 7, 1–22 (2010)
Harrison, W., Barton, C., Raghavachari, M.: Mapping uml designs to java. In: OOPSLA 2000, pp. 178–187. ACM, New York (2000)
Massoni, T., Gheyi, R., Borba, P.: A framework for establishing formal conformance between object models and object-oriented programs. Elec. Notes Theor. Comp. Sci. 195, 189–209 (2008)
Crane, M.L., Dingel, J.: Runtime conformance checking of objects using alloy. In: RV 2003, pp. 2–21. Springer, Heidelberg (2003)
Shing, M.T., Drusinsky, D.: Architectural design, behavior modeling and run-time verification of network embedded systems. In: Kordon, F., Sztipanovits, J. (eds.) Monterey Workshop 2005. LNCS, vol. 4322, pp. 281–303. Springer, Heidelberg (2007)
Drusinsky, D.: Semantics and runtime monitoring of tlcharts: Statechart automata with temporal logic conditioned transitions. In: RV 2004, pp. 3–21. Springer, Heidelberg (2005)
Stateflow, http://www.mathworks.com/products/stateflow/
Seehusen, F., Stolen, K.: A transformational approach to facilitate monitoring of high-level policies. In: Workshop on Policies for Distributed Systems and Networks, pp. 70–73 (2008)
Simmonds, J., Chechik, M., Nejati, S., Litani, E., O’Farrell, B.: Property patterns for runtime monitoring of web service conversations. In: Leucker, M. (ed.) RV 2008. LNCS, vol. 5289, pp. 137–157. Springer, Heidelberg (2008)
Kiviluoma, K., Koskinen, J., Mikkonen, T.: Run-time monitoring of architecturally significant behaviors using behavioral profiles and aspects. In: ISSTA 2006, pp. 181–190. ACM, New York (2006)
Malakuti, S., Bockisch, C., Aksit, M.: Applying the composition filter model for runtime verification of multiple-language software. In: ISSRE 2009, pp. 31–40. IEEE, Los Alamitos (2009)
Kim, M., Viswanathan, M., Kannan, S., Lee, I., Sokolsky, O.: Java-mac: a run-time assurance approach for java programs. Formal methods in system design 24 (2004)
Chen, F., Rosu, G.: Mop: an efficient and generic runtime verification framework. In: OOPSLA 2007. ACM, New York (2007)
Havelund, K., Rosu, G.: An overview of the runtime verification tool java pathexplorer. Formal methods in system design 24, 189–215 (2004)
Hatcliff, J., Dwyer, M.B.: Using the bandera tool set to model-check properties of concurrent java software. In: Larsen, K.G., Nielsen, M. (eds.) CONCUR 2001. LNCS, vol. 2154, pp. 39–58. Springer, Heidelberg (2001)
Gulesir, G.: Evolvable Behavior Specifications Using Context-Sensitive Wildcards. PhD thesis, University of Twente (2008)
Cook, T., Drusinsky, D., Shing, M.: Specification, validation and run-time monitoring of soa based system-of-systems temporal behaviors. In: ICSSE 2007, pp. 16–18 (2007)
Kastenberg, H., Rensink, A.: Model checking dynamic states in groove. In: Valmari, A. (ed.) SPIN 2006. LNCS, vol. 3925, pp. 299–305. Springer, Heidelberg (2006)
de Roo, A., Hendriks, M., Havinga, W., Durr, P., Bergmans, L.: Compose*: a language- and platform-independent aspect compiler for composition filters. In: WASDeTT 2008 (2008)
ArgoUML, http://argouml.tigris.org
Ciraci, S.: Graph Based Verification of Software Evolution Requirements. PhD thesis, Univ. of Twente, Enschede, CTIT Ph.D. thesis series no. 09-162 (2009)
GrACE: Graph-based adaptation, configuration and evolution modeling, http://trese.cs.utwente.nl/willevolve/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ciraci, S., Malakuti, S., Katz, S., Aksit, M. (2010). Checking the Correspondence between UML Models and Implementation. In: Barringer, H., et al. Runtime Verification. RV 2010. Lecture Notes in Computer Science, vol 6418. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16612-9_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-16612-9_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-16611-2
Online ISBN: 978-3-642-16612-9
eBook Packages: Computer ScienceComputer Science (R0)