This is collaborative research with John Riedl, University of Minnesota (IRI-9208546). Much of software engineering-design, programming, debugging, testing, code reviews, program demonstrations, and program management-requires collaboration among multiple users, possibly geographically dispersed. In this project the researchers propose to investigate flexible support for the activities of cooperating software engineers. In particular they propose to investigate an approach that offers (i) a wide range of concurrency control mechanisms including serializable transactions and interactive transactions; (ii) fine-grain access control for collaborative applications that allows a user to recover from other users' mistakes and explore various alternatives with them, (iv) a multidimensional inheritance model that allows collaboration parameters to be specified independently in hierarchies of groups of objects and groups of users; and (v) multimedia support integrated with concurrency control, access control, and undo/redo. The unique features of this research are its focus on the relationships of these five goals, on flexible mechanisms for achieving each of the goals, and on structured specification of options by end-users. The researchers will use results from previous research done in flexible coupling, long transactions, adaptive concurrency control systems. inheritance, single-user undo/redo, capability-based protection, collaborative tools, and software engineering tools, They plan to implement the approach by extending an existing system developed at Purdue and Minnesota. They will evaluate the performance of the various collaboration methods and study how a particular method can be automatically chosen by the systems based on a minimum performance level requested by the user. In addition to an understanding of the applicability of collaborative technology to software engineering, the research will produce prototype software engineering tools to demonstrate the novel aspects of the research.