Você está na página 1de 11

Eng.

Software - Módulo 2
Notas para Revisão das Disciplinas para Prova Presencial

Disciplina 1 - Concepção e Elaboração de Software II

Unidade 01 - Introdução a Qualidade de Software

Qualidade é:
- estar em conformidade com os requisitos dos clientes;
- antecipar e satisfazer os desejos dos clientes;
- escrever tudo o que se deve fazer e fazer tudo o que foi escrito.

Para alguns autores sobre o assunto, o conceito de qualidade está sempre no equilíbrio entre os
seguintes fatores:
a) Qualidade intrínseca do produto ou serviço, que pode ser certificada pela conformidade a normas
ou avaliada pela presença ou ausência de critérios específicos;
b) Custo, que pode ser entendido como o preço justo, que o cliente esteja disposto a pagar;
c) Atendimento, significando a quantidade certa, no local certo e na hora certa.

De acordo com a norma brasileira que trata sobre o assunto NBR ISO 8402
“ ... a totalidade das características de uma entidade que lhe confere a capacidade de satisfazer às
necessidades explícitas e implícitas.”

Pensando em software
- explícito é tudo aquilo que o usuário consegue quantificar em relação ao software;
- implícito é tudo que somente os desenvolvedores conseguem quantificar.

Software é um produto ?
Software é um produto intelectual, resultado de um trabalho.

Algumas considerações sobre o produto software:


- é um produto complexo, até mais do que o hardware que o executa;
- não tem produção em série e o seu custo está no projeto e no desenvolvimento;
- não se desgasta e nem se modifica com o uso;
- a engenharia de software ainda não está madura o suficiente para todos que produzem software.

O que é a Engenharia de Software ?


É um termo usado para referir-se a modelos de ciclo de vida, metodologias de rotina, técnicas de
estimativa de custo, estruturas de documentação, ferramentas de gerenciamento de configuração,
técnicas de garantia de qualidade e outras técnicas de padronização da atividade de produção de
software.

O que é um produto de Software ?


Um conjunto completo de programas de computador, procedimentos e documentação correlata,
assim como dados designados para entrega a um usuário.

Como um software é construído ?


Seguindo os seguintes passos:
- projeto;
- processo;
- produto.

O projeto é:
- um esforço no sentido de construir um produto, dentro de determinadas especificações, que atenda
às necessidades dos usuários para que executem processos operacionais e gerenciais de negócios.
Projeto = ( objetivos + atividades + prazos + recursos envolvidos + riscos e incertezas )

O projeto se caracteriza por ser:


- um esforço finito, que no seu término pretende-se a entrega, geração ou finalização de determinado
produto;
- um esforço que pode ser subdividido em unidades de trabalho (fases, etapas, atividades) que
ocorrem um uma sequência predeterminada;
- o objetivo, a alocação de recursos e o progresso podem ser monitorados e avaliados.

A Gestão do projeto compreende:


1-) Planejamento
- elaborar o escopo preliminar do produto;
- elaborar estimativas de prazos, recursos, esforço, custos e tamanho do produto;
- definir o processo de desenvolvimento a ser adotado pelo projeto e a sua organização.

2-) Controle
- controle da alocação de recursos;
- verificação e validação de produtos intermediários;
- controle de mudanças no escopo;
- refinamento e replanejamento quando necessário;
- acompanhamento das tarefas e orçamento conforme cronograma.

3-) Monitoramento
- verificar o progresso do projeto;
- verificar e avaliar a qualidade dos produtos intermediários;
- verificar e avaliar a produtividade da equipe;
- avaliar o projeto em termos financeiros.

O processo é:
- um conjunto de atividades (numa sequência predeterminada), métodos e práticas utilizados na
produção e evolução do software.

O processo compreende:
• políticas de desenvolvimento;
• procedimentos para o desenvolvimento;
• diversas técnicas e padrões para a construção de produtos;
• padrões de apresentação de produtos intermediários;

O processo define a forma de como o projeto é executado e, consequentemente, gerenciado.


O processo de software comumente chamamos de metodologia de desenvolvimento.

