Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

74
Engenharia de Software Engenharia de Software e Sistemas de e Sistemas de Informação Informação Laboratório de Engenharia de Software 2008

Transcript of Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Page 1: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Engenharia de Software Engenharia de Software e Sistemas de e Sistemas de

InformaçãoInformação

Engenharia de Software Engenharia de Software e Sistemas de e Sistemas de

InformaçãoInformação

Laboratório de Engenharia de Software

2008

Page 2: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Conteúdo

Visão geral da área de pesquisa Relação da área com os cursos de

Computação do ICMC.

O Profissional que atua em engenharia de software

Projetos em andamento Oportunidades de Iniciação Científica.

Contatos

Page 3: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

O Veículo Espacial ARIANE 5

Em 1996, o veículo espacial Ariane 5 saiu do curso e explodiu segundos após o seu lançamento.

Levou uma década de desenvolvimento e custou 7 bilhões de dólares para a Agência Espacial Européia.

Causa do acidente: reutilização de componentes do veículo Ariane 4.

Page 4: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

O Veículo Espacial ARIANE 5

Motivo da falha:– Erro de software no cálculo da

velocidade horizontal do foguete.• A variável que armazenava este valor tinha

64 bits (floating point) e foi erroneamente modificada para 16 bits (signed integer).

• O valor era maior que 32.767 (maior inteiro), gerando uma falha de conversão!!!

Page 5: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Um Sistema Baseado em Computador (SBC) é um dos

subsistemas do sistema empresa.

Qual é a finalidade de um SBC?

Page 6: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Sistema Baseado em Computador

Conjunto de elementos organizados para executar certo método, procedimento ou controle ao processar informações.

Page 7: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Quais são os elementos de um SBC?

Page 8: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Elementos de um Sistema Baseado em Computador

SistemaSistemaEntrada Saída

DocumentosDocumentos

ProcedimentoProcedimento

HardwareHardware

SoftwareSoftware

PessoasPessoas

Banco Banco de de

dadosdados

Page 9: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Elementos de um Sistema Baseado em Computador

SistemSistemaa

Entrada Saída

DocumentoDocumentoss

ProcedimentProcedimentoo

HardwareHardware

SoftwarSoftwaree

PessoasPessoas

Banco Banco de de

dadosdados

Dispositivos eletrônicos e

eletromecânicos.

Page 10: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Elementos de um Sistema Baseado em Computador

SistemSistemaa

Entrada Saída

DocumentoDocumentoss

ProcedimentProcedimentoo

HardwareHardware

SoftwarSoftwaree

PessoasPessoas

Banco Banco de de

dadosdados

Seqüência de passos que definem o uso específico

de cada elemento do sistema ou o contexto

em que o sistema reside.

Page 11: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Elementos de um Sistema Baseado em Computador

SistemSistemaa

Entrada Saída

DocumentoDocumentoss

ProcedimentProcedimentoo

HardwareHardware

SoftwarSoftwaree

PessoasPessoas

Banco Banco de de

dadosdados

Manuais, formulários e outras informações

descritivas que retratam o uso e/ou a operação do sistema.

Page 12: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Elementos de um Sistema Baseado em Computador

SistemSistemaa

Entrada Saída

DocumentoDocumentoss

ProcedimentProcedimentoo

HardwareHardware

SoftwarSoftwaree

PessoasPessoas

Banco Banco de de

dadosdados

Coleção organizada de dados a que se tem acesso pelo

software.

Page 13: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Elementos de um Sistema Baseado em Computador

SistemSistemaa

Entrada Saída

DocumentoDocumentoss

ProcedimentProcedimentoo

HardwareHardware

SoftwarSoftwaree

PessoasPessoas

Banco Banco de de

dadosdados

Usuários, interessados e operadores de

hardware e software.

Page 14: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Elementos de um Sistema Baseado em Computador

SistemSistemaa

Entrada Saída

DocumentoDocumentoss

ProcedimentProcedimentoo

HardwareHardware

SoftwarSoftwaree

PessoasPessoas

Banco Banco de de

dadosdados

Programas de computador, estruturas de

