Pair programming has generated considerable controversy: some developers are enthusiastic about it, almost evangelical; others are dubious, even hostile. However, a large factor in this controversy is that programmers...
详细信息
Pair programming has generated considerable controversy: some developers are enthusiastic about it, almost evangelical; others are dubious, even hostile. However, a large factor in this controversy is that programmers label a wide variety of practices under the \"pair programming\" umbrella. Thus, before our community can sensibly discuss how pair programming works, we first need to establish exactly what it is.
Features several computer scientists who made it to the top 100 chosen by 'Technology Review' in 2003. Geoffrey Barrows, founder and president of bio-inspired microelectronics manufacturer Centeye; Cynthia Bre...
详细信息
Features several computer scientists who made it to the top 100 chosen by 'Technology Review' in 2003. Geoffrey Barrows, founder and president of bio-inspired microelectronics manufacturer Centeye; Cynthia Breazeal, director of the robotic-life group of the Massachusetts Institute of Technology Media Laboratory; Steven Hofmeyr, chief scientist of Sana Security.
Graph applications are common in scientific and enterprise computing. Recent research used graphics processing units (GPUs) to accelerate graph workloads. These applications tend to present characteristics that are ch...
详细信息
Graph applications are common in scientific and enterprise computing. Recent research used graphics processing units (GPUs) to accelerate graph workloads. These applications tend to present characteristics that are challenging for SIMD execution. To achieve high performance, prior work studied individual graph problems, and designed device-specific algorithms and optimizations to achieve high performance. However, programmers have to expend significant manual effort, packing data and computation to make such solutions GPU-friendly. This usually is too complex for regular programmers, and the resultant implementations may not be portable and perform well across platforms. To address these concerns, we propose and implement a library of software building blocks with application examples, BelRed which allows programmers to build graph applications with ease. BelRed currently is built on top of the OpenCL (TM) framework and optimized for GPUs. It consists of fundamental linear-algebra building blocks necessary for graph processing. Developers can program graph algorithms with a set of key primitives. This paper introduces the API and presents several case studies on how to use the library for a variety of representative graph problems. We evaluate application performance on an AMD GPU and investigate optimization techniques to improve performance. We show that this framework is useful to provide satisfactory GPU acceleration of various graph applications and help reduce programming efforts significantly.
The article examines how software developers extract and record security requirements in computer software development projects. It discusses that authors' own requirements methodology and understanding for delive...
详细信息
The article examines how software developers extract and record security requirements in computer software development projects. It discusses that authors' own requirements methodology and understanding for delivering security awareness to all involved individuals in software development. The authors analyze the literature to distinguish and describe solid strategies for eliciting security requirements. They suggest that the mechanisms for security requirements are critical which will be appropriate for regular software developers and suitable for use in all software development. In addition, task categories and major approaches to security requirements engineering are presented.
Circus combines constructs to define complex data operations and interactions;it integrates Z and CSP, and, distinctively, it is a language for refinement that can describe programs as well as specification and design...
详细信息
Circus combines constructs to define complex data operations and interactions;it integrates Z and CSP, and, distinctively, it is a language for refinement that can describe programs as well as specification and design models. The semantics is based on the unifying theories of programming (UTP). Most importantly, Circus is representative of a class of refinement-oriented languages that combines facilities to specify abstract data types in a model-based style and patterns of interaction. What we present here is the Circus testing theory;this work is relevant as a foundation for sound test-generation techniques for a plethora of state-rich reactive languages. To cater for data operations, we define symbolic tests and exhaustive test sets. They are the basis for test-generation techniques that can combine coverage criteria for data and transition models. The notion of correctness is Circus refinement, a UTP-based generalisation of failures-divergences refinement that considers data modelling. Proof of exhaustivity exploits the correspondence between the operational and denotational semantics.
The use of formal verification to prove the correctness of software is increasingly being mandated by international standards for the development of safety critical systems. While formal development environments exist...
详细信息
The use of formal verification to prove the correctness of software is increasingly being mandated by international standards for the development of safety critical systems. While formal development environments exist to assist in formal software development, formal verification is still an extremely difficult and time-consuming task, requiring expert skills not possessed by the typical software engineer. The authors propose a component-based development approach, where the aim is not so much to make savings in the cost of implementation, but instead to reduce the amount of verification that the software engineer needs to perform, as well as reducing the complexity of any remaining verification. This is achieved by providing reusable design templates that have been verified offline by an expert in mathematical logic and theorem proving. An important feature of the template language is the presence of higher-order parameters, which enable templates to be defined that are more widely applicable, thus giving better value for the one-off verification effort.
The article discusses the use of multicore processors and parallel architectures to improve data structures. It argues that a major shift is underway, as of March 2011, in the properties of concurrent data structures ...
详细信息
The article discusses the use of multicore processors and parallel architectures to improve data structures. It argues that a major shift is underway, as of March 2011, in the properties of concurrent data structures and their implementing algorithms. This is expected to cause data structures such as stacks, queues, and heaps to become obsolete, replaced by looser constructs involving randomization and distribution. Software engineers are advised to familiarize themselves with the performance benefits and limitations this involves.
The paper considers implementation of the Singer-Hendriks algorithm in the MAPLE computer algebra system. The algorithm finds Liouvillian solutions of linear recurrence equations with coefficients in the form of ratio...
详细信息
The paper considers implementation of the Singer-Hendriks algorithm in the MAPLE computer algebra system. The algorithm finds Liouvillian solutions of linear recurrence equations with coefficients in the form of rational functions.
One can perform a heuristic evaluation of a hypermedia application effectively by coupling a systematic analysis of the application based on a design model with general usability criteria, independent of the specific ...
详细信息
One can perform a heuristic evaluation of a hypermedia application effectively by coupling a systematic analysis of the application based on a design model with general usability criteria, independent of the specific application area, user profile(s), and user task(s). We call our method design-oriented evaluation (as opposed to the user-oriented evaluation commonly applied in usability testing), since if evaluates the internal strength of the design underlying the hypermedia application.
Although effective testing is a critical necessity to successfully produce reliable and dependable software systems, there are few guidelines or formal criteria to determine whether an individual is qualified or has t...
详细信息
Although effective testing is a critical necessity to successfully produce reliable and dependable software systems, there are few guidelines or formal criteria to determine whether an individual is qualified or has the potential to become an effective software tester At AT&T, the authors are developing a program to certify software testers by defining a career path that a software tester can follow in going from trainee to certified software rest engineer to software testing specialist.
暂无评论