Produto de software:
é o resultado da execução de um processo que contém uma série de atributos derivados dos
requisitos e especificações previstos no projeto.

O produto sofre alterações caracterizadas como:


- manutenções corretivas;
- manutenções adaptativas;
- melhorias.

Manutenções corretivas compreendem:


- remoção de defeitos introduzidos pelo projeto;
- remoção de defeitos introduzidos por manutenções adaptativas;
- remoção de defeitos introduzidos por melhorias.

Manutenções adaptativas compreendem:


- alteração de determinadas funções do software visando adequá-lo a requisitos regulatórios ou de
legislação.

Melhorias compreendem:
- introdução de novas features no software em função de novos requisitos dos negócios;
- introdução de novas features no software em função de mudança de tecnologia.

Unidade 02 - Processos de Ciclo de Vida

Ciclo de Vida de software:

Ciclo de Desenvolvimento
- concepção;
- criação;
Ciclo Operacional
- evolução;
- decadência;

Concepção
- objetivos; (nível de serviço / abrangência / qualidade / segurança / resultados desejados / dados
fontes)
- viabilidade; (tecnologia disponível / custo-benefício / análise da situação atual)
- necessidade; (oportunidade / recursos p-s-h)
- limitações;

Criação
- relatórios;
- telas;
- arquivos;
- programas;
- testes;

Evolução
- manutenções / alterações para que continue atendendo os objetivos;
- entendimento do sistema;
- entendimento da modificação;
- avaliação do impacto;
- realização da modificação;
- administrar / organizar / implementar;

Decadência
- difícil manutenção;
- atraso tecnológico;
- grande quantidade de alterações;
- reclamações de usuários;
- mudança na organização;
- solicitação de novo sistema;

Qualidade nos Processos de Software

Processos de Ciclo de Vida Norma ISO-12207


Agrupa as atividades que devem ser realizadas durante o ciclo de vida em processos fundamentais,
processos de apoio, processos organizacionais, processos de reuso de software e processos de
adaptação.

Processos primários: são necessários para que um software seja executado. Iniciam o ciclo de vida
e comandam outros processos.
- aquisição;
- fornecimento;
- desenvolvimento;
- operação;
- manutenção.

Processos de apoio: os processos de apoio auxiliam outro processo.


- documentação;
- gerência de configuração;
- gerência da qualidade;
- verificação;
- validação;
- revisão conjunta;
- auditoria;
- resolução de problemas;
- usabilidade;
- contrato;

Processos organizacionais: auxiliam a organização e gerência geral dos processos.


- gerência;
- infraestrutura;
- melhoria;
- recursos humanos;

Processos de reuso de software: são os processos específicos no desenvolvimento de software.


- gestão de ativos;
- gestão de programas de recurso;
- engenharia de domínio;

Processos de adaptação: os processos são adaptáveis.


- projeto;
- organização;
- cultura;
- modelo de ciclo de vida, métodos, técnicas e linguagens.

Unidade 03 - Normas Aplicadas a Qualidade de Software

Norma ISO -IEC 9126


Avaliação da Qualidade de Produto de Software

A Norma Internacional ISO/IEC 9126, define seis características da qualidade para produtos de
software:
- funcionalidade;
- confiabilidade;
- usabilidade;
- eficiência;
- manutenibilidade;
- portabilidade.

Funcionalidade
Refere-se à existência de um conjunto de funções que satisfaz às necessidades estabelecidas e a
suas propriedades específicas. Propõe como subcaracterísticas: adequação, acurácia,
interoperabilidade, conformidade e segurança.

Confiabilidade
Refere-se à capacidade do software em manter seu nível de desempenho, sob condições
estabelecidas, por um determinado período de tempo. Propõe como subcaracterísticas : maturidade,
tolerância a falhas, recuperabilidade e conformidade.

Usabilidade
Refere-se ao esforço necessário ao uso e à homologação individual de tal uso por um conjunto de
usuários estabelecido ou subentendido. Propõe como subcaracterísticas: inteligibilidade,
apreensiblidade, atratividade, operatividade e conformidade.

