processo e processo de software

67
Processo de Produção de Software Bacharelado em Engenharia de Software – Aula 05 Prof.ª M.ª Elaine Cecília Gatto

Upload: elaine-cecilia-gatto

Post on 12-Apr-2017

35 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Processo e Processo de Software

Processo de Produção de Software

Bacharelado em Engenharia de Software – Aula 05

Prof.ª M.ª Elaine Cecília Gatto

Page 2: Processo e Processo de Software

MÉTODO EMPÍRICO X MÉTODO CIENTÍFICO

Page 3: Processo e Processo de Software

EMPÍRICO

• Baseado na experiência comum e naobservação.

•Um fato que se apoia somente emexperiências vividas, na observação de coisas,e não em não em teorias.

Page 4: Processo e Processo de Software

MÉTODO EMPÍRICO

• Feito por meio de tentativas e erros,caracterizado pelo senso comum, e cada umcompreende à sua maneira.

• Conhecimento empírico é muitas vezessuperficial, sensitivo e subjetivo.

Page 5: Processo e Processo de Software

PESQUISA EMPÍRICA

• Busca de dados relevantes e convenientesobtidos através da experiência, da vivência dopesquisador.

• Tem como objetivo chegar a novas conclusõesa partir da maturidade experimental dosoutros.

Page 6: Processo e Processo de Software

Empirismo no Software

• Produto fora de padrões

•Dificuldade no controle e avaliação daqualidade

•Alta carga de Manutenção

•O método empírico não é indicado para oprocesso de produção de software

Page 7: Processo e Processo de Software

Método Científico

• É o conjunto das normas básicas que devemser seguidas para a produção deconhecimentos que têm o rigor da ciência, ouseja, é um método usado para a pesquisa ecomprovação de um determinado conteúdo.

Page 8: Processo e Processo de Software

Ciência no Software

• Se aplica totalmente

• Estuda trabalhos correlatos

• Produto dentro de normas, padrões eespecificações

• Planejamento é essencial

•Qualidade pode ser medida e avaliada

Page 9: Processo e Processo de Software

ATIVIDADE

•Atividade Pratica Presencial (AP_05_1)

Page 10: Processo e Processo de Software

ENGENHARIA DE SOFTWARE

Page 11: Processo e Processo de Software

Camadas da Engenharia de Software

Qualidade

Processo

Métodos

Ferramentas

Processo contínuo de aperfeiçoamento

Page 12: Processo e Processo de Software

Camadas da Engenharia de Software

Qualidade

Processo

Métodos

FerramentasControle gerencial de projetos de software

Aplicação dos métodos

Modelos, documentos, dados, relatórios, formulários, etc.

Page 13: Processo e Processo de Software

Camadas da Engenharia de Software

Qualidade

Processo

Métodos

FerramentasComo fazer?

Comunicação, análise de requisitos, modelagem de projeto, construção de programas, testes, manutenção, etc.

Page 14: Processo e Processo de Software

Camadas da Engenharia de Software

Qualidade

Processo

Métodos

FerramentasApoio automatizado ou semi-automatizado para processos e métodos.

Page 15: Processo e Processo de Software

PROCESSO E PROCESSO DE SOFTWARE

Page 16: Processo e Processo de Software

Processo

• Processo é uma palavra com origem no latim, quesignifica método, sistema, maneira de agir ouconjunto de medidas tomadas para atingir algumobjetivo.

• Define quem está fazendo o quê, quando e comopara alcançar um certo objetivo. (Jacobson)

Page 17: Processo e Processo de Software

Processo

• Processo civil, Processo penal, Processoadministrativo, Processo trabalhista, ProcessoIndustrial, Processo Organizacional, ProcessoEvolutivo, Processo Produtivo, Processo deNegócio, Processo de Software, etc.

Page 18: Processo e Processo de Software

Processo

• É uma sequencia de passos executados comum determinado objetivo. (IEEE)

• É uma receita que é seguida por um projeto.(Pádua, 2011)

Page 19: Processo e Processo de Software

Processo X Produto

• PROCESSO:

