Optimum Tracking with Evolution Strategies Evolutionary algorithms are frequently applied to dynamic optimization problems in which the objective varies with time. It is desirable to gain an improved understanding of the influence of different genetic operators and of the parameters of a strategy on its tracking performance. An approach that has proven useful in the past is to mathematically analyze the strategy's behavior in simple, idealized environments. The present paper investigates the performance of a multiparent evolution strategy that employs cumulative step length adaptation for an optimization task in which the target moves linearly with uniform speed. Scaling laws that quite accurately describe the behavior of the strategy and that greatly contribute to its understanding are derived. It is shown that in contrast to previously obtained results for a randomly moving target, cumulative step length adaptation fails to achieve optimal step lengths if the target moves in a linear fashion. Implications for the choice of population size parameters are discussed. Evolutionary algorithms are nature inspired heuristics for search and optimization that model the iterated interplay of variation and selection in a population of candidate solutions. Comprehensive treatments of the subject area can be found in (Bäck, 1996; Goldberg, 1989; Mitchell, 1996; Rechenberg, 1994) . Reasons for the widespread use of evolutionary algorithms include their often observed robustness, the ease with which the underlying paradigm is understood and implemented, and their wide applicability. Areas of application today include management, control, design, scheduling, pattern recognition, and decision making.. In recent years, a fair amount of theoretical investigation has contributed substantially to our understanding of the dynamics of evolutionary search strategies on a variety of problem classes. For an overview, see . However, most of the problem classes that have been considered are of a static nature. In contrast, many problems encountered in the computational, engineering, and biological sciences are dynamic in that the objective is not constant but varies with time. Instances of dynamic optimization problems arise for example in the context of online job scheduling, where new jobs arrive in the course of the optimization. In the engineering sciences, many control problems are of an inherently dynamic nature. An extensive list of references concerned with dynamic optimization problems in the biological sciences has been reviewed by (Bürger, 2000) .. In contrast to static optimization where the goal is to rapidly and accurately locate a (near) optimal solution, the task in dynamic optimization frequently amounts to tracking a moving target as closely as possible. Strategies for dynamic optimization need to continually adapt to changes in the environment. Evolutionary algorithms are population-based strategies that often place great emphasis on adaptability, and that are believed to be good at handling time-varying objectives. In fact, dynamic optimization is frequently cited as a prime application area for evolutionary algorithms.. The knowledge available with respect to the capabilities of evolutionary algorithms for dynamic problems is mostly of an empirical nature. (Branke, 2001 ) compiled an extensive survey of work concerned with evolutionary optimization in dynamic environments along with a collection of benchmark functions and a discussion of methods that have been proposed to improve the performance of evolutionary algorithms when the objective varies with time. More recent treatises of the area include a book by (Morrison, 2004 ) and a survey article concerned with evolutionary optimization in uncertain environments by (Jin and Branke, 2005) . (Droste, 2002 ) presented a first rigorous analysis of the performance of a (1 + 1)-strategy on a discrete, dynamic objective function. However, focus in that paper is not on the tracking behavior of the strategy but rather on the expected time required to first reach the optimum. The tracking behavior of a (1 + λ)-strategy is the subject of a recent paper by (Jansen and Schellbach, 2005) in which a one-max like dynamic problem is considered on a two-dimensional lattice. As in Droste's paper, the search space is of a discrete nature and the strategy is not adaptive.. The focus of the present paper is on the tracking behavior of adaptive evolution strategies in continuous search spaces. Among the most closely related work is a paper by (Angeline, 1997 ) that compares empirically the tracking performance of an evolutionary algorithm employing a form of mutative self-adaptation with that of a strategy using a simple heuristic for step length adaptation. The fitness environment considered is a three-dimensional, spherically symmetric objective function that is shifted periodically either in a random fashion or on a linear or a spherical path. Angeline observes that the self-adaptation mechanism is not without problems in the dynamic case. In that same fitness environment, (Bäck, 1998) compares different variants of mutative self-adaptation and presents evidence that seems to indicate that the lognormal self-adaptation used in evolution strategies performs better than the variant of self-adaptation commonly used in evolutionary programming. (Salomon and Eggenberger, 1997) compare empirically the performance of evolution strategies with that of a breeder genetic algorithm on the sphere, an ellipsoid, and Rastrigin's function, where the coordinates are shifted by a constant increment in every time step. The search space dimensionalities they consider for the sphere are N = 10 and N = 30. While they do not quantify the term, they find that the sensitivity to the particular implementation of the strategy and to its parameter values is much lower for the tracking task than it is in a static environment. Without providing details, they also report to have observed that recombination is not beneficial for tracking a moving target. (Weicker and Weicker, 1999) contrast self-adaptation of a single mutation strength with that of N mutation strengths and adaptation of the full mutation covariance matrix and find that in more rapidly changing environments, the adaptation of more than a single mutation strength becomes unreliable. Finally, (Weicker, 2004) has also empirically investigated the optimum tracking behavior of evolution strategies in an environment very similar to the one considered here. The strategies under consideration employ mutative self adaptation and different selection mechanisms, but they do not make use of recombination. Based on computational experiments conducted for a large number of parameter settings, recommendations with regard to the number of offspring generated per time step and the type of selection are made.. Altogether, the above references provide a host of empirical knowledge with respect to evolutionary optimization in continuous, dynamic environments. In an attempt to establish some theoretical results to complement and explain that empirical knowledge, in (Arnold and Beyer, 2002 ) the performance of a multiparent evolution strategy with cumulative step length adaptation has been analyzed for a dynamic optimization problem in which the target moves in a random fashion. The tools employed in that work have also been used in an analysis of the behavior of the strategy on a static optimization problem disturbed by noise (Arnold, 2002; Arnold and Beyer, 2004) . It was found that for the case of a randomly moving target, cumulative step length adaptation is able to achieve asymptotically optimal step lengths. It was noted that the case of a target that moves linearly rather than randomly is an interesting one to consider as the linear motion introduces positive correlations in the sequence of steps to be taken. As cumulative step length adaptation relies on the conjecture that consecutive steps should be uncorrelated, it appears reasonable to expect suboptimal performance of cumulative step length adaptation for the case of the linearly moving target.. The present article presents an analysis of the tracking performance of the (µ/µ, λ)-ES with cumulative step length adaptation for the case of a linearly moving target. The analysis is more difficult than that of the tracking problem with random motion of the target as the linear motion of the target introduces an additional variable in the calculations. The fitness environment closely resembles that considered in (Angeline, 1997; Bäck, 1998; Salomon and Eggenberger, 1997; Weicker, 2004) . However, in contrast to those references, no particular values need to be assumed for the size of the population, the speed of the target, or the search space dimensionality. Instead, scaling laws that describe the dependence of the performance of the strategy on those parameters are obtained. Such scaling laws provide a quantitative understanding of the dynamics of the evolutionary processes that makes it possible to predict optimal parameter settings for the problem class considered. We share the belief of (van Nimwegen and Crutchfield, 2001 ) that a general, predictive theory of the dynamics of evolutionary search can be built incrementally, starting with a quantitative analytical understanding of specific problems and then generalizing to more complex situations. The present article can be considered as a small step toward such a theory.. The remainder of this article is organized as follows. In Section 2, the (µ/µ, λ)-ES with isotropic mutations and cumulative step length adaptation is briefly described. In Section 3, the tracking problem is defined and previously obtained knowledge useful for the analyses that follow is summarized. In Section 4, the behavior of the strategy is analyzed for fixed step length. The optimal step length is determined as a function of the speed of the target, the dimensionality of the search space, and the size of the population. In Section 5, the performance of the step length adaptation scheme is investigated. The step length realized by the evolution strategy is compared with the optimal step length derived in Section 4. Finally, Section 6 concludes with a brief summary, a discussion of the findings and the insights gained, and suggestions for future work. In this paper, the performance of the (µ/µ, λ)-ES with cumulative step length adaptation has been analyzed for a tracking problem with linear dynamics of the target. We have seen that the adaptation of the step length works in the sense that a mutation strength that ensures that the target can be tracked is realized. The mutation strength in Eq. (24) exceeds the minimum mutation strength σ = δ/c µ/µ,λ required to keep pace with the target that was obtained in Section 4. However, we have also shown that the mutation strength that is realized is below the mutation strength given in Eq. (15) that was found to be optimal. An explanation for that behavior can be found from Eq. (24). The mutation strength that cumulative step length adaptation realizes on the tracking problem is the same as the target mutation strength (i.e., the mutation strength that the strategy seeks to attain) on the static sphere. While for the tracking problem with random dynamics of the target that mutation strength is optimal, linear dynamics of the target ideally call for somewhat larger mutation strengths. The strategy does not anticipate changes of the objective and thus realizes the mutation strength that is statically optimal. However, it has been seen that the increase in distance at which the target is tracked that results from the use of a suboptimal mutation strength is below 10% and thus relatively minor. Our concern, voiced in (Arnold and Beyer, 2002) , that the correlations in the sequence of steps taken that result from the linear motion of the target could lead to a degradation of the performance of cumulative step length adaptation has proven largely groundless at least in the limit of infinite search space dimensionality.. It has furthermore been shown that for the problem considered, the distance at which the target is tracked depends on the search space dimensionality, the speed of the target, and the population size parameters that the strategy employs. In order to minimize that distance, the population size parameters must be chosen such that the denominator of the fraction in Eq. (25) is maximized. Interestingly, that denominator equals the progress rate of the (µ/µ, λ)-ES on the static sphere derived in (Beyer, 2001; Rechenberg, 1994) . Recommendations with respect to the choice of population size parameters that have been made for the static sphere thus also hold for the dynamic tracking problem. E.g., the optimal truncation ratio is µ/λ ≈ 0.27.. The results derived is this paper apply to the (1, λ)-ES (that operates with a population of size one and therefore without recombination) by virtue of the specialization µ = 1. It can be seen from Eq. (25) that using a population size of µ > 1 has the effect of reducing the distance at which the target is tracked by a factor of c example, for λ = 10 and µ = 3, that factor is roughly 0.7. For λ = 100 and µ = 30 the factor is approximately 0.16. Interestingly, and in contrast to the random dynamics case, closer proximity to the target is not achieved by means of a substantially larger mutation strength. Notice however that the reduction in distance from the target results in a larger normalized mutation strength.. Finally, it is important to reemphasize that all findings reported in this paper have been derived under relatively specific conditions, and that they represent but a small step on the way to a predictive theory of the dynamics of evolutionary search. The range of problems considered here is broad in that both linear and random modes of motion are now understood, and that it only needs to be assumed that objective function values increase with increasing distance from the target. It is limited in that the analysis is not applicable to environments that are not spherically symmetric, and to dynamic optimization problems other than tracking problems. Similarly, in a sense, the range of strategies considered here is larger than what can be considered in experimental studies as no specific assumptions with regard to the setting of the population size or other parameters of the algorithms need to be made. It is limited mostly by the restriction to isotropic mutation distributions, and more work is required in order to understand the behavior of covariance matrix adaptation algorithms such as that by (Hansen and Ostermeier, 2001) in dynamic environments. A further avenue for future research is to consider forms of recombination other than the global intermediate variant. It is conceivable that dynamic optimization may benefit from populations that are spread out in search space rather than being contracted to a point in every time step, and it remains to be seen whether the gain in diversity can compensate for the loss of information from all parents when doing recombination.

