Trabalho de Formatura Supervisionado

Engenharia de Requisitos:
Um estudo comparativo de dois métodos utilizados na indústria.

Autor: Mario Marques Junior

Orientador: Flávio Soares Corrêa da Silva

Tipo de trabalho: Iniciação Científica


CONTEÚDO

Parte técnica

Parte subjetiva

DOCUMENTOS

Monografia (.pdf)

Proposta (.html)

Pôster (.pdf)

Apresentação (.ppt) [.pdf, sem os gradientes no fundo]

Avaliações (.txt)


PARTE TÉCNICA
volte para o topo

Introdução

Esse trabalho consiste de um estudo na área de Engenharia de Software, sobre o tema da Engenharia de Requisitos. Minha principal motivação foi aprender mais sobre a área, por meio de um trabalho teórico, para futuramente poder discernir entre as melhores práticas em meu ambiente de trabalho. O trabalho começou a partir da seguinte proposta, que teve por objetivo principal sistematizar as boas práticas de Engenharia de Requisitos, a abordagem mais relevante atualmente.

Conceitos e tecnologias estudadas

Os conceitos estudados em minha monografia tiveram origem na prática do desenvolvimento de requisitos para a especificação de software. Atualmente, existem diversas metodologias ou teorias sobre o assunto. Para fazer meu estudo eu tive como base duas bibliografias bem conhecidas por especialistas da área, e que seguem abordagens diferentes. Mais detalhes podem ser encontrados na monografia (ver produtos obtidos abaixo).

Atividades realizadas

Como o tema era algo absolutamente novo para mim até o momento da proposta, não tive certeza de como expor os resultados até o final do período de estudos. Meu orientador, por conseguinte, me deu liberdade para fazer como eu bem entendesse, desde que a monografia tivesse certos itens. As atividades foram: leitura dos livros, de agosto até novembro; e escrita da monografia, de novembro a dezembro.

Resultados e produtos obtidos

O principal produto de minha pesquisa foi, é claro, a monografia. Ela é composta de duas partes, o estudo comparativo, na primeira parte; e um tutorial para a Engenharia de Requisitos, na segunda parte. Outros documentos produzidos durante o período tiveram relação com a disciplina, ou seja, o pôster e a apresentação. Os resultados podem ser encontrados na Conclusão da primeira parte da monografia e no tutorial da segunda parte (ele é um resultado esperado em si).

Conclusões

Pelas minhas espectativas quando comecei a fazer o trabalho, vejo que consegui um trabalho que me trouze satisfação do ponto de vista pessoal. Agora me sinto mais maduro para encarar um trabalho de desenvolvimento ou análise de software, coisa que antes eu não tinha segurança para realizar. Conclusões técnicas serão encontradas na monografia.

Bibliografia

[Rob99] S. Robertson, J. Robertson. Mastering the Requirements Process.
Harlow, England: Addison-Wesley, 1999.

[Wie03] K. E. Wiegers, Software requirements, 2nd edition.
Redmond, WA: Microsoft Press, 2003.

volte para o topo


PARTE SUBJETIVA
volte para o topo

Aqui nessa parte faço o relato subjetivo da minha jornada na IC e no BCC. Para começar, quero disponibilizar as avaliações dos trabalhos realizados no passado que fiz antes de começar a pesquisa, quando tudo ainda era incerteza. Espero ter seguido o exemplo de meus colegas e feito um trabalho coerente, fácil de entender e útil.

Desafios e frustrações encontrados

A maior frustração encontrada foi na concepção inicial do trabalho. A idéia original era desenvolver uma aplicação para uma ONG de alfabetização de adultos, da qual eu era membro, usando a metodologia encontrada no primeiro livro da bibliografia. Porém no meio do semestre houveram problemas que me impediram de continuar projeto; foi quando criei a proposta de estudar de forma comparativa dois livros, e meu orientador emprestou-me o segundo livro. Aliás, agradeço muito a ele por me indicar a bibliografia e dar suporte para meus estudos. Parti para um estudo puramente teórico; o que nessa área, para falar sinceramente, é muito chato. Enquanto estudava, sentia a falta de praticar aqueles conceitos, o que percebo que ao final do esforço é a minha maior carência. Não ter idéia do que escrever na monografia até ter quase terminado de ler os livros foi também um desafio. Felizmente tudo acabou bem ;)

Disciplinas mais relevantes

Aqui é o espaço para voltar um pouco no tempo e relembrar os eventos que me troxeram até aqui. Não quero ser muito profundo, mas ao apresentar as matérias que cursei que mais me influenciaram, faço um retrospectiva de momentos bons e ruins da minha vida, em âmbito acadêmico, nesses últimos anos. Eu separaria as disciplinas em três grupos: as que me ajudaram a fazer meu trabalho de formatura, as que me motivaram a levar o curso até o fim, e as que busquei para complementar minha formação. No primeiro grupo, destaco obviamente:

MAC0332 – Engenharia de Software
MAC0340 – Laboratório de Engenharia de Software

Houveram disciplinas que me fascinaram no estudo da Ciência da Computação, me motivaram a seguir adiante, mesmo que ao final eu tenha mudado de direção e optado por uma área totalmente diferente do princípio. São elas:

MAC0110 – Introdução à Computação
MAC0122 – Princípios de Desenvolvimento de Algoritmos
MAC0338 – Análise de Algoritmos
MAC0328 – Algoritmos em Grafos
MAC0325 – Otimização Combinatória

Por fim, quero destacar disciplinas as quais optei que não eram da área da computação, mas que me ajudaram a entender um pouco melhor a mentalidade de outras áreas:

MAP0332 – Análise Numérica III (último oferecimento!)
MAE0515 – Introdução à Teoria dos Jogos (nem sei se será oferecida novamente)
MAE0326 – Aplicações de Processos Estocásticos (regular do Bacharelado em Estatística, 3o. Ano)
PSA1200 – Psicologia da Aprendizagem (Psicologia, 1o. Ano) [Psicólogo faz teoria de um jeito diferente...]

Interação com membros da equipe

No meu trabalho não houve equipe; fiz ele todo sozinho, com algumas direções do orientador. Porém, gostaria de destacar a experiência prática na área que pude ter cursando a disciplina MAC0340 – Laboratório de Engenharia de Software. Embora a teoria estudada na disciplina (orientada especificamente para componentes de software) saísse um pouco da teoria do meu estudo (mais geral), pude ver como a Engenharia de Software é uma disciplina difícil de ser praticada, e praticamente todos os avisos que os autores davam sobre problemas aconteceram (é a Lei de Murphy, não tem jeito). Houveram muitas falhas de comunicação, por exemplo, além de uma divisão não muito clara do trabalho em si e das prioridades. É claro que no ambiente de uma empresa é preciso uma abordagem mais consciente e cuidadosa. Essa experiência me deu maior senso crítico, até mesmo para compor minha monografia.

Passos futuros nessa área

Não pretendo trabalhar especificamente com Engenharia de Requisitos, mas talvez exercer algumas das tarefas de analista em meus trabalhos futuros. É preciso muito estudo, pois o analista que se preze deve conhecer todo um rol de ferramentas de modelagem, análise, verificação formal, entre outros. Começaria tentando aplicar as teorias que aprendi em trabalhos do mundo real. Estudaria ao menos mais um livro dessa área, não sem antes me atualizar em termos de técnicas de modelagem atuais, além de ferramentas de software de apoio à análise. Entendo que o futuro para as empresas brasileiras amadurecerem em desenvolvimento de software é a Engenharia de Requisitos, então gostaria muito de ajudar uma empresa a alcançar essa maturidade.

volte para o topo