INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RN
   CAMPUS DE PARNAMIRIM




Engenharia de Software

       Professor: Álvaro Hermano
   Componentes: Cristiane Leandro Viana
                Monic Laura Alves de Araújo
                William Rodrigo Augusto Nunes
O que são processos de software?


        “Um processo é o conjunto total de
       atividades de engenharia necessárias
     para transformar requisitos do usuário em
                     software”

         (“Managing the Process”, Humphrey, 1989)
Processos de software
  Há 4 atividades fundamentais no processo de
  software:

1. Especificação do Software – definição de
   requisitos e análise de requisitos
2. Desenvolvimento do Software – projeto e
   implementação
3. Validação do software – integração e teste
4. Manutenção - mudanças no software
O que é a qualidade de software?


     “Conjunto de características que devem ser
        alcançadas em um determinado grau
            para que o produto atenda às
           necessidades de seus usuários.”



                              (Ana R. C.Rocha 2001)
O que é a qualidade de software?
• Satisfação das necessidades avaliadas;
• Feita durante todo processo de software;
• Reconhecida pelo cliente.

A qualidade do software =




                               cliente satisfeito
Ainda sobre qualidade software.
• São referências para qualidade de software:
  ▫ ISO (The International Standardization
    Organization):
      Fundada em 1947, coordena o trabalho de 127
       países membros para promover a padronização
       de normas técnicas em âmbito mundial.

  ▫ IEC (The International Electrotechnical
    Commission):
      Fundada em 1906, conta com mais de 50 países e
       publica normas internacionais relacionadas com
       eletricidade, eletrônica e áreas relacionadas.
Quais os objetivos?
• Aprimorar o processo de desenvolvimento e, em
  consequência, melhorar a qualidade do produto
  resultante.
• Avaliar a qualidade do produto visando emitir
  documento oficial sobre a qualidade de um
  software e sua conformidade em relação a uma
  norma ou padrão.
• Adquirir um software, com o intuito de escolher
  o produto mais adequado dentre um conjunto de
  produtos selecionados.
CMM - CAPABILITY MATURITY MODEL
(CMM - Modelo de Maturidade de Competência)

     É uma ferramenta de avaliação que permite o
 cliente selecionar softwares, de forma adequada,
 de seus fornecedores levando em consideração a
 qualidade do produto, o custo, os prazos, a
 manutenção.


*A versão mais atual é o CMMI (Capability Maturity Model
  Integration)
CMM
• Desenvolvido pelo SEI (Software Engineering
  Institute, Carnegie Mellon University);
• Ferramenta de avaliação de software;
• Ajuda o cliente a selecionar o(s) software(s)
  considerando:
  ▫   Qualidade do produto;
  ▫   Custo;
  ▫   Prazos;
  ▫   Manutenção.
Níveis do CMM
Objetivo
• Melhorar o gerenciamento e desenvolvimento
  dos produtos de softwares, mas não garantindo a
  qualidade do produto final;
• Manter a qualidade durante o princípio do
  processo.
Características do CMM
Aspectos abordados                     Características do CMM
Objetivo                               Determinar a capacitação da organização e apoiar a sua evolução de acordo
                                       com os níveis estabelecidos

Abordagem                              Avaliação dos processos e enquadramento da organização em um dos níveis
                                       de maturidade

Organizações alvo                      Organizações que necessitam de comprovação formal de sua capacidade


Definição de processos                 Estabelece 18 áreas de processos organizados em 5 níveis crescentes de
                                       maturidade

Flexibilidade nos aspectos definidos   Níveis e áreas chaves são a base do modelo e não podem ser alterados
pelo modelo

Instrumento de avaliação               Questionário
Inspiração e influência                Princípios de Shewart, Deming, Juran, Crosby
Aspectos positivos                     Estabelecimento de diretrizes para a melhoria contínua. Difusão extensa nos
                                       EUA

Limitações                             Pouca consideração à diversidade das organizações
                                       Dificuldade de aplicação em pequenas organizações
                                       Falta abordagem de produto
