pós graduação engenharia de...

25
Pós Graduação Pós Graduação Engenharia de Software Engenharia de Software Ana Candida Natali Ana Candida Natali COPPE/UFRJ COPPE/UFRJ Programa de Engenharia de Sistemas e Computação Programa de Engenharia de Sistemas e Computação FAPEC / FAT

Upload: trinhngoc

Post on 29-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Pós Graduação Pós Graduação Engenharia de SoftwareEngenharia de Software

Ana Candida NataliAna Candida NataliCOPPE/UFRJCOPPE/UFRJ

Programa de Engenharia de Sistemas e ComputaçãoPrograma de Engenharia de Sistemas e Computação

FAPEC / FAT

Page 2: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Estrutura do MóduloEstrutura do Módulo

QUALIDADE DE SOFTWARE (30h)QUALIDADE DE SOFTWARE (30h)Introdução: desenvolvimento de software como uma Introdução: desenvolvimento de software como uma disciplina de engenhariadisciplina de engenhariaCiclo de vidaCiclo de vidaProcessos de softwareProcessos de softwareQualidade do processo e implicaçõesQualidade do processo e implicaçõesQualidade do produtoQualidade do produtoModelos de qualidade de processo e de produtoModelos de qualidade de processo e de produtoCasos e relatos de experiênciaCasos e relatos de experiênciaAvaliaçãoAvaliação

Page 3: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Estrutura do Módulo Estrutura do Módulo –– Parte 1Parte 1QUALIDADE DE SOFTWARE QUALIDADE DE SOFTWARE –– PROCESSOPROCESSOIntrodução: desenvolvimento de software como uma Introdução: desenvolvimento de software como uma disciplina de engenhariadisciplina de engenhariaCiclo de vidaCiclo de vidaProcessos de softwareProcessos de software

Qualidade do processo e implicaçõesQualidade do processo e implicaçõesModelos de qualidade de processo (ênfase Modelos de qualidade de processo (ênfase ISO/IECISO/IEC 12207 12207 e CMMI) e CMMI) Casos e relatos de experiênciaCasos e relatos de experiência

AvaliaçãoAvaliação

Page 4: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Introdução: Introdução: Engenharia de SoftwareEngenharia de Software

Page 5: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

IntroduçãoIntrodução

Um estudo desenvolvido pelo Um estudo desenvolvido pelo StandishStandish GroupGroupidentificou que as empresas de software dos identificou que as empresas de software dos Estados Unidos:Estados Unidos:

gastaram $81 milhões em projetos de software que gastaram $81 milhões em projetos de software que foram cancelados em 1995; foram cancelados em 1995; 31% dos projetos de software estudados foram 31% dos projetos de software estudados foram cancelados antes de estarem concluídos; cancelados antes de estarem concluídos; 53% dos projetos de software excedem mais do que 53% dos projetos de software excedem mais do que 50% a sua estimativa de custo; 50% a sua estimativa de custo; e, somente 9% dos projetos, em grandes empresas, e, somente 9% dos projetos, em grandes empresas, foram entregues no tempo e orçamento.foram entregues no tempo e orçamento.

Page 6: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

IntroduçãoIntroduçãoNeste contexto, estes dados indicam as seguintes conclusões:

O desenvolvimento de software é ainda imprevisível;Somente 10% dos projetos de software são entregues com sucesso dentro das estimativas de orçamento e custo;O esforço para construir software confiável e de qualidade é muito grande;A sociedade depende cada vez mais de software confiável; quando ele falha, podem ocorrer prejuízos;O nível de software jogado fora e que tem necessidade de re-trabalho é um indicativo de processo imaturo.

As práticas de construção de software devem ser melhoradas para que se tenha sucesso nos projetos de tecnologia da informação. A preocupação em resolver essas questões tem levado à adoção da Engenharia de Software.

Page 7: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Engenharia de Software: DefiniçãoEngenharia de Software: DefiniçãoVisando melhorar a qualidade dos produtos de software e aumentar a produtividade no processo de desenvolvimento, surgiu a área de pesquisa denominada Engenharia de Software.A Engenharia de Software busca organizar esforços no desenvolvimento de ferramentas, metodologias e ambientes de suporte ao desenvolvimento de software. Consiste na aplicação de uma abordagem sistemática, disciplinada e quantificável ao desenvolvimento, operação e manutenção de software.A Engenharia de Software pode ser vista em camadas:

ferramentasferramentasmétodosmétodosprocessoprocesso

focofoco nana qualidadequalidadeFigura 1 – Engenharia de Software composta por camadas.

Page 8: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Engenharia de SoftwareEngenharia de Software

QualidadeQualidade: : permitepermite o o desenvolvimentodesenvolvimento crescentecrescente de de abordagensabordagens maismais madurasmaduras parapara a a EngenhariaEngenharia de Softwarede SoftwareProcessoProcesso: é a cola : é a cola queque grudagruda as as camadascamadas de de tecnologiastecnologias e e permitepermite um um desenvolvimentodesenvolvimento de software de software racionalracional e no e no prazoprazo estimadoestimadoMétodos: englobam um conjunto de tarefas que definem Métodos: englobam um conjunto de tarefas que definem ““comocomo fazerfazer””Ferramentas: sãoFerramentas: são osos instrumentosinstrumentos apropriadosapropriados queque dãodãosuportesuporte automatizadoautomatizado ouou semisemi--automatizadoautomatizado aoao processoprocesso e e aosaos métodosmétodos

