Skip to content

AndreHGN/tcc-poliusp-modelagem-design-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Ferramenta de modelagem de software para ensino de programação com Design Patterns

Este é o trabalho de conclusão de curso de engenharia de computação da Escola Politécnica da USP feito por:

  • André Hideki Gashu Nishimura
  • William Abe Fukushima

E orientado pelo Prof. Dr. Jorge Luis Risco Becerra.

Os códigos fonte do frontend e do backend da aplicação podem ser acessados nos links a seguir:

A aplicação em si está disponível para ser usada neste endereço: https://andrehgn.github.io/TCC-front

Introdução

Em desenvolvimento de software é comum a utilização de Design Patterns durante as fases de programação e refatoração. Alguns desafios associados ao aprendizado e ensino desses conceitos, são a elevada abstração e dificuldade na escolha do padrão adequado para um contexto específico. Uma maneira de melhorar este problema é pela introdução gradual aos estudantes de exemplos e exercícios práticos, desde aplicações mais simples até as mais complexas.

Objetivo: Desenvolver uma ferramenta que utiliza diagramas UML para gerar de códigos de design patterns, focando em projetos educativos e de pequeno porte para sistemas web e aproximando o estudo teórico da prática.

Metodologia

A base teórica do projeto é a metodologia da Ciência do Design. Esta abordagem é frequentemente adotada em disciplinas onde a ação prática e a criação de soluções concretas são centrais para o processo de pesquisa como projetos de engenharia, design e ciência da computação.

image

Arquitetura

A arquitetura elaborada para o projeto segue como base o modelo cliente-servidor. O cliente consiste de um editor de diagramas que possibilita a modelagem em UML e que codifica a informação em JSON para transmissão via Web. Recebendo o dado, o servidor o decodifica para gerar os arquivos de códigos a partir de um gerador de código fonte.

image

Resultados

O software foi desenvolvido com sucesso e abrange os principais requisitos levantados, incluindo: modelagem de diagramas UML, associação a conceitos de design patterns e geração de templates de código. A imagem mostra a tela final da interface com um diagrama modelado, enquanto os trechos de códigos abaixo são algumas das classes geradas.

image

export class Subscriber {
    //#region Attributes
    //#endregion

    constructor() {
    }
    
    //#region Methods
    public update(){
      # Implement This Method
    };
    //#endregion
  }
export class DigitSubscriber {
    //#region Attributes
    //#endregion

    constructor() {
    }
    
    //#region Methods
    public update(changedSubject : Subject) : void{
      # Implement This Method
    };
    //#endregion
  }
export class Subject {
    //#region Attributes
    //#endregion

    constructor() {
    }
    
    //#region Methods
    public subscribe(subscriber){
      # Implement This Method
    };
    public unsubscribe(subscriber){
      # Implement This Method
    };
    public notify(){
      # Implement This Method
    };
    //#endregion
  }

Conclusões

Como prova de conceito, foi desenvolvido uma pequena aplicação utilizando os códigos gerados pelo sistema através do padrão Strategy, consistindo em um jogo de pedra, papel e tesoura com duas possíveis estratégias. Com isso, pode-se validar o uso desta ferramenta para implementar projetos de software simples a partir dos modelos elaborados com design patterns. Assim, o usuário poderá relacionar mais facilmente a motivação e o uso desses padrões com a implementação prática.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published