Processos Ágeis
      Um grupo de dezessete metodologistas formou a Agile
  Software Development Alliance (www.agilealliance.org) e
  definiram um manifesto como uma alternativa aos
  métodos tradicionais de desenvolvimento de software.
      Os conceitos chave do manifesto ágil são:
1. Indivíduos e interações ao invés de processos e
  ferramentas.
2. Software operante ao invés de documentação abrangente.
3. Colaboração do cliente ao invés de negociação de
  contratos.
4. Respostas rápidas a mudanças ao invés de seguir um
  plano.
RUP – Rational Unified Process
• Foi criado pela Rational Software Corporation e
  adquirido em fevereiro de 2003 pela IBM.

• É um método de desenvolvimento de software
  que contempla técnicas a serem seguidas pelos
  membros da equipe de desenvolvimento de
  software com o objetivo de aumentar a sua
  produtividade.
Fases e Iterações
REFERÊNCIAS
• ALMEIDA, K.: As características do cmm e o
  desenvolvimento de software com qualidade, Goiás, Revista
  eletrônica de administração, ed. 8, jun. 2005. Disponível
  em:<http://www.revista.inf.br/adm08/pages/artigos/artigo03.pdf
  >. Acesso em: 15 jan. 2013.
• BUENO, C.F.S.; CAMPELO, G.B.: Qualidade de software,
  Pernammbuco, , [20--?]. Disponível
  em:<http://www.riopomba.ifsudestemg.edu.br/dcc/dcc/materiais/
  1022789570_Qualidade%20de%20Software.pdf>. Acesso em: 13
  jan. 2013.
• CAETANO, V.A.: C.M.M. capability maturity model modelo de
  maturidade da capacidade, Santa Catarina, jun. 2000. Disponível
  em:<
  http://www.rblinux.com.br/Modelo%20de%20Maturidade%20da%
  20Capacidade.pdf>. Acesso em: 15 jan. 2013.
REFERÊNCIAS
• FURLA, J.D.: Melhorando a qualidade do software
  através do cmm, São Paulo, [20--?]. Disponível
  em:<http://www.weinrich.eti.br/artigos/qualicmm.htm
  >. Acesso em: 15 jan. 2013.
• JUNIA; ROSÂNGELA: Introdução aos sistemas de
  informação, [S.l.], [20--?]. Disponível
  em:<https://docs.google.com/viewer?a=v&q=cache:xz5
  UA8ufKmoJ:www2.dc.ufscar.br/~junia/aula%25202.pd
  f+processos+de+software+%E2%80%93+engenharia+d
  e+sistemas+e+da+informa%C3%A7%C3%A3o&hl=pt-
  BR&gl=br&pid=bl&srcid=ADGEESgdxzex0kOzO9Kwpt
  P-c0duJ6GuyZz7lJ8OtJ37D6Q7Q2I9BwNqr2sMFV-
  lzj5uIkM2QgdgCADrlTyQBeC_Dr4ectwWBXb6XpcAbfjI
  DBlytzaWkBQPr-
  mRscxcOIR8ujtr1Ele&sig=AHIEtbSsTuk8QNNB3zigPho
  a6EwM82DbCQ>. Acesso em: 15 jan. 2013.
REFERÊNCIAS
• MARTINEZ, M.: RUP, [S.l.], mar. 2010. Disponível
  em:<http://www.infoescola.com/engenharia-de-software/rup/>.
  Acesso em: 15 jan. 2013.
• PATROCINIO, A. et. al. São Bernado do Campo, 2010. Disponível
  em:<http://www.ecnsoft.net/index.php/artigos/2o-semestre-de-
  2010/introducao-ao-rup-rational-unified-process/all/1>. Acesso
  em: 15 jan. 2013.
• VOLPE, R.L.D.; JOMORI, S.M; ZABEU, A.C.P.: Cmm – cmmi:
  principais conceitos, diferenças e correlações, Bahia, out. 2003.
  Disponível
  em:<http://www.asrconsultoria.com.br/downloads/pdf/SPIN_BH
  _CMMI.pdf>. Acesso em: 13 jan. 2013.
