Você está na página 1de 43

Engenharia de Software

Engenharia de Software

Conceitos Bsicos

Andr Luiz Machado de Souza

Engenharia de Software

Contedo
O que qualidade O que qualidade de software Melhoria do processo de software CMM Nveis de maturidade do CMM CMMI Principais componentes do modelo

Andr Luiz Machado de Souza

Engenharia de Software

Cenas de uma empresa de software

(Slide adaptador do ESI, 1998) Andr Luiz Machado de Souza

Engenharia de Software

Cenas de uma empresa de software


Defeitos Prazos estourados Custo maior do que devido Menos funcionalidades
Produto at funciona, mas com defeitos, prazos e custos maiores e menos qualidade

Podemos pensar em qualidade neste contexto?


Andr Luiz Machado de Souza

Engenharia de Software

Cenas de uma empresa de software


At pouco tempo atrs, empresas com este comportamento sobreviviam no mercado Atualmente temos uma demanda por Melhor Qualidade de Negcio, que inclui uma combinao de:
Menos: prazos, custos, defeitos, e insatisfaes Mais: qualidade dos produtos, previsibilidade, produtividade, competitividade, sustentabilidade, e melhores resultados de negcio

Andr Luiz Machado de Souza

Engenharia de Software

Voc sabe o que qualidade?

Andr Luiz Machado de Souza

Engenharia de Software

Isso no qualidade!!

Andr Luiz Machado de Souza

Engenharia de Software

Algumas definies de qualidade


Definio pela ISO 8402 A totalidade de caractersticas de uma entidade que lhe confere aptido para satisfazer necessidades implcitas ou explcitas Norma ISO 9000:2000 Grau no qual um conjunto de caractersticas inerentes satisfaz a requisitos PMBoK O grau at o qual um conjunto de caractersticas inerentes satisfaz as necessidades

Andr Luiz Machado de Souza

Engenharia de Software

Por que devemos fazer qualidade?


Faz-se Qualidade para ganhar dinheiro Faz-se Qualidade para conseguir Certificao

Andr Luiz Machado de Souza

Engenharia de Software

Por que devemos fazer qualidade?


Faz-se Qualidade para ganhar dinheiro Faz-se Qualidade para conseguir Certificao

Faz-se Qualidade para atender melhor o Cliente Consequentemente ganha-se mais dinheiro Consequentemente ganha-se Certificao

A mudana cultural fundamental


Andr Luiz Machado de Souza

Engenharia de Software

Por que devemos fazer qualidade?


Qualidade no mais uma opo para as empresas uma exigncia do mercado!! Os clientes esto exigindo que as empresas fornecedoras de software sejam certificadas Pode ser uma obrigatoriedade em:
Compor um grupo de fornecedores de software Licitaes
Andr Luiz Machado de Souza

Engenharia de Software

E qualidade de software?
A qualidade de um sistema de software e o sucesso de um projeto so largamente definidos pela qualidade do processo utilizado para o desenvolvimento e manuteno

Oras, ento vamos

MELHORAR O PROCESSO DE SOFTWARE

Andr Luiz Machado de Souza

Engenharia de Software

Processo de software?
Conjunto de atividades, ligadas por padres de relacionamento entre ela, pelas quais se as atividades operarem corretamente e de acordo com os padres requeridos, o resultado desejado produzido o que as pessoas fazem, utilizando conhecimento, mtodos, ferramentas, etc., para adquirir, desenvolver, manter e/ou melhorar software e produtos associados; Exemplos: plano de projeto, documentos de design, cdigo, testes, manuais, etc)
Andr Luiz Machado de Souza

Engenharia de Software

Qualidade de software
Qualidade de um produto de software: fortemente dependente da qualidade do processo pelo qual ele construdo e mantido (aquisio, desenvolvimento e manuteno)

Andr Luiz Machado de Souza

Engenharia de Software

Melhoria do processo de software


Melhoria do Processo de Software (MPS) ou Software Process Improvement (SPI):
Ao executada para mudar os processos de uma organizao para que eles sigam as necessidades de negcio da organizao, permitindo que ela alcance suas metas de negcio mais efetivamente

Entender processos existentes e introduzir mudanas ao processo para melhorar qualidade de produto, reduzir custos e/ou diminuir a durao dos projetos
Andr Luiz Machado de Souza

Engenharia de Software

Melhoria do processo de software


Maiores problemas nas organizaes de software so gerenciais e no tcnicos Sem uma disciplina de gerenciamento, o processo de engenharia sacrificado Boas prticas existem, mas so pouco disseminadas A qualidade de uma soluo altamente influenciada pela qualidade do processo utilizado no desenvolvimento e manuteno
Andr Luiz Machado de Souza

