Você está na página 1de 35

Qualidade nos SI

Conceitos de Qualidade de Software


▪ A Qualidade de Software é área da Engenharia de
Software que se dedica ao estudo de processos,
técnicas e ferramentas que visam garantir que um
produto de software atende as características e
propriedades definidas nos requisitos. SWEBOK 3.0
by IEEE.

2
Revisão Sobre Processos de Desenvolvimento de
Software

▪ “O Processo de Desenvolvimento de Software ficou


definido durante a Crise do Software* como sendo
uma das respostas técnicas mais adequadas para
resolver a crise que assolava o desenvolvimento de
softwares na década de 70/80.”
3
1.5. Revisão Sobre Processos de
Desenvolvimento de Software
▪ Um processo que se pretende que seja de qualidade deve ter os
seguintes aspectos muito bem estabelecidos:
 Actividades a serem realizadas, sua estrutura e organização
(wbs/abs – decomposição e precedência);
wbs.; é uma ferramenta de grande potencial para a gestão da
qualidade dos projectos .
O ABS mostra os meios ou o que devemos fazer para obter o “Fim”
desejado
4
▪ Existem vários modelos para aplicação de processos de
desenvolvimento de software, entretanto, todos incidem
sobre as mesmas fases:
 Análise e Especificação de Requisitos;
 Arquitectura e Desenho;
 Implementação/Codificação;
 Testes;Documentação;
 Instalação*, Suporte*, Treinamento*, Manutenção*
(Preventiva, Correctiva e Evolutiva).

5
Revisão Sobre Processos de Desenvolvimento de
Software
1. Análise e Especificação de Requisitos
2 . Arquitectura e Desenho:
2.1. Elaboração da Arquitectura Funcional/Técnica:
 Pré-Actividade: Análise e Especificação de Requisitos.
 Artefacto de Entrada: Documento de Especificação de
Requisitos;
 Artefacto Produzido: Documento de Arquitectura
Funcional/Técnica.
 Recursos:
 Humanos: Arquitecto de Software e Arquitecto
Funcional;
 Software: Ferramentas de Modelagem UML. 6

 Técnicas: Modelagem de Objectos.


Revisão Sobre Processos de Desenvolvimento de
Software
2.2. Desenho Detalhado do Software:
Pré-Actividade: Análise e Especificação de Requisitos.
Artefacto de Entrada: Documento de Especificação de Requisitos;
Artefacto Produzido: Documento de Desenho Funcional/Técnica.
Recursos:
 Humanos: Arquitecto de Funcional e Analista Sénior de
Negócio;
 Software: Ferramentas de Modelagem UML e de Modelagem de
UX&UI. 7

Técnicas: Modelagem Funcional e Ténicas de User eXperience.


Revisão Sobre Processos de Desenvolvimento de
Software
3. Implementação/Codificação
Não obstante o processo de desenvolvimento ter as suas características,
propriedades e actividades claramente definidas, a concretização das
mesmas num cenário real deve ser considerado caso a caso, levando-se em
conta as características específicas do projecto em questão, nomeadamente:
 Equipa do Projecto;
 Domínio do Software;
 Tipo de Software; 8

 Tecnologias a serem adoptadas, restrições de negócio e do projecto


Revisão Sobre SDLC – Ciclo de Vida de
Desenvolvimento de Software

Como visto anteriormente, os processos de desenvolvimento são


caracterizados como sendo um conjunto de actividades sequenciais
sobre o qual o desenvolvimento do software ocorre.

Para tal, tanto o processo quanto as suas respectivas actividades tem


um início e um fim, então consegue-se rapidamente concluir que
existe um ciclo de vida próprio para o processo de desenvolvimento
de um software. 9
Revisão Sobre SDLC – Ciclo de Vida de
Desenvolvimento de Software
Sendo assim, entende-se como Ciclo de Vida de
Desenvolvimento de Software (SDLC – Software Development
Life Cycle) como sendo o interrelacionamento entre as
actividades do processo de criação de um software nos
modelos usados para desenvolver os mesmos.

10
SDLC

SDLC (ciclo de vida de


desenvolvimento de
software)
SDLC é um processo
sistemático de construção de
software que garante a
qualidade e a correção
precisa de falhas do
software construído. 11
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
O SDLC pode ser descrito com modelos que vão desde o sequencial,
interactivo, até ao ágil.

Modelos Sequenciais focam-se no planeamento completo e correcto do


processo de desenvolvimento com vista a garantir a entrega atempada do
software e minimizar os riscos.

Modelos Interactivos focam-se num âmbito do software limitado para sua