• WILLIAM, H.: Processos ágeis para desenvolvimento de
  software parte 1, [S.l.], [200-?]. Disponível
  em:<http://www.devmedia.com.br/processos-ageis-para-
  desenvolvimento-de-software-parte-01/9207>. Acesso em: 15 jan.
  2013.

Apres. eng. de software

  • 1.
    INSTITUTO FEDERAL DEEDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RN CAMPUS DE PARNAMIRIM Engenharia de Software Professor: Álvaro Hermano Componentes: Cristiane Leandro Viana Monic Laura Alves de Araújo William Rodrigo Augusto Nunes
  • 2.
    O que sãoprocessos de software? “Um processo é o conjunto total de atividades de engenharia necessárias para transformar requisitos do usuário em software” (“Managing the Process”, Humphrey, 1989)
  • 3.
    Processos de software Há 4 atividades fundamentais no processo de software: 1. Especificação do Software – definição de requisitos e análise de requisitos 2. Desenvolvimento do Software – projeto e implementação 3. Validação do software – integração e teste 4. Manutenção - mudanças no software
  • 4.
    O que éa qualidade de software? “Conjunto de características que devem ser alcançadas em um determinado grau para que o produto atenda às necessidades de seus usuários.” (Ana R. C.Rocha 2001)
  • 5.
    O que éa qualidade de software? • Satisfação das necessidades avaliadas; • Feita durante todo processo de software; • Reconhecida pelo cliente. A qualidade do software = cliente satisfeito
  • 6.
    Ainda sobre qualidadesoftware. • São referências para qualidade de software: ▫ ISO (The International Standardization Organization):  Fundada em 1947, coordena o trabalho de 127 países membros para promover a padronização de normas técnicas em âmbito mundial. ▫ IEC (The International Electrotechnical Commission):  Fundada em 1906, conta com mais de 50 países e publica normas internacionais relacionadas com eletricidade, eletrônica e áreas relacionadas.
  • 7.
    Quais os objetivos? •Aprimorar o processo de desenvolvimento e, em consequência, melhorar a qualidade do produto resultante. • Avaliar a qualidade do produto visando emitir documento oficial sobre a qualidade de um software e sua conformidade em relação a uma norma ou padrão. • Adquirir um software, com o intuito de escolher o produto mais adequado dentre um conjunto de produtos selecionados.
  • 8.
    CMM - CAPABILITYMATURITY MODEL (CMM - Modelo de Maturidade de Competência) É uma ferramenta de avaliação que permite o cliente selecionar softwares, de forma adequada, de seus fornecedores levando em consideração a qualidade do produto, o custo, os prazos, a manutenção. *A versão mais atual é o CMMI (Capability Maturity Model Integration)
  • 9.
    CMM • Desenvolvido peloSEI (Software Engineering Institute, Carnegie Mellon University); • Ferramenta de avaliação de software; • Ajuda o cliente a selecionar o(s) software(s) considerando: ▫ Qualidade do produto; ▫ Custo; ▫ Prazos; ▫ Manutenção.
  • 10.
  • 11.
    Objetivo • Melhorar ogerenciamento e desenvolvimento dos produtos de softwares, mas não garantindo a qualidade do produto final; • Manter a qualidade durante o princípio do processo.
  • 12.
    Características do CMM Aspectosabordados Características do CMM Objetivo Determinar a capacitação da organização e apoiar a sua evolução de acordo com os níveis estabelecidos Abordagem Avaliação dos processos e enquadramento da organização em um dos níveis de maturidade Organizações alvo Organizações que necessitam de comprovação formal de sua capacidade Definição de processos Estabelece 18 áreas de processos organizados em 5 níveis crescentes de maturidade Flexibilidade nos aspectos definidos Níveis e áreas chaves são a base do modelo e não podem ser alterados pelo modelo Instrumento de avaliação Questionário Inspiração e influência Princípios de Shewart, Deming, Juran, Crosby Aspectos positivos Estabelecimento de diretrizes para a melhoria contínua. Difusão extensa nos EUA Limitações Pouca consideração à diversidade das organizações Dificuldade de aplicação em pequenas organizações Falta abordagem de produto
  • 13.
    Processos Ágeis Um grupo de dezessete metodologistas formou a Agile Software Development Alliance (www.agilealliance.org) e definiram um manifesto como uma alternativa aos métodos tradicionais de desenvolvimento de software. Os conceitos chave do manifesto ágil são: 1. Indivíduos e interações ao invés de processos e ferramentas. 2. Software operante ao invés de documentação abrangente. 3. Colaboração do cliente ao invés de negociação de contratos. 4. Respostas rápidas a mudanças ao invés de seguir um plano.
  • 14.
    RUP – RationalUnified Process • Foi criado pela Rational Software Corporation e adquirido em fevereiro de 2003 pela IBM. • É um método de desenvolvimento de software que contempla técnicas a serem seguidas pelos membros da equipe de desenvolvimento de software com o objetivo de aumentar a sua produtividade.
  • 15.
  • 16.
    REFERÊNCIAS • ALMEIDA, K.:As características do cmm e o desenvolvimento de software com qualidade, Goiás, Revista eletrônica de administração, ed. 8, jun. 2005. Disponível em:<http://www.revista.inf.br/adm08/pages/artigos/artigo03.pdf >. Acesso em: 15 jan. 2013. • BUENO, C.F.S.; CAMPELO, G.B.: Qualidade de software, Pernammbuco, , [20--?]. Disponível em:<http://www.riopomba.ifsudestemg.edu.br/dcc/dcc/materiais/ 1022789570_Qualidade%20de%20Software.pdf>. Acesso em: 13 jan. 2013. • CAETANO, V.A.: C.M.M. capability maturity model modelo de maturidade da capacidade, Santa Catarina, jun. 2000. Disponível em:< http://www.rblinux.com.br/Modelo%20de%20Maturidade%20da% 20Capacidade.pdf>. Acesso em: 15 jan. 2013.
  • 17.
    REFERÊNCIAS • FURLA, J.D.:Melhorando a qualidade do software através do cmm, São Paulo, [20--?]. Disponível em:<http://www.weinrich.eti.br/artigos/qualicmm.htm >. Acesso em: 15 jan. 2013. • JUNIA; ROSÂNGELA: Introdução aos sistemas de informação, [S.l.], [20--?]. Disponível em:<https://docs.google.com/viewer?a=v&q=cache:xz5 UA8ufKmoJ:www2.dc.ufscar.br/~junia/aula%25202.pd f+processos+de+software+%E2%80%93+engenharia+d e+sistemas+e+da+informa%C3%A7%C3%A3o&hl=pt- BR&gl=br&pid=bl&srcid=ADGEESgdxzex0kOzO9Kwpt P-c0duJ6GuyZz7lJ8OtJ37D6Q7Q2I9BwNqr2sMFV- lzj5uIkM2QgdgCADrlTyQBeC_Dr4ectwWBXb6XpcAbfjI DBlytzaWkBQPr- mRscxcOIR8ujtr1Ele&sig=AHIEtbSsTuk8QNNB3zigPho a6EwM82DbCQ>. Acesso em: 15 jan. 2013.
  • 18.
    REFERÊNCIAS • MARTINEZ, M.:RUP, [S.l.], mar. 2010. Disponível em:<http://www.infoescola.com/engenharia-de-software/rup/>. Acesso em: 15 jan. 2013. • PATROCINIO, A. et. al. São Bernado do Campo, 2010. Disponível em:<http://www.ecnsoft.net/index.php/artigos/2o-semestre-de- 2010/introducao-ao-rup-rational-unified-process/all/1>. Acesso em: 15 jan. 2013. • VOLPE, R.L.D.; JOMORI, S.M; ZABEU, A.C.P.: Cmm – cmmi: principais conceitos, diferenças e correlações, Bahia, out. 2003. Disponível em:<http://www.asrconsultoria.com.br/downloads/pdf/SPIN_BH _CMMI.pdf>. Acesso em: 13 jan. 2013. • WILLIAM, H.: Processos ágeis para desenvolvimento de software parte 1, [S.l.], [200-?]. Disponível em:<http://www.devmedia.com.br/processos-ageis-para- desenvolvimento-de-software-parte-01/9207>. Acesso em: 15 jan. 2013.