dados e documentação

correlata que servem para efetivar o método, processo ou controle lógico

necessário.

Page 15: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Software Básico– Coleção de programas escritos para dar apoio a

outros programas.

Software de Tempo Real– Monitora, analisa e controla eventos do mundo

real à medida que estes ocorrem.

Software Comercial – Sistemas de operações comerciais e tomadas

de decisão administrativas.

Aplicações de Software

Page 16: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Software Científico e de Engenharia– Caracterizado por algoritmos de processamento

de números. Software Embutido

– Usado para controlar produtos e sistemas para os mercados industriais e de consumo.

Software de Computador Pessoal– Envolve processamento de textos, planilhas

eletrônicas, aplicações gráficas, diversões, etc.

Aplicações de Software

Page 17: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Aplicações de Software

Software para Web– Páginas da Web recuperadas por um browser,

incorporando instruções executáveis e dados.

Software para Inteligência Artificial– Faz uso de algoritmos não numéricos para

resolver problemas que não são passíveis de computação ou análise direta.

• Sistemas especialistas, de reconhecimento de padrões, de redes neurais, etc.

Page 18: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Pode-se dizer que o software vai sofrendo um desgaste

com o tempo, como o hardware?

Page 19: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Características do Software

Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico.

A maioria é feita sob medida em vez de ser montada a partir de componentes existentes.

Não se desgasta mas se deteriora.

Page 20: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Características do Software

tempo

“desgaste”“mortalidade infantil”

índice de

falhas

CURVA DE FALHAS DO HARDWARE

Page 21: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Características do Software

índice de

falhas

mudança

curva real

curva idealizada

tempo

CURVA DE FALHAS DO SOFTWARE

Page 22: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Evolução do Software

(1950 - 1965) O hardware sofreu contínuas

mudanças. O software era uma arte "secundária"

para a qual havia poucos métodos sistemáticos.

O hardware era de propósito geral. O software era específico para cada

aplicação. Não havia documentação.

Page 23: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Evolução do Software

(1965 - 1975)

Multiprogramação e sistemas multiusuários.

Técnicas interativas. Sistemas de tempo real. 1a geração de SGBD’s. Produto de software - software houses. Bibliotecas de software.

Page 24: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Evolução do Software

(1965 - 1975)

Crescimento do número de sistemas baseados em computador.

Manutenção quase impossível.

..... CRISE DE ..... CRISE DE SOFTWARESOFTWARE

Page 25: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

(1975 - hoje)

Sistemas distribuídos. Redes locais e globais. Uso generalizado de

microprocessadores - produtos inteligentes.

Hardware de baixo custo. Impacto de consumo.

Evolução do Software

Page 26: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

(Quarta era do software de computador)

Tecnologias orientadas a objetos. Sistemas especialistas e software de

inteligência artificial usados na prática. Software de rede neural artificial. Computação paralela.

Evolução do Software

Page 27: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Por que surgiu a Engenharia de Software?

Page 28: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Evolução do Software

(1965 - 1975)

Crescimento do número de sistemas baseados em computador.

Manutenção quase impossível.

..... CRISE DE ..... CRISE DE SOFTWARESOFTWARE

Crise de Softwarerefere-se a um conjunto de refere-se a um conjunto de problemasproblemas encontrados no encontrados no

desenvolvimento de desenvolvimento de software.software.

AFLIÇÃO CRÔNICA

Page 29: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Crise de Software

As estimativas de prazo e de custo freqüentemente são imprecisas.

Freqüente insatisfação do cliente com o sistema concluído

A qualidade do software é, em geral, menos que adequada.

O software existente é muito difícil de manter.

Falhas das pessoas responsáveis pelo desenvolvimento de software.

Page 30: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Resposta à Crise de Software

A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE)

Page 31: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

O Produto Software

O produto software tem uma natureza um pouco diferente dos “produtos tradicionais”:

O software é abstrato– é a expressão – traduzida em instruções para

computadores – da solução desenvolvida por um ser humano (ou vários!) para um problema

– pode ser tão simples quanto calcular o total de uma lista de compras, ou tão complexo quanto calcular a fatura de um telefone celular.

