Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1368088.1368157acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Automatic generation of software behavioral models

Published: 10 May 2008 Publication History

Abstract

Dynamic analysis of software systems produces behavioral models that are useful for analysis, verification and testing.
The main techniques for extracting models of functional behavior generate either models of constraints on data, usually in the form of Boolean expressions, or models of interactions between components, usually in the form of finite state machines. Both data and interaction models are useful for analyzing and verifying different aspects of software behavior, but none of them captures the complex interplay between data values and components interactions. Thus related analysis and testing techniques can miss important information.
In this paper, we focus on the generation of models of relations between data values and component interactions, and we present GK-tail, a technique to automatically generate extended finite state machines (EFSMs) from interaction traces. EFSMs model the interplay between data values and component interactions by annotating FSM edges with conditions on data values. We show that EFSMs include details that are not captured by either Boolean expressions or (classic) FSM alone, and allow for more accurate analysis and verification than separate models, even if considered jointly.

References

[1]
Aspectwerkz. http://aspectwerkz.codehaus.org/, visited in 2007.
[2]
G. Ammons, R. Bodík, and J. R. Larus. Mining specifications. In proceedings of the Symposium on Principles of Programming Languages (POPL). ACM Press, 2002.
[3]
Apache Software Foundation. Log4java. http://logging.apache.org/log4j/, visited in 2007.
[4]
T. Berg, B. Jonsson, and H. Raffelt. Regular inference for state machines with parameters. In proceedings of the International Conference on Fundamental Approaches to Software Engineering (FASE), volume 3922 of LNCS. Springer, 2006.
[5]
A. Biermann and J. Feldman. On the synthesis of finite state machines from samples of their behavior. IEEE Transactions on Computer, 21:592--597, 1972.
[6]
O. Cicchello and S. C. Kremer. Inducing grammars from sparse data sets: a survey of algorithms and results. Journal of Machine Learning Research, 4:603--632, 2003.
[7]
J. Cook and A. Wolf. Discovering models of software processes from event-based data. ACM Transactions on Software Engineering and Methodology, 7(3):215--249, 1998.
[8]
C. Csallner and Y. Smaragdakis. DSD-crasher: A hybrid analysis tool for bug finding. In proceedings of the International Symposium on Software Testing and Analysis (ISSTA), 2006.
[9]
D. Detlefs, G. Nelson, and J. Saxe. Simplify: A theorem prover for program checking. Technical Report HPL-2003-148, HP Labs, 2003.
[10]
M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering, 27(2):99--123, 2001.
[11]
C. Ghezzi, A. Mocci, and M. Monga. Efficient recovery of algebraic specifications for stateful components. In proceedings of the International Workshop on Principles of Software Evolution (IWPSE). ACM Press, 2007.
[12]
S. Hangal and M. S. Lam. Tracking down software bugs using automatic anomaly detection. In proceedings of the International Conference on Software Engineering (ICSE). ACM Press, 2002.
[13]
M. Harder, J. Mellen, and M. D. Ernst. Improving test suites via operational abstraction. In proceedings of the International Conference on Software Engineering (ICSE). IEEE Computer Society, 2003.
[14]
J. Henkel and A. Diwan. Discovering algebraic specifications from java classes. In proceedings of the European Conference on Object-Oriented Programming (ECOOP). Springer, 2003.
[15]
IBM. Eclipse test & performance tools platform. http://www.eclipse.org/tptp/, visited in 2007.
[16]
D. Lorenzoli, L. Mariani, and M. Pezzè. Inferring state-based behavior models. In proceedings of the International Workshop on Dynamic Analysis (WODA) co-located with the 28th International Conference on Software Engineering (ICSE), 2006.
[17]
L. Mariani, S. Papagiannakis, and M. Pezzè. Compatibility and regression testing of COTS-component-based software. In proceedings of the International Conference on Software Engineering (ICSE). IEEE Computer Society, 2007.
[18]
L. Mariani and M. Pezzè. Dynamic detection of COTS components incompatibility. IEEE Software, 24(4), 2007.
[19]
S. McCamant and M. D. Ernst. Predicting problems caused by component upgrades. In proceedings of the European Software Engineering Conference held jointly with International Symp. on Foundations of Software Engineering (ESEC/FSE). ACM Press, 2003.
[20]
J. W. Nimmer and M. D. Ernst. Static verification of dynamically detected program invariants: Integrating daikon and ESC/Java. In proceedings of the Workshop on Runtime Verification, 2001.
[21]
Open Source Project. Jabref. http://jabref.sourceforge.net/, visited in 2007.
[22]
Open Source Project. jcvs. http://www.jcvs.org, visited in 2007.
[23]
Open Source Project. jedit. http://www.jedit.org, visited in 2007.
[24]
Open Source Project. Squiller. http://www.squirrelsql.org/, visited in 2007.
[25]
T. J. Ostrand and M. J. Balcer. The category-partition method for specifying and generating functional tests. Communications of the ACM, 31(6):676--686, June 1988.
[26]
R. Parekh and V. Honavar. An incremental interactive algorithm for regular grammar inference. In L. Miclet and C. Higuera, editors, proceedings of the International Colloquium on Grammatical Inference (ICGI), volume 1147 of LNCS. Springer, 1996.
[27]
R. Parekh, C. Nichitiu, and V. Honavar. A polynomial time incremental algorithm for learning DFA. In proceedings of the International Colloquium on Grammatical Inference (ICGI), volume 1433 of LNCS. Springer, 1998.
[28]
A. Petrenko, S. Boroday, and R. Groz. Confirming configurations in EFSM testing. IEEE Transactions on Software Engineering, 30(1):29--42, January 2004.
[29]
S. Porat and J. Feldman. Learning automata from ordered examples. Machine Learning, 7:109--138, 1991.
[30]
O. Raz, P. Koopman, and M. Shaw. Semantic anomaly detection in online data sources. In proceedings of the International Conference on Software Engineering (ICSE), pages 302--312. ACM Press, 2002.
[31]
S. P. Reiss and M. Renieris. Encoding program executions. In proceedings of the International Conference on Software Engineering (ICSE). IEEE Computer Society, 2001.
[32]
K. Twardowski. Makagiga. http://makagiga.sourceforge.net, visited in 2007.
[33]
R. Wieringa. A survey of structured and object-oriented software specification methods and techniques. ACM Computing Surveys, 30(4):459--527, 1998.
[34]
J. Yang, D. Evans, D. Bhardwaj, T. Bhat, and M. Das. Perracotta: mining temporal api rules from imperfect traces. In proceeding of the International Conference on Software Engineering (ICSE), 2006.

