4 resultados para Software systems
em DigitalCommons@University of Nebraska - Lincoln
Resumo:
One problem with using component-based software development approach is that once software modules are reused over generations of products, they form legacy structures that can be challenging to understand, making validating these systems difficult. Therefore, tools and methodologies that enable engineers to see interactions of these software modules will enhance their ability to make these software systems more dependable. To address this need, we propose SimSight, a framework to capture dynamic call graphs in Simics, a widely adopted commercial full-system simulator. Simics is a software system that simulates complete computer systems. Thus, it performs nearly identical tasks to a real system but at a much lower speed while providing greater execution observability. We have implemented SimSight to generate dynamic call graphs of statically and dynamically linked functions in x86/Linux environment. A case study illustrates how we can use SimSight to identify sources of software errors. We then evaluate its performance using 12 integer programs from SPEC CPU2006 benchmark suite.
Resumo:
Educational institutions of all levels invest large amounts of time and resources into instructional technology, with the goal of enhancing the educational effectiveness of the learning environment. The decisions made by instructors and institutions regarding the implementation of technology are guided by perceptions of usefulness held by those who are in control. The primary objective of this mixed methods study was to examine the student and faculty perceptions of technology being used in general education courses at a community college. This study builds upon and challenges the assertions of writers such as Prensky (2001a, 2001b) and Tapscott (1998) who claim that a vast difference in technology perception exists between generational groups, resulting in a diminished usefulness of technology in instruction. In this study, data were gathered through student surveys and interviews, and through faculty surveys and interviews. Analysis of the data used Kendall’s Tau test for correlation between various student and faculty variables in various groupings, and also typological analysis of the transcribed interview data. The analysis of the quantitative data revealed no relationship between age and perception of technology’s usefulness. A positive relationship was found to exist between the perception of the frequency of technology use and the perception of technology’s effectiveness, suggesting that both faculty members and students believed that the more technology is used, the more useful it is in instruction. The analysis of the qualitative data revealed that both faculty and students perceive technology to be useful, and that the most significant barriers to technology’s usefulness include faulty hardware and software systems,lack of user support, and lack of training for faculty. The results of the study suggest that the differences in perception of technology between generations that are proposed by Prensky may not exist when comparing adults from the younger generation with adults from the older generation. Further, the study suggests that institutions continue to invest in instructional technology, with a focus on high levels of support and training for faculty, and more universal availability of specific technologies, including web access, in class video, and presentation software. Adviser: Ronald Joekel
Resumo:
Observability measures the support of computer systems to accurately capture, analyze, and present (collectively observe) the internal information about the systems. Observability frameworks play important roles for program understanding, troubleshooting, performance diagnosis, and optimizations. However, traditional solutions are either expensive or coarse-grained, consequently compromising their utility in accommodating today’s increasingly complex software systems. New solutions are emerging for VM-based languages due to the full control language VMs have over program executions. Existing such solutions, nonetheless, still lack flexibility, have high overhead, or provide limited context information for developing powerful dynamic analyses. In this thesis, we present a VM-based infrastructure, called marker tracing framework (MTF), to address the deficiencies in the existing solutions for providing better observability for VM-based languages. MTF serves as a solid foundation for implementing fine-grained low-overhead program instrumentation. Specifically, MTF allows analysis clients to: 1) define custom events with rich semantics ; 2) specify precisely the program locations where the events should trigger; and 3) adaptively enable/disable the instrumentation at runtime. In addition, MTF-based analysis clients are more powerful by having access to all information available to the VM. To demonstrate the utility and effectiveness of MTF, we present two analysis clients: 1) dynamic typestate analysis with adaptive online program analysis (AOPA); and 2) selective probabilistic calling context analysis (SPCC). In addition, we evaluate the runtime performance of MTF and the typestate client with the DaCapo benchmarks. The results show that: 1) MTF has acceptable runtime overhead when tracing moderate numbers of marker events; and 2) AOPA is highly effective in reducing the event frequency for the dynamic typestate analysis; and 3) language VMs can be exploited to offer greater observability.
Resumo:
Software product line (SPL) engineering offers several advantages in the development of families of software products such as reduced costs, high quality and a short time to market. A software product line is a set of software intensive systems, each of which shares a common core set of functionalities, but also differs from the other products through customization tailored to fit the needs of individual groups of customers. The differences between products within the family are well-understood and organized into a feature model that represents the variability of the SPL. Products can then be built by generating and composing features described in the feature model. Testing of software product lines has become a bottleneck in the SPL development lifecycle, since many of the techniques used in their testing have been borrowed from traditional software testing and do not directly take advantage of the similarities between products. This limits the overall gains that can be achieved in SPL engineering. Recent work proposed by both industry and the research community for improving SPL testing has begun to consider this problem, but there is still a need for better testing techniques that are tailored to SPL development. In this thesis, I make two primary contributions to software product line testing. First I propose a new definition for testability of SPLs that is based on the ability to re-use test cases between products without a loss of fault detection effectiveness. I build on this idea to identify elements of the feature model that contribute positively and/or negatively towards SPL testability. Second, I provide a graph based testing approach called the FIG Basis Path method that selects products and features for testing based on a feature dependency graph. This method should increase our ability to re-use results of test cases across successive products in the family and reduce testing effort. I report the results of a case study involving several non-trivial SPLs and show that for these objects, the FIG Basis Path method is as effective as testing all products, but requires us to test no more than 24% of the products in the SPL.