Object Oriented Information Systems

Data Structures and Data Search in Practice

Making reference to the article by Fortino et al. (2015) Towards a Development Methodology for Smart Object-Oriented IoT Systems: a Metamodel Approach, consider the strengths and weaknesses of designing a metamodel to support object-oriented design of the IoT. Design a smart model equivalent to that presented in Figure 6 which would instead support operation of a driverless car.

Fortino et al. (2015) propose a methodology to support Object-oriented IoT systems based on metamodels which, according to the authors, are defined in different levels of abstraction. The approach considers the Smart Objects (SOs) to be the fundamental elements of the system to be designed. This way, focusing on supporting the SOs development phases of analysis, design, and implementation will produce a system with seamless interaction between human users and devices to benefit users and organisations.

One of the advantages of basing the development phases of a SO in metamodels is that this approach provides an abstraction that can evolve and specialise through the development phases. This evolving and specialising can bring consistency to the development process.

At the time this methodology was proposed, it was a novice approach which means that there was a risk of needing to be more easily adaptable to different types of systems. We also notice a level of complexity that could require specialisation of the parts involved in the methodology implementation.

References
Fortino, G., Guerrieri, A., Russo, W. & Savaglio, C. (2015) Towards a Development Methodology for Smart Object-Oriented IoT Systems: A Metamodel Approach. 2015 IEEE International Conference on Systems, Man, and Cybernetics. 1297-1302. DOI: 10.1109/SMC.2015.231.

Summary post on the article by Fortino et al. (2015) Towards a Development Methodology for Smart Object-Oriented IoT Systems: a Metamodel Approach

In my initial post, I stated that the complexity that metamodels bring to the process could be high and depending on the type of system to be developed, it can make them inapplicable.

I agree with the fact that standards are an issue when it comes to the use of metamodel-based methodologies. However, the use of the existing standards is not expanded enough. Due to the complexity of developing an IoT product, this seems to be the problem rather than the absence of standards.

References to adaptability have been made by some of my fellow students, but the proposed methodology has adaptive concepts included. This is considering that the proposed methodology is specific to IoT projects.

UML was also mentioned as an alternative to metamodel-based methodologies. UML will undoubtedly result in more acceptance due to its simplicity and extended use.

Overall, I agree with the benefits of using metamodel-based methodologies. Specifically to the proposed methodology, these benefits also derivate from the use of Object-oriented concepts.


Recursion exercises

# Adding up all number between 0 and n

def recursive_sum(n):
   if n == 0:
      return 0
   else:
      return n + recursive_sum(n - 1)

# print(recursive_sum(10))


# Adding up the elements of a list

def list_sum(l):
   if len(l) == 1:
      return l[0]
   else:
      last_item = l.pop(len(l) - 1)
      return last_item + list_sum(l)

#print(list_sum([10, 12.5, 10, 7]))


# Count the number of ears according to the number of bunnies

def bunny_ears(n):
   if n == 0:
      return 0
   else:
      return 2 + bunny_ears(n - 1)

# print(bunny_ears(45))


# Invert the order of the string

def reverse_string(s):
   x = slice(1)
   if len(s) == 0:
      return ''
   else:
      return s[len(s) - 1] + reverse_string(s[:-1])

print(reverse_string('house'))