Upload
internet
View
105
Download
2
Embed Size (px)
Citation preview
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO – UFERSADEPERTAMENTO DE CIÊNCIAS EXATAS E NATURAIS - DCEN
Profa. M.Sc. Yáskara Menescal
Engenharia de Software
Introdução
•Por Sommerville, software compreende tudo que é necessário para um sistema computacional funcionar:▫Programa de computador▫Documentação▫Arquivos de configuração▫Entre outros
•E existe por causa das necessidades de clientes.
2
Como transformar necessidades em software?•Devem ser consideradas as atividades:
▫Entender as necessidades do cliente▫Planejar a solução▫Implementar a solução▫Validar esta solução▫Entregar o produto ao cliente
•Estas atividades são executadas...▫Ordenadas ou não▫Formalmente ou informalmente
3
Introdução
• Todo processo de transformação tem início e fim.• Essa variável temporal, denominada de ciclo de
vida, determina as fases do desenvolvimento de software.
4
Introdução
Engenharia de Software
Processo de Desenvolvimento de Software
Análise de Requisitos Projeto
Implemen-tação
TesteImplan-tação
Atividades - Garantia de qualidade;- Gerência de Configuração;- Gerência de Riscos;- Métricas;
- Estimativas;- Revisões Técnicas Formais.
Outros Processos
Contidos no Processo Principal
Introdução
Processo de software
É uma série de passos (um ROTEIRO).Para criar EM TEMPO um SOFTWARE de ALTA QUALIDADE, sem estourar o ORÇAMENTO.
Motivação
Processo de software
Como “escolher“ um processo? – As CARACTERÍSTICAS DA APLICAÇÃO
(domínio do problema, tamanho, complexidade etc);
– A TECNOLOGIA a ser adotada na sua construção (paradigma de desenvolvimento, linguagem de programação, mecanismo de persistência etc), a organização;
– ONDE o produto será desenvolvido;– O PERFIL DA EQUIPE de desenvolvimento.
Processo de software
Quando se “escolhe“ um processo DEFINE SE um:– Modelo de Ciclo de Vida (ou modelo de
processo).– É uma representação abstrata da
estrutura (“ESQUELETO“) de processo.– Inclui algumas atividades principais.– A ordem de precedência entre elas.– Opcionalmente, artefatos requeridos e
produzidos.
Ciclo de vida
Em geral, os ciclos de vida envolvem as seguintes FASES :– Planejamento– Análise e Especificação de Requisitos– Projeto– Implementação– Testes– Entrega e Implantação– Operação– Manutenção
Processo de Desenvolvimento
Um processo é organizado em atividades.
Atividades são de responsabilidade de um membro da equipe (trabalhador).
Atividade (Tarefas)
Trabalhador (papel)
Processo de Desenvolvimento de SW
Atividades devem gerar um artefato de saída, que possa ser verificado, e podem requisitar um artefato de entrada.
– Um artefato é um modelo, documento ou código produzido por uma atividade.
Artefatos
Processo de Desenvolvimento de SW
Uma entrega (liberação) é um artefato entregue ao cliente
Um processo deve estabelecer uma série de marcos.
Um marco é um ponto final de uma atividade de processo.
Atividades - artefatos
Atividades(tarefas)
Realizados por
Trabalhador (papel)
Responsável Entrada/saída
Artefatos (produto do trabalho)
Papéis
Na elaboração de um processo, deve-se definir quais pessoas desempenham papéis.Os papéis podem variar de um processo para outro
Atividades (disciplinas)
Em um processo, as atividades devem ser alocadas aos papéis...
deve ser determinados o fluxo de trabalho, a rede de dependências e os marcos
Artefatos
Artefatos podem ser documentos, modelos, códigos, incrementos, etc.
Um processo define quem produz e consome os artefatos e quando eles serão produzidos (marcos)
Marcos (milestones)
Um marco (milestone) é um ponto final de uma atividade de processo.
Um processo deve estabelecer uma série de marcos.
Visão geral de um processo
Processo de Desenvolvimento de SW
•Um processo de software é a especificação do processo de transformar necessidades em software▫Especifica as atividades envolvidas
Determinando entradas e saídas Atribuindo a responsabilidade de execução a
grupos de pessoas (papeis de desenvolvedores)▫Determina o ciclo de vida de desenvolvimento
Determina as fases do ciclo Define atividades importantes e opcionais de
cada fase
19
Processo de Desenvolvimento de SW
• Processo de desenvolvimento de software – conjunto de atividades executadas coordenadamente atividades executadas coordenadamente ;
• Ciclo de Vida: encadeamentoencadeamento das fases.• Compreende todas as atividades necessárias para
definir, desenvolver, testar e manter um produto de software;
• Existem vários processos, mas não um melhor;• Atividades comuns compostas de micro-atividades ,
como por exemplo:
20
Análise
Projeto
Implementação
Testes
Implantação
Levantamento de Requisitos
Processo de Desenvolvimento de SW• Exemplo: O ciclo de Vida Em Cascata (clássico ou linear) possui uma
tendência macro para a progressão seqüencial apesar de poder haver retroalimentação;
• Problemas:▫ Projetos reais raramente seguem o fluxo;▫ Presume possibilidade de declarar previamente todos os requisitos;▫ A implantação fica distante da fase inicial.
21
...Construindo o software
Entendendo o problema...
Análise
Projeto
Implemen-tação
Testes
Implantação
Levantamento de
Requisitos
Extraído de BEZERRA, E. Princípio de Análise e Projetos de Sistemas.
Atividades de Um Processo de Desenvolvimento de Software
Análise
Projeto
Implemen-tação
Testes
Implantação
Levantamento de
Requisitos
Levantamento de
Requisitos
23
Objetivos: trabalhar para construir o construir o sistema corretosistema correto.
Envolve: capturar os vários requisitosrequisitos (funcionais e não funcionais), negociar
prazo, custo e escopo ( o que e não como).Dificuldades: cliente e desenvolvedor falam línguas diferentes, é difícil definir o que o cliente quer e os documentos de requisitos
dele são ambíguos.
OBJETIVOS DAS OBJETIVOS DAS ATIVIDADES ATIVIDADES
INDEPENDENTE INDEPENDENTE DO CICLO DE VIDADO CICLO DE VIDA
O que são requisitos?São características/necessidades do cliente que podem ser expressas como:- funcionais: o que o sistema deve fazer- não-funcionais: restrições sobre como o sistema deve desempenhar suas funções
Exemplo- Registrar o empréstimo de uma fita é um requisito funcional.- Estabelecer que o tempo de empréstimo da fita não pode ser superior a 48 horas é uma restrição, ou requisito não funcional.
Erros comuns na especificação de requisitos:
Deve ficar claro ao analista que requisitos são coisas que o cliente ou usuário solicitam, e não
coisas que ele, como analista, planejou.
AnáliseAnálise
Projeto
Implemen-tação
Testes
Implantação
Levantamento de
Requisitos
24
Objetivos: Estudo dos requisitos levantados na fase anterior para construção de
modelos que representemrepresentem o sistema a ser desenvolvido.
Envolve: eliminar falhas eliminar falhas da análise de requisitos, abordar questões técnicas do
desenvolvimento desoftware (como e não o que).
Dificuldades: as mesmas dificuldades da análise de requisitos
OBJETIVOS DAS OBJETIVOS DAS ATIVIDADES ATIVIDADES
INDEPENDENTE INDEPENDENTE DO CICLO DE VIDADO CICLO DE VIDA
Análise
Projeto
Implemen-tação
Testes
Implantação
Levantamento de
Requisitos
25
Projeto
Objetivos: proposta de uma solução que atenda os requisitos da análise requisitos da análise e que seja
passível de implementaçãopassível de implementação.Envolve: detalhes físicos de
implementações, trabalha o comportamento interno do software, plano e implementação
das decisões arquitetônicas.
OBJETIVOS DAS OBJETIVOS DAS ATIVIDADES ATIVIDADES
INDEPENDENTE INDEPENDENTE DO CICLO DE VIDADO CICLO DE VIDA
Podemos concluir que...-O resultado da análise é o enunciado do problema, e que o projeto será a sua resolução.-Problemas mal enunciados podem até ser resolvidos, mas a solução não corresponderá às expectativas.
- A qualidade do processo de análise é importante porque um erro de concepção resolvido na fase de análise tem um custo; na fase de projeto tem um custo maior; na fase de implementação maior ainda, e na fase de implantação do sistema tem um custo relativamente astronômico.
Análise
Projeto
Implemen-tação
Testes
Implantação
Levantamento de
Requisitos
26
Implemen-tação
Objetivos: construir uma versão operacional construir uma versão operacional do software que possa ser entregue ao
cliente para avaliação.Envolve: implementar código fonte em uma determinada linguagem, implementar código
de teste unitário para o código fonte e integrar o sistema.
Dificuldade: falta de conhecimento da equipe de
desenvolvimento sobre a uma determinada tecnologia.
OBJETIVOS DAS OBJETIVOS DAS ATIVIDADES ATIVIDADES
INDEPENDENTE INDEPENDENTE DO CICLO DE VIDADO CICLO DE VIDA
Análise
Projeto
Implemen-tação
Testes
Implantação
Levantamento de
Requisitos
27
Testes
Objetivos: assegurarassegurar que o sistema tenha qualidadequalidade antesantes de ser entregue aos
clientes;
Envolve: definir o que será testado, executar os testes de integração do sistema
e avaliar os testes.
OBJETIVOS DAS OBJETIVOS DAS ATIVIDADES ATIVIDADES
INDEPENDENTE INDEPENDENTE DO CICLO DE VIDADO CICLO DE VIDA
Análise
Projeto
Implemen-tação
Testes
Implantação
Levantamento de
Requisitos
28
Implantação
O sistema é empacotado, distribuído e instalado no ambiente do usuárioambiente do usuário.
Os manuais são escritos, os dados são importados para o sistema
e o pessoal é treinado para operá-lo.
OBJETIVOS DAS OBJETIVOS DAS ATIVIDADES ATIVIDADES
INDEPENDENTE INDEPENDENTE DO CICLO DE VIDADO CICLO DE VIDA