Consumer computing is a novel, consumer-oriented methodology intended for development of variety of ubiquitous social information systems. Afore mentioned methodology is not just an interesting recently opened research topic, but also potentially highly applicable and useful product in information technology industry. The general idea in consumer computing is to provide the average, not educated in computer science, consumers the ability to create their own applications and bridge the existing gap between computer science educated programmers and consumers in today’s digital society.
Consumer programming is a new consumer-oriented programming paradigm that provides the consumers the ability to create their own applications composed out of widgets on the graphic user interface level. By performing the actions on the GUI level, consumer has an ability to shape her own process composing functionally-specific widgets into a new application.
However, while developing their own applications consumers use programming elements with variety of specific nonfunctional attributes that may significantly impact the performance and quality of experience of the consumer applications. Some of the above mentioned nonfunctional attributes include: availability, response time, content size, content type, content cost etc. The consumer programming elements nonfunctional attributes often depend of various consumer-specific (1), element-specific (2), and environment-specific (3) parameters.
The number of programming elements in consumer programming and also the number of consumers is substantially large. As a consequence, the nonfunctional attributes values for consumer-element-environment triples are known in the minority of cases. Hence, it is necessary to use prediction models in the majority of cases in order to estimate the nonfunctional attributes values. The appliance of the prediction models will help consumers choose the element with the best possible nonfunctional attributes values among elements that provide same functionality. The ultimate goal is to provide consumers the ability to create applications with the appropriate performance and suitable quality of experience while using her application.