A rational design process: How and why to fake it
IEEE Transactions on Software Engineering
Software reflexion models: bridging the gap between source and high-level models
SIGSOFT '95 Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering
Reverse engineering to the architectural level
Proceedings of the 17th international conference on Software engineering
A proposal for a scenario classification framework
Requirements Engineering
Inferring Declarative Requirements Specifications from Operational Scenarios
IEEE Transactions on Software Engineering
Structural Redocumentation: A Case Study
IEEE Software
Palantír: raising awareness among configuration management workspaces
Proceedings of the 25th International Conference on Software Engineering
Building Collaboration into IDEs
Queue - Distributed Development
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
UMLDiff: an algorithm for object-oriented design differencing
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
A generic approach to supporting diagram differencing and merging for collaborative design
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Green: a pedagogically customizable round-tripping UML class diagram Eclipse plug-in
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Lighthouse: coordination through emerging design
eclipse '06 Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange
CASI: preventing indirect conflicts through a live visualization
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
On the use of emerging design as a basis for knowledge collaboration
JSAI-isAI'09 Proceedings of the 2009 international conference on New frontiers in artificial intelligence
To lock, or not to lock: That is the question
Journal of Systems and Software
Hi-index | 0.00 |
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.