Você está na página 1de 19

Qualidade de Software

O software algo abstrato, pois so as instrues que quando


executadas atingem o propsito desejado no sistema computacional.
(Algoritmo). As principais caractersticas so:

Complexidade: muitas regras, muitas linhas de cdigo e desenvolvedores com ideias


diferentes, mas que podem levar mesma soluo.
Invisibilidade e intangibilidade: invisvel para o usurio. O que se v so as
consequncias da execuo do software. Os desenvolvedores necessitam utilizar
modelos para representar o sistema de software. Ex. UML
Produo sob medida: Cada usurio um cliente que usa o software a sua maneira,
com nfase em partes diferentes.
No se degasta com o uso: Em software os componentes lgicos so durveis.

A ISO 9126, na verso brasileira NBR 13596, define qualidade de


software como:
A totalidade de caractersticas de um produto de software que lhe
confere a capacidade de satisfazer necessidades explcitas e implcitas.

Necessidades explcitas: fatores relativos qualidade do processo de


desenvolvimento do produto, percebidos somente pelas pessoas que
trabalham no seu desenvolvimento.
Necessidades implcitas: percebidas pelos desenvolvedores e pelos
usurios. Conhecidas como qualidade em uso, devem permitir aos
usurios efetividade, produtividade, segurana e satisfao em um
contexto de uso especificado.

Segundo (Pezz & Young, 2008), as qualidades de um produto de


software podem ser divididas entre:
Aquelas que afetam principalmente o desenvolvimento de software,
tais como manutenibilidade, reusabilidade e rastreabilidade, embora
suas consequncias possam afetar ao cliente de forma indireta,
aumentando o tempo entre a liberao de novas verses, por exemplo.
So chamadas de propriedades internas;

Visveis pelos usurios do produto de software, tais como confiana,


usabilidade e taxa de atendimento. So chamadas de propriedades
externas;

A qualidade de Software, envolve todo o ciclo de vida de


Engenharia de Softwares, entretanto, mais frequentemente
associada a fase de Testes do ciclo de vida, porm estes esto
longe de serem suficientes.
A qualidade depende de cada parte do processo de software,
no apenas do teste.
Nenhuma quantidade de teste pode compensar a baixa
qualidade causada por outras atividades do processo.

Uma grande ameaa qualidade de software so as mudanas.


De acordo com Weinberg (1997), na resoluo de falhas, as
maiores perdas podem vir de efeitos colaterais ou falhas
introduzidas ao se resolver outras falhas.
O processo de controle de mudanas contribui diretamente para a
qualidade do software ao formalizar pedidos de mudana, avaliar a
natureza da mudana e controlar o impacto da mudana.
Pode ser utilizado a aplicao de modelos de gesto de servios,
tal como ITIL para o efetivo Gerenciamento de Mudanas.

Garantia de qualidade de software SQA (Software Quality Assurance)


De acordo com (Crtes & Chiossi, 2001), define -se como sendo um conjunto de
atividades que assegura que todos os esforos sero feitos para garantir que os produtos
de softwares tenham a qualidade desejada. Essas atividades devem:
Minimizar o nmero de defeitos;
Criar mecanismos para controlar o desenvolvimento e a manuteno de forma a
preservar prazos e custo;
Garantir que o produto possa ser usado no mercado;
Melhorar a qualidade de verses futuras do produto ou de novos produtos

A garantia de qualidade de software uma atividade que aplicada ao longo de todo o


processo de engenharia de software, e abrange:

Mtodos e ferramentas de anlise, projeto, codificao e teste;


Revises tcnicas aplicadas durante cada fase de engenharia de software;
Estratgia de testes de mltiplas fases;
Controle da documentao de software e das mudanas feitas nela;
Procedimento para garantir a adequao aos padres de desenvolvimento de software;

Escolha de modelos e ferramentas


para desenvolvimento e testes de
software

UML (Unified Modeling Language)


uma linguagem de modelagem no proprietria de terceira gerao. A UML no
uma metodologia de desenvolvimento, o que significa que ela no diz para voc o que
fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a
visualizar seu desenho e a comunicao entre objetos. Basicamente, a UML permite
que desenvolvedores visualizem os produtos de seus trabalhos em diagramas
padronizados. [UML]

