Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

    M. Soffa

    Research Interests:
    iii Acknowledgements v Table of Contents vi List of Figures x List of Tables xii 1
    Research Interests:
    As multicore processors with expanding core counts continue to dominate the server market, the overall utilization of the class of datacenters known as warehouse scale computers (WSCs) depends heavily on colocation of multiple workloads... more
    As multicore processors with expanding core counts continue to dominate the server market, the overall utilization of the class of datacenters known as warehouse scale computers (WSCs) depends heavily on colocation of multiple workloads on each server to take advantage of the computational power provided by modern processors. However, many of the applications running in WSCs, such as websearch, are user-facing and have quality of service (QoS) requirements. When multiple applications are co-located on a multicore machine, contention for shared memory resources threatens application QoS as severe cross-core performance interference may occur. WSC operators are left with two options: either disregard QoS to maximize WSC utilization, or disallow the co-location of high-priority user-facing applications with other applications, resulting in low machine utilization and millions of dollars wasted. This paper presents ReQoS, a static/dynamic compilation approach that enables low-priority a...
    Reanalysis and retesting of modified software are major factors contributing to the high cost of development and maintenance of software systems. In large systems with many modules (each containing one or more procedures), changes must be... more
    Reanalysis and retesting of modified software are major factors contributing to the high cost of development and maintenance of software systems. In large systems with many modules (each containing one or more procedures), changes must be incorporated into the system and then tested in an efficient way. Incremental compilers provide assistance in quickly incorporating the changes into the code. Any change that is made to the module necessitates testing of the changed module. However, current tools do not support the incremental testing of modified programs with the same level of precision as incremental compilers. Efficiency in retesting a module can be increased by reusing some of the information that was obtained during the previous validation of the module, sharing information gathered by other software tools, and reducing the number of test cases that are run. These approaches for improving efficiency were used to design the incremental testing system that is described in this dissertation. Information that is gained during a testing session is saved and reused during the next session. This consists of the results of the analysis to determine what is to be tested and the actual test cases that were used to validate the module. Then, in response to a change in the validated module, the incremental tester reuses the analysis information to determine which parts of the module must be (re)tested and which new or existing test cases must be rerun. In order to accommodate procedures, an existing intraprocedural data flow testing methodology is extended to provide interprocedural testing and then adapted to handle incremental changes. Since the testing is based on data flow, updated data flow information is required by the tester. At the intraprocedural level, existing tools provide data flow analysis information to locate definitions and uses of variables. However, to test the definitions and uses that reach across procedure boundaries, precise interprocedural data flow analysis techniques were developed that compute the interprocedural du/ud-chains. This information can be shared by other tools in the environment. The incremental tester aids in the reducing the number of test cases that must be (re)run by identifying the parts of the program that must be retested. Validation of the changed module is achieved by retesting only the parts of the module that are changed or affected by the change. Savings is realized in the time required to perform the analysis, the time to generate test cases, and the time to reexecute the module with the test cases.
    A widespread recognition of the usefulness of graphical user interfaces (GUIs) has established their importance as critical components of today's software. GUIs have characteristics different from traditional software, and... more
    A widespread recognition of the usefulness of graphical user interfaces (GUIs) has established their importance as critical components of today's software. GUIs have characteristics different from traditional software, and conventional testing techniques do not directly apply to GUIs. This paper's focus is on coverage critieria for GUIs, important rules that provide an objective measure of test quality. We present new coverage criteria to help determine whether a GUI has been adequately tested. These coverage criteria use events and event sequences to specify a measure of test adequacy. Since the total number of permutations of event sequences in any non-trivial GUI is extremely large, the GUI's hierarchical structure is exploited to identify the important event sequences to be tested. A GUI is decomposed into GUI components , each of which is used as a basic unit of testing. A representation of a GUI component, called an event-flow graph , identifies the interaction of ...
    ABSTRACT
    Page 1. HIGH-LEVEL DEBUGGING WITH THE AID OF AN INCREMENTAL OPTIMIZER* Lori L. Pollock Rice University Houston, TX 77251 Abstract - Although a high-level debugger is extremely useful in program development ...
    ABSTRACT
    Page 1. AN INSTRUCTIONAL AID FOR STUDENT PROGRAMS Sally S. Robinson Dept. of Mathematics and Computer Science West Georgia College Carrollton, Ga. 30118 ML Soffa Dept. of Computer Science University of Pittsburgh Pittsburgh, Pa. 15260... more
    Page 1. AN INSTRUCTIONAL AID FOR STUDENT PROGRAMS Sally S. Robinson Dept. of Mathematics and Computer Science West Georgia College Carrollton, Ga. 30118 ML Soffa Dept. of Computer Science University of Pittsburgh Pittsburgh, Pa. 15260 Abstract ...
    The proportion of computer science (CS) bachelor's degree recipients who are women has consistently been small and is declining. This study investigates factors that predict performance and persistence in an undergraduate CS program... more
    The proportion of computer science (CS) bachelor's degree recipients who are women has consistently been small and is declining. This study investigates factors that predict performance and persistence in an undergraduate CS program and explores why even high-achieving students leave the undergraduate "CS pipeline." The factors that predict achievement and retention sometimes interact in complex, unexpected ways. Male students who earned less than a B in an introductory CS course were more likely to take the next course in the curriculum than were women who earned less than a B. Achievement is a factor in even high-achieving students' decision to leave CS; loss of interest can accompany loss of confidence. Level of achievement was predicted by various background factors including Scholastic Aptitude Test scores, the number of Calculus courses taken before entering the CS program, amount of access to a computer at home, prior computing experience, and having a mento...
    Although the application of code transformations is critical to exploit parallelism in pro- gram code, few guidelines or tools are provided to deter- mine what transformations should be applied and where they should be applied. In this... more
    Although the application of code transformations is critical to exploit parallelism in pro- gram code, few guidelines or tools are provided to deter- mine what transformations should be applied and where they should be applied. In this paper, we approach this problem by first providing a taxonomy of code transfor- mations to assist the user in parallelizing programs. We then
    Summary form only given. The production of high quality robust and reliable software depends on the availability of effective software development tools, including testing, static analysis and dynamic analysis tools. Although much effort... more
    Summary form only given. The production of high quality robust and reliable software depends on the availability of effective software development tools, including testing, static analysis and dynamic analysis tools. Although much effort has been spent over the years to improve these tools, there are still challenges that remain. One challenge is scalability for large applications and another is precision, with a trade-off between the two. New exciting opportunities are now available from advances in computer architecture that have the potential to greatly improve both the scalability and precision of our tools. These advances include multicore architectures and hardware performance monitors. The multicore architecture enables software to be parallelized and also analysis and execution to be run concurrently. Hardware performance monitors enable tracking of certain aspects of a program's execution with little or no overhead. This talk will explore how more efficient and effecti...
    Research Interests:
    ... Rajiv Gupta Mary Lou SoEa Philips Laboratories 345 Scarborough Road Briarcliff Manor, NY 10510 Dept ... section we briefly describe the design of a highly parallel architecturez3, z4 which is configurable to programs written in... more
    ... Rajiv Gupta Mary Lou SoEa Philips Laboratories 345 Scarborough Road Briarcliff Manor, NY 10510 Dept ... section we briefly describe the design of a highly parallel architecturez3, z4 which is configurable to programs written in general purpose languages such as Pascal and For ...
    Software engineering research and programming language design have enjoyed a symbiotic relationship, with traceable impacts since the 1970s, when these areas were first distinguished from one another. This report documents this... more
    Software engineering research and programming language design have enjoyed a symbiotic relationship, with traceable impacts since the 1970s, when these areas were first distinguished from one another. This report documents this relationship by focusing on several major features of current programming languages: data and procedural abstraction, types, concurrency, exceptions, and visual programming mechanisms. The influences are determined by tracing references in publications in both fields, obtaining oral histories from language designers delineating influences on them, and tracking cotemporal research trends and ideas as demonstrated by workshop topics, special issue publications, and invited talks in the two fields. In some cases there is conclusive data supporting influence. In other cases, there are circumstantial arguments (i.e., cotemporal ideas) that indicate influence. Using this approach, this study provides evidence of the impact of software engineering research on modern...
    Abstract We present a parallel algorithm to compute dynamic slices for distri-buted programs. Dynamic slices are used in debugging to re-execute only those statements of the original program that actually influenced an observed erroneous... more
    Abstract We present a parallel algorithm to compute dynamic slices for distri-buted programs. Dynamic slices are used in debugging to re-execute only those statements of the original program that actually influenced an observed erroneous result. We introduce the notion of ...
    Dynamic binary translators (DBTs) are becoming increasingly important because of their power and flexibility. However, the high memory demands of DBTs present an obstacle for all platforms, and especially embedded systems. The memory... more
    Dynamic binary translators (DBTs) are becoming increasingly important because of their power and flexibility. However, the high memory demands of DBTs present an obstacle for all platforms, and especially embedded systems. The memory demand is typically controlled by placing a limit on cached translations and forcing the DBT to flush all translations upon reaching the limit. This solution manifests as
    Absrruct-As the number of available multiprocessors in-creases, so does the importance of providing software support for these systems, including parallel compilers. Data flow analysis, an important component of software tools, may be... more
    Absrruct-As the number of available multiprocessors in-creases, so does the importance of providing software support for these systems, including parallel compilers. Data flow analysis, an important component of software tools, may be computed many times during ...
    Abstract Software dynamic translation (SDT) is a technology that permits the modification of an executing program instructions. In recent years, SDT has received increased attention, from both industry and academia, as a feasible and... more
    Abstract Software dynamic translation (SDT) is a technology that permits the modification of an executing program instructions. In recent years, SDT has received increased attention, from both industry and academia, as a feasible and effective approach to solving a variety of ...