Sysiphus
- Sysiphus is a suite of tools for developing and collaborating over software engineering models. In particular, Sysiphus aims at supporting project participants in geographically distributed environments.
- In software engineering projects, different models are needed to support the activities of different participants. For example, requirements can be written in terms of a use case model and nonfunctional requirements. The detailed design of a component can be represented in terms of a class model. Models allow participants to reason about the system using a simplified abstraction. In any realistic project, however, models themselves can become complex and difficult to maintain, as they change and overlap, diverting increasingly large project resources towards documentation and model maintenance.
Agile projects address this issue by minimizing the size and number of models to maintain. Models are used only when needed, as short-term support for collaboration or as overview. Otherwise, most design knowledge is either embedded into the source code or exchanged among participants directly, for example, during peer reviews or frequent demonstrations to the client.
While agile methods have proven successful dealing with rapid change for single site development projects, they do not transfer easily into a geographically distributed environment. Not only models are needed to support the transfer knowledge between sites, other information, such as justification of decisions, current issues, and project status also need to be made explicit.
Sysiphus provides a unified modeling and collaboration environment aimed at addressing the above issues while retaining the essence of agile methods in a geographically distributed environment.