http://www.devmedia.com.br/uml-para-java/2711

LINGUAGEM ESTRUTURADA VS ORIENTADA A OBJETOS

PARADIGMA DA LINGUAGEM ESTRUTURADA


um tipo de programao orientada para a ao, sendo que a unidade de
programao a funo. grupos de aes que realizam alguma tarefa comum so
reunidos em funes e as funes so agrupadas para formar programas. (DEITEL,
PG.15)
PARADIGMA DA LINGUAGEM ORIENTADA A OBJETOS
A idia da orientao a objetos desenvolver programas baseados em objetos do
mundo real. Para onde voc olhar ir se deparar com objetos, sejam eles animados ou
inanimados: pessoas, animais, carros, motos, etc. Os objetos possuem:
Caracteristicas - tamanho, forma, cor, etc
Comportamentos andar, falar, comer, etc.
Na linguagem O.O a unidade de programao a CLASSE a partir do qual os objetos
so instanciados (criados)

Exemplo de cdigo em C (Paradigma da Programao Estruturada)


#include <sdtio.h>
#include <conio.h>

void main () {
float NotaP1, NotaP2;
float Media;

clrscr();
NotaDaP1 = 5.4;
NotaDaP2 = 9.7;
Media = (NotaP1 + NotaP2) / 2.0;
printf("Mdia Final : %f", Media);
getch();
}

Exemplo de cdigo em Java (Paradigma Orientao a Objetos)


public class Carros {
public static void main (String[] args) {
Carros carro1 = new Carros( );
carro1.ligar( );
carro1.acelerar(50);
}
// atributos
String cor;
String modelo;
double velocidade;
int marcha;
//construtor
public Carros (String cores, int marchas) {
this.cor=cores;
this.marcha=marchas;
this.modelo= Ferrari;
this.velocidade=0.0;
}
// mtodos
public void ligar () {
System.out.println(Carro ligado);
}
public void acelerar(double valor) {
this.velocidade+= valor;
}
}

Linguagens orientadas a objetos facilitam a manuteno e documentao.


Mquinas Virtuais
Algumas linguagens, tais como Java, C#, entre outras, utilizam mquinas
virtuais que conferem portabilidade as aplicaes.
Ex. Java Virtual Machine (JVM)

Fonte: http://viralpatel.net/blogs/2008/12/java-virtual-machine-an-inside-story.htm

A JVM, possui ainda coletor automtico de lixo para liberar a memria no usada
(Garbage Collector); Interpretao em tempo de execuo (JIT)

IDE (Integrated Development Environment) Ambiente Integrado de


Desenvolvimento, uma aplicao que rene caractersticas e
ferramentas de apoio ao desenvolvimento de software.
O objetivo automatizar processos de codificao.
Agiliza a construo de aplicaes, gerando mais produtividade.
Ex: Eclipse, NetBeans e Visual Studio

As caractersticas e ferramentas mais comuns encontradas nos IDEs so:

Editor - edita o cdigo-fonte do programa (linguagem suportada pela IDE);


Modelagem auxilio na criao de classes, objetos, interfaces, projetos,
pacotes, etc
Depurador - auxilia no processo de encontrar e corrigir defeitos no cdigo-fonte
do programa
Gerao de cdigo auxilio na construo de software, ferramentas de ajuda,
auto completar, imports automticos.
Distribuio - auxilia no processo de distribuio do software.
Documentao gerao de documentao em funo do cdigo construdo
Refatorao - melhoria constante do cdigo-fonte, construo de cdigo mais
limpo e de melhor entendimento.
Testes Automatizados - realiza testes no software de forma automatizada,
auxiliando na anlise do impacto das alteraes no cdigo-fonte.

Referncias
[NETBEANS] dispon[ivel em: http://netbeans.org/
[ECLIPSE] dispon[ivel em: http://www.eclipse.org/
[VISUAL STUDIO] http://www.microsoft.com/visualstudio/11/pt-br/products/visualstudio
[UML] http://blogdosanalistas.wordpress.com/uml/
[Qualidade de Software] Professor Ivanir Costa. UNIP Interativa

Você também pode gostar