skip to main content
10.1145/2889160.2889208acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article
Public Access

COPE: vision for a change-oriented programming environment

Published: 14 May 2016 Publication History

Abstract

Software engineering involves a lot of change as code artifacts are not only created once but maintained over time. In the last 25 years, major paradigms of program development have arisen -- agile development with refactorings, software product lines, moving sequential code to multicore or cloud, etc. Each is centered on particular kinds of change; their conceptual foundations rely on transformations that (semi-) automate these changes.
We are exploring how transformations can be placed at the center of software development in future IDEs, and when such a view can provide benefits over the traditional view. COPE, a Change-Oriented Programming Environment, looks at 5 activities: (1) analyze what changes programmers typically make and how they perceive, recall, and communicate changes, (2) automate transformations to make it easier to apply and script changes, (3) develop tools that compose and manipulate transformations to make it easier to reuse them, (4) integrate transformations with version control to provide better ways for archiving and understanding changes, and (5) develop tools that infer higher-level transformations from lower-level changes. Characterizing software development in terms of transformations is an essential step to take software engineering from manual development to (semi-) automated development of software.

References

[1]
R. D. Banker, S. M. Datar, C. F. Kemerer, and D. Zweig, "Software complexity and maintenance costs," CACM, vol. 36, pp. 81--94, 1993.
[2]
T. Guimaraes, "Managing application program maintenance expenditures," CACM, vol. 26, pp. 739--746, 1983.
[3]
L. Erlikh, "Leveraging legacy system dollars for e-business," IT Professional, vol. 2, pp. 17--23, 2000.
[4]
M. Vakilian, N. Chen, S. Negara, B. A. Rajkumar, B. P. Bailey, and R. E. Johnson, "Use, Disuse, and Misuse of Automated Refactorings," in ICSE, 2012.
[5]
"COPE Home Page," http://cope.eecs.oregonstate.edu.
[6]
S. Negara, M. Vakilian, N. Chen, R. E. Johnson, and D. Dig, "Is it dangerous to use version control histories to study source code evolution?" in ECOOP, 2012.
[7]
C. Mihai, S. Srinivasa, D. Dig, and B. Bailey, "Software history under the lens: A study on why and how developers examine it," in ICSME, 2015.
[8]
Y. Yoon and B. A. Myers, "Supporting selective undo in a code editor," in ICSE, 2015.
[9]
D. Dig and R. Johnson, "How do APIs evolve? A story of refactoring," JSME, vol. 18, pp. 87--103, 2006.
[10]
D. Dig, "Automated upgrading of component-based applications," Ph.D. dissertation, University of Illinois at Urbana-Champaign, 2007.
[11]
D. Dig, C. Comertoglu, D. Marinov, and R. Johnson, "Automatic detection of refactorings in evolving components," in ECOOP, 2006.
[12]
D. Dig, K. Manzoor, R. E. Johnson, and T. N. Nguyen, "Effective software merging in the presence of object-oriented refactorings," IEEE TSE, vol. 34, no. 3, pp. 321--335, 2008.
[13]
J. Kim, D. Batory, and D. Dig, "Scripting Parametric Refactorings in Java to Retrofit Design Patterns," in ICSME, 2015.
[14]
J. Kim, D. Batory, D. Dig, and M. Azanza, "Improving refactoring speed by 10x," in ICSE, 2016.
[15]
"AHEAD tool suite," www.cs.utexas.edu/users/schwartz/ATS.html.
[16]
C. Kästner, S. Apel, and M. Kuhlemann, "Granularity in software product lines," in ICSE, 2008.
[17]
B. Daniel, V. Jagannath, D. Dig, and D. Marinov, "ReAssert: Suggesting repairs for broken unit tests," in ASE, 2009.
[18]
B. Daniel, T. Gvero, and D. Marinov, "On test repair using symbolic execution," in ISSTA, 2010.
[19]
V. Jagannath, M. Gligoric, D. Jin, Q. Luo, G. Rosu, and D. Marinov, "Improved multithreaded unit testing," in ESEC/FSE 2011.

Cited By

View all
  1. COPE: vision for a change-oriented programming environment

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICSE '16: Proceedings of the 38th International Conference on Software Engineering Companion
    May 2016
    946 pages
    ISBN:9781450342056
    DOI:10.1145/2889160
    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: 14 May 2016

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    ICSE '16
    Sponsor:

    Acceptance Rates

    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)55
    • Downloads (Last 6 weeks)7
    Reflects downloads up to 06 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media