Engenharia de Software

Modelos para melhoria do processo de software


ISO 12207 - Norma ISO/IEC que define processo de desenvolvimento de software ISO 15504 - Tambm conhecida como SPICE, a norma ISO/IEC que define processo de desenvolvimento de software. Ela uma evoluo da ISO/IEC 12207 mas possui nveis de capacidade para cada processo assim como o CMMI ISO 9000 series - Designa um grupo de normas tcnicas que estabelecem um modelo de gesto da qualidade para organizaes em geral, qualquer que seja o seu tipo ou dimenso CMMI -Capability Maturity Model Integration MPS.br Melhoria de processo de software Brasil
Andr Luiz Machado de Souza

Engenharia de Software

O que o CMM?
Capability Maturity Model
Modelo de gesto da qualidade aplicvel aos processo de desenvolvimento de software Descreve elementos chave para um processo eficaz e o caminho evolutivo para um processo maduro e disciplinado Busca da melhoria contnua, aprimorando a habilidade da organizao para atender aos objetivos de custo, prazo, funcionalidade e qualidade do produto

Andr Luiz Machado de Souza

Engenharia de Software

Conceitos sobre maturidade de processos


Processo de software conjunto de atividades, mtodos, prticas e transformaes usados para desenvolver e manter software Capacidade do processo de software descreve o alcance dos resultados esperados que podem ser obtidos pela utilizao do processo de software Maturidade do processo de software a extenso em que um processo especfico explicitamente definido, gerenciado, medido, controlado e efetivo Para que uma empresa obtenha ganhos de maturidade no processo de software, ela deveria institucionalizar seu processo de software atravs de polticas, padres e estruturas organizacionais

Andr Luiz Machado de Souza

Engenharia de Software

Os nveis de maturidade

Andr Luiz Machado de Souza

Engenharia de Software

Capability Maturity Model


Qualidade Produtividade Visibilidade

Riscos Desperdcio

Andr Luiz Machado de Souza

Engenharia de Software

Nvel 1 - Inicial
O processo informal e imprevisvel, tanto positiva quanto negativamente O desempenho basicamente em funo da competncia e herosmo das pessoas que fazem o trabalho Alta qualidade e desempenho excepcionais so possveis, mas dependentes das pessoas Os maiores problemas so gerenciais e no tcnicos O processo uma caixa-preta

Requisitos

Produto

Requisitos fluem para dentro do processo Um produto de software produzido atravs de algum processo Produto flui para fora do processo e espera-se que funcione!!
Andr Luiz Machado de Souza

Engenharia de Software

Nvel 2 - Repetvel
Sistemas de gerenciamento de projetos em vigor O desempenho repetido A necessidade predominante estabelecer um gerenciamento eficaz de projeto de software Processos de gerenciamento de software so documentados e acompanhados O foco neste nvel mais voltado nos projetos do que na organizao Prticas bem sucedidas desenvolvidas em projetos anteriores podem ser repetidas Polticas organizacionais orientam os projetos estabelecendo processos de gerenciamento Resumindo: o foco no gerenciamento de projetos
Maior dificuldade: Mudana cultural e no a implantao dos novos processos
Andr Luiz Machado de Souza

Engenharia de Software

Nvel 2 - Repetvel
Um fator relevante para a organizao nesse nvel a dependncia das experincias anteriores Neste nvel ainda no h preocupao com o processo de engenharia de software O processo um conjunto de caixas pretas com pontos de verificao definidos

Requisitos

Produto

Andr Luiz Machado de Souza

Engenharia de Software

Nvel 3 - Definido
Os processos de software, tanto para atividades administrativas quanto para de engenharia esto documentados, padronizados e integrados em um processo de software padro para a organizao Todos os projetos usam uma verso aprovada do processo de software padro da organizao para desenvolvimento e manuteno de software Funes e responsabilidades no processo so bem entendidas. A produo do produto de software visvel atravs do processo de software Caracterizado principalmente pela existncia de um processo de engenharia de software bem definido, documentado e padro para a empresa As sadas de uma atividade fluem naturalmente para as entradas da prxima atividade
Andr Luiz Machado de Souza

Engenharia de Software

Nvel 3 - Definido
Cada projeto de software utiliza o processo padro da organizao como base para implementar seu prprio processo Existe um grupo para processos de software responsvel por facilitar atividades de definio e melhoria de processos Existe um programa de treinamento que assegura que todos tenham o conhecimento e a capacidade requerida para desenvolver suas tarefas, utilizando as ferramentas e os mtodos disponveis Processos que dem poderes as pessoas para realizarem o trabalho Desenvolvimento de software de acordo com um processo bem definido