Page 32: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Assim, é preciso .... compreender bem o problema do cliente desenvolver uma solução garantir que ela funcione transformar a solução em um software entregar o software ao cliente no custo e prazo combinados oferecer treinamento aos usuários realizar alterações quando o cliente pedir manter o controle da versão do software que cada cliente possui e tudo enquanto

– negocia preços e prazos, – paga o salário dos funcionários, – capacita os funcionários– se mantém atualizado com o mercado tecnológico

e ainda busca maneiras de fazer tudo isso cada vez melhor, mais rápido e mais barato do que a concorrência.

Page 33: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Assim, é preciso .... compreender bem o problema do cliente desenvolver uma solução garantir que ela funcione transformar a solução em um software entregar o software ao cliente no custo e prazo combinados oferecer treinamento aos usuários realizar alterações quando o cliente pedir manter o controle da versão do software que cada cliente possui e tudo enquanto

– negocia preços e prazos, – paga o salário dos funcionários, – capacita os funcionários– se mantém atualizado com o mercado tecnológico

e ainda busca maneiras de fazer tudo isso cada vez melhor, mais rápido e mais barato do que a concorrência.

Parece não ser simples

E E nãonão é! é!

Page 34: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Resposta à Crise de Software

A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE)

Pode ser orientada pelaNorma Internacional

ISO/IEC 12207ISO/IEC 12207

Page 35: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Norma Internacional ISO/IEC 12207 utilizada em muitos países, inclusive no

Brasil, para alcançar um diferencialdiferencial competitivocompetitivo na produção de software

abrange desde a concepçãoconcepção até a descontinuidadedescontinuidade do software.

Page 36: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Norma Internacional ISO/IEC 12207 a norma apresenta “o quêo quê” deve ser feito

para que se alcance a qualidade a norma não apresenta “como fazercomo fazer”, ficando

essa parte a cargo do interessado na sua implantação.

Page 37: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Na Norma ISO/IEC 12207Norma ISO/IEC 12207, os processosprocessos são agrupados em três classesclasses, que representam a sua naturezanatureza.

– Processos FundamentaisFundamentais

– Processos de ApoioApoio

– Processos OrganizacionaisOrganizacionais

Page 38: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Reuso

Gerência

Melhoria

Processos OrganizacionaisProcessos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Recursos e Infraestrutura

Reuso

Gerência

Melhoria

Processos OrganizacionaisProcessos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Recursos e Infraestrutura

Page 39: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Papéis EnvolvidosPapéis Envolvidos AdquirenteAdquirente:: organização

que adquire um sistema ou produto de software

FFornecedorornecedor:: organização que fornece o produto de software ao adquirente

DDesenvolvedoresenvolvedor:: organização que define e desenvolve o produto de software

Page 40: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Processos de Processos de DesenvolvimentoDesenvolvimento

Orientam a organização que assumir o papel de desenvolvedor

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Page 41: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PR

OC

ES

SO

S D

E

AP

OIO

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 42: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Processos de Processos de OperaçãoOperação

Orientam a organização na fase pós entrega

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Page 43: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PR

OC

ES

SO

S D

E

AP

OIO

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 44: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Processos de Processos de AquisiçãoAquisição

Orientam a organização que assumir o papel de comprador

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Page 45: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PR

OC

ES

SO

S D

E

AP

OIO

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 46: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Processos de Processos de FornecimentoFornecimento

Orientam a organização que assumir o papel de fornecedor

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Processos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Page 47: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE FORNECIMENTO Proposta do Fornecedor Liberação do Produto Apoio a Aceitação do Produto

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PR

OC

ES

SO

S D

E

AP

OIO

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 48: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Reuso

Gerência

Melhoria

Processos OrganizacionaisProcessos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Recursos e Infraestrutura

Reuso

Gerência

Melhoria

Processos OrganizacionaisProcessos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Page 49: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Processos de ApoioProcessos de ApoioAuxiliam e contribuem para o

sucesso e qualidade de quaisquer outros processos nos vários pontos do ciclo de vida do software

