Clustering layouts of software systems combine two important aspects: they reveal groups of related artifacts of the software system, and they produce a visualization of the resul...
Web Services are entailing a major shift of perspective in software engineering: software is used and not owned, and operation happens on machines that are out of the user control....
Marcello Bruno, Gerardo Canfora, Massimiliano Di P...
Avoiding architectural erosion helps extend the lifetime of an evolving software system. Erosion can be reduced by ensuring that (i) developers share a good understanding of a sys...
Ciaran O'Reilly, Philip J. Morrow, David W. Bustar...
Software developers use testing to gain and maintain confidence in the correctness of a software system. Automated reduction and prioritization techniques attempt to decrease the...
Coercing new programmers to adopt disciplined development practices such as thorough unit testing is a challenging endeavor. Test-driven development (TDD) has been proposed as a s...