@conference {15486,
	title = {Prioritizing component compatibility tests via user preferences},
	booktitle = {Software Maintenance, 2009. ICSM 2009. IEEE International Conference on},
	year = {2009},
	month = {2009/09//},
	pages = {29 - 38},
	abstract = {Many software systems rely on third-party components during their build process. Because the components are constantly evolving, quality assurance demands that developers perform compatibility testing to ensure that their software systems build correctly over all deployable combinations of component versions, also called configurations. However, large software systems can have many configurations, and compatibility testing is often time and resource constrained. We present a prioritization mechanism that enhances compatibility testing by examining the ldquomost importantrdquo configurations first, while distributing the work over a cluster of computers. We evaluate our new approach on two large scientific middleware systems and examine tradeoffs between the new prioritization approach and a previously developed lowest-cost-configuration-first approach.},
	keywords = {compatibility testing prioritization, component configurations, computer clusters, Middleware, Middleware systems, object-oriented programming, program testing, software engineering, Software systems, third-party components, user preferences},
	doi = {10.1109/ICSM.2009.5306357},
	author = {Yoon,Il-Chul and Sussman, Alan and Memon, Atif M. and Porter, Adam}
}
@article {17850,
	title = {Principles for designing data-/compute-intensive distributed applications and middleware systems for heterogeneous environments},
	journal = {Journal of Parallel and Distributed Computing},
	volume = {67},
	year = {2007},
	month = {2007/07//},
	pages = {755 - 771},
	abstract = {The nature of distributed systems is constantly and steadily changing as the hardware and software landscape evolves. Porting applications and adapting existing middleware systems to ever changing computational platforms has become increasingly complex and expensive. Therefore, the design of applications, as well as the design of next generation middleware systems, must follow a set of guiding principles in order to insure long-term {\textquotedblleft}survivability{\textquotedblright} without costly re-engineering. From our practical experience, the key determinants to success in this endeavor are adherence to the following principles: (1) Design for change; (2) Provide for storage subsystem I/O coordination; (3) Employ workload partitioning and load balancing techniques; (4) Employ caching; (5) Schedule the workload; and (6) Understand the workload. In order to support these principles, we have collected extensive experimental results comparing three middleware systems targeted at data- and compute-intensive applications implemented by our research group during the course of the last decade, on a single data- and compute-intensive application. The main contribution of this work is the analysis of a level playing field, where we discuss and quantify how adherence to these guiding principles impacts overall system throughput and response time.},
	keywords = {Computational science applications, Data-/compute-intensive applications, Heterogeneous environments, Middleware systems},
	isbn = {0743-7315},
	doi = {10.1016/j.jpdc.2007.04.006},
	url = {http://www.sciencedirect.com/science/article/pii/S0743731507000603},
	author = {Kim,Jik-Soo and Andrade,Henrique and Sussman, Alan}
}
