Briza Mel / MAC0499

General Information

Briza Mel Dias de Sousa (brizamel.dias@usp.br)

Advisor: Prof. Dr. Alfredo Goldman

Co-Advisor: M.Sc. Renato Cordeiro Ferreira

Title

Functional vs. Object-Oriented: Comparing how Programming Paradigms affect the architectural characteristics of systems

Summary

The present capstone project aims to compare the impact of Object-Oriented Programming (OOP) and Functional Programming (FP) paradigms on developers' understanding of various architectural characteristics and non-functional requirements. To facilitate this comparison, a Digital Wallet system has been developed using two JVM-based programming languages: Kotlin (representing OOP) and Scala (representing FP). Both versions of the Digital Wallet system will be evaluated based on the following key characteristics:

  • Readability: The ease with which developers can understand the system's intended behavior;
  • Maintainability: The ease with which changes can be made to the system’s existing behavior;
  • Extensibility: The ease with which new features and behavior can be added;
  • Testability: The ease with which the system can be tested for correctness and performance;
  • Reusability: The ease with which the system or components can be applied to new use cases;
  • Error Handling: The clarity and effectiveness of error management and reporting;
  • Error Propagation: The transparency and manageability of error propagation through the system.

The evaluation of both system implementations will be conducted through two approaches: a qualitative analysis by the author, and a quantitative analysis based on feedback from other developers via a survey. These evaluation methods will provide valuable insights into how each programming paradigm influences the implementation and perception of architectural characteristics.