Pós Graduação Engenharia de Software



Documentos relacionados
Curso Superior de Tecnologia em Banco de Dados e Sistemas para Internet Disciplina: Projeto Integrador III Prof.: Fernando Hadad Zaidan

Unidade I Conceitos BásicosB. Conceitos BásicosB

Gerência de Projetos Prof. Késsia Rita da Costa Marchi 3ª Série

Profa. Dra. Ana Paula Gonçalves Serra

Especialização em Engenharia de Software e Banco de Dados

CÓDIGO CRÉDITOS PERÍODO PRÉ-REQUISITO TURMA ANO INTRODUÇÃO

3 Qualidade de Software

Construção. Transição

Pós Graduação Engenharia de Software

Porque estudar Gestão de Projetos?

Técnicas de Vendas de Produtos e Serviços financeiros no setor bancário: planejamento, técnicas; motivação para vendas. Professora Renata Lourdes.

Qualidade de Software

Processos de gerenciamento de riscos. Planejamento Identificação Análise Resposta Monitoramento

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

GERÊNCIA DE PROJETOS DE SOFTWARE. Introdução

CAPABILITY MATURITY MODEL FOR SOFTWARE. Eduardo Mayer Fagundes

Processo de Desenvolvimento de Software Workshop de Engenharia de Software

Engenharia de Software

Qualidade de software

Atividades da Engenharia de Software ATIVIDADES DE APOIO. Atividades da Engenharia de Software. Atividades da Engenharia de Software

Diretrizes para determinação de intervalos de comprovação para equipamentos de medição.

UMA PROPOSTA DE MODELO DE PROCESSO PARA DESENVOLVIMENTO DE TECNOLOGIAS EDUCACIONAIS

Qualidade de Processo de Desenvolvimento de Software

Confederação Nacional da Indústria. - Manual de Sobrevivência na Crise -

1. INTRODUÇÃO. Espero que faça um bom proveito do conteúdo e que, de alguma forma, este e-book facilite a sua decisão de adquirir um planejamento.

Planejamento de Projeto Gestão de Projetos

Sumário. Modelo de Maturidade vs Tomadores de Decisão: Reduzindo o Gap Através do Método UTA

Projetos Ágeis aplicados a TI. Júlio Cesar da Silva Msc.

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Módulo 14 Treinamento e Desenvolvimento de Pessoas Treinamento é investimento

Introdução à. Engenharia de Software. Givanaldo Rocha de Souza

PROJETO DE SISTEMAS. Professora Lucélia

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Engenharia de Software. Tema 1. Introdução à Engenharia de Software Profa. Susana M. Iglesias

ITIL v3 - Operação de Serviço - Parte 1

Curso de Especialização em Tecnologia da Informação. Engenharia de Software

QUALIDADE DE SOFTWARE

GERÊNCIA DE PROJETOS Prof. Késsia Rita da Costa Marchi 4ª Série

MODELO CMM MATURIDADE DE SOFTWARE

EMPREENDEDORISM O. CCE Características do Comportamento Empreendedor. Prof. Cícero Wilrison Alves Carneiro

UM SISTEMA WEB PARA GERÊNCIA DE CAMPEONATOS DE VOLEIBOL

Gerenciamento de Qualidade. Paulo C. Masiero Cap SMVL

Projeto de Sistemas I

Teste de Software: Um Breve Estudo do Importante Processo no Desenvolvimento de Softwares

Trata-se do processo de planejamento, identificação, análise e planejamento de respostas e controle de riscos.

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

TEORIA DAS RESTRIÇÕES: PRINCIPAIS CONCEITOS E APLICAÇÃO PRÁTICA

Qualidade de Software

Capítulo 2 Objetivos e benefícios de um Sistema de Informação

Sessão 4: Avaliação na perspectiva de diferentes tipos de organizações do setor sem fins lucrativos

A Análise dos Custos Logísticos: Fatores complementares na composição dos custos de uma empresa

Gerenciamento de Projetos Modulo VIII Riscos

Leslier Soares Corrêa Estácio de Sá / Facitec Abril/Maio 2015

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Engenharia de Software

Satisfação dos consumidores: estudo de caso em um supermercado de Bambuí/MG

Desenvolvimento e Capacitação de Servidores Públicos

Laudon & Laudon MIS, 7th Edition. Pg. 1.1

Processos de gerenciamento de projetos em um projeto

Introdução. Escritório de projetos

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

GARANTIA DA QUALIDADE DE SOFTWARE

PRODUTOS RIOSOFT COM SUBSÍDIO SEBRAEtec

Para solução de problemas

Sistemas de Gerenciamento de Banco de Dados

A Ciência e a Arte de Ser Dirigente. Autor: Ader Fernando Alves de Pádua

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 16 AS QUATRO FASES DO PCP

Especialidade em Ativos Calibração Conformidade Metrológica

QUALIFICAÇÃO E CERTIFICAÇÃO DE PESSOAL EM CORROSÃO E PROTEÇÃO

Qualidade de Software. Qualidade de Software. Adequado à Especificação. Alguns Atributos de Qualidade. Equipe de Qualidade

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Gerenciamento de integração de projeto

Programadores e Problemas: Instruções. Introdução. Seu Objetivo. Configuração. Instruções do jogo equipe evolução 5/5/2006 v2.0

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

Gerenciamento de Requisitos Gerenciamento de Requisitos

Empreenda (Quase) Sem Dinheiro

Princípios Fundamentais

P R O C E SSO D E D E S E N VOLVIMENTO D E S O F T WAR E

DESENVOLVENDO O SISTEMA

