
APIs that are inappropriately used would lead to security vulnerabilities, which are hard to discover, resulting in many zero-day exploits.
#Java concurrency in practice pdf github software#
There exist many software libraries supporting various programming languages that allow access to the Bitcoin system via an Application Programming Interface (API). For example, Bitcoin is a peer-to-peer software system that is primarily used as digital money. When it comes to cryptographic currencies, the need for assuring security is inevitable. Insecure coding practices, the complexity of the task in hand, and usability issues, amongst other reasons, make it hard on software developers to maintain secure code. Given the current state of software development, it does not seem that we are nowhere near vulnerability-free software applications, due to many reasons, and software developers are one of them. The relations between various attributes of projects have also been analyzed. We further analyze the collaboration and membership networks and, among other things, find that both graphs display high values of assortativity with regard to node degree. We also find that the most influential users and projects on the website, are associated with the founding team of GitLab. We observe that GitLab is similar to other code-hosting services with regard to its network structure. In this paper, we perform social network analysis on the data we have collected from the public users and repositories of GitLab. This lack of information with regard to users and projects on the platform, as well as the fast increase in the number of GitLab users, motivated us to conduct the current study. Despite its rapid growth, little attention has been paid to this website by academia. GitLab currently holds the second-largest collection of repositories among its competitors.

GitLab is one of the many platforms offering similar capabilities, which has experienced rapid growth in recent years. However, it is far from the only available service out there. GitHub has long been perceived as the exclusive provider of hosting for software development in the minds of many programmers. We find that asserts have a small yet significant relationship with defect occurrence and developers who have added asserts to methods often have higher ownership of and experience with the methods than developers who did not add asserts. Furthermore, we perform a study of what are different types of asserts added and why they are added by developers. We also analyse relationship between developer experience and ownership and the number of asserts. We collect metrics such as number of asserts, number of defects, number of developers and number of lines changed to a method, and examine the relationship between asserts and defect occurrence. In this study, we perform a partial replication of the above study on a large dataset of Java projects from GitHub (185 projects, 20 million LOC, 4 million commits, 0.2 million files and 1 million methods).

Their results show that asserts have a small effect on reducing the density of bugs and developers often add asserts to methods they have prior knowledge of and larger ownership.

analyse C and C++ programs to understand the relationship between assertion usage and defect occurrence. Since assertions make developer assumptions explicit, assertions are also believed to improve under-standability of code. It throws an error if the expression is not satisfied, which helps developers to detect and correct bugs.

An assertion contains a boolean expression which developers believe to be true at a particular program point. Assertions are often used to test the assumptions that developers have about a program.