Page 50: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Processos de Controle da ConfiguraçãoProcessos de Controle da ConfiguraçãoDesenvolvimento de software sucessivas

mudanças produto evolua para o seu estado final.

Se as mudanças não são controladas o caos é praticamente inevitável.

Os processos de controle da configuração têm o objetivo de orientar a organização a evitar esse caos.

Page 51: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE FORNECIMENTO Proposta do Fornecedor Liberação do Produto Apoio a Aceitação do Produto

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PROCESSOS DE CONTROLE DA CONFIGURAÇÃO Documentação Gerenciamento da Configuração Gerenciamento da resolução de problemas Gerenciamento dos Pedidos de Alteração

PR

OC

ES

SO

S D

E

AP

OIO

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 52: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Processos de Garantia de QualidadeProcessos de Garantia de Qualidade Mudanças inerentes à produção de software

medidas para garantir a qualidade dos produtos e serviços

Os processos de garantia de qualidade orientam a organização fornecedora para garantir que o produto seja construído corretamente (com o mínimo de erros possível) e que o produto correto seja construído (esteja em conformidade com as necessidades do cliente).

Page 53: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE FORNECIMENTO Proposta do Fornecedor Liberação do Produto Apoio a Aceitação do Produto

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PROCESSOS DE CONTROLE DA CONFIGURAÇÃO Documentação Gerenciamento da Configuração Gerenciamento da resolução de problemas Gerenciamento dos Pedidos de Alteração

PROCESSOS DE GARANTIA DE QUALIDADE Garantia da Qualidade Verificação Validação Revisão Conjunta Auditoria Avaliação do produto

PR

OC

ES

SO

S D

E

AP

OIO

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 54: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Reuso

Gerência

Melhoria

Processos OrganizacionaisProcessos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Recursos e Infraestrutura

Reuso

Gerência

Melhoria

Processos OrganizacionaisProcessos Fundamentais

Aquisição

Fornecimento

Desenvolvimento Operação

Garantia da Qualidade

Processos de Apoio

Controle da Configuração

Recursos e Infraestrutura

Page 55: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Processos de Processos de GerênciaGerência

orientam a organização a definir atividades genéricas que podem ser empregadas quando houver a necessidade de gerenciar algum processo.

Page 56: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE FORNECIMENTO Proposta do Fornecedor Liberação do Produto Apoio a Aceitação do Produto

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PROCESSOS DE CONTROLE DA CONFIGURAÇÃO Documentação Gerenciamento da Configuração Gerenciamento da resolução de problemas Gerenciamento dos Pedidos de Alteração

PROCESSOS DE GARANTIA DE QUALIDADE Garantia da Qualidade Verificação Validação Revisão Conjunta Auditoria Avaliação do produto

PR

OC

ES

SO

S D

E

AP

OIO

PROCESSOS DE GERÊNCIA Alinhamento Organizacional Gerenciamento da Organização Gerenciamento do projeto Gerenciamento da Qualidade Gerenciamento de Risco Medições

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 57: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Processos de Recursos Processos de Recursos e Infraestruturae Infraestrutura

Para que todos os processos e atividades sejam executados com sucesso é preciso que exista recursos e infraestrutura adequada.

Page 58: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE FORNECIMENTO Proposta do Fornecedor Liberação do Produto Apoio a Aceitação do Produto

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PROCESSOS DE CONTROLE DA CONFIGURAÇÃO Documentação Gerenciamento da Configuração Gerenciamento da resolução de problemas Gerenciamento dos Pedidos de Alteração

PROCESSOS DE GARANTIA DE QUALIDADE Garantia da Qualidade Verificação Validação Revisão Conjunta Auditoria Avaliação do produto

PR

OC

ES

SO

S D

E

AP

OIO

PROCESSOS DE GERÊNCIA Alinhamento Organizacional Gerenciamento da Organização Gerenciamento do projeto Gerenciamento da Qualidade Gerenciamento de Risco Medições

PROCESSOS DE RECURSOS E INFRAESTRUTURA Gerenciamento de Recursos Humanos Treinamento Gerenciamento do Conhecimento Infraestrutura

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