construção ou melhoria através de interacções.
12
Modelos Ágeis focam-se em processos leves que permitem mudanças
rápidas ao longo do ciclo de desenvolvimento.
Revisão Sobre Modelos de Processos de Desenvolvimento
de Software
▪ Existem muitas abordagens e modelos relacionados com a
concretização de um ciclo de vida do desenvolvimento de
software, nomeadamente:
 Modelo em Cascata;
 Modelo de Prototipação;
 Modelo em V;
 Modelo Incremental;
 Modelo de Desenvolvimento Aplicacional Rápido - RAD;
 Modelo RUP;
 Modelo em Espiral;
 Modelo de Desenvolvimento Ágil - Agile; 13
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
Modelo em Cascata
Modelo de desenvolvimento de software sequencial,
na qual o processo de desenvolvimento é visto como
um fluir constante para frente através das fases de
Análise e Especificação de Requisitos,
Arquitectura/Desenho, Implementação, Testes e
Manutenção.

O processo de transição de uma fase para a próxima se


dá de uma forma puramente sequencial. Por exemplo:
1º deve ser finalizada a fase de especificação de
14
requisitos – com a elaboração de um documento com
um conjunto rígido de requisitos do software.
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software

Modelo de Prototipagem
Modelo de desenvolvimento de software que consiste na criação
de pequenos protótipos executáveis do software, sendo
continuamente aperfeiçoados até a versão final.

Na prototipagem o cliente define um conjunto de objectivos


gerais e de alto nível para o software pretendido mas não
identifica (ou não tem ainda claro) detalhadamente os requisitos
de entrada, processamento ou de saída.

Pode dar-se o caso, das circustâncias em que o Engenheiro de


Software e a Equipa não estão ainda seguros sobre a tecnologia
15
escolhida ou a eficiência do código implementado, ou ainda da
compatibilidade entre o software e o sistema de base.
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
Modelo em V

▪ Modelo de desenvolvimento de software que é visto como uma melhoria ao


problema de retrabalho que ocorre frequentemente no modelo em cascata, pois
permite que, durante a integração de componentes do software em desenvolvimento
dos seus diversos níveis de evolução, os testes sejam feitos contra os próprios
requisitos do componente/interface em testes, em contraste com os modelos
anteriores onde o componente era testado contra a especificação do
componente/interface.
16
Cont.

As principais características do Modelo em V são:


 Os testes têm resultados de maior efectividade, uma vez que são
testados contra os requisitos e não contra especificações;
 Possibilita que se encontrem erros durante os processos de se derivar
especificações de requisitos;
 Ajuda a desenvolver novos requisitos;
 Melhoria a qualidade do produto resultante, uma vez que valida o
processo de engenharia de sistemas durante a integração do sistema.
17
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
▪ Modelo em V

18
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
Modelo Incremental
Modelo de desenvolvimento de software que combina
elementos do modelo em cascata de maneira interactiva em
que cada sequência linear produz “incrementos” do
software passíveis de serem entregues.
Neste modelo, o primeiro incremento é comumente
definido como sendo o núcleo do software em
desenvolvimento. Isto quer dizer que os requisitos básicos
são satisfeitos, mas muitas características suplementares
deixam de ser elaboradas.
O núcleo do software é usado pelo cliente para definir o
caminho dos demais incrementos baseados na experiência
de uso do mesmo.

19
Modelo RAD – Desenvolvimento Aplicacional Rápido

É um processo de desenvolvimento de aplicações de


forma rápida com objetivos bem definidos e análise de
requisitos extremamente bem alinhada.

20
Revisão Sobre Modelos de Processos de Desenvolvimento de
Software

▪ Modelo RAD – Desenvolvimento Aplicacional Rápido

RAD O Rapid Application Development, ou Desenvolvimento Rápido de Aplicação, é


uma metodologia de desenvolvimento de software que prioriza um ciclo de trabalho
curto, iterativo e incremental.

O Modelo RAD é uma adaptação de alta velocidade, do modelo em cascata, no qual a


agilidade é conseguida com o uso de uma abordagem de construção baseada em
componentes.

Entretanto, para um correcta adopção deste modelo, os requisitos do software devem estar
21
correctamente definidos e compreendidos por toda equipa do projecto.
Cont.
Não obstante ser um modelo bastante vantajoso, o mesmo apresenta as seguintes
desvantagens:
 Para projectos de grande porte o RAD exige recursos humanos suficientes
para criar um número adequado de equipas;
 Se as equipas de desenvolvimento e o cliente não estiverem alinhadas e
comprometidas com as actividades do projecto, o modelo RAD falha.
 Se o software em desenvolvimento não puder ser adequadamente
modularizado, a construção dos componentes será problemática;
 Se for necessário ajustes nas interfaces entre componentes do sistema, a