O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


The Java Management Extensions (JMX): Is Your Cluster Ready for Evolution? The arrival of commodity hardware configurations with performance rivaling that offered by RISC workstations is resulting in important advances in the state of the art of building and running very large scalable clusters at "mass market" pricing levels. However, cluster middleware layers are still considered as static infrastructures which are not ready for evolution.In this paper, we claim that middleware layers based on both agent and Java technologies offer new opportunities to support clusters where services can be dynamically added, removed and reconfigured. To support this claim, we present the Java Management Extensions (JMX), a new Java agent based technology, and its application to implement two disjoint cluster management middleware services (a remote reboot service and a distributed infrastructure for collecting Log events) which share a unique agent-based infrastructure. We have presented a novel Java technology (JMX) integrating Agent features. This technology is a very interesting approach to solve the problem of designing flexible middleware layers for clusters with evolving computing requirements.. Developing agent-based software architectures under JMX results in frameworks that are extensible, protocol-platform independent, reusable and interoperable with existing middleware services based on TMN, SNMP, CIM/WBEM, and CORBA. Services like persistent repositories, metadata, dynamic behavior loading, monitoring, alarm generation, and agent cascading are already integrated in this technology and ready to be used.. We have successfully used this technology to implement two prototypes of basic middleware services: the management of remote reboot operations on heterogeneous multi-platform clusters and the collection of log messages in a distributed set of instrumented processes using the same underlying agent-based infrastructure. This proves that dynamic management can be achieved in this approach by just configuring the functionality (java beans) that each agent must host. Additionally JDMK agents have proven its capability to host in a single java virtual machine a collection of completely disjoint services which can be accessed through a variety of protocols avoiding this way the waste of memory that results from having separate virtual machines running on a single host.. Future work will include developing a generic infrastructure for deployment of extensible middleware services based on JMX, and extending JMX functionality by implementing a Workflow service. This service will be the foundation for allowing complex user tasks to be defined and performed by agents in a distributed environment.