Cited By

View all
  • (2024)Specification Mining Based on the Ordering Points to Identify the Clustering Structure Clustering Algorithm and Model CheckingAlgorithms10.3390/a1701002817:1(28)Online publication date: 10-Jan-2024
  • (2024)Detecting and Explaining Anomalies Caused by Web Tamper Attacks via Building Consistency-based NormalityProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695024(531-543)Online publication date: 27-Oct-2024
  • (2024)Automated Derivation of Application Workload Models for Design Space Exploration of Industrial Distributed Cyber-Physical Systems2024 IEEE 7th International Conference on Industrial Cyber-Physical Systems (ICPS)10.1109/ICPS59941.2024.10639941(1-8)Online publication date: 12-May-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '08: Proceedings of the 30th international conference on Software engineering
May 2008
558 pages
ISBN:9781605580791
DOI:10.1145/1368088
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 May 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic analysis
  2. gk-tail
  3. model synthesis

Qualifiers

  • Research-article

Conference

ICSE '08
Sponsor:

Acceptance Rates

ICSE '08 Paper Acceptance Rate 56 of 370 submissions, 15%;
Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)51
  • Downloads (Last 6 weeks)6
Reflects downloads up to 16 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Specification Mining Based on the Ordering Points to Identify the Clustering Structure Clustering Algorithm and Model CheckingAlgorithms10.3390/a1701002817:1(28)Online publication date: 10-Jan-2024
  • (2024)Detecting and Explaining Anomalies Caused by Web Tamper Attacks via Building Consistency-based NormalityProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695024(531-543)Online publication date: 27-Oct-2024
  • (2024)Automated Derivation of Application Workload Models for Design Space Exploration of Industrial Distributed Cyber-Physical Systems2024 IEEE 7th International Conference on Industrial Cyber-Physical Systems (ICPS)10.1109/ICPS59941.2024.10639941(1-8)Online publication date: 12-May-2024
  • (2024)Predictive Modeling of Software Behavior Using Machine LearningIEEE Access10.1109/ACCESS.2024.345101212(120584-120596)Online publication date: 2024
  • (2023)Capturing Request Execution Path for Understanding Service Behavior and Detecting Anomalies Without Code InstrumentationIEEE Transactions on Services Computing10.1109/TSC.2022.314994916:2(996-1010)Online publication date: 1-Mar-2023
  • (2023)Carving UI Tests to Generate API Tests and API Specification2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)10.1109/ICSE48619.2023.00167(1971-1982)Online publication date: May-2023
  • (2023)Process mining meets model learningInformation Systems10.1016/j.is.2023.102180114:COnline publication date: 1-Mar-2023
  • (2023)How do programmers fix bugs as workarounds? An empirical study on Apache projectsEmpirical Software Engineering10.1007/s10664-023-10318-728:4Online publication date: 28-Jun-2023
  • (2022)Active Learning of Abstract System Models from Traces using Model Checking2022 Design, Automation & Test in Europe Conference & Exhibition (DATE)10.23919/DATE54114.2022.9774595(100-103)Online publication date: 14-Mar-2022
  • (2022)A Unified Specification Mining Framework for Smart ContractsProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3559512(1-3)Online publication date: 10-Oct-2022
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media