skip to main content
10.1145/1083125.1083128acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

A model for software plans

Published: 15 May 2005 Publication History

Abstract

Even in well-designed software, some concerns can not be easily encapsulated due to their dependence on surrounding context. Such concerns are intermingled with each other and the context code, making it difficult for developers to reason independently about them. We have introduced software plans as an editor-based approach for addressing the tangling of context-dependent concerns. Software plans provide programmers with partial views of the overall software which present only that code related to concerns of current interest. The problem we address is that the traditional sequence-of-characters representation for code is poorly suited for software plans. It lacks the ability to accurately model the concerns associated with a code block, the relationships between code blocks, and the notion of multiple independent plans. In this paper, we present a formally-defined code/concern model that supports these capabilities and more. Using this model, we were able to implement a prototype editing tool that supports software plans.

References

[1]
J. Aldrich. Challenge problems for separation of concerns. In OOPSLA 2000 Workshop on Advanced Separation of Concerns, Oct. 2000.
[2]
E. L. Baniassad, G. C. Murphy, C. Schwanninger, and M. Kircher. Where are programmers faced with concerns? In OOPSLA 2000 Workshop on Advanced Separation of Concerns, Oct. 2000.
[3]
A. P. Black and M. P. Jones. The case for multiple views. In ICSE 2004 Workshop on Directions in Software Engineering Environments, May 2004.
[4]
L. Carver and W. G. Griswold. Sorting out concerns. In OOPSLA '99 Workshop on Multi-Dimensional Separation of Concerns, Nov. 1999.
[5]
D. Coppit and B. Cox. Software plans for separation of concerns. In Proceedings of the Third AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software, Lancaster, UK, 22 Mar. 2004.
[6]
E. W. Dijkstra. A Discipline of Programming. Prentice Hall, 1976.
[7]
E. Ernst. Separation of concerns and then what? In ECOOP 2000 Workshop on Aspects and Dimensions of Concerns. Finland, 2000.
[8]
D. Garlan. Views for tools in integrated environments. In Advanced Programming Environments. Proceedings of an International Workshop, pages 314--43. Trondheim, Norway. 16--18 June 1986. Springer-Verlag.
[9]
U. S. E. Group. Aspect browser homepage. URL: http://www.cs.ucsd.edu/users/wgg/Software/AB/.
[10]
R. Heldal and J. Hughes. Partial evaluation and separate compilation. In Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 1--11, Amsterdam, 12--13 June 1997. ACM SIGPLAN.
[11]
N. D. Jones. An intoduction to partial evaluation. ACM Computing Surveys, 28(3):480--503, Sept. 1996.
[12]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In J. L. Knudsen, editor, ECOOP 2001 --- Object-Oriented Programming 15th European Conference, volume 2072 of Lecture Notes in Computer Science, pages 327--353. Springer-Verlag, Budapest, Hungary, June 2001.
[13]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Finland, June 1997. Springer-Verlag.
[14]
V. Kruskal. Multiple cross-cutting architectural views. In A Blast from the Past: Using P-EDIT for Multidimensional Editing, June 2000.
[15]
G. C. Murphy, A. Lai, R. J. Walker, and M. P. Robillard. Separating features in source code: An exploratory study. In Proceedings of the 23rd International Conference on Software Engineering, pages 275--85, Toronto, Canada, 12--19 May 2001. IEEE.
[16]
E. Newman. Localizing views for separation of concerns. In ICSE 2001 Workshop on Advanced Separation of Concerns in Software Engineering, 15 May 2001.
[17]
D. L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053--8, Dec. 1972.
[18]
T. Reps and T. Turnidge. Program specialization via program slicing. In O. Danvy, R. Glueck, and P. Thiemann, editors, Proceedings of the Dagstuhl Seminar on Partial Evaluation, pages 409--429, Schloss Dagstuhl, Wadern, Germany, 12--16 Feb. 1996. Springer-Verlag, New York, NY. URL: http://www.cs.wisc.edu/wpis/papers/dagstuhl96.ps.
[19]
J. M. Spivey. The Z Notation: A Reference Manual. Prentice Hall International Series in Computer Science, Hertfordshire, UK, 2nd edition, 1992.
[20]
W. P. Stevens, G. J. Myers, and L. L. Constantine. Structured design. IBM Systems Journal, 13(2):115--39, 1974.
[21]
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352--7, 1984.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
May 2005
77 pages
ISBN:1595931198
DOI:10.1145/1083125
  • cover image ACM SIGSOFT Software Engineering Notes
    ACM SIGSOFT Software Engineering Notes  Volume 30, Issue 4
    July 2005
    1514 pages
    ISSN:0163-5948
    DOI:10.1145/1082983
    Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 May 2005

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Feb 2025

Other Metrics

Citations

Cited By

View all

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