Programs that use multi-threaded concurrency are known to be difficult to design. Moreover, research in computer-science education suggests that concurrency and synchronization co...
This work presents a descriptive and analytic study of classes playing zero, one, or two roles in six different design patterns (and combinations thereof). First, we answer three...
The knowledge and skills of software engineers are perhaps the most important factors in determining the success of software development. Thus, we seek to identify the professiona...
Social media has changed the way that people collaborate and share information. In this paper, we highlight its impact for enabling new ways for software teams to form and work to...
The development of methods tools and process improvements is best to be based on the understanding of the development practice to be supported. Qualitative research has been propo...