Skip to Main Content
Randomization enables reuse, minimizes the chance of error, and minimizes user time. Randomization is applicable in problem solving techniques such as searching and optimization. With the emergence of service oriented architectures (SOAs), building software by composing existing components has been facilitated to make use of components across the Internet. Such facilitation has scaled up the corresponding problem search space from tens of components in the local component repository to hundreds or thousands of components available anywhere connected by a network. In order to search for the right composites in a large search space, randomization can be used to heuristically reduce the search time. This paper demonstrates, for the software engineering community, how randomization can be applied using granularization of context-free grammatical reduction for the automatic synthesis of component-based software using service-oriented architectures. The approach taken is to iteratively extract largest common component granules and form productions using these granules. The grammar is then written using the common granule components. We review the savings incurred by such randomization in searching for a solution. A theoretical analysis and a use case scenario are provided. Granules allow us to search the space using more formal parameters for a temporal savings of orders of magnitude associated with the symmetric granules. Granted that we can miss viable solutions in this way, the speedup however is too great to be ignored. Furthermore, given that there is a high degree of reuse between solutions, symmetric granule solutions work best.