Developers need tool support to help manage the wide range of inconsistencies that occur during software development. Such tools need to provide developers with ways to define, detect, record, present, interact with, monitor and resolve complex inconsistencies between different views of software artifacts, different developers and different phases of software development. This paper describes our experience with building complex multiple-view software development tools that support diverse inconsistency management facilities. We describe software architectures we have developed, user interface techniques used in our multiple-view development tools, and discuss the effectiveness of our approaches compared to other architectural and HCI techniques.
supports distributed process modeling and enactment for distributed software development projects. Serendipity-II is based on a decentralized architecture and uses Internet communication facilities.
53
IEEE INTERNET COMPUTINGSuch centralized architectures can seriously constrain system robustness, performance, security, and distribution. There has been some research to overcome some of these problems, for example, through distributed process-enactment engines and distributed task-automation agents. However, little work has been done to facilitate distributed work process modeling and more generalized software agents.
SERENDIPITY-II ENVIRONMENTWe have developed a distributed architecture and environment that supports fully decentralized software process modeling, process enactment, and distributed work coordination, task automation, and tool integration. Serendipity-II emerged from an earlier central-server-based process support tool, Serendipity. 2 The newer architecture is decentralized, and runs over the Internet and modem and mobile computer networks, as well as over local area networks. It also supports a wider range of distributed collaborative process modeling and software agents than most other distributed process support systems.
Developing software engineering tools is a difficult task, and the environments in which these tools are deployed continually evolve as software developers' processes, tools and tool sets evolve. To more effectively develop such evolvable environments, we have been using component-based approaches to build and integrate a range of software development tools, including CASE and workflow tools, file servers and versioning systems, and a variety of reusable software agents. We describe the rationale for a component-based approach to developing such tools, the architecture and support tools we have used, some resultant tools and tool facilities we have developed, and summarise possible future research directions in this area.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.