A Middleware to Increase Awareness in Distributed Software Development Workspaces Copyright, 1997 © Dale Carnegie & Associates, Inc. Marco A. S. Mangan 1,2, Marcos R. S. Borges 3,Cláudia Werner 1 1 Computer Science Department, COPPE, Federal University of Rio de Janeiro – Brazil 2 Faculdade de Informática, PUCRS – Brazil 3 Núcleo de Computação Eletrônica and Instituto de Matemática, UFRJ, Brazil {mangan,
2 Outline Scenario, Motivation, and Proposal Middleware Architecture Overview Examples of Extensions Conclusion and Future Work
3 Scenario Distributed or Global Software Development Teammates in different places or worktime Virtual teams In theory: increased productivity In practice: cultural problems, awareness and communication breakdown Distributed Sofware Development Environments (DSDEs) Software development tools + collaboration tools Examples: Palantir, Milos, Tukan, Gossip, Serendipity
4 Motivation Problems with current groupware frameworks and toolkits Hard to learn and to extend Single solution provider Offer collaboration support but require task support programming Centralized computing Economics of software development: software reuse DSDE commonalities and variabilities
5 Proposal An alternative to DSDE development Enhancement of pre-existent software tools A middleware-based collaboration server implementing DSDE commonalities Extension mechanisms to deal with DSDE variabilities Guidelines to develop and maintain extensions
6 Middleware architecture A description of the main components of a DSDE CASE tool: an event source Collector: a program to collect events (Collaborative) Extension: an event sinker Blackboard architecture Communication uses a single shared space On-line notification Template-based queries A JINI service
7 Middleware architecture Events: operations + awareness model elements Examples: create class, update line, window move At least, five basic operations Create, retrieve, update, delete, view/touch At least, three awareness models Spatial: windows, viewports, UI components Semantic: class, packages, relationships Document-based: document, paragraphs, lines The task determines the awareness model API contains about 15 interfaces
8 Middleware architecture CASE tool Collector Extension Collector CASE tool Extension Event Notification e2[e1] write(e2[e1]) e1 query(e?) notify(e?)
9 Examples Task: software peer review CASE tool: Odyssey SDE Collector: Java UI System Spatial awareness model Task: concurrent programming CASE tool: Eclipse SDE Collector: tool extension mechanism Document-based awareness model
10 Examples Task: concurrent modeling CASE tool: Odyssey SDE Collector: tool extension mechanism Semantic awareness model Task: software management CASE tool: Odyssey SDE Collector: persistence layer Semantic awareness model
11 Conclusions An alternative to the development of DSDEs Distributed computing, application independent awareness model and a software component market Extension examples demonstrate the feasibility of this approach Extensions enables the use and evaluation of collaboration support in real scenarios
12 Future Work Third-party feasibility evaluation Observe planning and development of extensions with the architecture Work impact evaluation Observe a group performing a development task with and without the extensions
13 Thank you! Comments? Questions? A Middleware to Increase Awareness in Distributed Software Development Workspaces