1. 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
2. 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)
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 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.
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 - 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)
9. 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.
11. 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.
12. 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
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 – 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.