Peer Reviewed Journal via three different mandatory reviewing processes, since 2006, and, from September 2020, a fourth mandatory peer-editing has been added.
Reengineering is to reorganize and modify existing systems to enhance them or to make them more maintainable. Reengineering is usually necessary as systems evolve due to changes in requirements, technologies, and/or personnel. Design patterns capture recurring structures and dynamics among software participants to facilitate reuse of successful designs. Design patterns are common and well studied in network systems. In this project, we reengineer part of a network system with some design patterns to support future evolution and performance improvement. We start with reverse engineering effort to understand the system and recover its high level architecture. Then we apply concurrent and networked design patterns to restructure the main sub-system. Those patterns include Half-Sync/Half-Async, Monitor Object, and Scoped Locking idiom. The resulting system is more maintainable and has better performance.