Requisitos

Produto

Andr Luiz Machado de Souza

Engenharia de Software

Nvel 4 - Gerenciado
So coletadas medidas detalhadas da qualidade do processo e do produto Tanto o processo de software quanto os produtos so quantitativamente compreendidos e controlados A gerncia tem bases objetivas para tomada de deciso A gerncia capaz de prever o desempenho dentro de limites quantificados Caracterizado pela existncia de processos de software passveis de medida A produtividade e a qualidade so medidas em todas as etapas do processo de software e para todos os projetos da organizao O controle sobre produtos e processos de todos os projetos so adquiridos atravs da diminuio da variao do seu desempenho para dentro de limites quantitativos aceitveis.
Andr Luiz Machado de Souza

Engenharia de Software

Nvel 4 - Gerenciado
A organizao comea a aplicar mtricas de controle de qualidade para aumentar a qualidade e a produtividade do software entregue aos clientes medida que a organizao adquire mais conhecimento sobre o produto, tem a oportunidade de remover vrias fontes de comprometimento da qualidade final Isto proporciona a oportunidade de colocar o produto sob um controle estatstico de qualidade Produto e processo so gerenciados quantitativamente

Requisitos

Produto

Andr Luiz Machado de Souza

Engenharia de Software

Nvel 5 - Otimizado
Melhorias contnuas so realizadas no processo, utilizando-se as medidas quantitativas de qualidade do processo e produto, e tambm aplicando-se idias e tecnologias inovadoras Mudana disciplinada um meio de vida Caracterizado pela existncia de processos de software com contnua melhoria Os processos de software so avaliados para prevenir tipos de defeitos conhecidos devido recorrncia, e as lies aprendidas so disseminadas para outros projetos Tecnologias que proporcionem mais retorno para processos especficos, utilizados pela organizao, so selecionadas para serem introduzidas, de maneira gerencivel na organizao Apesar de o processo ser maduro, ele alvo de contnuas melhorias
Andr Luiz Machado de Souza

Engenharia de Software

Nvel 5 - Otimizado
Os grupos de projetistas analisam o rendimento do projeto para determinar as causas dos defeitos Nesse nvel foi atingido um ambiente de excelncia em engenharia de software

Requisitos

Produto

Andr Luiz Machado de Souza

Engenharia de Software

Capability Maturity Model


O sucesso do CMM fez surgir outros modelos:
System Engineering CMM (SE-CMM)
Avalia a maturidade nos processos de engenharia de sistemas. Sistema inclui hardware e software e quaisquer outros elementos que participam do produto completo

Software Acquisition CMM (SA-CMM)


Usado para avaliar a maturidade nos processos de seleo, compra e instalao de software desenvolvidos por terceiros

Integrated Product Development CMM (IPD-CMM)


Mais abrangente que o SE-CMM, inclui tambm outros processos necessrios produo e suporte ao produto, tais como suporte ao usurio, processos de fabricao, etc.

ISO/IEC 12207
Define processos de desenvolvimento de software

ISO/IEC 15288
Define processos de desenvolvimento de sistemas
Andr Luiz Machado de Souza

Engenharia de Software

Problemas
O surgimento de todos estes modelos gerou alguns problemas
Nem todos usavam a mesma terminologia, de modo que um mesmo conceito podia receber nomes diferentes em cada modelo, ou que o mesmo termo quisesse dizer coisas diferentes nos vrios modelos A estrutura carecia de um formato padro. Os modelos tinham diferentes nmeros de nveis ou formas diferentes de avaliar o progresso Altos custos de treinamento, avaliao e harmonizao para organizaes que tentassem usar mais de um modelo

Por outro lado, a experincia no uso do SW-CMM durante uma dcada serviu para identificar pontos em que o modelo poderia ser melhorado

Andr Luiz Machado de Souza

Engenharia de Software

SE-CMM

IPD-CMM

CMMI SW-CMM SA-CMM ISO/IEC 12207

ISO/IEC 15288

Andr Luiz Machado de Souza

Engenharia de Software

