domingo, 20 de junho de 2010

Qualidade de Software - ISO/IEC 9126

ISO/IEC 9126



É uma norma ISO para qualidade de produto de software, que se enquadra no modelo de qualidade das normas da família 9000. A norma brasileira correspondente é a NBR ISO/IEC 9126.

Modelo de Qualidade de Software

A qualidade de um sistema de software pode ser entendida de diversas formas e utilizando diferentes abordagens.

A norma ISO/IEC 9126, ou conjunto de normas que tratam deste assunto no âmbito da ISO, estabelece um modelo de qualidade com os seguintes componentes:

Processo de desenvolvimento: cuja qualidade afeta a qualidade do produto de software gerado e é influenciado pela natureza do produto desenvolvido;
Produto: compreendendo os atributos de qualidade do produto (sistema) de software. Estes atributos de qualidade podem ser divididos entre atributos internos e externos. Estes se diferenciam pela forma como são aferidos (interna ou externamente ao produto de software) e em conjunto compõem a qualidade do produto de software em si;
Qualidade em uso: que consiste na aferição da qualidade do software em cada contexto específico de usuário. Esta é, também, a qualidade percebida pelo usuário.

Modelo de Qualidade da Norma ISO 9126

A norma 9126 se foca na qualidade do produto de software, propondo Atributos de Qualidade, distribuídos em seis características principais, com cada uma delas divididas em sub-características, conforme podemos ver na figura abaixo:



No nível mais alto temos as características de qualidade e nos quadros abaixo as suas sub-características. Cada característica/sub-característica compõe um Atributo de Qualidade do software.
Note que em todas as características temos uma sub- com o nome de Conformidade. A conformidade é utilizada para avaliar o quanto o software obedece aos requisitos de legislação e todo o tipo de padronização ou normalização aplicável ao contexto.

1. Funcionalidade

A capacidade de um software prover funcionalidades que satisfaçam o usuário em suas necessidades declaradas e implícitas, dentro de um determinado contexto de uso.

Suas sub-características são:
Adequação: que mede o quanto o conjunto de funcionalidades é adequado às necessidades do usuário;
Acurácia (ou precisão): representa a capacidade do software de fornecer resultados precisos ou com a precisão dentro do que foi acordado/solicitado;
Interoperabilidade: que trata da maneira como o software interage com outro(s) sistema(s) especificados;
Segurança: mede a capacidade do sistema de proteger as informações do usuário e fornecê-las apenas (e sempre) às pessoas autorizadas;

2. Confiabilidade

O produto se mantém no nível de desempenho nas condições estabelecidas.

Suas sub-características são:
Maturidade: entendida como sendo a capacidade do software em evitar falhas decorrentes de defeitos no software;
Tolerância a Falhas: representando a capacidade do software em manter o funcionamento adequado mesmo quando ocorrem defeitos nele ou nas suas interfaces externas;
Recuperabilidade: que foca na capacidade de um software se recuperar após uma falha, restabelecendo seus níveis de desempenho e recuperando os seus dados;

3. Usabilidade

A capacidade do produto de software ser compreendido, seu funcionamento aprendido, ser operado e ser atraente ao usuário.
Note que este conceito é bastante abrangente e se aplica mesmo a programas que não possuem uma interface para o usuário final. Por exemplo, um programa batch executado por uma ferramenta de programação de processos também pode ser avaliado quanto a sua usabilidade, no que diz respeito a ser facilmente compreendido, aprendido, etc. Além disto, a operação de um sistema é uma interface Humano-Computador (ver IHC) sujeita às avaliações de usabilidade.

Suas sub-características são:
Inteligibilidade: que representa a facilidade com que o usuário pode compreender as suas funcionalidades e avaliar se o mesmo pode ser usado para satisfazer as suas necessidades específicas;
Apreensibilidade: identifica a facilidade de aprendizado do sistema para os seus potenciais usuários;
Operacionalidade: é como o produto facilita a sua operação por parte do usuário, incluindo a maneira como ele tolera erros de operação;
Atratividade: envolve características que possam atrair um potencial usuário para o sistema, o que pode incluir desde a adequação das informações prestadas para o usuário até os requintes visuais utilizados na sua interface gráfica;

4. Eficiência

O tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software.

Suas sub-características são:
Comportamento em Relação ao Tempo: que avalia se os tempos de resposta (ou de processamento) estão dentro das especificações;
Utilização de Recursos: que mede tanto os recursos consumidos quanto a capacidade do sistema em utilizar os recursos disponíveis;

5. Manutenibilidade

A capacidade (ou facilidade) do produto de software ser modificado, incluindo tanto as melhorias ou extensões de funcionalidade quanto as correções de defeitos.

Suas sub-características são:
Analisabilidade: identifica a facilidade em se diagnosticar eventuais problemas e identificar as causas das deficiências ou falhas;
Modificabilidade: caracteriza a facilidade com que o comportamento do software pode ser modificado;
Estabilidade: avalia a capacidade do software de evitar efeitos colaterais decorrentes de modificações introduzidas;
Testabilidade: representa a capacidade de se testar o sistema modificado, tanto quanto as novas funcionalidades quanto as não afetadas diretamente pela modificação;

6. Portabilidade

A capacidade do sistema ser transferido de um ambiente para outro.
Como "ambiente", devemos considerar todo os fatores de adaptação, tais como diferentes condições de infra-estrutura (sistemas operacionais, versões de bancos de dados, etc.), diferentes tipos e recursos de hardware (tal como aproveitar um número maior de processadores ou memória). Além destes, fatores como idioma ou a facilidade para se criar ambientes de testes devem ser considerados como características de portabilidade.

