One of the most intriguing-and at the same time most problematic-notions in object-oriented programming is inheritance. Inheritance is commonly regarded as the feature that distinguishes object-oriented programming from other modern programming paradigms, but researchers rarely agree on its meaning and usage. Yet inheritance is often hailed as a solution to many problems hampering software development, and many of the alleged benefits of object-oriented programming, such as improved conceptual modeling and reusability, are largely credited to it. This article aims at a comprehensive understanding of inheritance, examining its usage, surveying its varieties, and presenting a simple taxonomy of mechanisms that can be seen as underlying different inheritance models.
In this article we define a taxonomy of software architecture options for IoT devices derived from our industry projects, starting from the most limited sensing devices to high-end devices featuring full-fledged operating systems and developer frameworks. We learned that there is a plethora of architectural options for IoT devices, offering very different levels of software development capabilities. These capabilities can have a significant impact on the overall end-to-end architecture and topology of IoT systems.
A typical IoT system consists of four distinct architectural elements: devices, gateways, cloud and apps. All these elements require special skills in their development. In order to write safe, secure IoT systems, developers must be trained and experienced in four different areas of software development: embedded, cloud, web and mobile. In addition, given the distributed nature of IoT systems, distributed programming skills play a critical role. In this paper we examine the challenges in IoT system development, and summarize our observations and experiences on the necessity and co-presence of different types of software development skills in the design of IoT systems.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.