Eficiência
Refere-se ao relacionamento entre o nível de desempenho do software e a quantidade de recursos
utilizada, sob condições estabelecidas. Propõe como subcaracterísticas: comportamento em relação
ao tempo, comportamento em relação aos recursos e conformidade.

Manutenibilidade
Refere-se ao esforço necessário para fazer modificações específicas no software. Propõe como
subcaracterísticas: analisabilidade, modificabilidade, estabilidade, testabilidade e conformidade.

Portabilidade
Refere-se à capacidade do software em ser transferido de um ambiente para outro. Propõe como
subcaracterísticas: adaptabilidade, coexistência, capacidade para ser instalado, capacidade para
substituir e conformidade.

Métricas são perguntas objetivas do objeto que se deseja medir, para serem respondidas em uma
escala definida de valores.
Peso é o valor relativo da importância que se atribui a uma característica, subcaracterística ou a uma
métrica.

Sistema quantitativo para medir a qualidade de um software, de acordo com a ISO-IEC 9126
Qualidade do Software = ∑ características
Característica = ∑ subcaracterísticas
Subcaracterística = ∑ métricas

Norma ISO-IEC 14598


Processo de Avaliação de Software

1. Estabelecer requisitos de avaliação:


1.1 – estabelecer o propósito da avaliação;
1.2 – identificar o tipo de produto a ser avaliado;
1.3 – especificar o modelo de qualidade; (ISO/IEC-9126)

2. Especificar a avaliação:
2.1 – selecionar métricas;
2.2 – estabelecer níveis de pontuação para as métricas;
2.3 – estabelecer critérios para julgamento;.
3. Projetar a avaliação:
3.1 – produzir o plano de avaliação;

4. Executar a avaliação:
4.1 – obter as medidas;
4.2 – comparar com critérios;
4.3 – julgar os resultados.

Unidade 04 - Maturidade nos Processos de Software


Capability Maturity Model – CMM

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 o 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.

Pode ser definido como sendo uma soma de "melhores práticas" para diagnóstico e avaliação de
maturidade do desenvolvimento de softwares em uma organização.
Descreve os estágios de maturidade por que passam as organizações, enquanto evoluem no seu
ciclo de desenvolvimento de software, através de avaliação contínua, identificação de problemas e
ações corretivas, dentro de uma estratégia de melhoria dos processos.

O modelo é definido por cinco níveis de maturidade:


1 - inicial;
2 - repetível;
3 - definido;
4 - gerenciado;
5 – otimizado.

Nível 1: Inicial
No nível 1 de maturidade os processos são geralmente ad hoc e caóticos.
As organizações geralmente não dispõe de um processo de desenvolvimento estável.
O sucesso nessas empresas, depende da competência e heroísmo dos seus funcionários e não no
uso de processos estáveis. Nesse nível, a organização produz produtos e serviços que em geral
funcionam, mas frequentemente excedem o orçamento e o prazo dos projetos.
Para esse nível, não existem (key process areas – KPAs) áreas-chaves de processos, que são os
processos ou melhores práticas previstas para o nível em foco.

Nível 2: Repetível
No nível 2 de maturidade, o desenvolvimento do software é repetido. Técnicas de gerenciamento de
projetos são estabelecidas para mapear custos, prazos e funcionalidades. Um mínimo de disciplina
nos processos é estabelecido para que se possa repetir sucessos anteriores em projetos com escopo
e aplicação similares. Ainda existe um risco significativo em se excederem as estimativas de custos e
o prazo de desenvolvimento.
Este nível apresenta as seguintes (KPAs)
Áreas-chave de processo:
- gerenciamento de requisitos;
- planejamento de projetos;
- acompanhamento e supervisão de projetos;
- gerenciamento de subcontratação;
- garantia de qualidade de software;
- gerenciamento de configuração.

Nível 3: Definido
No nível 3 de maturidade, processos são bem caracterizados e entendidos e são descritos utilizando
padrões, procedimentos, ferramentas e métodos.
Esses processos-padrão são usados para estabelecer uma consistência dentro da organização.
O gerenciamento da organização estabelece os objetivos dos processos baseado nesse conjunto de
padrões predefinidos e garante que esses objetivos sejam encaminhados de forma apropriada.