22
abordagem RAD pode não ser a mais indicada.
Revisão Sobre Modelos de Processos de Desenvolvimento de
Software
▪ Modelo RAD – Desenvolvimento Aplicacional Rápido

23
Revisão Sobre Modelos de Processos de Desenvolvimento de
Software

Modelo RUP
Rational Unified Process, em português, Processo Racional Unificado, é um modelo de
desenvolvimento de software orientado por casos de uso, centrado na arquitectura, sendo também
interactivo e incremental.

O RUP é entendido como sendo uma tentativa de incluir num mesmo modelo, os melhores recursos e
características dos modelos convencionais de desenvolvimento de software, incluíndo características
que actualmente fazem parte do processo Agile.

O RUP reconhece a importância da comunicação com o cliente e dos métodos directos para descrever
a visão do cliente em relação ao software em desenvolvimento.
24
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
▪ Modelo RUP

25
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
▪ Modelo Espiral
Modelo de desenvolvimento de software que combina
a natureza interactiva da prototipagem com os
aspectos sistémicos do modelo em cascata.

Neste modelo, o software é desenvolvido numa série


de versões evolutivas, onde durante as primeiras
interacções, as versões podem ser um modelo de papel
ou até mesmo um protótipo. Nas últimas interações,
são desenvolvidas versões cada vez mais próximas do
software pretendido.
26
É considerado, juntamente com o RUP, como sendo o
modelo mais realista e o pai dos modelos ágeis.
Revisão Sobre Modelos de Processos de Desenvolvimento de
Software

Modelo Ágil de Desenvolvimento de Software


Entende-se como modelo ágil de desenvolvimento de software, como sendo um conjunto
de metodologias utilizadas no desenvolvimento de um software. As metodologias que
fazem parte do conceito de desenvolvimento ágil, tal como qualquer metodologia de
desenvolvimento de software, providencia uma estrutura conceitual para reger projectos
de Engenharia de Software.

Em um processo tradicional, cada etapa/fase não está necessariamente focada em


adicionar um novo conjunto significativo de funcionalidades, mas sim em aspectos como
cumprimento do prazo e do âmbito. 27
1.7. Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
▪ Modelo Ágil de Desenvolvimento de Software

28
1.7. Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
▪ Modelo Ágil de Desenvolvimento de Software
O pressuposto do surgimento das metodologias ágeis é o de tentar
minimizar os riscos comuns* do desenvolvimento de softwares através de
um modelo em que são privilegiados curtos periodos, chamados de
interacção, os quais gastam tipicamente 1 a até 4 semanas no máximo.
Cada iteracção é como se de um projecto de software se trata-se
(miniatura do projecto de software*), incluindo todas as actividades e
tarefas necessárias para implementar esta miniatura: planeamento,
análise de requisitos, desenho, implementação, teste, instalação e
documentação.
29
1.7. Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
Modelo Ágil de Desenvolvimento de Software

30
Revisão Sobre Modelos de Processos de
Desenvolvimento de Software

Modelo Ágil de Desenvolvimento de Software


Valores:
 Individuos e Interacções são mais importantes que processos e
ferramentas;
 Software que funciona mais do que documentação “decente”;
 Colaboração do cliente mais relevante do que negociação de
contratos;
 Responder as mudanças mais relevantes do que do que seguir
31
rigorosamente o plano.
Modelo Ágil de Desenvolvimento de Software

▪ Princípios:
 Garantir a satisfação do cliente entregando rapidamente e
continuamente partes funcionais de sw (semanas vs meses);
 Mudanças (até as tardias) de âmbito do projecto são bem-vindas para
a garantir vantagem competitiva do cliente;
 Cooperação diária entre equipa de desenvolvimento e a equipa de
negócio;
 Melhores arquitecturas, requisitos de software e entregas de software
32
resultantes de uma equipa ágil e auto-organizada.
1.7. Revisão Sobre Modelos de Processos de
Desenvolvimento de Software
Modelo Ágil (Ágil vs Tradicional)

Modelos Sequenciais: Maior enfase no planeamento e na sequência das


actividades/fases de forma restrita e rigorosa. A qualidade do processo de
desenvolvimento e do software em si é medida pelos termos de entrega de
artefactos (Termo de Projecto – Kick-off, Plano do Projecto, Plano de Testes,
Relatório de Testes, etc). Enquanto que o Agile prima mais pelas interacções e
pela entregue frequente de partes funcionais do software.
33
Modelos Interactivos e Incrementais: Mais próximo e
considerado o modelo pai dos modelos ágeis pelo seu foco no
desenvolvimento modo incremental (versões) e por igualmente
privilegiar a interacção com o cliente. A grande diferença está na
duração das interacções (Semanas vs Meses).

34
FIM!

Você também pode gostar