• Ingredientes e oModo de preparode um RISOTO decamarão

• PRODUTO:

Page 20: Processo e Processo de Software

Elementos de um Processo

•O que é feito? – Produto

•Quando é feito? – Etapas

• Por quem é feito? – Papéis

•Quais coisas usa? – Insumos

•Quais coisas são produzidas? – Resultados

Page 21: Processo e Processo de Software

Processo de Software

• É uma série de passos previsíveis que ajuda acriar a tempo um resultado de alta qualidade.(Pressman, 2006)

• É um conjunto coerente de atividades para aprodução de software. (Sommerville, 2011)

Page 22: Processo e Processo de Software

Processo de Software

• Fornece:

• Estabilidade

• Controle

•Organização

•Dinamismo

Page 23: Processo e Processo de Software

Processo de software

•Desenvolver um sistema de software do zero

•Desenvolver um sistema de software a partirde um existente: extensão, integração,configuração, modificação, componentes.

Page 24: Processo e Processo de Software

Processo de Software

• Intelectual e criativo

• Pessoas tomam decisões e julgam

• Tirar melhor proveito das capacidades das pessoasda organização

• Tirar melhor proveito das característicasespecíficas do sistema

• Não existe modelo ideal

Page 25: Processo e Processo de Software

Categorias de Processos

• Processo dirigido a plano

• Todas as atividades são planejadas comantecedência

• Progresso é avaliado por comparação como planejamento inicial

Page 26: Processo e Processo de Software

Categorias de Processos

• Processo Ágil

• Planejamento é gradativo

• Facilidade de alteração

Page 27: Processo e Processo de Software

MODELO DE PROCESSO DE SOFTWARE

Page 28: Processo e Processo de Software

Modelo de Processo de Software

• É uma representação simplificada de umprocesso de software. (SOMMERVILLE, 2011)

•Modelos genéricos: abstrações usadas paraexplicar diferentes abordagens

• Exemplos: Cascata, incremental, reuso, etc.

Page 29: Processo e Processo de Software

Arcabouço de Processo

• Estabelece o alicerce para um processo desoftware completo

• Identifica um número de atividades aplicáveisa todos os projetos

• Independente de tamanho e complexidade

Page 30: Processo e Processo de Software

Atividades Genéricas do Arcabouço de Processo

• Levantamento derequisitos

• Comunicação com ocliente

• Colaboração com ocliente

Implantação

Construção

Modelagem

Planejamento

Comunicação

Page 31: Processo e Processo de Software

Atividades Genéricas do Arcabouço de Processo

• Plano

• Tarefas técnicas

• Riscos

• Recursos

• Cronograma

Implantação

Construção

Modelagem

Planejamento

Comunicação

Page 32: Processo e Processo de Software

Atividades Genéricas do Arcabouço de Processo

• Criação de modelospara melhorentendimento dosrequisitos.

•Ações: análise eprojeto

Implantação

Construção

Modelagem

Planejamento

Comunicação

Page 33: Processo e Processo de Software

Atividades Genéricas do Arcabouço de Processo

•Geração de código

• Testes

• ErrosImplantação

Construção

Modelagem

Planejamento

Comunicação

Page 34: Processo e Processo de Software

Atividades Genéricas do Arcabouço de Processo

• Entrega

•Avaliação

• FeedbackImplantação

Construção

Modelagem

Planejamento

Comunicação

Page 35: Processo e Processo de Software

Conjunto de Tarefas

• Define o trabalho real a ser feito para atingir osobjetivos de uma ação de engenharia de software.

• Diferentes projetos necessitam de diferentesconjuntos de tarefas.

• O conjunto de tarefas é escolhido com base noproblema e características do projeto.

Page 36: Processo e Processo de Software

ATIVIDADE

•Atividade Pratica Presencial (AP_05_2)

Page 37: Processo e Processo de Software

ATIVIDADES FUNDAMENTAIS DA

ENGENHARIA DE SOFTWARE

Page 38: Processo e Processo de Software

Atividades Fundamentais

• Especificação de software: funcionalidades erestrições

