[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Tools and experiments supporting a testing-based theory of component composition

Published: 04 June 2009 Publication History

Abstract

Development of software using off-the-shelf components seems to offer a chance for improving product quality and developer productivity. This article reviews a foundational testing-based theory of component composition, describes tools that implement the theory, and presents experiments with functional and nonfunctional component/system properties that validate the theory and illuminate issues in component composition.
The context for this work is an ideal form of Component-Based Software Development (CBSD) supported by tools. Component developers describe their components by measuring approximations to functional and nonfunctional behavior on a finite collection of subdomains. Systems designers describe an application-system structure by the component connections that form it. From measured component descriptions and a system structure, a CAD tool synthesizes the system properties, predicting how the system will behave. The system is not built, nor are any test executions performed. Neither the component sources nor executables are needed by systems designers. From CAD calculations a designer can learn (approximately) anything that could be learned by testing an actual system implementation. The CAD tool is often more efficient than it would be to assemble and execute an actual system.
Using tools that support an ideal separation between component- and system development, experiments were conducted to investigate two related questions: (1) To what extent can unit (that is, component) testing replace system testing? (2) What properties of software and subdomains influence the quality of subdomain testing?

References

[1]
Boehm, C. and Jacopini, G. 1966. Flow diagrams, Turing machines, and languages with only two formation rules. Commun. ACM 9, 366--371.
[2]
Dennis, G., Chang, F.-H., and Jackson, D. 2006. Modular verification of code with SAT. In Proceedings ISSTA. 109--119.
[3]
Ernst, M., Cockrell, J., Griswold, W. G., and Notkin, D. 2001. Dynamically discovering likely program invariants to support program evolution. IEEE Trans. Soft. Engin. 27, 99--123.
[4]
Floyd, R. W. 1967. Assigning meanings to programs. In Proceedings of the Symposium on Applied Mathematics. Vol. 19. American Mathematical Society, 19--32.
[5]
Goodenough, J. B. and Gerhart, S. L. 1975. Toward a theory of test data selection. IEEE Trans. Soft. Engin. 1, 156--173.
[6]
Hamlet, D. 1994. Random testing. In Encyclopedia of Software Engineering, J. Marciniak, Ed. Wiley, New York, 970--978.
[7]
Hamlet, D. 2006. Subdomain testing of units and systems with state. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA'06). 85--96.
[8]
Hamlet, D. 2007a. www.cs.pdx.edu/~hamlet/components.html.
[9]
Hamlet, D. 2007b. Software component composition: Subdomain-Based testing-theory foundation. J. Soft. Test. Verifi. Reliabi. 17, 243--269.
[10]
Hamlet, D., Andric, M., and Tu, Z. 2003. Experiments with composing component properties. In Proceedings of the 6th ICSE Workshop on Component-Based Software Engineering, K. Wallnau, Ed. http://www.sei.cmu.edu/pacc.
[11]
Hamlet, D., Mason, D., and Woit, D. 2001. Theory of software reliability based on components. In Proceedings of the International Conference on Software Engineering (ICSE'01). 361--370.
[12]
Howden, W. E. 1976. Reliability of the path analysis testing strategy. IEEE Trans. Soft. Engin. 2, 208--215.
[13]
Kramer, J. and Magee, J. 2006. Concurrency: State Models & Java Programs, 2nd Ed. Wiley, New York.
[14]
Lions, J. L. 1996. ARIANE 5, Flight 501 Failure, Report by the Inquiry Board. European Space Agency (ESA), Paris.
[15]
Meinke, K. 2004. Automated black-box testing of functional correctness using function approximation. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA'06). 143--153.
[16]
Meyer, B. 2000. Object-Oriented Software Construction. Prentice Hall.
[17]
Mills, H., Basili, V., Gannon, J., and Hamlet, D. 1987. Principles of Computer Programming: A Mathematical Approach. Allyn and Bacon.
[18]
Musa, J., Iannino, A., and Okumoto, K. 1990. Software Reliability. McGraw-Hill, New York.
[19]
Myers, G. J. 1979. The Art of Software Testing. Wiley-Interscience, New York.
[20]
Xie, F. and Browne, J. 2006. Verification of component-based software application families. Lecture Notes in Computer Science, vol. 4063, I. Gorton et al., Eds. Springer, 50--66.

Cited By

View all
  • (2019)Detecting Parametric Dependencies for Performance Models Using Feature Selection Techniques2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)10.1109/MASCOTS.2019.00042(309-322)Online publication date: Oct-2019
  • (2018)A Methodology for Model-Based Reliability EstimationComputer Systems and Software Engineering10.4018/978-1-5225-3923-0.ch018(461-484)Online publication date: 2018
  • (2018)Using Hierarchical Scenarios to Predict the Reliability of Component-Based SoftwareIEICE Transactions on Information and Systems10.1587/transinf.2017EDP7127E101.D:2(405-414)Online publication date: 2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 18, Issue 3
May 2009
142 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/1525880
Issue’s Table of Contents
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 June 2009
Accepted: 01 December 2007
Revised: 01 September 2007
Received: 01 October 2006
Published in TOSEM Volume 18, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CAD tool support for CBSD
  2. Experiments with composition of software components
  3. component-based software development (CBSD)
  4. synthesis of system properties

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Detecting Parametric Dependencies for Performance Models Using Feature Selection Techniques2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)10.1109/MASCOTS.2019.00042(309-322)Online publication date: Oct-2019
  • (2018)A Methodology for Model-Based Reliability EstimationComputer Systems and Software Engineering10.4018/978-1-5225-3923-0.ch018(461-484)Online publication date: 2018
  • (2018)Using Hierarchical Scenarios to Predict the Reliability of Component-Based SoftwareIEICE Transactions on Information and Systems10.1587/transinf.2017EDP7127E101.D:2(405-414)Online publication date: 2018
  • (2018)Dependability Analysis of Safety Critical Real-Time Systems by Using Petri NetsIEEE Transactions on Control Systems Technology10.1109/TCST.2017.266914726:2(415-426)Online publication date: Mar-2018
  • (2018)Modeling of Parametric Dependencies for Performance Prediction of Component-Based Software Systems at Run-Time2018 IEEE International Conference on Software Architecture (ICSA)10.1109/ICSA.2018.00023(135-13509)Online publication date: Apr-2018
  • (2016)Reliability Analysis for Software Cluster Systems Based on Proportional Hazard Model2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC)10.1109/COMPSAC.2016.177(32-41)Online publication date: Jun-2016
  • (2015)A Scenario-Based Reliability Analysis Approach for Component-Based SoftwareIEICE Transactions on Information and Systems10.1587/transinf.2014EDP7241E98.D:3(617-626)Online publication date: 2015
  • (2015)Quantitative Evaluation of Model-Driven Performance Analysis and Simulation of Component-Based ArchitecturesIEEE Transactions on Software Engineering10.1109/TSE.2014.236275541:2(157-175)Online publication date: 1-Feb-2015
  • (2015)Theory of Software Testing With Persistent StateIEEE Transactions on Reliability10.1109/TR.2015.243644364:3(1098-1115)Online publication date: Sep-2015
  • (2014)A Methodology for Model-Based Reliability EstimationHandbook of Research on Emerging Advancements and Technologies in Software Engineering10.4018/978-1-4666-6026-7.ch020(450-472)Online publication date: 2014
  • Show More Cited By

View Options

Login options

Full Access

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