ABSTRACT
Most abstractions in software engineering are used for one of two purposes, either 1) for guidance, in which an abstraction created up-front serves as a roadmap for the next activity, or 2) for understanding, in which an abstraction serves to explain the current state of the system at a given point in time. In either case, the abstraction tends to be static: once it has been created, it is not updated very often. Our research distinguishes itself by developing a dynamic abstraction, emerging design, that both guides and helps in understanding, while still able to fulfill new roles in the development process. In this paper, we will focus on the following three roles: (1) coordination: allowing developers to understand how their work influences that of others and vice versa, (2) detecting design decay: preventing unintended, undiscovered, and unauthorized design changes, and (3) project management: knowing which parts of the code are stable, incomplete, or in flux.
- C. Alphonce and B. Martin. Green: A Pedagogically Customizable Round-Tripping UML Class Diagram Eclipse Plug-in. Proceedings of the Eclipse Technology Exchange Workshop at OOPSLA, 2005. Google ScholarDigital Library
- L.-T. Cheng, et al., Building Collaboration into IDEs. Edit -> Compile -> Run -> Debug -> Collaborate? ACM Queue, 1(9): p. 40--50, December/January 2003-2004. Google ScholarDigital Library
- C. R. B. de Souza, et al. How a Good Software Practice thwarts Collaboration - The Multiple roles of APIs in Software Development. Proceedings of the Foundations of Software Engineering, 2004. Google ScholarDigital Library
- Eclipse, Eclipse, http://www.eclipse.orgGoogle Scholar
- D. R. Harris, H. B. Reubenstein, and A. S. Yeh. Reverse Engineering to the Architectural Level. Proceedings of the International Conference on Software Engineering, 1995: p. 186--195. Google ScholarDigital Library
- IBM, Rational Rose, http://www-306.ibm.com/software/rationalGoogle Scholar
- M. Jarke, X. T. Bui, and J. M. Carroll, Scenario Management: An Interdisciplinary Approach. Requirements Engineering Journal, 3(3-4): p. 155--173, 1998.Google ScholarCross Ref
- A. Mehra, J. C. Grundy, and J. G. Hosking. A Generic Approach to Supporting Diagram Differencing and Merging for Collaborative Design. Proceedings of the Automated Software Engineering, 2005. Google ScholarDigital Library
- G. Murphy, D. Notkin, and K. Sullivan. Software Reflexion Models: Bridging the Gap between Source and High-Level Models. Proceedings of the Third Symposium on the Foundations of Software Engineering, 1995. Google ScholarDigital Library
- Omondo, Omondo EclipseUML, http://www.omondo.comGoogle Scholar
- D. L. Parnas and P. C. Clements, A Rational Design Process: How and Why to Fake It. IEEE Transactions on Software Engineering, 12(2): p. 251--257, February 1986. Google ScholarDigital Library
- C. Rolland, et al., A proposal for a scenario classification framework. Requirements Engineering Journal, 3(1): p. 23--47, 1998. Google ScholarDigital Library
- A. Sarma, Z. Noroozi, and A. van der Hoek. Palantír: Raising Awareness among Configuration Management Workspaces. Proceedings of the Twenty-fifth International Conference on Software Engineering, 2003. Google ScholarDigital Library
- A. van Lamsweerde and L. Willemet, Inferring Declarative Requirements Specifications from Operational Scenarios. IEEE Transactions on Software Engineering, 24(12): p. 1089--1114, December 1998. Google ScholarDigital Library
- K. Wong, et al., Structural Redocumentation: A Case Study. IEEE Software, 12(1): p. 46--54, January 1995. Google ScholarDigital Library
- Z. Xing and E. Stroulia. UMLDiff: An Algorithm for Object-Oriented Design Differencing. Proceedings of the Automated Software Engineering, 2005. Google ScholarDigital Library
Index Terms
- Emerging design: new roles and uses for abstraction
Recommendations
Cataloging design abstractions
ROA '06: Proceedings of the 2006 international workshop on Role of abstraction in software engineeringAbstractions are the essence of software design, and various enterprises, such as design patterns, architectural styles, programming clichés and idioms, attempt to capture, organize and present them to software engineers. This position paper explores ...
Fostering Cross-site Coordination through Awareness: An Investigation of State-of-the-Practice through a Focus Group Study
SEAA '12: Proceedings of the 2012 38th Euromicro Conference on Software Engineering and Advanced ApplicationsAwareness and shared knowledge are important ingredients of successful coordination in software engineering projects, and especially when team members are distributed. Although various coordination mechanisms and knowledge sharing recommendations for ...
Lighthouse: coordination through emerging design
eclipse '06: Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchangeDespite the fact that software development is an inherently collaborative activity, a great deal of software development is spent with developers in isolation, working on their own parts of the system. In these situations developers are unaware of ...
Comments