O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Combining Computational Analyses and Interactive Visualization for Document Exploration and Sensemaking in Jigsaw Abstract-Investigators across many disciplines and organizations must sift through large collections of text documents to understand and piece together information. Whether they are fighting crime, curing diseases, deciding what car to buy, or researching a new field, inevitably investigators will encounter text documents. Taking a visual analytics approach, we integrate multiple text analysis algorithms with a suite of interactive visualizations to provide a flexible and powerful environment that allows analysts to explore collections of documents while sensemaking. Our particular focus is on the process of integrating automated analyses with interactive visualizations in a smooth and fluid manner. We illustrate this integration through two example scenarios: An academic researcher examining InfoVis and VAST conference papers and a consumer exploring car reviews while pondering a purchase decision. Finally, we provide lessons learned toward the design and implementation of visual analytics systems for document exploration and understanding. Helping investigators to explore a document collection is more than just retrieving the "right" set of documents. In fact, all the documents retrieved or examined may be important, and so the challenge becomes how to give the analyst fast and yet deep understanding of the contents of those documents.. In this paper, we have illustrated methods for integrating automated computational analysis with interactive visualization for text-and document-based investigative analysis. We implemented a suite of analysis operations into the Jigsaw system, demonstrating how to combine analysis results with interactive visualizations to provide a fluid, powerful exploration environment. Further, we provided two example sensemaking scenarios that show both the methodologies and the utility of these new capabilities. We included brief descriptions of the computational analysis algorithms we chose to help readers seeking to implement similar operations in their systems. Finally, we described our experiences in building the new system and the lessons we learned in doing so.. The contributions of the work are, thus, as follows:. . Techniques for integrating computational analysis capabilities fluidly with different interactive visualizations, and realization of those techniques in the Jigsaw system. . Illustrations of the benefits of this approach via two example sensemaking scenarios. These scenarios provide sample questions and tasks, methods to resolve them, and the analysis and insights that result. . Guidance for HCI/visualization researchers about the implementation of practical, text-focused computational analysis algorithms. . Design principles for the construction of future document analysis and visual analytics systems. A particular strength of Jigsaw is its generality for analyses on different types of documents. Many other systems have been tailored to a specific style of document or content domain and, thus, provide sophisticated capabilities only in that area. Jigsaw has been applied in the domains here (academic research and consumer product reviews) and in other diverse areas such as aviation documents [49] , understanding source code files for software analysis and engineering [53] , genomics research based on PubMed articles [25] , and investigations in fraud, law enforcement, and intelligence analysis [35] , [69] . The system is available for download. 5 Many avenues remain for future research. We admittedly have not conducted formal evaluations or user studies of these new capabilities within Jigsaw. Determining the best methods to evaluate systems like this is a research challenge unto itself. Our earlier user study involving Jigsaw [34] identified the potential benefits of the system, so we believe that the addition of the new computational analysis capabilities will provide even further value. In particular, the new capabilities address analysis needs identified in the user study and determined through earlier trial use of the system by clients.. We also plan to explore newer, more powerful methods and algorithms for calculating analysis metrics. The areas of computational linguistics, dimensionality reduction, and text mining are ripe with analysis methods such as topic modeling [6] and multiword expressions [5] that could be integrated into Jigsaw. Furthermore, allowing user-driven interactive feedback to modify and evolve the computational analyses would provide an even more flexible exploration environment.. Finally, we made a claim that to achieve its fullest potential within visual analytics, a system must deeply and seamlessly combine automated computational analysis with interactive visualization. Actually, according to the definition of visual analytics introduced in Illuminating the Path [58] , we omitted the third key piece of the equation: Integrated support for analytical reasoning. Systems such as Jigsaw seeking to provide comprehensive analytic value also should include facilities for supporting human investigators' analytic reasoning processes and goals.. We are encouraged that the vision of visual analytics is beginning to be realized. The system and experiences described in this paper illustrate the potential of such an approach: Fluidly integrating computational data analysis algorithms with flexible, interactive visualizations provide investigators with powerful data exploration capabilities and systems. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. Investigations on document collections proceed with the analyst gathering nuggets of information while forming new insights and deeper understanding of the document contents. Especially, when the documents are unfamiliar, an investigator may not know where to start, what is related, or how to dive more deeply into analysis. We believe that fluid integration of computational analyses with interactive visualization provides a flexible environment that scaffolds the investigator's exploratory process.. In exploration and sensemaking, investigators likely want to ask a broad set of questions and also develop new questions throughout the investigation process. Interactive visualization supports this dynamic conversation or dialog between the investigator and the data, and it makes the results of powerful computational analyses more easily accessible and contextually relevant. Our efforts to integrate enhanced computational analysis support into Jigsaw have taught us a number of lessons about this process (resulting both from an implementation perspective and from working with users of the system [7] , [35] ), but five in particular stand out:. 1. Make different computational analysis results available throughout the system in a variety of different contexts and views, not in just one canonical representation. Chuang et al. [11] identify interpretation and trust as two key issues to the success of visual analytics systems. With respect to the results of computational text mining, trust seems to be a primary concern. We have found that portraying the results of mining algorithms under different perspectives better allows the analyst to inspect and interpret the algorithm's results. In particular, multiple analyses within Jigsaw appear in several different views and can be examined under different perspectives. For example, the single sentence document summaries are shown above the corresponding full document text in the Document View as one might expect, but they also are available as tooltips anywhere a document is represented iconically or by name. Clusterings are shown (naturally) in the Document Cluster View but also in the Document Grid View that simultaneously can show similarity, sentiment, and summary analysis results. Furthermore, clusters are easy to select and, thus, inspect the member documents under other analysis perspectives and views. Given any set of documents resulting from a text analysis, one simple command allows those documents to be loaded into a Document View for further manual exploration.. 2. Flexibly allow analysis output also to be used as input. Investigators using Jigsaw can select individual documents from any analysis view and can then request to see that document's text or see related documents. Jigsaw presents the results of similarity, clustering, and sentiment analyses visually (output), but such results can be clicked on or selected by the analyst (input) to drive further exploration. This capability is pervasive throughout the system-any document or entity can be acted upon to drive further investigation. We believe this design, which helps to facilitate the core, iterative sensemaking cycle of visual analytics [36] , enables smoother, more flexible interaction with the system, ultimately leading to deeper inquiry, exploration, and increased knowledge.. 3. Integrate different, independent computational analysis measures through interactive visualization to extend functionality and power. A deep integration of automated analysis with interactive visualization results in capabilities beyond each of the two components ("the whole is greater than the sum of the parts"). For example, Jigsaw provides document-level sentiment analysis, but does not analytically provide sentiment with respect to specific terms, concepts, or features within a document. However, as illustrated in the car review scenario, by first performing content-based clustering that divides the car reviews into sets of documents discussing different car features, and then visualizing the sentiment on the resulting clusters, one achieves a type of feature-based sentiment. The scenario showed how the reviewers felt negatively about the car's suspension and transmission.. 4. Provide computational support for both analysis directions: Narrowing down as well as widening the scope of an investigation. Many investigations take the form of an hourglass: An analyst first confronts a large amount of data (top of the hourglass), iteratively filters and searches the data to discover a small number of interesting leads (middle of the hourglass), and then expands the data under investigation again by following connections from those identified leads (bottom of the hourglass). These new data points then represent the top of another hourglass and the analyst repeats the process. Cutting et al. [16] describe this narrowing widening, iterative process as the Scatter/Gather method. To smoothly move through the different stages of an hourglass investigation, a visual analytics system should provide support for narrowing down as well as widening the scope of analysis. Jigsaw provides a variety of analysis support for both tasks. Document clustering and sentiment analysis help narrow down the scope by limiting it to one (or a few) clusters or taking only positive or negative documents into account; document similarity and recommending related entities help widen the scope by suggesting additional relevant documents; and identified entities help with both directions: They can be used to determine a germane subset of a document set (containing one or more identified entities) or to suggest other related documents (containing the entity of interest).. 5. Expose algorithm parameters in an interactive useraccessible way. The effectiveness of many computational analyses depends on the choices of their parameters. Whenever possible, visual analytics tools should provide users intuitive access to the parameter space of the underlying analyses. In Jigsaw, we expose parameters in a number of different ways. For the k-means clustering, we expose the corresponding parameters directly because they are quite intuitive. Users can either choose default values or define the number of clusters, specify whether the clustering should be based on the document text or only the entities connected to a document, and provide initial seed documents for the clusters. They then can display different clusterings from different parameter choices in multiple Document Cluster Views to compare and contrast them. We take a different approach for the cluster summarization algorithm. Instead of exposing the summarization parameters directly, we precompute a set of summarizations and let users explore the parameter space by selecting cluster summaries via an interactive slider (based on uniqueness versus frequency of the summary words). Users have preferred this approach more than exposing the (not so intuitive) parameters of the summarization algorithm directly. For the dictionary-based entity identification and the sentiment analysis, users can provide their own domain-specific dictionaries. This flexibility has proven to be very useful in various domain-specific investigations that we and others have conducted with Jigsaw (e.g., investigating wine reviews, car reviews, scientific papers, and Java code). User requests for exposing additional algorithm parameters, such as regular expressions for the rule-based entity identification approach, confirm the importance of this lesson. Computationally aided analysis and visualization of text and documents to assist human investigators with sensemaking has been a topic of intense research interest recently. Furthermore, different subdisciplines of computer science each bring their own focus to the problem. Thus, a comprehensive examination of related work likely would take a complete paper itself. Here, we highlight some of the existing research most strongly related to our work to provide the reader with greater context and familiarity of the varied approaches others have taken.. Systems in this area typically focus on some aspect of a document or document collection to present. Broadly, they visualize 1. metadata about the documents; 2. the document source text (words); 3. computed features and attributes of the documents including entities; and/or 4. general concepts, themes, and models across the documents. Visualization techniques have been developed for single documents or large collections of documents, though the techniques for individual documents often can be generalized to collections.. Systems with a specific focus on helping people understand various attributes of an academic paper collection are a good example of presenting metadata about a set of documents. PaperLens [40] employs a variety of bar chart, list, graph, and text-based visualizations to show author, topic, and citation data of past CHI papers. The system uses a clustering analysis to help group papers by topic as well. Selecting an author, paper, or concept in one visual representation loads related items into the other visualizations. A follow-on system, NetLens [33] , focuses on visualizing content-actor data within document collections such as scientific publications and authors. NetLens uses bar charts, histograms, and lists to represent the data and help analysts understand statistics and trends from conference papers and their citations.. A number of innovative visualization techniques have been developed to represent the words and source text of documents. The SeeSoft system [21] represents a line of a text document by a row of pixels on the screen, with the length of the text line (number of characters) mapped to the length of the row of pixels. The goal of the technique is to visually depict documents that are larger than what can normally be shown on one screen. Other well-known source text visualization techniques such as TextArc [47] , Word Clouds [61] , Word Trees [64] , and Phrase Nets [59] actually still show text, unlike SeeSoft. They also show frequency and relationships of particular words or terms within documents.. Many systems, in fact, inhabit a conceptual space that transitions from visualizing document source to visualizing computed metrics or features of a document or documents. For example, Viégas et al. [60] analyze collections of e-mail messages using a variant of the term-frequency inverse document-frequency (TF-IDF) algorithm that focuses on each sender. The system's visualization is temporally based and shows lists of keywords from the e-mails to characterize the main topics of messages during each month and over entire years.. Other techniques such as Arc Diagrams [63] , DocuBurst [12] , and Parallel Tag Clouds [13] compute metrics about a set of documents and visualize the computed metrics in unique ways. The PaperVis system [10] combines a relevance-determination algorithm with visualization to show relationships among academic articles. PaperVis performs citation and keyword analysis and presents the results through bulls eye and radial space filling visualizations. The size of a node (document) and its distance to other documents denote its importance and relevance, respectively. Keim and Oelke [38] perform numerous text analysis measures not seen in other document analysis systems including measures such as average word length, sentence length, number of syllables per word, and other measures such as Simpson's index and Hapax Legomena and Dislegomena (number of words occurring once and twice). The visualization of the analysis results for each of these measures uses a heatmap style display. Together with colleagues they subsequently added sentiment analysis to their measures [45] and added node-link network visualization to communicate relationships among the documents' sentiments [46] .. One particular computed attribute sometimes visualized by systems is an entity within a document or documents. Identifying entities may be as simple as looking for particular strings or expressions within a document's text or it may involve complex computations to determine unique entities and their types. Different systems then choose to visualize the results of the computation in unique ways.. FeatureLens [19] uses text mining to identify words or expressions that recur across a set of documents. The system presents lists of the frequently occurring words and expressions, small overview rectangles representing each document with term positions identified by small marks, graphs of appearance count across documents, and textual views with terms highlighted. Primary users of the system may be literary scholars or journalists reviewing books or speeches. A follow-on system, POSVis [62] , performs wordbased part-of-speech analysis on documents and then displays the results using pixel-based overviews, word clouds, and network diagrams.. Entity Workspace [4] focuses on entity-based analysis and provides a "snap-together" visualization of entities and their attributes. Its analysis capabilities include spreading activation techniques to calculate degree-ofinterest for the entities.. The IVEA system [57] uses entities of interest from a document collection to support faceted navigation and browsing across the collection. The system employs a matrix-style visualization with semantic zooming to represent the facets within documents.. Another set of systems move beyond the calculation of specific features, entities, or linguistic metrics of documents. These systems employ sophisticated text mining techniques to compute document models and abstractions, often including concepts or themes across the documents. Models and abstractions become especially useful as the size of the document collection grows.. The ThemeRiver technique [28] uses a river metaphor to represent temporal themes across a document collection. The river visualization extends from left-to-right to show the chronological progress of documents, and individual currents (colored bands) within the river represent different concepts. The vertical width of a current portrays its strength at a certain point in time.. Document topic modeling through latent Dirichlet allocation (LDA) [6] has become a popular technique for driving visualizations of document collections. TIARA [41] performs LDA analysis to identify themes throughout documents, and it portrays the results using a ThemeRiverstyle visualization that has been augmented with word clouds. The system, thus, shows how topics grow and decline in focus over time. The system also supports user interaction to drill down and provide more detail on concept regions and to see the actual documents (e-mails) generating the concepts. TIARA can be used in many domains such as consumer reviews, e-mail, and news. TextFlow [14] extends TIARA, showing how topics emerge and merge over time, how keywords relate to topics, and critical events within topics.. Parallel Topics [20] also employ LDA to model topics across a document collection and uses a ThemeRiver style visualization to present the results, coupled with a Topic Cloud to show important terms within topics, and a parallel coordinates visualization to show how individual documents contribute to the different topics. Other systems use LDA but provide different visualizations of the identified topics including word and topic lists [9] , word clouds and sentences [23] , force-directed networks [27] , or customdesigned 2D projections [11] .. The FacetAtlas system [8] helps an analyst understand relationships between entities and facets within collections of documents sharing traits similar to academic articles. FacetAtlas uses a density map-style visualization with bundled edge connections between facets and entities along with rich interactive operations to present complex relationships between concepts in a document collection. Users can either search for specific concepts or interactively explore through the visualization interface.. The IN-SPIRE [26] , [30] nSPACE/TRIST/Sandbox [32] , [67] provide sophisticated document analysis including entity identification and relations, trend analysis, clustering, and other automated operations. The systems present the documents through views of the documents' text or via groups of documents as small icons, but they augment this representation with sophisticated user interface flexibility for analysts to reason and develop stories about the data.. Commercial tools such as i2's Analyst Notebook [31] help intelligence, law enforcement, and fraud investigators work with document collections, among other types of data. Analyst's Notebook primary visualization is a node-link graph that shows connections between key entities in an investigation. Typically, however, the human investigator establishes these connections and constructs linkages.. As we will show in the following sections, our contribution beyond this vast body of related work centers around the breadth of computational analysis techniques paired with a suite of rich interactive visualizations and integrating the two in a fluid, consistent manner. Jigsaw provides multiple, varied perspectives to portray analysis results that allow the investigator to rapidly explore documents in a flexible manner. The particular emphasis on communicating entity connections across documents within concept-, temporal-, and sentiment-based perspectives also distinguishes it from existing systems.