• Projeto e implementação de software:atender especificações

•Validação de software: garantia das demandasdo cliente

• Evolução de software: mudanças

Page 39: Processo e Processo de Software

Atividades Fundamentais

•As 4 atividades são ORGANIZADAS de acordocom o processo de desenvolvimento adotado

•Dependem do tipo de software, das pessoas eda estrutura organizacional

Page 40: Processo e Processo de Software

Especificação de Software

• É o processo de compreensão e definição dosserviços requisitados do sistema eidentificação de restrições relativas aoperação e ao desenvolvimento do sistema desoftware.

• Produz um documento de requisitos

Page 41: Processo e Processo de Software

Especificação de Software

Page 42: Processo e Processo de Software

Especificação de Software• Estimativa• Satisfazer necessidades do usuário• Rentabilidade do sistema• Restrições orçamentais• Estudo barato e rápido• Resultado: tomada de decisão (fazer ou não

o sistema?)

Page 43: Processo e Processo de Software

Especificação de Software

• Derivação dos requisitos• Observação de sistemas

existentes• Discussões com

potenciais usuários• Análise de tarefas• Desenvolvimento de

protótipos

Page 44: Processo e Processo de Software

Especificação de Software

• Produção de um documento

• Requisitos do usuário (visão cliente)

• Requisitos de sistema (funcionalidades)

Page 45: Processo e Processo de Software

Especificação de Software

• Verificação dos requisitos• Realismo• Consistência• Completude• Descoberta de erros• Modificação da

especificação

Page 46: Processo e Processo de Software

Projeto e Implementação de Software

• Um projeto de software é uma descrição:

• Da estrutura do software a ser implementado

• Dos modelos e estruturas de dados usados pelosistema

• Das interfaces entre os componentes dosistema

• Dos algoritmos usados

Page 47: Processo e Processo de Software

Projeto e Implementação de SoftwareEntradas de projeto

Informação da Plataforma

Especificação de Requisitos

Descrição de Dados

Atividades de Projeto

Projeto de Arquitetura

Projeto de Interface

Projeto de Componentes

Projeto de Banco de Dados

Saídas de Projeto

Arquitetura de Sistema

Especificação de Banco de Dados

Especificação de Interfaces

Especificação de Componentes

Modelo Abstrato de Processo de Projeto

As atividades são intercaladas e não sequenciais

Page 48: Processo e Processo de Software

ENTRADAS DE PROJETO INFORMAÇÕES DA PLATAFORMA

• Plataforma de Software:

• Ambiente em que o software será executado

• Componentes da Plataforma de software:

• Sistema operacional

• Banco de dados

• Middleware

• Etc.

Interação entre os componentes

Integração entre a plataforma e o ambiente

Page 49: Processo e Processo de Software

ENTRADAS DE PROJETO ESPECIFICAÇÃO DE REQUISITOS

• Especificação de requisitos

• Descrição da funcionalidade do software

• Requisitos de desempenho

• Requisitos de confiança

• As atividades no processo de software podemvariar, depende do tipo de sistema que serádesenvolvido

Page 50: Processo e Processo de Software

ENTRADAS DE PROJETODESCRIÇÃO DE DADOS

• Sistema para processamento de dados existentes:

• Podem ser inclusos na especificação daplataforma

• Caso seja outro sistema:

• Deve ser uma entrada separada para oprocesso de projeto

• Definição da organização dos dados do sistema

Page 51: Processo e Processo de Software

ATIVIDADES DE PROJETO PROJETO DE ARQUITETURA

• Identificar a estrutura geral do sistema

• Identificar os componentes principais

• Identificar os relacionamentos entre oscomponentes e como eles são distribuídos

Page 52: Processo e Processo de Software

ATIVIDADES DE PROJETO PROJETO DE ARQUITETURA

•Definir interfaces entre os componentes dosistema

• Interfaces devem ser precisas

•Os componentes não precisam saber comooutros componentes são implementados

Page 53: Processo e Processo de Software

ATIVIDADES DE PROJETO PROJETO DE COMPONENTES

