Prévia do material em texto
ENG DE SOFTWARE GUSTAVO OLIVEIRA PAULISTA 110096 RESUMO: Levantamento de requisitos no desenvolvimento ágil de software Em um sistema de informação de desenvolvimento de software, iniciamos pelo levantamento de requisitos, onde são feitas as primeiras reuniões com os clientes e usuários para conhecer as funcionalidades do sistema que será desenvolvido. Nessa etapa, é necessário analisar com clareza e utilizando as técnicas adequadas para que as dores do cliente possam ser compreendidas da melhor maneira possível. Começando o levantamento de requisitos pelas entrevistas, temos que, o entrevistador da margem para o entrevistado expor algumas ideias, no qual também é preciso seguir um método para que as perguntas da entrevista sejam organizadas e de uma maneira que não haja dispersão de ideias. Existindo assim, dois tipos de entrevista, a fechada, engenheiro de requisitos tem um conjunto pré-definido de perguntas e está a procura de respostas. E a Aberta, onde não possuem perguntas pré-definidas do engenheiro de requisitos. Em seguida, os questionários, que são indicados quando possuem vários grupos de usuários que estão em locais diferentes. Para evitar uma pesquisa individual com cada um, economizando tempo. Da mesma forma que as entrevistas, o questionário precisa ser preparado com atenção e com um controle de identificação de usuário. Junto ao questionário, deve ser enviado uma carta explicativa sobre o mesmo. O Brainstorming é uma técnica para geração de ideias. Com uma ou várias reuniões que permitem a exploração de ideias. Contendo duas fases, a de geração, ou seja, onde as ideias são coletadas e a fase de avaliação, onde as mesmas são discutidas. No método JAD (Join Application Design), conseguimos acelerar o desenvolvimento de sistemas de informação embasado em dinâmicas de grupo, planejamento, estruturação e sistematização de reuniões. Facilitando a visão do produto entre todos do projeto. No JAD, são estabelecidos 4 princípios básicos, sendo eles, Dinâmica em grupo, Uso de técnicas visuais, Manutenção do processo organizado e racional e Utilização de documentação padrão. O mesmo, também é dividido em duas etapas, o planejamento (especificar os requisitos) e o projeto (software). Cada uma dessas etapas passa pela adaptação, sessão e finalização. Embora todos participem de todas as etapas, dividimos as funções em Líder da sessão, Engenheiro de requisitos, Executor, Representante dos usuários, Representante de produtos de Software e Especialista. O JAD, funciona para projetos pequenos ou médios. Na prototipagem, são feitos para ajudar a obter e validar os requisitos do sistema, onde é indicado para estudar algumas alternativas de interface do usuário, problemas de comunicação e a viabilidade de atendimento dos requisitos de desempenho. As técnicas para isso são, interface de usuário, relatórios textuais, relatórios gráficos, entre outros. Com os protótipos dentro do ambiente certo e com entendimento total da equipe, conseguimos reduzir os riscos do sistema. Já para o desenvolvimento ágil, onde são aplicadas praticas guiadas por princípios e valores e que são facilmente adaptadas ao longo do projeto. Logo, podemos dizer que os métodos ágeis, foram desenvolvidos para se adaptar a mudanças, onde orientamos os métodos para as pessoas e não para os processos. Conseguimos exemplificar o mesmo com alguns de seus métodos mais comuns: Extreme Programming (XP), enfatiza o desenvolvimento rápido do projeto e visa garantir a satisfação do cliente, favorecendo o cumprimento das estimativas. Proporcionando assim, um agradável ambiente de desenvolvimento de software, que são conduzidos por quatro valores: comunicação, simplicidade, feedback e coragem. Logo, temos uma melhoria significativa na comunicação entre todas as partes do projeto, encorajando todos a ter poder de fala (opinião). Portanto, a aposta do método XP, é fazer algo simples hoje que possa ser alterado amanhã ao invés de fazer algo complicado hoje que não seja possível implementar no futuro. Durante o planejamento, são usadas as entrevistas, brainstorming e priorização das técnicas de requisitos. No qual, a principal ferramenta, é a escrita de uma história (descrição) de um recurso que fornece valor de negócio para o cliente. Assim, com uma espécie de Brainstorming, eles pensam sobre o que eles esperam do sistema e suas funcionalidades. Scrum, é um processo de desenvolvimento iterativo e incremental para gerenciamento de projetos e desenvolvimento ágil de software. Ele se concentra em como uma equipe deve trabalhar em conjunto paras produzir um trabalho de qualidade em um ambiente de mudança. Sendo dividido em três fases, Pré-planejamento (requisitos são descritos em um documento Backlog), Desenvolvimento (os riscos identificados são mapeados e acompanhados) e pós- planejamento (integração do software com os testes finais e documentação). Todos os requisitos necessários ou uteis para o produto estão listados no product backlog. Onde são ordenados por lista de funcionalidades, melhorias e bugs. Cada iteração com 30 dias de desenvolvimento (sprint) está prevista no product backlog. Logo, temos flexibilidade de alteração somente no próximo sprint. Feature Driven Development (FDD) é um processo de curta iteração para desenvolvimento de software com foco no projeto e na fase de desenvolvimento. Ele é composto com cinco processos sequenciais, Desenvolvimento de um modelo geral, Construção de uma lista de funcionalidades, Planejamento por funcionalidades, Projeto por funcionalidade e Desenvolvimento por funcionalidade. Os dois papeis mais importantes do processo são, programador-chefe e o proprietário da classe. Na primeira fase, um modelo geral é desenvolvido por membros do domínio e pelos desenvolvedores. Já na segunda fase, é construído um modelo global com a lista de funcionalidades. O FDD, possui um encontro semanal de 30 minutos para discussão das funcionalidades que são anotadas em um relatório da reunião. Adaptive Software Development (ASD), fornece uma estrutura para o desenvolvimento de sistemas grandes e complexos com orientações suficientes para impedir o projeto de cair no caos. Estimulando o desenvolvimento iterativo e incremental com a prototipagem. Com três fases, Especulação, Colaboração e Aprendizagem. Nesse método, os desvios não são uma falha, mas levarão para uma solução correta. Ele também diz que é importante ser capaz de reagir a mudanças e utilizar o método de tolerância às mudanças. Portanto, concluímos que, o desenvolvimento ágil pode ser considerado novo, porem vem acompanhado de necessidades de desenvolver softwares com qualidade, menor tempo e que atendam as necessidades. Focando no forte envolvimento do cliente durante todo o processo. Contudo, sabemos que, uma empresa ao utilizar esses métodos estará agregando valor ao seu negócio e melhorando o ambiente de comunicação entre as pessoas. Trazendo assim, o bem estar de seus colaboradores e confiança entre fornecedor e cliente.