In early 1999, VA Software launched a project to understand how the Internet development community had been able to produce software such as Linux, Apache and Sarnba that was generally developed faster and with higher...
详细信息
In early 1999, VA Software launched a project to understand how the Internet development community had been able to produce software such as Linux, Apache and Sarnba that was generally developed faster and with higher quality than comparable commercially available alternatives. Our goal was simple: determine how to make more software development projects successful. We discovered that successful Internet community projects employed a number of practices that were not well characterized by traditional software engineering methodologies. We now refer to those practices as collaborative software development or CSD. Late in 1999 we developed the SourceForge platform to make it easy for even small software development projects to employ those practices, and in November of 1999 launched the *** Web site based on the SourceForge platform. The site was an overwhelming success, and in less than two years, grew to support more than 27,000 software development projects and over a quarter million software developers worldwide. *** affords us an unequaled test bed for understanding CSD. In response to demand from companies seeking to enable CSD within their organizations, we announced a commercial version of the SourceForge platform, SourceForge Enterprise Edition, in August 2001. This paper describes the principles of CSD, the software development pain points those principles address, and our experience enabling CSD with the SourceForge platform.
This paper presents a new combined pointer and escape analysis for multithreaded programs. The algorithm uses a new abstraction called parallel interaction graphs to analyze the interactions between threads and extrac...
详细信息
ISBN:
(纸本)9781581133462
This paper presents a new combined pointer and escape analysis for multithreaded programs. The algorithm uses a new abstraction called parallel interaction graphs to analyze the interactions between threads and extract precise points-to, escape, and action ordering information for objects accessed by multiple threads. The analysis is compositional, analyzing each method or thread once to extract a parameterized analysis result that can be specialized for use in any context. It is also capable of analyzing programs. that use the unstructured form of multithreading present in languages such as java and standard threads packages such as POSIX threads. We have implemented the analysis in the MIT Flex compiler for java and used the extracted information to 1) verify that programs correctly use region-based allocation constructs, 2) eliminate dynamic checks associated with the use of regions, and 3) eliminate unnecessary synchronization. Our experimental results show that analyzing the interactions between threads significantly increases the effectiveness of the region analysis and region check elimination, but has little effect for synchronization elimination.
Code and design conventions can be considered to be rules-of-thumb or best-practices that improve the maintainability of software applications. Generally, each programming language has its own conventions. For example...
详细信息
ISBN:
(纸本)0780370449
Code and design conventions can be considered to be rules-of-thumb or best-practices that improve the maintainability of software applications. Generally, each programming language has its own conventions. For example, the java language has a set of code and design conventions that have been documented by its creators. In general, these conventions are maintained manually by the programmer since automated support is usually restricted to the automatic generation of code. The Design and Code Convention Checker system, DChk (pronounced D-Check) enables the maintenance of various object-oriented design principles and code conventions during the development of java programs. It scans java code, listing any discovered violations of specific design and code conventions as well as recommended actions, associated reasoning and relevant reading material. This paper discusses this system, its associated tools and the relevant methodology involved in its use.
Divide-and-conquer programs are easily parallelized by letting the programmer annotate potential parallelism in the form of spawn and sync constructs. To achieve efficient program execution, the generated work load ha...
详细信息
ISBN:
(纸本)9781581133462
Divide-and-conquer programs are easily parallelized by letting the programmer annotate potential parallelism in the form of spawn and sync constructs. To achieve efficient program execution, the generated work load has to be balanced evenly among the available CPUs. For single cluster systems, Random Stealing (RS) is known to achieve optimal load balancing. However, RS is inefficient when applied to hierarchical wide-area systems where multiple clusters are connected via wide-area networks (WANs) with high latency and low bandwidth. In this paper, we experimentally compare RS with existing load-balancing strategies that are believed to be efficient for multi-cluster systems, Random Pushing and two variants of Hierarchical Stealing. We demonstrate that, in practice, they obtain less than optimal results. We introduce a novel load-balancing algorithm, Cluster aware Random Stealing (CRS) which is highly efficient and easy to implement. CRS adapts itself to network conditions and job granularities, and does not require manually-tuned parameters. Although CRS sends more data across the WANs, it is faster than its competitors for 11 out of 12 test applications with various WAN configurations. It has at most 4% overhead in ran time compared to RS on a single, large cluster, even with high wide-area latencies and low wide-area bandwidths. These strong results suggest that divide-and-conquer parallelism is a useful model for writing distributed supercomputing applications on hierarchical wide-area systems.
This paper discusses an experience in applying the extreme programming approach to the 4(th) year team design project course. Extreme programming is a recent methodology for software system development that focuses on...
详细信息
ISBN:
(纸本)0780359577
This paper discusses an experience in applying the extreme programming approach to the 4(th) year team design project course. Extreme programming is a recent methodology for software system development that focuses on high customer integration, extensive testing, code-centered development and documentation, refactoring and paired programming. Typically, the project course is managed using the standard waterfall or V-shaped development models with a faculty advisor acting as a customer for the project. In this project extreme programming has been used instead. Extreme programming is based on a sequence of development practices, including pair programming, very accurate configuration management, strong customer interaction based on "system stories," detailed testing. In this project paired programmers are used for the duration of a release and then the pairs rotate. The distributed programming environment is handled using the JCVS suite of configuration management tools. Every 3-4 weeks, a new fully functional release is delivered and reviewed by the customer. The specifications for each release are captured incrementally using use case scenarios. Only the essential requirements for the current iteration are implemented. The JUnit test suite is also used to test each of the java classes on an ongoing basis. The test suite verifies all aspects of the software at each build;this is necessary when refactoring components. Requirements capture, design and implementation of the deliverables are performed incrementally and result in quicker development times and reduced defects. Refactoring is applied wherever possible to simplify the code. Documentation is applied using the standard javaDoc utility and is kept to a minimum. Finally, customer feedback is immediately incorporated into future iterations of the design process. Most of the features of extreme programming have worked well Difficulties are found in applying some principles in the context of a university course. Sc
This paper describes in a general way the process we went through to determine the goals, principles, audience, content and style for writing comments in source code for the javaplatform at the java Software division...
详细信息
作者:
Tonndorf, MIABG
Ada Conform Assessment Lab D-85521 Ottobrunn Germany
This paper presents the actual status of Ada Conformity Assessments after the transition of Ada Conformity Assessments from the Ada Joint Program Office to ISO. The principles of Ada Conformity Assessments according t...
详细信息
ISBN:
(纸本)1581131275
This paper presents the actual status of Ada Conformity Assessments after the transition of Ada Conformity Assessments from the Ada Joint Program Office to ISO. The principles of Ada Conformity Assessments according to the ISO/IEE Final Committee Draft 18009 are summarized and the commonalties and differences to the previous practices are discussed. In the main part of the work conformity assessments for Ada C, C++, and java are compared. It is shown that the process as practiced with Ada is unique compared to other programming languages. This can be understood by looking at the special culture of the language Ada and its validation system. Both were sponsored by one single party (the US DoD) and not the IT industry. The paper concludes with an assessment and outlook on the future development on compiler conformity assessments in general.
This paper presents the actual status of Ada Conformity Assessments after the transition of Ada Conformity Assessments from the Ada Joint Program Office to ISO. The principles of Ada Conformity Assessments according t...
详细信息
ISBN:
(纸本)9781581131277
This paper presents the actual status of Ada Conformity Assessments after the transition of Ada Conformity Assessments from the Ada Joint Program Office to ISO. The principles of Ada Conformity Assessments according to the ISO/IEE Final Committee Draft 18009 are summarized and the commonalties and differences to the previous practices are discussed. In the main part of the work conformity assessments for Ada C, C++, and java are compared. It is shown that the process as practiced with Ada is unique compared to other programming languages. This can be understood by looking at the special culture of the language Ada and its validation system. Both were sponsored by one single party (the US DoD) and not the IT industry. The paper concludes with an assessment and outlook on the future development on compiler conformity assessments in general.
暂无评论