Page 59: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Processos de ReusoProcessos de ReusoMuitas funcionalidades são

comuns a vários projetos É desejável que ao término

de um projeto os componentes tenham sido desenvolvidos de uma forma que possam ser reutilizados em outros.

O reuso de partes de software pode não ser tão trivial quanto aparenta ser

Page 60: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE FORNECIMENTO Proposta do Fornecedor Liberação do Produto Apoio a Aceitação do Produto

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PROCESSOS DE CONTROLE DA CONFIGURAÇÃO Documentação Gerenciamento da Configuração Gerenciamento da resolução de problemas Gerenciamento dos Pedidos de Alteração

PROCESSOS DE GARANTIA DE QUALIDADE Garantia da Qualidade Verificação Validação Revisão Conjunta Auditoria Avaliação do produto

PR

OC

ES

SO

S D

E

AP

OIO

PROCESSOS DE GERÊNCIA Alinhamento Organizacional Gerenciamento da Organização Gerenciamento do projeto Gerenciamento da Qualidade Gerenciamento de Risco Medições

PROCESSOS DE RECURSOS E INFRAESTRUTURA Gerenciamento de Recursos Humanos Treinamento Gerenciamento do Conhecimento Infraestrutura

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

PROCESSOS DE REUSO Gerencia dos Ativos Gerencia do Programa de Reuso Engenharia de Domínio

Page 61: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Processos de Ciclo de Vida de Software

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Reuso

Gerência

Melhoria

Processos Organizacionais

Recursos e Infraestrutura

Processos de MelhoriaProcessos de MelhoriaApós o estabelecimento do

processo dificilmente ele será o melhor possível.

Sempre haverá melhorias a serem feitas.

São previstos processos de melhoria de processo baseados em ciclos de melhoria

Page 62: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

PROCESSOS DE AQUISIÇÃO Preparação da Aquisição Seleção do Fornecedor Contrato Monitoramento do Fornecedor Aceitação do Cliente

PROCESSOS DE FORNECIMENTO Proposta do Fornecedor Liberação do Produto Apoio a Aceitação do Produto

PROCESSOS DE DESENVOLVIMENTO Elicitação de Requisitos Análise dos Requisitos do Sistema Projeto Arquitetural do Sistema Análise dos Requisitos de Software Projeto do Software Construção do Software Integração do Software Teste do Software Integração do Sistema Teste do Sistema Instalação do Software Manutenção do Software e do Sistema

PROCESSOS DE OPERAÇÃO Uso Operacional Apoio ao Cliente

PR

OC

ES

SO

S F

UN

DA

MEN

TA

IS

PROCESSOS DE CONTROLE DA CONFIGURAÇÃO Documentação Gerenciamento da Configuração Gerenciamento da resolução de problemas Gerenciamento dos Pedidos de Alteração

PROCESSOS DE GARANTIA DE QUALIDADE Garantia da Qualidade Verificação Validação Revisão Conjunta Auditoria Avaliação do produto

PR

OC

ES

SO

S D

E

AP

OIO

PROCESSOS DE GERÊNCIA Alinhamento Organizacional Gerenciamento da Organização Gerenciamento do projeto Gerenciamento da Qualidade Gerenciamento de Risco Medições

PROCESSOS DE RECURSOS E INFRAESTRUTURA Gerenciamento de Recursos Humanos Treinamento Gerenciamento do Conhecimento Infraestrutura

PR

OC

ES

SO

S O

RG

AN

IZA

CIO

NA

ISNorma ISO 12207Norma ISO 12207

PROCESSOS DE REUSO Gerencia dos Ativos Gerencia do Programa de Reuso Engenharia de Domínio

PROCESSOS DE MELHORIA DE PROCESSO Estabelecimento do Processo Avaliação do Processo Melhoria do Processo

Page 63: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Laboratório de engenharia de software

Lab es

Page 64: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Histórico do Grupo de Engenharia de Software do ICMC

Criado em 1974

33 anos!!

Total:

Mestrados: 99

Doutorados: 08

Page 65: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Grupo de Engenharia de Software do ICMC