ferramentasferramentasmétodosmétodosprocessoprocesso

focofoco nana qualidadequalidade

Page 9: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Engenharia de SoftwareEngenharia de Software

processosprocessosmétodosmétodosferramentasferramentas

devem incorporaruma estratégia de desenvolvimento

•• ModeloModelo de de ProcessoProcesso•• CicloCiclo de Vidade Vida•• ParadigmaParadigma de de EngenhariaEngenharia de Softwarede Software

Page 10: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Engenharia de SoftwareEngenharia de SoftwareA Engenharia de Software se preocupa com o software enquanto produto.O valor de um produto vem de suas características.Os requisitos são as características que definem os critérios de aceitação de um produto.Planejar prazos e custos faz parte da rotina de qualquer ramo da engenharia.Porém, todo plano comporta incertezas.

Page 11: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Engenharia de SoftwareEngenharia de SoftwareApós planejar, é preciso controlar o projeto de software, o que compreende:

o acompanhamento do progresso dos projetos, comparando-se o planejado com o realizado;a busca de alternativas para contornar problemas surgidos na execução dos projetos;o re-planejamento dos projetos, quando não é possível manter os planos anteriores dentro de um grau razoável de variação;a renegociação dos compromissos assumidos, envolvendo todas as partes interessadas.

Page 12: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Como produzir software com Como produzir software com qualidade?qualidade?

Qualidade de um produto é o seu grau de conformidade com os respectivos requisitos. O que decide a qualidade é o confronto entre a promessa e a realização.A qualidade é conseqüência dos processos, das pessoas e da tecnologia.

Page 13: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Dificuldades associadas à Dificuldades associadas à Engenharia de SoftwareEngenharia de Software

Mal entendidos comuns:1. Os principais problemas da produção de software

são causados por deficiências das pessoas.2. A engenharia de software é diferente das outras

engenharias. Portanto, os métodos normais da engenharia não são aplicáveis.

3. A gestão de projetos de software é diferente das outras formas de gestão. Portanto, os métodos normais da gestão de projetos não são aplicáveis.

Page 14: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Os principais problemas da produção de software não são causados por deficiências das pessoas. As pessoas geralmente erram por uma das seguintes razões:

têm informação imprecisa, confusa ou incompleta;não têm os recursos necessários;têm métodos e procedimentos mal definidos;não foram treinadas adequadamente;não sabem seguir os procedimentos que têm.

Dificuldades associadas à Dificuldades associadas à Engenharia de SoftwareEngenharia de Software

Page 15: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

A engenharia de software é diferente das outras engenharias. Requer mais disciplina gerencial, e não menos. Na maioria das engenharias, as leis físicas impõem limites claramente visíveis ao que pode ser feito. Na engenharia de software, a criatividade é limitada pela capacidade humana de entender e dominar a complexidade. Para manter a complexidade sob controle, os gerentes devem exigir planos detalhados, e sistemas de acompanhamento destes planos, com pontos de controle bem definidos. Em outras palavras, os gerentes podem e devem exigir respostas claras para perguntas simples.

Dificuldades associadas à Dificuldades associadas à Engenharia de SoftwareEngenharia de Software

Page 16: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Por que seguir boas práticas de Por que seguir boas práticas de Engenharia de Software?Engenharia de Software?

Os dados seguintes sustentam alguns motivos ([Os dados seguintes sustentam alguns motivos ([Jones94Jones94], ], [[McConnell96McConnell96]):]):

Captar um requisito correto é 50 a 200 vezes mais barato que corCaptar um requisito correto é 50 a 200 vezes mais barato que corrigirigi--lo durante a implementação ou em operação. Portanto, a engenharilo durante a implementação ou em operação. Portanto, a engenharia a e a gestão dos requisitos estão entre as práticas de maior retore a gestão dos requisitos estão entre as práticas de maior retorno de no de investimento.investimento.Fazer uma análise correta é 10 vezes mais barato que corrigir duFazer uma análise correta é 10 vezes mais barato que corrigir durante rante os testes de aceitação. Portanto, a análise e o projeto têm fortos testes de aceitação. Portanto, a análise e o projeto têm forte e impacto nos custos dos projetos.impacto nos custos dos projetos.Refazer defeitos de requisitos, projeto e código consome 40% a 5Refazer defeitos de requisitos, projeto e código consome 40% a 50% 0% do custo total dos projetos. Portanto, a garantia da qualidade sdo custo total dos projetos. Portanto, a garantia da qualidade se paga e paga rapidamente, na medida em que diminui a necessidade de refazer.rapidamente, na medida em que diminui a necessidade de refazer.Cada hora gasta em prevenção de defeitos representa de 3 a 10 hoCada hora gasta em prevenção de defeitos representa de 3 a 10 horas ras menos de correção de defeitos.menos de correção de defeitos.