KPAs desse nível:


- revisões;
- coordenação de intergrupos;
- engenharia de produto de software;
- gerenciamento de software integrado;
- programa de treinamento;
- definição do processo da organização;
- foco no processo da organização

Nível 4: Gerenciado
No nível 4, o desempenho do processo é controlado usando técnicas estatísticas e quantitativas e é
previsível quantitativamente.
No nível 3, os processos são somente previsíveis qualitativamente.

KPAs desse nível:


- gerenciamento quantitativo da qualidade do software;
- gerenciamento quantitativo do processo.

Nível 5: Otimizado
No nível de maturidade 5, o foco é o contínuo progresso do desempenho dos processos, com a
introdução de melhorias de inovação tecnológica e incremental. Objetivos de melhoria quantitativa
dos processos para a organização são estabelecidos, continuamente revisados, refletindo as
mudanças nos objetivos da organização e usando critérios de melhoria na gerência de processos.

KPAs desse nível:


- gerenciamento da mudança no processo;
- gerenciamento da mudança tecnológica;
- prevenção de defeitos.

Outros modelos de apoio ao desenvolvimento e melhoria do processo de software


Personal Software Process - PSP;
Melhoria de Processos do Software Brasileiro - MPS-BR;
SPICE – ISO/15504;
CMMi (evolução do CMM);
Outros…
Atividade Objetiva 01
Questão 1
No contexto de qualidade de software, analise as afirmativas a seguir, indicando se são falsas
ou verdadeiras.
I. Projetos de qualidade entregam o produto, o serviço ou o resultado solicitado dentro do
escopo, no prazo e dentro do orçamento. Ocorrendo alguma alteração em um desses fatores, os
demais podem se alterar.
II. Qualidade pode ser entendida como um conjunto de características a serem satisfeitas em
um determinado grau, de modo que o produto de software atenda às necessidades explícitas e
implícitas de seus usuários.
III. Processos de negócio maduros e bem definidos a serem atendidos pelo software, são
fundamentais para gerar um bom projeto de software.
IV. Estimar cronograma e custo de um software na fase de elaboração do seu projeto, não é
tarefa trivial quando não se tem um processo de desenvolvimento bem definido.
A sequência correta é
Escolha uma:
a. V V F V
b. F F V V
c. V V V V
d. F F F F

Questão 2
Dadas as características abaixo, considere Verdadeiras (V) aquelas que indicam presença de
qualidade e Falsas (F), aquelas que não indicam presença de qualidade:
I. Atender os desejos do cliente.
II. Antecipar desejos do cliente.
III. Possuir o menor custo.
IV. Possuir o preço que o mercado esteja disposto a pagar.
A sequência correta é
Escolha uma:
a. F F V V
b. V V F V
c. V V V V
d. F F F F

Questão 3
Em relação à qualidade de um software, podemos afirmar que ela guarda uma relação
direta com
Escolha uma:
a. os processos de negócio das organizações.
b. o projeto do software.
c. o processo de desenvolvimento.
d. todas as opções anteriores.

Atividade Objetiva 02
Questão 1
Analise as afirmativas abaixo a respeito do ciclo de vida de um software, indicando qual a opção
correta:
I- conceber bem um software é uma fase extremamente importante para o ciclo de vida de um
sistema;
II- podemos dizer que o resultado de uma boa concepção, é um bom projeto de software;
III- podemos criar um sistema com equipe própria, ou terceirizando o desenvolvimento, ou até
mesmo, comprando um software pronto de “prateleira”;
IV- a fase de manutenção ou evolução de um sistema, guarda uma forte relação com a
concepção e com a criação do sistema;
Escolha uma:
a. V, V, F, F
b. V, V, V, V
c. V, V, F, V
d. F, V, F, V

Questão 2
Analise se Falso ou Verdadeiro, indicando a opção correta.
São características comuns da fase de uso de um sistema:
I) manutenções corretivas e/ou adaptativas;
II) análise de muitos novos requisitos para o sistema;
III) pequenas melhorias, como por exemplo na sua usabilidade;
IV) com o atraso tecnológico do sistema, o mesmo pode apresentar indicadores de
decadência;
Escolha uma:
a. V, F, V, V
b. V, V, F, V
c. F, F, V, V
d. F, F, F, V

