Previous [ 1] [ 2] [ 3] [ 4] [ 5] [ 6] [ 7] [ 8] [ 9] [ 10] [ 11] [ 12] [ 13] [ 14] [ 15] [ 16] [ 17] [ 18] [ 19] [ 20] [ 21]


Journal of Information Science and Engineering, Vol. 31 No. 3, pp. 897-924 (May 2015)

Patterns for Continuous Integration Builds in Cross-Platform Agile Software Development*

1Department of Computer Science and Information Engineering
National Taipei University of Technology
Taipei, 106 Taiwan
2Independent Software Consultant
P.O. Box 35-220 Taipei, Taiwan

Cross-platform software development poses challenges to agile development teams in practicing continuous integration (CI) builds not only because such builds take a longer time to complete and are more likely to fail, but also because builds of different lengths and scopes must be available depending on the working circumstances. To deal with this situation, three aspects of build automation in CI V the structuring of source code modules, the management of intermediate and final build artifacts, and the execution of builds V must be re-considered to account for the cross-platform characteristics. This paper discovers and documents a collection of ten patterns of CI builds for use in developing cross-platform software in the three aspects re-considered. These patterns are distilled from known uses of builds in existing software and from our experience in building commercial and open-source cross-platform software. As illustrated with an example adapted from the development of a real-world commercial cross-platform software product, the patterns can be effectively applied to solve many commonly encountered problems in applying CI for agile cross-platform software development.

Keywords: continuous integration, software build, cross-platform software, pattern, pattern language, agile development

Full Text () Retrieve PDF document (201505_08.pdf)

Received December 2, 2013; revised March 28, 2014; accepted June 6, 2014.
Communicated by Meng Chang Chen.
* A preliminary result of this work was presented in the AsianPLoP 2011, Tokyo, Japan.