skip to main content
article

The story of moose: an agile reengineering environment

Published: 01 September 2005 Publication History

Abstract

MOOSE is a language-independent environment for reverse- and re-engineering complex software systems. MOOSE provides a set of services including a common meta-model, metrics evaluation and visualization, a model repository, and generic GUI support for querying, browsing and grouping. The development effort invested in MOOSE has paid off in precisely those research activities that benefit from applying a combination of complementary techniques. We describe how MOOSE has evolved over the years, we draw a number of lessons learned from our experience, and we outline the present and future of MOOSE.

References

[1]
G. Arévalo. High Level Views in Object Oriented Systems using Formal Concept Analysis. PhD thesis, University of Berne, Jan. 2005.
[2]
G. Arévalo, F. Buchli, and O. Nierstrasz. Detecting implicit collaboration patterns. In Proceedings of WCRE '04 (11th Working Conference on Reverse Engineering), pages 122--131. IEEE Computer Society Press, Nov. 2004.
[3]
G. Arévalo, S. Ducasse, and O. Nierstrasz. X-Ray views: Understanding the unternals of classes. In Proceedings of ASE '03 (18th Conference on Automated Software Engineering), pages 267--270. IEEE Computer Society Press, Oct. 2003. Short paper.
[4]
G. Arévalo, S. Ducasse, and O. Nierstrasz. Discovering unanticipated dependency schemas in class hierarchies. In Proceedings of CSMR '05 (9th European Conference on Software Maintenance and Reengineering), pages 62--71. IEEE Computer Society Press, Mar. 2005.
[5]
A. Bergel, S. Ducasse, and O. Nierstrasz. Classbox/J: Controlling the scope of change in Java. In Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'05), New York, NY, USA, 2005. ACM Press. To appear.
[6]
A. Bergel, S. Ducasse, O. Nierstrasz, and R. Wuyts. Classboxes: Controlling visibility of class extensions. Computer Languages, Systems and Structures, 31(3-4):107--126, May 2005.
[7]
W. R. Bischofberger. Sniff: A pragmatic approach to a c++ programming environment. In C++ Conference, pages 67--82, 1992.
[8]
C. T. Committee. CDIF framework for modeling and extensibility. Technical Report EIA/IS-107, Electronic Industries Association, Jan. 1994. See http://www.cdif.org/.
[9]
S. Demeyer and S. Ducasse. Metrics, do they really help? In J. Malenfant, editor, Proceedings LMO '99 (Languages et Modèles à Objets), pages 69--82. HERMES Science Publications, Paris, 1999.
[10]
S. Demeyer, S. Ducasse, and O. Nierstrasz. Finding refactorings via change metrics. In Proceedings of OOPSLA '2000 (International Conference on Object-Oriented Programming Systems, Languages and Applications), pages 166--178, 2000.
[11]
S. Demeyer, S. Ducasse, and O. Nierstrasz. Object-Oriented Reengineering Patterns. Morgan Kaufmann, 2002.
[12]
S. Demeyer, S. Tichelaar, and S. Ducasse. FAMIX 2.1 --- The FAMOOS Information Exchange Model. Technical report, University of Bern, 2001.
[13]
S. Ducasse and S. Demeyer, editors. The FAMOOS Object-Oriented Reengineering Handbook. University of Bern, Oct. 1999.
[14]
S. Ducasse, T. Gǐrba, and J.-M. Favre. Modeling software evolution by treating history as a first class entity. In Workshop on Software Evolution Through Transformation (SETra 2004), pages 71--82, 2004.
[15]
S. Ducasse, T. Gǐrba, M. Lanza, and S. Demeyer. Moose: a Collaborative and Extensible Reengineering Environment. In Tools for Software Maintenance and Reengineering, RCOST / Software Technology Series, pages 55 -- 71. Franco Angeli, 2005.
[16]
S. Ducasse and M. Lanza. The class blueprint: Visually supporting the understanding of classes. IEEE Transactions on Software Engineering, 31(1):75--90, 2005.
[17]
S. Ducasse, M. Lanza, and R. Bertuli. High-level polymetric views of condensed run-time information. In Proceedings of CSMR 2004 (Conference on Software Maintenance and Reengineering), pages 309--318, 2004.
[18]
S. Ducasse, M. Lanza, and L. Ponisio. Butterflies: A visual approach to characterize packages. In Proceedings of the 11th IEEE International Software Metrics Symposium (METRICS'05). IEEE Computer Society, 2005. To appear.
[19]
S. Ducasse, O. Nierstrasz, and M. Rieger. On the effectiveness of clone detection by string matching. International Journal on Software Maintenance: Research and Practice, 2005. To appear.
[20]
S. Ducasse, O. Nierstrasz, N. Schärli, R. Wuyts, and A. Black. Traits: A mechanism for fine-grained reuse. Transactions on Programming Languages and Systems, 2005. To appear.
[21]
S. Ducasse, M. Rieger, and S. Demeyer. A language independent approach for detecting duplicated code. In H. Yang and L. White, editors, Proceedings ICSM '99 (International Conference on Software Maintenance), pages 109--118. IEEE Computer Society, Sept. 1999.
[22]
S. Ducasse and S. Tichelaar. Dimensions of reengineering environment infrastructures. International Journal on Software Maintenance: Research and Practice, 15(5):345--373, Oct. 2003.
[23]
S. G. Eick, T. L. Graves, A. F. Karr, J. S. Marron, and A. Mockus. Does code decay? assessing the evidence from change management data. IEEE Transactions on Software Engineering, 27(1):1--12, 2001.
[24]
M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the Design of Existing Code. Addison Wesley, 1999.
[25]
H. Gall, K. Hajek, and M. Jazayeri. Detection of logical coupling based on product release history. In Proceedings of the International Conference on Software Maintenance 1998 (ICSM '98), pages 190--198, 1998.
[26]
T. Gǐrba, S. Ducasse, and M. Lanza. Yesterday's Weather: Guiding Early Reverse Engineering Efforts by Summarizing the Evolution of Changes. In Proceedings of ICSM '04 (International Conference on Software Maintenance), pages 40--49. IEEE Computer Society Press, 2004.
[27]
T. Gǐrba, S. Ducasse, R. Marinescu, and D. Raţiu. Identifying entities that change together. In Ninth IEEE Workshop on Empirical Studies of Software Maintenance, 2004.
[28]
T. Gǐrba, J.-M. Favre, and S. Ducasse. Using meta-model transformation to model software evolution, 2004.
[29]
T. Gǐrba, A. Kuhn, M. Seeberger, and S. Ducasse. How Developers Drive Software Evolution. In Proceedings of International Workshop on Principles of Software Evolution (IWPSE). IEEE Computer Society Press, 2005. to appear.
[30]
T. Gǐrba, M. Lanza, and S. Ducasse. Characterizing the evolution of class hierarchies. In Proceedings of European Conference on Software Maintenance (CSMR 2005), 2005.
[31]
O. Greevy and S. Ducasse. Correlating features and code using a compact two-sided trace analysis approach. In Proceedings of CSMR 2005 (9th European Conference on Software Maintenance and Reengineering. IEEE Computer Society Press, 2005.
[32]
O. Greevy, S. Ducasse, and T. Gǐrba. Analyzing feature traces to incorporate the semantics of change in software evolution analysis. In Proceedings of ICSM 2005 (21th International Conference on Software Maintenance), Sept. 2005. to appear.
[33]
A. Hassan and R. Holt. Predicting change propagation in software systems. In Proceedings of 20th IEEE International Conference on Software Maintenance (ICSM'04), pages 284--293. IEEE Computer Society Press, Sept. 2004.
[34]
M.-P. Horvath. Automatic recognition of class blueprint patterns. Diploma thesis, University of Bern, Oct. 2004.
[35]
R. Kazman, S. Woods, and S. Carriére. Requirements for integrating software architecture and reengineering models: Corum ii. In Proceedings of WCRE '98, pages 154--163. IEEE Computer Society, 1998. ISBN: 0-8186-89-67-6.
[36]
A. Kuhn, S. Ducasse, and T. Gǐrba. Enriching reverse engineering with semantic clustering, 2005. submitted.
[37]
M. Lanza. Object-Oriented Reverse Engineering --- Coarse-grained, Fine-grained, and Evolutionary Software Visualization. PhD thesis, University of Berne, May 2003.
[38]
M. Lanza and S. Ducasse. Understanding software evolution using a combination of software visualization and software metrics. In Proceedings of LMO 2002 (Langages et Modèles à Objets, pages 135--149, 2002.
[39]
M. Lanza and S. Ducasse. Polymetric views --- a lightweight visual approach to reverse engineering. IEEE Transactions on Software Engineering, 29(9):782--795, Sept. 2003.
[40]
M. Lanza and S. Ducasse. Codecrawler - an extensible and language independent 2d and 3d software visualization tool. In Tools for Software Maintenance and Reengineering, RCOST / Software Technology Series, pages 74--94. Franco Angeli, 2005.
[41]
M. M. Lehman and L. Belady. Program Evolution -- Processes of Software Change. London Academic Press, 1985.
[42]
R. Marinescu. Detection strategies: Metrics-based rules for detecting design flaws. In Proceedings of ICSM '04 (International Conference on Software Maintenance), pages 350--359. IEEE Computer Society Press, 2004.
[43]
O. Nierstrasz, A. Bergel, M. Denker, S. Ducasse, M. Gälli, and R. Wuyt. On the revival of dynamic languages. In T. Gschwind and U. Aβmann, editors, Proceedings of Software Composition 2005. LNCS, 2005. Invited paper. To appear.
[44]
D. L. Parnas. Software Aging. In Proceedings of ICSE '94 (International Conference on Software Engineering), pages 279--287. IEEE Computer Society / ACM Press, 1994.
[45]
D. Raţiu, S. Ducasse, T. Gǐrba, and R. Marinescu. Using history information to improve design flaws detection. In Proceedings of CSMR 2004 (European Conference on Software Maintenance and Reengineering), pages 223--232, 2004.
[46]
T. Richner. Recovering Behavioral Design Views: a Query-Based Approach. PhD thesis, University of Berne, May 2002.
[47]
T. Richner and S. Ducasse. Recovering high-level views of object-oriented applications from static and dynamic information. In H. Yang and L. White, editors, Proceedings ICSM '99 (International Conference on Software Maintenance), pages 13--22. IEEE Computer Society Press, Sept. 1999.
[48]
T. Richner and S. Ducasse. Using dynamic information for the iterative recovery of collaborations and roles. In Proceedings of ICSM '2002 (International Conference on Software Maintenance), Oct. 2002.
[49]
M. Rieger. Effective Clone Detection Without Language Barriers. PhD thesis, University of Berne, June 2005.
[50]
M. Rieger, S. Ducasse, and M. Lanza. Insights into system-wide code duplication. In Proceedings of WCRE 2004 (11th Working Conference on Reverse Engineering). IEEE Computer Society Press, Nov. 2004.
[51]
A. J. Riel. Object-Oriented Design Heuristics. Addison Wesley, 1996.
[52]
N. Schärli. Traits --- Composing Classes from Behavioral Building Blocks. PhD thesis, University of Berne, Feb. 2005.
[53]
N. Schärli, S. Ducasse, O. Nierstrasz, and A. Black. Traits: Composable units of behavior. In Proceedings ECOOP 2003 (European Conference on Object-Oriented Programming), volume 2743 of LNCS, pages 248--274. Springer Verlag, July 2003.
[54]
A. Schlapbach. Generic XMI support for the MOOSE reengineering environment. Informatikprojekt, University of Bern, June 2001.
[55]
J. T. Stasko, J. Domingue, M. H. Brown, and B. A. Price, editors. Software Visualization --- Programming as a Multimedia Experience. The MIT Press, 1998.
[56]
S. Tichelaar. Modeling Object-Oriented Software for Reverse Engineering and Refactoring. PhD thesis, University of Berne, Dec. 2001.
[57]
S. Tichelaar, S. Ducasse, S. Demeyer, and O. Nierstrasz. A Meta-model for Language-Independent Refactoring. In Proceedings of ISPSE '00 (International Conference on Software Evolution), pages 157--167. IEEE Computer Society Press, 2000.
[58]
Cincom Smalltalk, Sept. 2003. http://www.cincom.com/scripts/smalltalk.dll/.

Cited By

View all
  • (2018)The Impact of Code Smells on Software Bugs: A Systematic Literature ReviewInformation10.3390/info91102739:11(273)Online publication date: 6-Nov-2018
  • (2017)Towards customised visualisation of ontologiesProceedings of the Australasian Computer Science Week Multiconference10.1145/3014812.3014839(1-10)Online publication date: 30-Jan-2017
  • (2017)XCORE: Support for developing program analysis tools2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER.2017.7884654(462-466)Online publication date: Feb-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 30, Issue 5
September 2005
462 pages
ISSN:0163-5948
DOI:10.1145/1095430
Issue’s Table of Contents
  • cover image ACM Conferences
    ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
    September 2005
    402 pages
    ISBN:1595930140
    DOI:10.1145/1081706
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: 01 September 2005
Published in SIGSOFT Volume 30, Issue 5

Check for updates

Author Tags

  1. metrics
  2. reengineering
  3. reverse engineering
  4. visualization

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)20
  • Downloads (Last 6 weeks)3
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2018)The Impact of Code Smells on Software Bugs: A Systematic Literature ReviewInformation10.3390/info91102739:11(273)Online publication date: 6-Nov-2018
  • (2017)Towards customised visualisation of ontologiesProceedings of the Australasian Computer Science Week Multiconference10.1145/3014812.3014839(1-10)Online publication date: 30-Jan-2017
  • (2017)XCORE: Support for developing program analysis tools2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER.2017.7884654(462-466)Online publication date: Feb-2017
  • (2017)MetricAttitude++Proceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.15(368-371)Online publication date: 20-May-2017
  • (2016)The OpenPonk modeling platformProceedings of the 11th edition of the International Workshop on Smalltalk Technologies10.1145/2991041.2991055(1-11)Online publication date: 23-Aug-2016
  • (2016)Moldable, context-aware searching with SpotterProceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/2986012.2986023(128-144)Online publication date: 20-Oct-2016
  • (2016)Marea: A Semi-Automatic Decision Support System for Breaking Dependency Cycles2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)10.1109/SANER.2016.11(482-492)Online publication date: Mar-2016
  • (2016)Mining architectural violations from version historyEmpirical Software Engineering10.1007/s10664-014-9348-221:3(854-895)Online publication date: 1-Jun-2016
  • (2016)The Death of Object-Oriented ProgrammingFundamental Approaches to Software Engineering10.1007/978-3-662-49665-7_1(3-10)Online publication date: 2016
  • (2015)SQA-MashupInformation and Software Technology10.1016/j.infsof.2014.10.00465:C(97-113)Online publication date: 1-Sep-2015
  • 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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media