Suas sub-características são:
Adaptabilidade: representando a capacidade do software ser a adaptar a diferentes ambientes sem a necessidade de ações adicionais (configurações);
Capacidade para ser Instalado: identifica a facilidade com que pode se instalar o sistema em um novo ambiente;
Coexistência: mede o quão facilmente um software convive com outros instalados no mesmo ambiente;
Capacidade para Substituir: representa a capacidade que o sistema tem de substituir outro sistema especificado, em um contexto de uso e ambiente específicos. Este atributo interage tanto com adaptabilidade quanto com a capacidade para ser instalado;

quarta-feira, 16 de junho de 2010

Java - Introdução

Saudações.
Primeiramente quero agradecer a todos que participam e seguem meu blog.
Tenho grande orgulho de estar me responsabilizando por compartilhar informações tão importantes com voces.
Estou pedindo desculpa para todos que não estou com muito tempo para responder e-mail, pois meus compromissos diarios estão cada dia agitados, mas não irei deixar de postar os artigos.
Darei o maximo de atenção em meu "tempo livre" para poder passar mais informações a voces.
Iniciarei hoje com um assunto muito interessante: "JAVA".
Espero que gostem.

Java - Introdução



Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems. Diferentemente das linguagens convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um "bytecode" que é executado por uma máquina virtual. A linguagem de programação Java é a linguagem convencional da Plataforma Java, mas não sua única linguagem.

Utilizarei os metodos patricos em java, espero que façam a parte de voces.
DICA: Pesquise artigos, foruns de discuçõe e toda a parte teórica sobre Java para dar inicio a nossa "engrenagem de estudos" na linguagem de programação JAVA.

Sobre Aplicação

Java é uma linguagem de programação na qual podemos compilar seu código desde um Bloco de notas até os programas avançados como Eclipse, NetBeans entre outros.

Baixando o Java para aplicação

Acesse o link http://www.java.com/pt_BR/download/ e faça o download do arquivo.
Após o download iremos fazer algumas alterações para iniciarmos o estudo sobre java.

Configurações no sistemas

Para dar inicio em nossa jornada, iremos fazer algumas configurações. Primeiramente devemos declarar as variáveis de ambientes para utilizarmos as classes do Java. Para isso iremos fazer os seguintes passos:

- Clicar com o botão direito em Meu Computador
- Propriedades
- Avançado
- Variáveis de Ambiente



- Clique duas vezes em Path
- Copie o caminho:
'C:\Arquivos de programas\Java\jdk1.6.0_18\bin'
Obs.: Certifique-se de que voce possui este caminho, caso nao possua, baixe o Java.
- Cole após o ultimo caractere em "Valor da variável" separando das outras variáveis com ';'
- De um Ok e iremos abrir o DOS
- Executar
- CMD > ok
- No DOS entre em:
- C:\Arquivos de programas\Java\jdk1.6.0_18\bin
- Digite o comando 'javac'

Javac é um compilador do java, no qual transforma arquivos .java em .class

Pronto! Configuramos nossa variáveis de ambiente.
Agora iremos Criar nossa primeira aplicação!

Primeira Aplicação - Criando e Compilando

Iremos criar nossa primeira aplicação em um bloco de notas.
- Abra o Bloco de Notas
- Jogue o comando:

// Programa de adição que exibe a soma de dois números.
import java.util.Scanner; // programa utiliza a classe Scanner
public class soma
{
// método principal inicia a execução do aplicativo Java
public static void main( String args[] )
{
// cria Scanner para obter entrada a partir da janela de comando
Scanner input = new Scanner( System.in );

int number1; // primeiro número a somar
int number2; // segundo número a adicionar
int sum; // soma de number1 e number2

System.out.print( "Entre com o primeiro numero: " ); // prompt
number1 = input.nextInt(); // lê primeiro o número fornecido pelo usuário

System.out.print( "Entre com o segundo numero: " ); // prompt
number2 = input.nextInt(); // lê o segundo número fornecido pelo usuário

sum = number1 + number2; // soma os números

System.out.printf( "A soma e %d\n", sum ); // exibe a soma

} // fim do método principal

} // fim da classe Addition

- Iremos salvar esse bloco de notas em uma pasta na Raiz com o seguinte nome:
- C:\Java\soma.java
- A extenção .java é a extenção não compilada de nossa aplicação.

Compilando e rodando nossa aplicação

Para compilar é bem simples.
- Abra o DOS
- Abra o caminho C:\Java
- digite o comando javac soma.java
Obs.: Caso não de nenhum erro, o java vai comilar a aplicação. Note que na pasta aonde salvamos nossa aplicação, logo após a compilação, aparecera um outro arquivo .class (a aplicação ja compilada)

Agora para testar o aplicativo é simples.
- No caminho do DOS C:\Java digite:
java soma

RESULTADO!



Obs.: Não se preocupe com o código pois itemos trabalhar mais a fundo sobre isso nas proximas aulas. Apenas coloquei as descrições de cada linha de comando para quem tem mais interesses.
Espero que tenham gostado dessa primeira aula de Java. Iremos trabalhar muito mais em relação a esta linguagem de programação.

Duvidas e Sugestões > ettorefrancobr@gmail.com

Muito obrigado a todos.