quarta-feira, 9 de maio de 2012

UML .:Processo de desenvolvimento de software:.



O desenvolvimento de software é uma atividade complexa, refletindo em um alto numero de projetos de software que não chegam ao fim, ou que extrapolam recursos de tempo e de dinheiro. Para poder lidar com essa dificuldade inicial se envolve-se os processos de desenvolvimento de software que compreende todas as atividades necessárias para definir, desenvolver, testar e manter um produto de software. Os objetivos são definir como serão abordadas todas as atividades do projeto como: quando, como e por quem serão executadas provendo pontos de controle e padronizando o desenvolvimento.



ATIVIDADES TIPICAS DE UM PROCESSO DE DESENVOLVIMENTO
Atividade é o processo de desenvolvimento que é realizado durante a construção de um sistema de software. As atividades mais comuns são:
  • Levantamento de requisitos: Etapa de compreensão do problema com o objetivo de que os desenvolvedores e usuários tenham a mesma visão do problema. Nessa etapa a equipe de desenvolvimento tem que entender o domínio de negócio(Área especifica na qual o sistema será desenvolvido) que deve ser automatizado pelo sistema gerando o documento de requisitos que tem as principais seções:
    • Requisitos funcionais: definem funcionabilidades do sistema.
    • Requisitos não-funcionais: definem características de qualidade que o sistema deve possuir.
    • Restrições: definem as restrições quanto ao desenvolvimento como: prazos, plataforma e et
O documento de levantamento de requisitos estabelece o escopo do sistema, servindo de consenso entre a equipe técnica e o cliente, também é desejável ordenar os requisitos por prioridade do cliente ponto importante para a equipe de desenvolvimento.

  • Análise de requisitos: também chamada  de especificação de requisitos esta é a etapa na qual os analistas realizam um estudo detalhado da etapa anterior construindo modelos para representar o sistema. 
    •  Um ponto importante nessa etapa é a validação dos requisitos que tornam claro que todas as necessidades do cliente estão sendo compridas.
    • Outro ponto é a verificação: que tem por objetivo verificar que todos os modelos estão em conformidade com os requisitos.
  • Projeto: determina-se "como" o sistema funcionará para atender aos requisitos. Nesta fase são adicionadas as restrições tecnológicas, que levam em conta a linguagem de programação, arquitetura do sistema e etc. O projeto consiste em duas atividades principais:
    • Projeto da arquitetura (alto nível): consiste em distribuir as classes de objetos relacionados  do sistema em subsistemas e componentes. Diagrama mais utilizado:
      • Diagrama de implementação
    • Projeto detalhado (baixo nível): são modeladas as colaborações entre os objetos de cada modulo com o objetivo de realizar as funcionabilidades do modulo. Também são realizadas o projeto de banco de dados e o de interface com o usuário. Diagramas mais utilizados nessa etapa:
      • Diagrama de classe
      • Diagrama de caso de uso
      • Diagrama de interação
      • Diagrama de estados 
      • Diagramas de atividade
  • Implementação: O sistema é codificado, ocorre a tradução da fase de projeto em código executável atraves do uso de uma ou mais linguagem de programação.
  • Testes: São realizadas verificações do sistema construído, levando em conta a especificação feita na fase de projeto, gerando um relatório de testes.
  • Implantação: Sistema é distribuído e instalado no ambiente dos usuários. Nesta fase também se cria os manuais do sistema.

COMPONENTE HUMANO  
Uma equipe de desenvolvimento de software típica consiste de:
    • Gerente de projeto: responsável pela gerencia  das atividades necessarias à construção do sistema. Responsável por fazer cronogramas, orçamentos, definir processos de densolvimento entre outros.
    • Analista: representa uma ponte de comunicação entre duas "facçoes": a dos profissionais de computação e a dos profissionais do negocio. Devem entender os problemas do domínio do negocio com os especialistas do domínio(usuários na maioria dos casos) para que possa definir os requisitos do sistema a ser desenvolvido. Sendo o responsável por entender as necessidades dos clientes.
    • Projetistas: tem funções de avaliar as alternativas de solução do problema resultante da análise e gerar especificação de uma solução computacional detalhada. Trabalham encima dos modelos adicionando aspectos tecnológicos. Existem diversos tipos de projetistas como:
      • projetista de interface
      • projetista de banco de dados
      • etc..
    • Arquitetos de software: é ele quem toma decisões sobre quais são os subsistemas que compõem o sistema como um todo e quais são as interfaces entre esses sistemas. Toma decisões globais e técnicas, trabalha com o gerente de projeto.
    • Programadores: responsável pela implementação do sistema. Existem equipes que  possuem analistas que realizam programações e programadores que realizam alguma analise. Mas a diferença entre eles é que o analista está envolvido em todas as etapas do desenvolvimento e os programadores só nas fases finais.
    • Clientes: individuo ou grupo de indivíduos para qual o sistema será desenvolvido.
    • Avaliadores de qualidade: asseguram a adequação do processo de desenvolvimento e do produto de software sendo desenvolvido aos padrões de qualidade estabelecidos pela organização.


IMPORTANTE
Todo o conteúdo deste post, foi baseado e tirado do livro de:
Autor:  Eduardo Bezerra
Livro: Princípios de Análise e projetos de sistemas com UML.
Em nenhum momento a leitura deste post torna indispensável a leitura do livro.

Nenhum comentário:

Postar um comentário