Page 17: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Organizações e sua Maturidade em Organizações e sua Maturidade em Engenharia de SoftwareEngenharia de Software

A maturidade de uma organização em Engenharia de Software mede o grau de competência, técnica e gerencial, que esta organização possui para produzir software de boa qualidade, dentro de prazos e custos razoáveis e previsíveis.Infelizmente para os profissionais, muitas organizações que produzem software são imaturas.

Page 18: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

(I)Maturidade das Organizações de Software(I)Maturidade das Organizações de Software

A organização imatura comete erros que podem ser chamados de erros clássicos[McConnell96]:

Falta de participação das partes interessadas, principalmente na definição de requisitos;Codificação desenfreada, baseada em análise insuficiente ou inexistente;Pressões causadas por prazos excessivamente otimistas;Mudança de ferramentas no meio do projeto;

Page 19: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Muitas organizações imaturas em software têm o Muitas organizações imaturas em software têm o hábito de assumir compromissos não realistas;hábito de assumir compromissos não realistas;Outras querem obter maior realismo dos Outras querem obter maior realismo dos compromissos, mas desconhecem as técnicas de compromissos, mas desconhecem as técnicas de estimativa;estimativa;Outras conhecem as técnicas, mas não têm os Outras conhecem as técnicas, mas não têm os dados para aplicádados para aplicá--las, porque não usam processos las, porque não usam processos bem definidos e estáveis.bem definidos e estáveis.

(I)Maturidade das Organizações de Software(I)Maturidade das Organizações de Software

Page 20: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Em organizações com baixa maturidade de capacitação em software, os processos geralmente são informais. Processos informais existem apenas na cabeça de seus praticantes, geralmente são processos individuais. Podem ser parcialmente transferidos para outras pessoas, por transmissão oral e por imitação.Por outro lado, um processo definido tem documentação que detalha todos os seus aspectos importantes: o que é feito, quando, por quem, as coisas que usa e as coisas que produz.

(I)Maturidade das Organizações de Software(I)Maturidade das Organizações de Software

Page 21: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

O que fazer para atingir maior O que fazer para atingir maior maturidade?maturidade?

É necessário escolher áreas para investimento. Onde o retorno do investimento em capacitação é mais rápido?Dos três fatores da produção (tecnologia, pessoas e processo), a tecnologia é a escolha de muitos profissionais.Entretanto, a tecnologia tem seu próprio ritmo de evolução. Além disto, esta só oferece retorno do investimento quando colocada nas mãos de pessoas capacitadas, trabalhando dentro de processos adequados.

Page 22: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

O que fazer para atingir maior O que fazer para atingir maior maturidade?maturidade?

Investir na capacitação das pessoas é absolutamente necessário. Entretanto, formar pessoas é difícil, caro e demorado.Dos investimentos nos fatores de produção, a escolha por processos pode ser a mais adequada. Processos também não fazem milagres por si só, mas a implantação e melhoria dos processos trazem retorno em prazos relativamente curtos.

Page 23: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

Para tornar uma organização mais madura e capacitada, é realmente preciso melhorar a qualidade dos seus processos. Processos não melhoram simplesmente por estarem de acordo com um padrão externo.O critério de verdadeiro êxito dos processos é a medida de quanto eles contribuem para que os produtos sejam entregues aos clientes e usuários:

com melhor qualidade;por menor custo;em prazo mais curto.

Ou seja, bons processos devem ajudar a produzir: melhor; mais barato; mais rápido.

Maturidade das Organizações de SoftwareMaturidade das Organizações de Software

Page 24: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

ReferênciasReferênciasEngenharia de SoftwareEngenharia de Software, Roger S. Pressman, , Roger S. Pressman, Tradução da 5a edição, Tradução da 5a edição, McMc GrawGraw Hill, 2002. Hill, 2002.

Engenharia de Software: Teoria e Prática, 2a edição, Engenharia de Software: Teoria e Prática, 2a edição, ShariShari L. L. PfleegerPfleeger, , PrenticePrentice Hall, 2004Hall, 2004..

www.www.prenhallprenhall..com/pfleeger_brcom/pfleeger_br

Engenharia de Software: fundamentos, métodos e padrões, Wilson de Pádua Filho, Editora LCT, 2000Wilson de Pádua Filho, Editora LCT, 2000.

Qualidade de Software: Teoria e PráticaQualidade de Software: Teoria e Prática, Ana Regina , Ana Regina da Rocha e outros autores, da Rocha e outros autores, PrenticePrentice Hall, 2001. Hall, 2001.

Page 25: Pós Graduação Engenharia de Softwarewebx.sefaz.al.gov.br/.../qos1/Pos_Maceio_Parte1_EngenhariaSoftware.pdf · Na engenharia de software, a criatividade é limitada pela capacidade

ContatosContatos

Ana Candida NataliAna Candida [email protected]@cos.ufrj.br

Ana Regina da RochaAna Regina da [email protected]@centroin.com.br