Uma abordagem semiótica para apoiar programadores iniciantes durante o processo de reúso e de apropriação de códigos-fonte - Müller , Luana (2017)
During the process of software development, the reuse of materials is often performed in several ways and for different reasons. Among these ways, we highlight the reuse of source code developed by other programmer, which are embedded in a new source code and adapted in order to fit into this new context. However, even though programmers are able to achieve their goals by doing so, many times they reuse a source code without properly understand it, and, consequently, they do not understand their own source-code, generated through reuse. Based on Semiotic Engineering theory under the Human-Centered Computing perspective, we can see this source code as an interface which delivers to its user (in our case, the programmer who is reusing a source code) an encoded message from its designer (in our case, the programmer who developed the source code being reused), and, thus, we observe that there may have been several communicative implications resulting from the lack of the designer's understanding about the message he is delivering. Those implications are even more perceived when it comes to novice programmers, who are still building their computational thinking. In this thesis we investigated on how and why novice programmers reuse source codes and how they understand their own source codes while they build them by reusing other programmers' source codes. Furthermore, we offer a conceptual tool based on Semiotic Engineering's metacommunication template to support those programmers understanding and appropriating source codes. Besides that, we observe, through the studies conducted in order to analyze our tool, that not only can it support programmers understanding a source code, but also support them reflecting upon questions not usually addressed by them, related, for instance, to communicative aspects of their source codes. We hope this reflection makes programmers aware of the importance of those aspects, considering a scenario where their source codes may be reused by other programmers, in a continuous cycle of development and communication.