Questão 3
Indique se Falso ou Verdadeiro, marcando a opção correta.
Em relação a Norma ISO-12207, podemos afirmar que:
I) aquisição, desenvolvimento e operação de software, são alguns dos processos primários;
II) processos de apoio são utilizados em todo o ciclo de vida do software, tanto no
desenvolvimento, quanto nas manutenções da fase operacional;
III) verificação, validação, revisão conjunta são processos de apoio de extrema importância para
um bom desenvolvimento de software;
IV) os processos organizacionais estão diretamente ligados ao código do sistema;
Escolha uma:
a. V, V, V, F
b. F, F, V, F
c. F, F, F, V
d. V, V, F, F

Atividade Objetiva 03
Questão 1
O modelo de qualidade ISO-9126 possui seis características a serem observadas em um software,
que são:
Escolha uma:
a. adaptabilidade, funcionalidade, segurança, maturidade, conformidade, acurácia.
b. manutenibilidade, portabilidade, maturidade, conformidade, segurança, eficiência.
c. funcionalidade, confiabilidade, usabilidade, eficiência, manutenibilidade, portabilidade.
d. funcionalidade, usabilidade, segurança, tempo, conformidade, manutenibilidade.
e. confiabilidade, segurança, tempo, adequação, conformidade, maturidade.
Questão 2
As subcaracterísticas da característica “funcionalidade”, de acordo com a ISO-9126, são:
Escolha uma:
a. adequação, acurácia, interoperabilidade, conformidade e segurança.
b. adaptabilidade, maturidade, capacidade para ser instalado, tempo, recursos.
c. tempo, analisabilidade, modificabilidade, maturidade, conformidade.
d. recursos, adequação, maturidade, recuperabilidade, tempo.

Questão 3
A norma ISO-14598 tem como objetivo principal
Escolha uma:
a. o projeto do software.
b. a avaliação do projeto.
c. o processo de avaliação do software.
d. a avaliação da infraestrutura de TI.

Atividade 04
Questão 1
Não são nomes de níveis de maturidade do CMM – Capability Maturity Model:
Escolha uma:
a. Inicial.
b. Previsto.
c. Definido.
d. Repetível.
e. Gerenciado.

Questão 2
Não são áreas-chaves de processos (kpa´s) do nível 3 do modelo CMM:
Escolha uma:
a. Programa de treinamento.
b. Foco no processo da organização.
c. Gerenciamento de software integrado.
d. Gerenciamento quantitativo do processo.

Questão 3
Não são áreas-chaves de processos (kpa´s) do nível 5 do modelo CMM:
Escolha uma:
a. Gerenciamento de mudança no processo.
b. Prevenção de defeitos.
c. Gerenciamento de requisitos.
d. Gerenciamento da mudança tecnológica.

Substitutiva
Questão 1
Em relação a Norma ISO-9126, não é uma subcaracterística da característica Funcionalidade:
Escolha uma:
a. adequação;
b. interoperabilidade;
c. inteligibilidade;
d. segurança;
e. acurácia;

Questão 2
Em relação a Norma ISO-12207, que trata dos processos de apoio ao ciclo de vida, não é um
processo da classe dos processos de Apoio:
Escolha uma:
a. validação;
b. auditoria;
c. revisão conjunta;
d. aquisição;
e. resolução de problemas;

Questão 3
Em relação ao CMM – Capability Maturity Model, não é uma (kpa) área chave de processo em
relação ao nível 2 – Repetível:
Escolha uma:
a. gerenciamento de requisitos;
b. gerenciamento de configuração;
c. planejamento de projetos;
d. gerenciamento da mudança no processo;

Atividade 01
1 - c, 2 - b, 3 - d

Atividade 02
1 - b, 2 - a, 3 - a

Atividade 03
1 - c, 2 - a, 3 -c

Atividade 04
1 - b, 2 - d, 3 - c

Substitutiva
1 - c, 2 - d, 2 - d

Você também pode gostar