On Atomicity and Software Development
Jörg Kienzle (School of Computer Science, McGill University, Canada)
Abstract: This paper shows how the concept of atomicity can ease the development of concurrent software. It illustrates by means of a case study how atomicity is used to reduce the complexity of concurrency by presenting simplified models or views of the system at certain stages of the development cycle. As the development process goes on, the atomic views from the early stages are refined - broken up into smaller pieces - to slowly introduce concurrency back into the system. Finally, at the design stage, low-level concepts that provide atomicity, such as transaction or monitors, are used to ensure consistent concurrent updating of the application state.
Keywords: OCL, UML, atomicity, concurrency, monitors, software development, transactions
Categories: D.1.3, D.1.5, D.2