O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Towards automatic derivation of a product performance model from a UML software product line model Software Product Line (SPL) engineering is a software development approach that takes advantage of the commonality and variability between products from a family, and supports the generation of specific products by reusing a set of core family assets. This paper proposes a UML model transformation approach for software product lines to derive a performance model for a specific product. The input to the proposed technique, the "source model", is a UML model of a SPL with performance annotations, which uses two separate profiles: a "product line" profile from literature for specifying the commonality and variability between products, and the MARTE profile recently standardized by OMG for performance annotations. The source model is generic and therefore its performance annotations must be parameterized. The proposed derivation of a performance model for a concrete product requires two steps: a) the transformation of a SPL model to a UML model with performance annotations for a given product, and b) the transformation of the outcome of the first step into a performance model. This paper focuses on the first step, whereas the second step will use the PUMA transformation approach of annotated UML models to performance models, developed in previous work. The output of the first step, named "target model", is a UML model with MARTE annotations, where the variability expressed in the SPL model has been analyzed and bound to a specific product, and the generic performance annotations have been bound to concrete values for the product. The proposed technique is illustrated with an e-commerce case study. Software Product Line (SPL) engineering is a software development approach that takes advantage of the commonality and variability between products from a family. Commonality defines those characteristics that are common to all SPL members, while variability distinguishes the members of a family from each other and needs to be explicitly modeled and separated from the common parts [5] . The main challenge in the context of SPL approach is to model and manage this variability and to support the generation of specific products by reusing a set of core family assets. SPL aims at improving productivity and decreasing realization times by gathering the analysis, design and implementation activities of a family of systems. It is based on the reuse of core assets instead of working from scratch [24] . Clements and Northrop define a product line as a set of software intensive systems sharing a common, managed set of features that satisfy specific needs of a particular market or mission, and that are developed from a common set of core assets in a prescribed way [7] .. The Unified Modeling Language (UML) is a well-known widespread notation for modeling software systems. Therefore, it would be beneficial to use UML for specifying and modeling a SPL, in order to get all the advantages of UML, including tool support and standardization. However, since UML does not support modeling variability as required for SPL, several UML extension mechanisms to specify product line variability were introduced by different authors [4] [6] [10] [13] [18] [19] [24] . Each one of these works proposes a set of stereotypes, tagged values and constraints for SPL, but so far there is no standard UML profile for SPL.. The evaluation of software and system designs for non-functional properties such as performance, reliability, and security can be enabled by attaching to the UML model suitable additional information specific to the property to be evaluated [21] . Performance properties can be annotated on UML models by using the UML Profile for Schedulability, Performance and Time (SPT) or its recent replacement, the UML Performance Profile for Modeling and Analysis of Real-Time and Embedded Systems (MARTE) [14] . The SPT and MARTE profiles define stereotypes and tagged values that can be attached to design model elements, particularly in the architecture, behaviour and deployment specifications. An annotated UML model can be transformed into a performance model and analyzed with known analysis techniques and tools [1] [22] . Traditionally, performance analysis models were built "by hand" by specialists in the field, who "abstracted" from the software only the properties of interests. However, in the context of model-driven development, a new approach for constructing analysis models is emerging, where software models with performance annotations are automatically Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. transformed into performance analysis models. A good survey of transformations of software models into different performance models is given in [1] . Examples of such transformations are from UML to Layered Queueing Networks in [16] , to Stochastic Petri Nets in [2] , and to Stochastic Process Algebra in [3] . In our work we are using the transformation framework PUMA described in [21] [22] , which converts annotated UML models into different performance models (Layered Queueing Networks, Queueing networks, Petri Nets). This paper proposes a UML model transformation approach for software product lines to derive a performance model for a specific product. The proposed derivation of a performance model for a concrete product requires two steps: a) the transformation of an annotated SPL model to a UML model with performance annotations for a given product, and b) the transformation of the outcome of the first step into a performance model. This paper focuses on the first step as shown in Figure 1 , where the input (i.e., the source model), is a UML model of a SPL with performance annotations, which uses two separate profiles: a "product line" (PL) profile similar with [10] for specifying the commonality and variability between products, and the MARTE profile recently standardized by OMG for performance annotations.. The source model is generic and therefore its performance annotations must be represented as variables rather than concrete values. The output of this step, the target model, is a UML model with MARTE annotations, where the variability expressed in the SPL model has been analyzed and bound to a specific product, and the generic performance annotations have been bound to concrete values for the product. The proposed technique is illustrated with an e-commerce case study, which models the commonality and variability in both structural and behavioural views based on the Product Line UML-based Software Engineering (PLUS) method presented in [10] .. Usually, for each individual system, the performance model has to be built from scratch. However, there may be many pre-existing sub-models. This paper aims to take advantage of the SPL engineering approaches by introducing the performance annotations in the early life cycle of the software development process for building the SPL models. Therefore, the derivation of a member of the SPL process not only considers binding the variability expressed in the SPL to a specific product, but also binding the generic performance annotations to concrete values for this product. The second step of our approach to derive automatically a Layered Queueing Network (LQN) performance model for a specific product will use the PUMA transformation approach of annotated UML models that has been previously developed in our research group [21] [22] . LQN is an extension of the well known Queueing Network model developed for modelling software systems, which contain nested services. A software server often requires services from other servers in order to fulfill the requests of its own clients [20] . After the performance model for a product was generated, it can be analyzed with existing solvers and feedback regarding its performance properties will be given to the software development team. PUMA is a tool architecture that provides a unified interface between different kinds of design specifications and different kinds of performance models in the form of an intermediate model called Core Scenario Model (CSM). CSM captures the essence of software performance specification and estimation, and strips away the design detail which is irrelevant to performance analysis. It is suited to the production of performance models of several kinds, as for example layered and regular queuing networks, and stochastic Petri nets [21] .. The paper is organized as follows. Section 2 presents the source model for a SPL, and section 3 the target model for a specific product. The model transformation algorithm for deriving the target model is illustrated in section 4. Section 5 discusses related research for managing variability and product derivation in SPL, and Section 6 presents the conclusions and future work. One of the main advantages of the Software Product Lines development process is that it takes advantage of the reusability of a set of core assets shared among the members of a family of products, instead of building each product from scratch. In this paper, we intend to do the same (i.e., reuse performance annotations) when applying Software Performance Engineering techniques in the early phases of the SPL development. Instead of annotating from scratch each UML model of each product, we propose to annotate the SPL model once with generic annotations, and to provide binding information when deriving the annotated model of a desired product from the generic SPL model. This paper proposes a two-step model transformation approach for deriving a performance model for a specific product from an UML model with performance annotations of a SPL. The first step derives automatically a UML model with concrete performance annotations for a specific product from a SPL model with generic performance annotations. The second step transforms the UML+MARTE model obtained in the first step into a performance model by using PUMA, an existing model transformation approach developed in our research group.. The paper contributes toward the long-term goal of developing UML-based tool support for early performance analysis of a product from a SPL model. The research challenge here is not only in dealing with generic yet reusable performance annotations, but also with proposing an algorithm that analyses the variability in a SPL model and derives the model of a specific product based on the set of features selected for that product. Although there is a lot of existing research in modeling SPL variability with UML, as surveyed in section 5, we have found only two proposed transformation algorithms for deriving a product from an SPL model [11] and [27] . However, none of these deals with scenarios represented as sequence diagrams, as proposed in our approach. The authors are in the process of implementing the model transformation proposed in this paper on top of the Eclipse framework and connecting it with the PUMA toolset.

