Substantial time is spent on building, optimizing and maintaining large-scale software that is run on supercomputers. However, little has been done to utilize overall resources efficiently when it comes to including e...
详细信息
ISBN:
(纸本)9781450341677
Substantial time is spent on building, optimizing and maintaining large-scale software that is run on supercomputers. However, little has been done to utilize overall resources efficiently when it comes to including expensive human resources. The community is beginning to acknowledge that optimizing the hardware performance such as speed and memory bottlenecks contributes less to the overall productivity than the development lifecycle of high-performance scientific applications. We propose an evaluation approach that compares recorded novice programming workflows to an expert workflow to identify productivity bottlenecks and suboptimal paths. We use these results to suggest improvements to the programming environment or tools. We give preliminary results from applying this approach to two case studies involving the use of numerical libraries.
Software fault localization involves locating the exact cause of error for a "failing" execution run - a run which exhibits an unexpected behavior. Given such a failing run, fault localization often proceeds...
详细信息
ISBN:
(纸本)354033050X
Software fault localization involves locating the exact cause of error for a "failing" execution run - a run which exhibits an unexpected behavior. Given such a failing run, fault localization often proceeds by comparing the failing run with a "successful" run, that is, a run which does not exhibit the unexpected behavior. One important issue here is the choice of the successful run for such a comparison. In this paper, we propose a control flow based difference Metric for this purpose. The difference metric takes into account the sequence of statement instances (and not just the set of these instances) executed in the two runs, by locating branch instances with similar contexts but different outcomes in the failing and the successful runs. Given a failing run pi(f) and a pool of successful runs S, we choose the successful run pi(s) from S whose execution trace is closest to pi(f) in terms of the difference metric. A bug report is then generated by returning the difference between pi(f) and pi(s). We conduct detailed experiments to compare our approach with previously proposed difference metrics. In particular, we evaluate our approach in terms of (a) effectiveness of bug report for locating the bug, (b) size of bug report and (c) size of successful run pool required to make a decent choice of successful run.
This book is designed as a rapid and effective Struts tutorial for Java developers. The book builds a fully-featured web bookstore application incrementally, with each stage described step-by-step. Concepts are introd...
详细信息
ISBN:
(纸本)9781904811541
This book is designed as a rapid and effective Struts tutorial for Java developers. The book builds a fully-featured web bookstore application incrementally, with each stage described step-by-step. Concepts are introduced simply and clearly as the design and implementation of this sample project evolves. The emphasis is on rapid learning through clear and well structured examples. This book is written for Java developers planning to develop web applications, who are new to Struts. It expects familiarity with Java, JSP and Servlets to a degree, although more obscure elements are explained. It covers Struts 1.2.
The Insider's Best-Practice Guide to Rapid PyQt 4 GUI DevelopmentWhether you're building GUI prototypes or full-fledged cross-platform GUI applications with native look-and-feel, PyQt 4 is your fastest, easies...
详细信息
ISBN:
(纸本)0132354187;9780132354189
The Insider's Best-Practice Guide to Rapid PyQt 4 GUI DevelopmentWhether you're building GUI prototypes or full-fledged cross-platform GUI applications with native look-and-feel, PyQt 4 is your fastest, easiest, most powerful solution. Qt expert Mark Summerfield has written the definitive best-practice guide to PyQt 4 *** Rapid GUI programming with Python and Qt you'll learn how to build efficient GUI applications that run on all major operating systems, including Windows, Mac OS X, Linux, and many versions of Unix, using the same source code for all of them. Summerfield systematically introduces every core GUI development technique: from dialogs and windows to data handling; from events to printing; and more. Through the book's realistic examples you'll discover a completely new PyQt 4-based programming approach, as well as coverage of many new topics, from PyQt 4's rich text engine to advanced model/view and graphics/view programming. Every key concept is illuminated with realistic, downloadable examples-all tested on Windows, Mac OS X, and Linux with Python 2.5, Qt 4.2, and PyQt 4.2, and on Windows and Linux with Qt 4.3 and PyQt *** includes Python basics for every PyQt developer: data types, data structures, control structures, classes, modules, and more Core PyQt GUI programming techniques: dialogs, main windows, and custom file formats Using Qt Designer to design user interfaces, and to implement and test dialogs, events, the Clipboard, and drag-and-drop Building custom widgets: Widget Style Sheets, composite widgets, subclassing, and more Making the most of Qt 4.2's new graphics/view architecture Connecting to databases, executing SQL queries, and using form and table views Advanced model/view programming: custom views, generic delegates, and more Implementing online help, internationalizing applications, and using PyQt's networking and multithreading facilities
Agile Java™ Development With Spring, Hibernate and Eclipse is a book about robust technologies and effective methods which help bring simplicity back into the world of enterprise Java development. The three key techno...
详细信息
ISBN:
(纸本)9780672328961;0672328968
Agile Java™ Development With Spring, Hibernate and Eclipse is a book about robust technologies and effective methods which help bring simplicity back into the world of enterprise Java development. The three key technologies covered in this book, the Spring Framework, Hibernate and Eclipse, help reduce the complexity of enterprise Java development significantly. Furthermore, these technologies enable plain old Java objects (POJOs) to be deployed in light-weight containers versus heavy-handed remote objects that require heavy EJB containers. This book also extensively covers technologies such as Ant, JUnit, JSP tag libraries and touches upon other areas such as such logging, GUI based debugging, monitoring using JMX, job scheduling, emailing, and more. Also, Extreme programming (XP), Agile Model Driven Development (AMDD) and refactoring are methods that can expedite the software development projects by reducing the amount of up front requirements and design; hence these methods are embedded throughout the book but with just enough details and examples to not sidetrack the focus of this book. In addition, this book contains well separated, subjective material (opinion sidebars), comic illustrations, tips and tricks, all of which provide real-world and practical perspectives on relevant topics. Last but not least, this book demonstrates the complete lifecycle by building and following a sample application, chapter-by-chapter, starting from conceptualization to production using the technology and processes covered in this book. In summary, by using the technologies and methods covered in this book, the reader will be able to effectively develop enterprise-class Java applications, in an agile manner!
When working in large and complex codebases, developers face challenges using Find Usages to understand how to reuse classes and methods. To better understand these challenges, we conducted a small exploratory study w...
详细信息
ISBN:
(纸本)9781728169019
When working in large and complex codebases, developers face challenges using Find Usages to understand how to reuse classes and methods. To better understand these challenges, we conducted a small exploratory study with 4 participants. We found that developers often wasted time reading long lists of similar usages or prematurely focused on a single usage. Based on these findings, we hypothesized that clustering usages by the similarity of their surrounding context might enable developers to more rapidly understand how to use a function. To explore this idea, we designed and implemented Find Unique Usages, which extracts usages, computes a diff between pairs of usages, generates similarity scores, and uses these scores to form usage clusters. To evaluate this approach, we conducted a controlled experiment with 12 participants. We found that developers with Find Unique Usages were significantly faster, completing their task in 35% less time.
From the Publisher: Cocoa programming is a comprehensive work that starts as a fast-paced introduction to the OS architecture and the Cocoa language for programmers new to the environment. The more advanced section...
详细信息
ISBN:
(纸本)9780672322303
From the Publisher: Cocoa programming is a comprehensive work that starts as a fast-paced introduction to the OS architecture and the Cocoa language for programmers new to the environment. The more advanced sections of the book will show the reader how to create Cocoa applications using Objective-C, to modify the views, integrate multimedia, and access networks. The final sections explain how to extend system applications and development tools in order to create your own frameworks.
暂无评论