1. Fernão S. Rodrigues Germano (Titular-aposentado)

2. Paulo Cesar Masiero (Titular)3. Jose Carlos Maldonado (Titular)4. Renata P. Mattos Fortes (Doutor)5. Rosely Sanches (Doutor)6. Elisa Nakagawa (Doutor)7. Rosana T. Vaccare Braga (Doutor)8. Adenilso S. Simão (Doutor)9. Simone Rocio Senger de Souza (Doutor)10. Ellen Francine Barbosa (Doutor)

Page 66: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Grupo de Engenharia de Software do ICMC

1. Fernão S. Rodrigues Germano (Titular-aposentado)

2. Paulo Cesar Masiero (Titular)3. Jose Carlos Maldonado (Titular)4. Renata P. Mattos Fortes (Doutor)5. Rosely Sanches (Doutor)6. Elisa Nakagawa (Doutor)7. Rosana T. Vaccare Braga (Doutor)8. Adenilso S. Simão (Doutor)9. Simone Rocio Senger de Souza (Doutor)10. Ellen Francine Barbosa (Doutor)

Page 67: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Grupo de Engenharia de Software do ICMC

1. Fernão S. Rodrigues Germano (Titular-aposentado)

2. Paulo Cesar Masiero (Titular)3. Jose Carlos Maldonado (Titular)4. Renata P. Mattos Fortes (Doutor)5. Rosely Sanches (Doutor)6. Elisa Nakagawa (Doutor)7. Rosana T. Vaccare Braga (Doutor)8. Adenilso S. Simão (Doutor)9. Simone Rocio Senger de Souza (Doutor)10. Ellen Francine Barbosa (Doutor)

Page 68: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Pesquisadores do LabES

Pesquisadores (2006):

– Alunos de Iniciação Científica: 25

– Alunos de Mestrado: 21

– Alunos de Doutorado: 07

– Colaboradores: 07

Page 69: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Linhas de Pesquisa

Processos de software Ambientes de desenvolvimento de software Engenharia de requisitos Desenvolvimento orientado a objetos Desenvolvimento orientado a aspectos Desenvolvimento baseado em componentes Gerenciamento de configuração Gerenciamento e planejamento de projeto Métricas de software

Page 70: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Linhas de Pesquisa

Métodos e modelos formais Qualidade de software Teste e validação de software Manutenção de software Engenharia reversa / reengenharia Reúso Padrões de software Projeto de Interface do Usuário Desenvolvimento Orientado por Modelos Ensino e treinamento

Page 71: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

Alguns dos Projetos em Andamento

– Pesquisa em Métodos e Ferramentas de Engenharia de Software (CNPq)

• Coordenadores: Paulo Cesar Masiero e José Carlos Maldonado

– Métodos em Engenharia de Software Aplicados a Soluções Numéricas e Mecânica dos Fluidos (Multidisciplinar) (Fapesp)

• Coordenador: Paulo Cesar Masiero

– Pesquisa em Qualidade de Software

• Coordenadora: Rosely Sanches

– Plavis: Plataforma para Validação e Integração de Software em Sistemas Espaciais (CNPq)

• Coordenador: José Carlos Maldonado

Page 72: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

– Design Rationale em Processos de Software e Web Engineering

• Coordenadora: Renata Pontin de Mattos Fortes

– Software Engineering Available For Everyone – SAFE

• Coordenadora: Renata Pontin de Mattos Fortes

• Financiamento: FINEP

– Reuso de Software e Desenvolvimento Orientado por Modelos

• Coordenadora: Renata Pontin de Mattos Fortes

– Teste de Software aplicado a Programas Concorrentes

• Coordenadora: Simone do Rocio Senger de Souza

– Desenvolvimento de Módulos Educacionais

• Coordenadora: Ellen Francine Barbosa

– …

Alguns dos Projetos em Andamento

Page 73: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

www.labes.icmc.usp.br

Page 74: Engenharia de Software e Sistemas de Informação Laboratório de Engenharia de Software 2008.

www.labes.icmc.usp.brwww.labes.icmc.usp.br