UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO – UFERSA DEPERTAMENTO DE CIÊNCIAS EXATAS E NATURAIS -...

Preview:

Citation preview

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO – UFERSADEPERTAMENTO DE CIÊNCIAS EXATAS E NATURAIS - DCEN

Profa. M.Sc. Yáskara Menescal

yaskaramenescal@ufersa.edu.br

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

Recommended