Engenharia de Software e Sistemas de 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.
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
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
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.
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!!!
Um Sistema Baseado em Computador (SBC) é um dos
subsistemas do sistema empresa.
Qual é a finalidade de um SBC?
Sistema Baseado em Computador
Conjunto de elementos organizados para executar certo método, procedimento ou controle ao processar informações.
Quais são os elementos de um SBC?
Elementos de um Sistema Baseado em Computador
SistemaSistemaEntrada Saída
DocumentosDocumentos
ProcedimentoProcedimento
HardwareHardware
SoftwareSoftware
PessoasPessoas
Banco Banco de de
dadosdados
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.
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.
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.
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.
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.
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.
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
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
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.
Pode-se dizer que o software vai sofrendo um desgaste
com o tempo, como o hardware?
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.
Características do Software
tempo
“desgaste”“mortalidade infantil”
índice de
falhas
CURVA DE FALHAS DO HARDWARE
Características do Software
índice de
falhas
mudança
curva real
curva idealizada
tempo
CURVA DE FALHAS DO SOFTWARE
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.
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.
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
(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
(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
Por que surgiu a Engenharia de Software?
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
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.
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)
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.
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.
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 é! é!
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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).
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
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
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.
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
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.
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 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
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 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
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
Laboratório de engenharia de software
Lab es
Histórico do Grupo de Engenharia de Software do ICMC
Criado em 1974
33 anos!!
Total:
Mestrados: 99
Doutorados: 08
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)
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)
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)
Pesquisadores do LabES
Pesquisadores (2006):
– Alunos de Iniciação Científica: 25
– Alunos de Mestrado: 21
– Alunos de Doutorado: 07
– Colaboradores: 07
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
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
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
– 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
www.labes.icmc.usp.br
www.labes.icmc.usp.brwww.labes.icmc.usp.br