Orientações para elaborar um. Plano de Negócios

7 perguntas para fazer a qualquer fornecedor de automação de força de vendas

Engenharia de Software

ENGENHARIA DE SOFTWARE I

Tópicos da Aula. Que é são requisitos? Tipos de Requisitos. Requisitos Funcionais. Classificação de Requisitos. Requisitos de Software.

o(a) engenheiro(a) Projeto é a essência da engenharia 07/02/ v8 dá vazão

4 Produção Limpa e SGA

IMPLANTAÇÃO DOS PILARES DA MPT NO DESEMPENHO OPERACIONAL EM UM CENTRO DE DISTRIBUIÇÃO DE COSMÉTICOS. XV INIC / XI EPG - UNIVAP 2011

Práticas de. Engenharia de Software. Givanaldo Rocha de Souza

UNIVERSIDADE DA REGIÃO DE JOINVILLE - UNIVILLE DEPARTAMENTO DE ADMINISTRAÇÃO DE EMPRESAS

Introdução. Gerência de Projetos de Software. Sumário. Sistemas de Informação para Processos Produtivos

Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA

3 Gerenciamento de Projetos

CMMI: Capability Maturity Model Integration

Universidade Estadual de Goiás. Trabalho da matéria de Núcleo Interdisciplinar de Estudos Independentes

ITIL. Conteúdo. 1. Introdução. 2. Suporte de Serviços. 3. Entrega de Serviços. 4. CobIT X ITIL. 5. Considerações Finais

Gestão dos Prazos e Custos do Projeto

-Problemas de pesquisa: comprovação de uma hipótese. Ex: Hipótese do CFC

EXTRATO DA POLÍTICA DE GESTÃO DE RISCOS

CAPÍTULO 25 COERÊNCIA REGULATÓRIA

Transcrição:

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

Estrutura do Módulo QUALIDADE DE SOFTWARE (30h) Introdução: desenvolvimento de software como uma disciplina de engenharia Ciclo de vida Processos de software Qualidade do processo e implicações Qualidade do produto Modelos de qualidade de processo e de produto Casos e relatos de experiência Avaliação

Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento de software como uma disciplina de engenharia Ciclo de vida Processos de software Qualidade do processo e implicações Modelos de qualidade de processo (ênfase ISO/IEC 12207 e CMMI) Casos e relatos de experiência Avaliação

Introdução: Engenharia de Software

Introdução Um estudo desenvolvido pelo Standish Group identificou que as empresas de software dos Estados Unidos: gastaram $81 milhões em projetos de software que foram cancelados em 1995; 31% dos projetos de software estudados foram cancelados antes de estarem concluídos; 53% dos projetos de software excedem mais do que 50% a sua estimativa de custo; e, somente 9% dos projetos, em grandes empresas, foram entregues no tempo e orçamento.

Introdução Neste 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 retrabalho é 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.

Engenharia de Software: Definição Visando 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: ferramentas métodos processo foco na qualidade Figura 1 Engenharia de Software composta por camadas.

Engenharia de Software ferramentas métodos processo foco na qualidade Qualidade: permite o desenvolvimento crescente de abordagens mais maduras para a Engenharia de Software Processo: : é a cola que gruda as camadas de tecnologias e permite um desenvolvimento de software racional e no prazo estimado Métodos: englobam um conjunto de tarefas que definem como fazer Ferramentas: são os instrumentos apropriados que dão suporte automatizado ou semi-automatizado ao processo e aos métodos

Engenharia de Software processos métodos ferramentas devem incorporar uma estratégia de desenvolvimento Modelo de Processo Ciclo de Vida Paradigma de Engenharia de Software

Engenharia de Software A 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.

Engenharia de Software Apó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.

Como produzir software com 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.

Dificuldades associadas à Engenharia 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.

Dificuldades associadas à Engenharia de Software 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 à Engenharia de Software 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.

Por que seguir boas práticas de Engenharia de Software? Os dados seguintes sustentam alguns motivos ([Jones94 Jones94], [McConnell96]): Captar um requisito correto é 50 a 200 vezes mais barato que corrigi rigi- lo durante a implementação ou em operação. Portanto, a engenharia e a gestão dos requisitos estão entre as práticas de maior retorno de investimento. Fazer uma análise correta é 10 vezes mais barato que corrigir durante os testes de aceitação. Portanto, a análise e o projeto têm forte impacto nos custos dos projetos. Refazer defeitos de requisitos, projeto e código consome 40% a 50% 5 do custo total dos projetos. Portanto, a garantia da qualidade se paga rapidamente, na medida em que diminui a necessidade de refazer. Cada hora gasta em prevenção de defeitos representa de 3 a 10 horas menos de correção de defeitos.

Organizações e sua Maturidade em Engenharia 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.

(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;

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

(I)Maturidade das Organizações de Software 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.

O que fazer para atingir maior 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.

O que fazer para atingir maior 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.

Maturidade das Organizações de Software 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.

Referências Engenharia de Software,, Roger S. Pressman, Tradução da 5a edição, Mc Graw Hill, 2002. Engenharia de Software: Teoria e Prática, 2a edição, Shari L. Pfleeger, Prentice Hall, 2004. www.prenhall prenhall.com/pfleeger_br Engenharia de Software: fundamentos, métodos e padrões, Wilson de Pádua Filho, Editora LCT, 2000. Qualidade de Software: Teoria e Prática,, Ana Regina da Rocha e outros autores, Prentice Hall, 2001.

Contatos Ana Candida Natali anatali@cos.ufrj.br Ana Regina da Rocha darocha@centroin.com.br