• Projeto do funcionamento do componente

•Declaração de funcionalidade que deve serimplementada

• Lista de alterações para um componente

•Modelo de projeto detalhado

• Etc.

Page 54: Processo e Processo de Software

ATIVIDADES DE PROJETO PROJETO DE BANCO DE DADOS

• Projeto das estruturas de dados do sistema

• Como devem ser representados em um B.D.

• Etc.

Page 55: Processo e Processo de Software

SAÍDAS DE PROJETO

• Podem variar conforme o tipo de sistema que se estáprojetando

• Saída de um sistema crítico:

• Documentos detalhados

• Saída de um modelo:

• Diagramas

• Saída de um método ágil:

• Código de programa

Page 56: Processo e Processo de Software

Métodos Estruturados

• Déc. 70 e 80

• Produção de modelosgráficos do sistema

• Geração automática decódigo fonte

• Anos 90:

• DesenvolvimentoDirigido a Modelos –Model DrivenDevelopment – MDD

• 2000:

• UML

• Projeto Orientado aObjeto

Page 57: Processo e Processo de Software

Programação

•O desenvolvimento do programa é umaconsequência do projeto

•Geração de esqueleto do programa

•Detalhes de operação de cada componente

• É uma atividade PESSOAL: não existe umprocesso geral definido

Page 58: Processo e Processo de Software

Validação de Software

• Mostra que um software:

• Se adequa às suas especificações

• Satisfaz as especificações do cliente

• Principal técnica de validação:

• Teste de programa:

• O sistema é executado com dados de testesSIMULADOS

Page 59: Processo e Processo de Software

Validação de Software

• Processos de Verificação em todos osestágios:

• Inspeções (Ação ou efeito de olhar, de examinar, de verificar)

• Revisões (Ato ou efeito de rever ou revisar; nova leitura, novo exame)

• Custos de validação:

•Durante e após a implementação

Page 60: Processo e Processo de Software

Validação de Software

Teste de Componente

Teste de Sistema

Teste de Aceitação

Um processo de testes com três estágios.

Dados do

cliente

Sistema integrado

Defeitos de componentes

Defeitos de Interfaces.Erros de Programa.

Depuração.

Repetição de estágios já realizados

Realimentação

Page 61: Processo e Processo de Software

Processo de TesteTeste de Desenvolvimento

• Cada componente é testado de formaindependente por quem o criou

• Ferramentas de automação de testes:

• Reexecutam testes quando novas versõessão criadas

• Exemplo: Junit

Page 62: Processo e Processo de Software

Processo de TesteTeste de Sistema

• Integração dos componentes

• Erros das interações componentes einterfaces

•Mostrar que o sistema satisfaz seus requisitos

• Teste de propriedades do sistema

• Subsistemas

Page 63: Processo e Processo de Software

Processo de TesteTeste de Aceitação

•Dados fornecidos pelo cliente

• Erros/omissões na definição de requisitos

•Dados reais X dados simulados

•Desempenho indesejável

•Necessidades do usuário não alcançadas

Page 64: Processo e Processo de Software

Processo de Teste

• Processo de desenvolvimento INTERCALA com oprocesso de teste

• Teste de código enquanto é desenvolvido

• Teste Beta:

• Entrega do sistema a um número de potenciaisclientes

• Teste Alfa:

• Teste de aceitação

Page 65: Processo e Processo de Software

Evolução de Software

• Custos altos

• Atividade maçante e desinteressante?

• Processos de manutenção:

• Menos desafiadores que o projeto inicial

• Desenvolvimento e manutenção são processos contínuos

• Processo evolutivo:

• O software é constantemente alterado durante o seuperíodo de vida em resposta às mudanças de requisitose às necessidades do cliente

Page 66: Processo e Processo de Software

Evolução de Software

Definir Requisitos de

Sistema

Sistemas Existentes

Propor Mudanças de Sistema

Modificar Sistemas

Avaliar Sistemas Existentes

Novo Sistema

Page 67: Processo e Processo de Software

Atividade

•Atividade Prática Presencial – AP_05_3