terça-feira, 19 de abril de 2011

CMM e CMMI

Conceito

          O Modelo de Qualidade de Software CMM(Capability Maturitu Model) é um modelo de avaliação e melhoria da maturidade de Processo de Software. O CMM, ou "Modelo de Maturidade da Capacidade" é uma iniciativa do SEI (Software Engineering Institute) para avaliar e melhorar a capacitação de empresas que desenvolvem e mantém software através de seus funcionários ou de contratados terceirizados.

O CMMI (Capability Maturity Model Integration) foi criado, a partir do modelo CMM, para suprir as limitações do CMM, com a criação de:
  • um método comum;
  • unificar os vários modelos do mesmo existentes;
  • permitir a representação contínua com áreas de processos independentes dos níveis de maturidade.

Ele define 5 níveis de maturidade:
1. Inicial: processos caóticos.
2. Repetível: processo disciplinado / gerência de projeto.
3. Definido: processo padrão para a empresa.
4. Gerenciado: controle quantitativo do processo (métricas).
5. Otimizado: melhoria cont ínua do processo.


Comparação

              Organizações Maduras:

• Papéis e responsabilidades bem definidos. 
• Existe base histórica. 
• É possível julgar a qualidade do produto.  
• A qualidade dos produtos e processos é monitorada.
• O processo pode ser atualizado.
• Existe comunicação entre o gerente e seu grupo.

             Organizações Imaturas:
 

• Processo Improvisado. 
• Não existe base histórica.
• Não há maneira objetiva de julgar a qualidade do produto.
• Qualidade e funcionalidade do produto sacrificadas.
• Não há rigor no processo a ser seguido.
• Resolução de crises imediatas.
 

Níveis



1) Inicial
  O processo de desenvolvimento é desorganizado e até caótico. Poucos processos são definidos e o sucesso depende de esforços individuais e heróicos

2) Repetitível à
  Os processos básicos de gerenciamento de projeto estão estabelecidos e permitem acompanhar custo, cronograma e funcionalidade. É possível repetir o sucesso de um processo utilizado anteriormente em outros projetos similares.
 
3) Definido
  Tanto as atividades de gerenciamento quanto de engenharia do processo de desenvolvimento de software estão documentadas, padronizadas e integradas em um padrão de desenvolvimento da organização. Todos os projetos utilizam uma versão aprovada e adaptada do processo padrão de desenvolvimento de software da organização.

4)Gerenciado
  São coletadas medidas detalhadas da qualidade do produto e processo de desenvolvimento de software. Tanto o produto quanto o processo de desenvolvimento de software são entendidos e controlados quantitativamente.

5) Otimizado
  O melhoramento contínuo do processo é conseguido através de um "feedback" quantitativo dos processos e pelo uso pioneiro de idéias e tecnologias inovadoras.


Avaliações CMMI por estado



Lista de Avaliações CMMI Nível 2
                        
  •  Cetil Sistemas de Informática SC 2009 
  • Logocenter SC 2005 
  • Suntech SC 2009 
  • Teclógica Serviços em Informática SC 2009
  • Citibank SP 2003
  • Claro SP 2010 
  • Dell RS 2003 
  • General Motors SP 2005 
  • HP SP 2005
  • Itaú SP 2005
  • Itautec SP 2008
  •  
Lista de Avaliações CMMI Nível 3

  • Ericsson SP 2001 
  • IBM Fábrica de Software SP 2003 
  • Motorola SP 2001
  •  Senior Sistemas SC 2008
  •  TIVIT SP 2007

Lista de Avaliações CMMI Nível 4
  • Ci&T SP 2006
  • EDS RJ 2003

Lista de Avaliações CMMI Nível 5
  • Accenture SP 2005
  • IBM RJ 2005   
  • Politec DF2006    
  • Spread Systems – MSA-Infor Unit MG2010    






Referências 

http://www.fp2.com.br/fernando/qualidade/Aula.05-CMM_6s.pdf
http://www.blogcmmi.com.br/avaliacao/lista-de-empresas-cmmi-no-brasil

http://www.dcc.ufrj.br/~schneide/es/2000/1/trab/al11_19.ppt


Membros do grupo:

 Luiz Felippe Bozzano Lazzarin
 Caio Campos Marcos
 Roberto Fermino Medeiros

terça-feira, 1 de março de 2011

Ciclo de Vida do Software


1.    Exemplos positivos e negativos que indique o impacto do software sobre nossa sociedade.
 Softwares são ferramentas computacionais que no mundo profissional nos ajudou muito em relação à organização, otimizações em relação a deixarem tarefas manuais muito mais rapidas e práticas, fazendo do trabalho e a vida das pessoas muito mais facil. Porém, acabamos dependendo dos softwares para que tudo funcione, para que aquela sinaleira do trânsito troque suas cores no tempo certo, para que o saque do seu dinheiro num caixa eletrônico acabe sem problemas, para que o relógio digital do seu pulso marque as horas certas, e outras infinitas funções. Então conclusão de tudo isso, é que se algo falhar num desses softwares, sairemos num pequeno ou gigante prejuízo.
.

2.    Exemplos que serão melhores desenvolvidos nos ciclos de vida Espiral, Interação, Queda d’água e Prototipação.

Interação: algum jogo de MMORPG ou um software que mostre o mapa de uma cidade;
Espiral: software que esteja inteiramente pronto quando instalado, como um programa que gerencie os usuários de uma LAN House;
Protótipo: software que gerencie contas;
Queda d´água: programa que gerencie um e-mail.


3.    Desenvolva um protótipo em papel de um sistema inventado por você.

Software para aluguel de carros:
CLIENTE
  • Nome
  • RG/CPF
  • ENDEREÇO 
  • TELEFONE 
LOCAÇÃO
  • Carro
  • Placa
  • Tempo de aluguel
  • Modo de pagamento




4.    Cite alguma desvantagem do modelo Interativo.
Versões Betas enquanto o software não esteja completo.

5.    Você é um engenheiro envolvido no desenvolvimento de um sistema financeiro. Durante a instalação, você descobre que esse sistema  tornará redundante um grande numero de funcionários. O pessoal no ambiente lhe nega o acesso a informações essenciais para completar a instalação do sistema. Em que medida você devera, como engenheiro de sistemas, se envolver nessa situação? É de sua responsabilidade profissional completar a instalação para a qual foi contratado? Você deve simplesmente abandonar o trabalho ate que a organização do cliente tenha resolvido o problema?

 
Terei de esperar o Maximo para que o problema seja resolvido e caso necessário,  deixar em mãos de algum sócio meu a responsabilidade de instalar o software.

6.    Imagine um sistema que você desenvolveria. Qual o ciclo você escolheria? Qual dos autores abaixo você seguiria para elaborar o sistema?

Edward Yourdon
Reconhecendo o sistema
Levantamento
Analise
Projeto
Implementação
Teste
Manutenção


 
7.     (Enade 2008)Considere que você trabalhe em um empresa de desenvolvimento de software e que a empresa tenha decidido desenvolver um novo editor de texto para colocar o mercado. Esse editor deve ser um software que forneça recursos adicionais de apoio a autoria, embasado no estilo de escrita do usuário, o que torna um software de funcionalidade mais complexa. Considere que a empresa deseje disponibilizar o produto no mercado em versões que agreguem esse suporte de forma gradativa, fazendo análise de risco para avaliar a viabilidade de desenvolvimento de uma nova versão. Tendo de escolher um modelo de processo para desenvolver esse editor, e conhecendo as características dos modelos existentes, entre os modelos abaixo, qual é modelo apropriado para esse caso?

E.    Cleanroom