Διδακτορικές διατριβές
Μόνιμο URI για αυτήν τη συλλογήhttps://pyxida.aueb.gr/handle/123456789/53
Περιήγηση
Πλοήγηση Διδακτορικές διατριβές ανά Θέμα "Application programming interfaces"
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
Τώρα δείχνει 1 - 1 από 1
- Αποτελέσματα ανά σελίδα
- Επιλογές ταξινόμησης
Τεκμήριο Tools and techniques for building reliable application programming interfaces(09-11-2017) Kechagia, Maria A.; Κεχαγιά, Μαρία Α.; Athens University of Economics and Business, Department of Management Science and Technology; Λουρίδας, Παναγιώτης; Χατζηγεωργίου, Αλέξανδρος; Πραματάρη, Αικατερίνη; Χατζηαντωνίου, Δαμιανός; Παπασπύρου, Νικόλαος; Γούσιος, Γεώργιος; Spinellis, DiomidisPrograms draw significant parts of their functionality through the use of Application Programming Interfaces (APIs). Apart from the way developers incorporate APIs in their software, the stability of these programs depends on the design and implementation of the APIs. Goal of this dissertation is to discover techniques and tools that can help in the improvement of modern client systems and applications' robustness by first guaranteeing APIs' reliability.Initially, we process almost one million crash reports from application failures and establish heuristic rules to draw the border between applications and risky API calls. Our findings show that top crash causes can be attributed to: memory exhaustion, synchronization issues, and missing resources. We are however unable to classify the crash causes for a significant number (almost 10%) of signatures associated with generic exceptions. This result leads us to the development of a technique that can automatically assess an API’s quality regarding the exceptions listed in the API's documentation. Applying our approach on the Android ecosystem, we identify that undocumented exceptions can have a negative impact on the stability of client applications. In addition, a randomized controlled trial we run on 25 Android and Java developers shows that relevant documentation improvements can be effective by making such exceptions checked. This insight motivates us to design and implement a static verification approach for Java that can provide precise API error handling through compile-time checks. Using our method, we check ten open source Java projects and identify bugs related to input-handling errors. Therefore, our techniques manage to guarantee the absence of particular runtime exceptions that risky APIs can throw, supporting productive bug finding.