skip to main content
10.1145/1953355.1953377acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisecConference Proceedingsconference-collections
research-article

Component types qualification in Java legacy code driven by communication integrity rules

Published: 24 February 2011 Publication History

Abstract

Component Based Software Engineering is a way to improve software modularization and to embed architectural concerns in the source code. Making explicit the architectural concerns in code helps to mitigate the problem of architectural erosion. The restructuring of legacy code with components in mind requires the use of tools to assess compliance with component programming principles. The property of communication integrity is one of the major principles for implementing software architectures. However, there is a paucity of tools for assessing the quality of code components. To cope with this issue, we define a component model in Java and a tool for identifying component types, which relies on a set of rules to statically check potential violations of the communication integrity property in Java source code. We illustrate its application with a case study and report the results of our experiments with it.

References

[1]
FindBugs, 2009. http://findbugs.sourceforge.net/.
[2]
PMD, 2009. http://pmd.sourceforge.net/.
[3]
M. Abi-Antoun, J. Aldrich, and W. Coelho. A case study in re-engineering to enforce architectural control flow and data sharing. Journal of Systems and Software, 80(2):240--264, 2007.
[4]
J. Aldrich and C. Chambers. Ownership domains: Separating aliasing policy from mechanism. In M. Odersky, editor, ECOOP '04 --- Object-Oriented Programming European Conference, volume 3086 of Lecture Notes in Computer Science, pages 1--25, Oslo, Norway, 2004. Springer-Verlag.
[5]
J. Aldrich, C. Chambers, and D. Notkin. Architectural reasoning in ArchJava. In Proceedings ECOOP 2002, volume 2374 of LNCS, pages 334--367. Springer Verlag, 2002.
[6]
J. Aldrich, C. Chambers, and D. Notkin. ArchJava: connecting software architecture to implementation. In Proceedings of the 24th International Conference on Software Engineering (ICSE-02), pages 187--197. ACM Press, 2002.
[7]
P. André, N. Anquetil, G. Ardourel, J.-C. Royer, P. Hnetynka, T. Poch, D. Petrascu, and V. Petrascu. Javacompext: Extracting architectural elements from java source code. In Proceedings of the 16th Working Conference on Reverse Engineering (WCRE 2009), tool demonstration, pages 377--378, Lille, France, October 2009.
[8]
S. Becker, M. Hauck, M. Trifu, K. Krogmann, and J. K. n. Reverse engineering component models for quality predictions. In Proceedings of the 14th European Conference on Software Maintenance and Reengineering, European Projects Track, 2010.
[9]
J. Bosch, C. A. Szyperski, and W. Weck. Component-oriented programming. In ECOOP Workshops, pages 34--49, 2003.
[10]
I. T. Bowman, M. W. Godfrey, and R. C. Holt. Extracting source models from java programs: Parse, disassemble, or profile? Unpublished paper available at http://plg.uwaterloo.ca/migod/papers/1999/paste99.pdf
[11]
S. Chardigny, A. Seriai, M. Oussalah, and D. Tamzalit. Extraction of component-based architecture from object-oriented systems. In WICSA, pages 285--288. IEEE Computer Society, 2008.
[12]
S. Chardigny, A. Seriai, D. Tamzalit, and M. Oussalah. Quality-driven extraction of a component-based architecture from an object-oriented system. In CSMR, pages 269--273. IEEE, 2008.
[13]
L. Chouambe, B. Klatt, and K. Krogmann. Reverse engineering software-models of component-based systems. In CSMR, pages 93--102. IEEE, 2008.
[14]
I. Crnkovic. Component-based software engineering - new challenges in software development. Software Focus, 2(4):127--133, 2001.
[15]
I. Crnkovic, S. Sentilles, A. Vulgarakis, and M. Chaudron. A classification framework for software component models. IEEE Transaction on Software Engineering, Submitted for publishing:1--25, October 2010.
[16]
M. C. da Silva Jr., P. A. de Castro Guerra, and C. M. F. Rubira. A java component model for evolving software systems. In ASE, pages 327--330. IEEE Computer Society, 2003.
[17]
The Eclipse Foundation. Java Development Tooling, 2010. http://www.eclipse.org/jdt/.
[18]
J.-M. Favre, J. Estublier, F. Duclos, R. Sanlaville, and J.-J. Auffret. Reverse engineering a large component-based software product. In CSMR '01: Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, page 95, Washington, DC, USA, 2001. IEEE CS.
[19]
J. Gargiulo and S. Mancoridis. Gadget: A Tool for Extracting the Dynamic Structure of Java Programs. In SEKE: Software Engineering and Knowledge Engineering, pages 244--251, 2001.
[20]
D. Garlan. Software architecture: a roadmap. In ICSE '00: Proceedings of the Conference on The Future of Software Engineering, pages 91--101, New York, NY, USA, 2000. ACM.
[21]
M. Goulão and F. B. Abreu. Software Quality Measurement: Concepts and Approaches, chapter An overview of metrics-based approaches to support software components reusability assessment". Information Technology. ICFAI Books (India), 2007.
[22]
L. Hochstein and M. Lindvall. Combating architectural degeneration: a survey. Information & Software Technology, 47(10):643--656, 2005.
[23]
R. K. Keller, R. Schauer, S. Robitaille, and P. Pagé. Pattern-based reverse-engineering of design components. In ICSE '99: Proceedings of the 21st international conference on Software engineering, pages 226--235, Los Alamitos, CA, USA, 1999. IEEE CS Press.
[24]
J. Knopel and M. Lindvall. Software architecture visualization and evaluation. SAVE web site: http://www.fc-md.umd.edu/save/about.aspx, 2009.
[25]
R. Koschke. Atomic Architectural Component Recovery for Program Understanding and Evolution. Ph.d. thesis, Institute for Computer Science, University of Stuttgart, Stuttgart, 2000.
[26]
R. Koschke, G. Canfora, and J. Czeranski. Revisiting the ΔIC approach to component recovery. Sci. Comput. Program., 60(2):171--188, 2006.
[27]
D. C. Luckham, J. L. Kenney, L. M. Augustin, J. Vera, D. Bryan, and W. Mann. Specification and Analysis of System Architecture Using Rapide. IEEE Transactions on Software Engineering, 21(4):336--355, 1995.
[28]
S. Mahmood, R. Lai, Y.-S. Kim, J. H. Kim, S. C. Park, and H. S. Oh. A survey of component based system quality assurance and assessment. Information & Software Technology, 47(10):693--707, 2005.
[29]
N. Medvidovic and R. N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, 26(1):70--93, 2000.
[30]
T. Mens and T. Tourwe. A survey of software refactoring. IEEE Transactions on Software Engineering, 30(2):126--139, Feb. 2004.
[31]
J.-C. Royer. Type Checking Object-Oriented Programs: Core of the Problem and Some Solutions. Journal of Object-Oriented Programming, 11(6):58--66, 1998. ISSN 0896--8438.
[32]
J.-C. Royer. The JCE Checker. http://www.emn.fr/z-info/jroyer/JCE/index.html, 2010.
[33]
B. R. Schmerl, J. Aldrich, D. Garlan, R. Kazman, and H. Yan. Discovering architectures from running systems. IEEE Transactions on Software Engineering, 32(7):454--466, 2006.
[34]
H. Washizaki and Y. Fukazawa. A technique for automatic component extraction from object-oriented programs by refactoring. Science of Computer programming, 56(1--2):99--116, 2005.

Cited By

View all
  • (2013)Component-Based Java Legacy Code RefactoringRevista Facultad de Ingeniería Universidad de Antioquia10.17533/udea.redin.17165(104-114)Online publication date: 21-Oct-2013

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ISEC '11: Proceedings of the 4th India Software Engineering Conference
February 2011
229 pages
ISBN:9781450305594
DOI:10.1145/1953355
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

  • Computer Society of India: Computer Society of India

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 February 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. architecture
  2. assessing quality
  3. communication integrity property
  4. component based programming
  5. component type
  6. data type

Qualifiers

  • Research-article

Conference

ISEC '11
Sponsor:
  • Computer Society of India
ISEC '11: Indian Software Engineering Conference
February 24 - 27, 2011
Kerala, Thiruvananthapuram, India

Acceptance Rates

Overall Acceptance Rate 76 of 315 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)3
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2013)Component-Based Java Legacy Code RefactoringRevista Facultad de Ingeniería Universidad de Antioquia10.17533/udea.redin.17165(104-114)Online publication date: 21-Oct-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media