Espectativa da Formação do Profissional

Perfil do egresso

O egresso do BES é um profissional com capacitação sólida em engenharia de software. Essa capacitação advém de formação básica consistente em computação e de abrangente e aprofundada em engenharia de software.

O mercado de atuação do egresso é abrangente, e decorre da dependência da sociedade por software. Adicionalmente, tal dependência tem se expandido com novos produtos, serviços e processos.

A bacharela ou o bacharel em Engenharia de Software é capaz de efetivamente contribuir com equipes na produção de modelos abstratos de software e realizá-los por meio de código de qualidade. Essa contribuição é pautada por postura profissional e conduta ética.

As habilidades do egresso incluem o que é necessário para lidar com requisitos de software, propor uma solução (software design), construí-la, testá-la e mantê-la, usando processos adequados.

Habilidades do egresso

Da perspectiva de relações pessoais, o egresso deve ser capaz de:

  • Participar de forma harmoniosa, profissional e ética durante a elaboração de produtos de software atribuídos a equipes.
  • Liderar ação contínua de formação de sua própria reputação na área.
  • Participar da comunicação de ideias com clareza, seja na forma verbal ou escrita.

Da perspectiva técnica, o egresso deve ser capaz de:

  • Participar de atividades para eliciar, analisar, especificar, validar e gerenciar requisitos de software.
  • Participar da definição da solução de software que atende requisitos, ou seja, da definição da arquitetura e do projeto detalhado desse software.
  • Participar da elaboração de modelos de análise e de projeto (design) de software.
  • Participar da aplicação de técnicas de projeto ao desenvolver softwares concorrentes, distribuídos, orientados a objetos, orientados a eventos e que implementam a persistência de dados.
  • Participar da avaliação de design de software considerando, dentre outros quesitos: abstração, coesão, acoplamento e encapsulamento.
  • Participar da aplicação de técnicas de tratamento de exceção e tolerância a falhas.
  • Auxiliar a escolha de processo e de metodologia de design de software.
  • Auxiliar a revisão de design de software.
  • Participar do emprego de estilos, visões, modelos e padrões de arquitetura de software.
  • Participar do projeto de componentes e módulos de software usando modelos, padrões de projeto e notações.
  • Auxiliar a execução de análise estática.
  • Auxiliar a escolha de processos e modelos apropriados para a construção de software.
  • Auxiliar a escolha de linguagens e ferramentas apropriadas para a construção de software.
  • Auxiliar a escolha de frameworks, plataformas e ambientes de construção de construção de software.
  • Participar da construção de software seguindo padrões de gerência de configuração e controle de versão.
  • Participar da coleta e do monitoramento de medidas de qualidade de código.
  • Participar da criação de design detalhado que minimiza a complexidade e melhora a qualidade.
  • Participar da criação de código que implementa projetos detalhados.
  • Indicar o uso de padrões de projeto.
  • Participar da refatoração (refactoring) de código.
  • Participar da construção de software que segue padrões de código.
  • Participar da construção de software que faz uso de técnicas de codificação defensiva.
  • Participar da geração de código a partir de modelos de projeto.
  • Participar do uso apropriado de ferramentas e técnicas de depuração.
  • Participar da criação de testes de unidade.
  • Participar da construção de software que satisfaz objetivos de cobertura de testes.
  • Participar da construção de software que segue estratégias e processos de integração e implantação.
  • Participar da construção e realização de testes de integração.
  • Participar da construção de software em equipe ao colaborar com outros membros da equipe.
  • Participar de revisões e inspeções.
  • Participar da elaboração e implementação de planos de testes.
  • Participar da definição de um ambiente de teste e da correspondente implementação.
  • Participar da identificação, design e implementação de testes.
  • Participar da elaboração de relatórios de testes.
  • Auxiliar a elaboração e execução de plano de transição de software.
  • Auxiliar a elaboração e execução de planos de manutenção de software.
  • Auxiliar a execução de atividades de processos de software.
  • Auxiliar a definição e personalização de processos de software.
  • Auxiliar a implementação e execução de processos de software.
  • Auxiliar a coleta de dados para avaliação de processos de software.
  • Auxiliar a definição e o desenvolvimento de software que satisfaz objetivos e atributos de qualidade.
  • Auxiliar a identificação de medidas de qualidade apropriadas.
  • Auxiliar a elaboração de planos e revisões de qualidade.
  • Participar da construção de software que segue princípios recomendados para segurança de código.
  • Participar da construção de software que segue um plano de gerência de configuração de software.
  • Participar da documentação de software.