FCM: A Flexible Consistency Model for Software Processes
COLORADO UNIV AT BOULDER DEPT OF COMPUTER SCIENCE
Pagination or Media Count:
This paper presents a flexible model of consistency for software processes and products. The model is motivated by the difficulty of defining and maintaining the consistency of software products during software development. Software development can be viewed as the process of creating a consistent software product. However, software processes are lengthy and complex, the criteria for consistency are often dynamic and relative to specific processes, and inconsistency is often inescapable. A detailed examples is presented in Section 2. The goal of the flexible consistency model presented here is not to attempt to suppress these problems. Rather it is to accommodate the problems of representing arid maintaining consistency in a way that facilitates tile modeling of software processes and the development of software products. A consistency model for software products has several aspects. It must minimally include some notion of consistency for those products and some mechanism for evaluating that consistency. In practice the criteria for consistency may be implicit or explicit, and the mechanism for evaluating and enforcing consistency may be manual or automatic for example, see 8,19,11,12,10. The model may also include some view, either implicit or explicit, of how the criteria for consistency evolve in time if at all. A practical consistency model must also be integrated with a model for operations on the data, and it must include rules about the consequences of consistency or inconsistency for those operations. Operations on data are typically addressed in transaction models, which may also include operational criteria for consistency i.e., serializability and atomicity 13,14,18,12. In the conception of this paper a general consistency model subsumes a transaction model. The capabilities in each area complement one another, and flexibility in both is regarded as essential for software processes.
- Computer Programming and Software
- Computer Hardware