The article discusses the difference between computational-science software that is developed for high-performance-computing (HPC) machines and traditional software engineering (SE) software. Many scientists were neve...
详细信息
The article discusses the difference between computational-science software that is developed for high-performance-computing (HPC) machines and traditional software engineering (SE) software. Many scientists were never formally trained in SE, and have learned to write their own codes on their supercomputers to test their theories. These programs are usually small at first and then upgraded and expanded as the theory progresses. For these reasons, software programming techniques in the scientific community are very different from traditional SE methodology, and many commercial software engineers have a hard time working with and cooperating with scientific-software developers.
The article focuses on the quantitative model created by the developers at Jet Propulsion Laboratory that helps hardware and software engineers make trade-offs among quality requirements early in development. Usually,...
详细信息
The article focuses on the quantitative model created by the developers at Jet Propulsion Laboratory that helps hardware and software engineers make trade-offs among quality requirements early in development. Usually, detailed information is scarce during a project's early phases but developers sometimes need to make major decisions about trade-offs among quality requirements. As a result, developers can get locked into an inferior design. With this, a new model was presented which was based on a coarse quantification of relevant factors and how those factors interact. The developers invented their defect detection and prevention (DDP) approach which is a risk-based requirements model.
The CUDA programming model provides a straightforward means of describing inherently parallel computations, and NVIDIA's Tesla GPU architecture delivers high computational throughput on massively parallel problems...
详细信息
The CUDA programming model provides a straightforward means of describing inherently parallel computations, and NVIDIA's Tesla GPU architecture delivers high computational throughput on massively parallel problems. This article surveys experiences gained in applying CUDA to a diverse set of problems and the parallel speedups over sequential codes running on traditional CPU architectures attained by executing key computations on the GPU.
The article discusses computer software and code reviews, describing the advanced tools that allow software-development teams that are located around the world to collaborate on projects. The author indicates that suc...
详细信息
The article discusses computer software and code reviews, describing the advanced tools that allow software-development teams that are located around the world to collaborate on projects. The author indicates that such a team format turned out to be beneficial. Topics include communication threads occurring in parallel, emphasis on the written dialogue over verbal discussion, and completing much of the review before the meeting itself. Also discussed are 'code inspections,' finding programming flaws, and uncovering deficiencies.
Programs written in C and C++ are susceptible to memory errors, including buffer overflows and dangling pointers. These errors, which can lead to crashes, erroneous execution, and security vulnerabilities, are notorio...
详细信息
Programs written in C and C++ are susceptible to memory errors, including buffer overflows and dangling pointers. These errors, which can lead to crashes, erroneous execution, and security vulnerabilities, are notoriously costly to repair. Tracking down their location in the source code is difficult, even when the full memory state of the program is available. Once the errors are finally found, fixing them remains challenging: even for critical security-sensitive bugs, the average time between initial reports and the issuance of a patch is nearly 1 month. We present Exterminator, a system that automatically corrects heap-based memory errors without programmer intervention. Exterminator exploits randomization to pinpoint errors with high precision. From this information, Exterminator derives runtime patches that fix these errors both in current and subsequent executions. In addition, Exterminator enables collaborative bug correction by merging patches generated by multiple users. We present analytical and empirical results that demonstrate Exterminator's effectiveness at detecting and correcting both injected and real faults.
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.
The article is about software reuse. In the past, most software developers found it easier to build their own software components by themselves because there were very few good components available to them. In additio...
详细信息
The article is about software reuse. In the past, most software developers found it easier to build their own software components by themselves because there were very few good components available to them. In addition, reusable components were difficult and expensive to locate and evaluate. However, as open source software becomes more popular, and programming code search engines get more effective, software reuse may also become more common. A tool called Code Conjurer was produced at the University of Mannheim, in Germany. This tool enables programmers to find reusable software components with very little effort.
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.
Creating an integrated development environment for a new programming language is a nontrivial and laborious task. Such universal integration platforms as Eclipse, NetBeans, MS Visual Studio, and others partly facilita...
详细信息
Creating an integrated development environment for a new programming language is a nontrivial and laborious task. Such universal integration platforms as Eclipse, NetBeans, MS Visual Studio, and others partly facilitate it. The paper gives a comparative analysis of the approaches to creating a development environment on the basis a universal integration platform and proposes a new approach that eliminates the disadvantages while retaining the advantages of the existing approaches.
Input validation is essential and critical in Web applications. It is the enforcement of constraints that any input must satisfy before it is accepted to raise external effects. We have discovered some empirical prope...
详细信息
Input validation is essential and critical in Web applications. It is the enforcement of constraints that any input must satisfy before it is accepted to raise external effects. We have discovered some empirical properties for characterizing input validation in Web applications. In this paper, we propose an approach for automated recovery of input validation model from program source code. The model recovered is represented in a variant of control flow graph, called validation flow graph, which shows essential input validation features implemented in programs. Based on the model, we then formulate two coverage criteria for testing input validation. The two criteria can be used to guide the structural testing of input validation in Web applications. We have evaluated the proposed approach through case studies and experiments. (c) 2007 Published by Elsevier Inc.
暂无评论