O O O O O O O O O O B B I I O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B I O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O B B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O


The complexity of approximating bounded-degree Boolean #CSP Abstract. The degree of a CSP instance is the maximum number of times that a variable may appear in the scope of constraints. We consider the approximate counting problem for Boolean CSPs with bounded-degree instances, for constraint languages containing the two unary constant relations {0} and {1}. When the maximum degree is at least 25 we obtain a complete classification of the complexity of this problem. It is exactly solvable in polynomial-time if every relation in the constraint language is affine. It is equivalent to the problem of approximately counting independent sets in bipartite graphs if every relation can be expressed as conjunctions of {0}, {1} and binary implication. Otherwise, there is no FPRAS unless NP = RP. For lower degree bounds, additional cases arise in which the complexity is related to the complexity of approximately counting independent sets in hypergraphs. In the constraint satisfaction problem (CSP), we seek to assign values from some domain to a set of variables, while satisfying given constraints on the combinations of values that certain subsets of the variables may take. Constraint satisfaction problems are ubiquitous in computer science, with close connections to graph theory, database query evaluation, type inference, satisfiability, scheduling and artificial intelligence [20, 22, 25] . CSP can also be reformulated in terms of homomorphisms between relational structures [14] and conjunctive query containment in database theory [20] . Weighted versions of CSP appear in statistical physics, where they correspond to partition functions of spin systems [31] .. We give formal definitions in Section 2 but, for now, consider an undirected graph G and the CSP where the domain is {red, green, blue}, the variables are the vertices of G and the constraints specify that, for every edge xy ∈ G, x and y must be assigned different values. Thus, in a satisfying assignment, no two adjacent vertices are given the same colour: the CSP is satisfiable if, and only if, the graph is 3-colourable. As a second example, given a formula in 3-CNF, we can write a system of constraints over the variables, with domain {true, false}, that requires the assignment to each clause to satisfy at least one literal. Clearly, the resulting CSP is directly equivalent to the original satisfiability problem.

O B O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O