O que CMMI?
Capability Maturity Model Integration Modelo de Integrao da Maturidade da Capacidade (de desenvolver projetos de sistemas) O propsito do CMMI estabelecer um guia para melhorar o processo da organizao e sua capacidade para gerenciar o desenvolvimento, aquisio e manuteno de produtos ou servios O uso de mltiplos modelos em uma organizao demonstrou ser problemtico. O CMMI prope-se a solucionar este problema O CMMI , na verdade, um conjunto de modelos que podem ser utilizados simultaneamente necessrio escolher sua representao (contnuo ou estagirio) e o corpo de conhecimento

Andr Luiz Machado de Souza

Engenharia de Software

O que CMMI?
CMMI estabelece um guia para ser utilizado no desenvolvimento de processo Os modelos CMMI no so processos nem descries de processos O processo real de uma organizao depende do domnio da aplicao, estrutura e tamanho

Andr Luiz Machado de Souza

Engenharia de Software

Objetivos do CMMI
Suprir as limitaes do modelo CMM, com a criao de um framework comum, eliminando inconsistncias e permitindo a incluso de novos modelos ao longo do tempo, sempre que surgirem necessidades especficas Preservar os investimentos j realizados pelos organismos governamentais, pelas empresas privadas, pelos fornecedores e pela industria no processo de transio Unificar os vrios modelos existentes Implementar melhorias no SW-CMM a partir das experincias adquiridas com os projetos j implementados Reduzir custos do treinamento, das implementaes de melhorias, da formao de avaliadores oficiais e avaliaes oficiais

Andr Luiz Machado de Souza

Engenharia de Software

O que o CMMI no cobre


O CMMI no aborda todos os processos de projeto e todas as questes ligadas qualidade Questes que so abordadas indiretamente ou por consequncia, incluem:
Ferramentas especficas, mtodos e tecnologia Engenharia concorrente e trabalho em equipe Marketing Recursos humanos Comportamento organizacional

Andr Luiz Machado de Souza

Engenharia de Software

Principais componentes do modelo


rea de processo
Conjunto de prticas relacionadas a uma rea, que satisfazem um conjunto de metas importantes para realizar melhorias significativas naquela rea

Metas especficas
Se aplicam a cada rea de processo e descrevem os resultados que devem ser alcanados para satisfazer a rea de processo

Prticas especficas
Atividades consideradas importantes para alcanar as metas especficas de uma rea de processo

Metas genricas
Recebem essa denominao porque a mesma afirmao de meta se aplica a todas as reas de processo

Prticas genricas
Atividades para garantir que os processo seja efetivos, repetvel e duradouros

Andr Luiz Machado de Souza

Engenharia de Software

Andr Luiz Machado de Souza

Engenharia de Software

reas de Processo
O modelo CMMI composto por 22 reas de processo
Anlise e Resoluo de Causas (CAR) Gesto de Configurao (CM) Anlise e Tomada de Decises (DAR) Gesto Integrada de Projeto +IPPD (IPM +IPPD) Medio e Anlise (MA) Implantao de Inovaes na Organizao (OID) Definio dos Processos da Organizao +IPPD (OPD +IPPD)6 Foco nos Processos da Organizao (OPF) Desempenho dos Processos da Organizao (OPP) Treinamento na Organizao (OT) Integrao de Produto (PI) Monitoramento e Controle de Projeto (PMC) Planejamento de Projeto (PP) Garantia da Qualidade de Processo e Produto (PPQA) Gesto Quantitativa de Projeto (QPM) Desenvolvimento de Requisitos (RD) Gesto de Requisitos (REQM) Gesto de Riscos (RSKM) Gesto de Contrato com Fornecedores (SAM) Soluo Tcnica (TS) Validao (VAL) Verificao (VER)
Andr Luiz Machado de Souza

Engenharia de Software

Exerccios
Em grupo, pesquise e responda as questes abaixo:
Quais as diferenas entre as abordagens por estgio e contnua no CMMI? O que significa nveis de maturidade e nveis de capacidade? Quais as diferenas?

Entrega na prxima aula! No esqueam!

Andr Luiz Machado de Souza

Engenharia de Software

Dvidas?

andre.msouza@semprenassau.com.br

Andr Luiz Machado de Souza

Engenharia de Software

Bibliografia utilizada
CMMI Product Team. CMMI for Development (CMMI-DEV), Version 1.2. Technical Report CMU/SEI-2006-TR-008, Carnegie Mellon University/ Software Engineering Institute, Pittsburgh, August 2006. SOFTEX , MPS.BR Melhoria de Processo do Software Brasileiro, Guia Geral:2009. Couto, Ana Brasil. CMMI Integrao dos Modelos de Capacitao e Maturidade de Sistemas. Rio de Janeiro: Editora Cincia Moderna Ltda, 2007.

Andr Luiz Machado de Souza