• Nenhum resultado encontrado

presenta o processo de identificação da estrutura gramatical do programa e do reconhe- cimento da função de cada um dos seus componentes. A análise sintática é realizada baseada em um conjunto de regras sintáticas que definem a gramática da linguagem de programação. O analisador sintático é um programa que, para uma dada gramática, ele aceita como entrada uma sentença - lista de símbolos ou tokens - e constrói para ela uma árvore gramatical. Ou, caso a sentença não pertença à linguagem descrita por essa gramá- tica, uma indicação de erro. A ação final do processo de tradução é a geração do programa objeto, a qual é realizada através da escrita das instruções em linguagem de máquina.

Muitas vezes, dependendo do compilador, as análises léxica, sintática e a geração do programa objeto, não são efetuadas em ordem sequencial. A Figura 2.2 apresenta o formato de compilação em que o analisador léxico começa o processo identificando o primeiro token e fornecendo-o ao analisador sintático. Já com a identificação da estrutura que vem a seguir, o analisador sintático solicita ao analisador léxico o próximo token. À medida que o analisador sintático reconhece sentenças ou comandos completos, ele chama o gerador de código, para que este possa produzir as correspondentes instruções em linguagem de máquina.

Figura 2.2: Interação entre analisador léxico e sintático

2.3

Qualidade de Software

A fim de alcançar níveis cada vez mais altos de qualidade de software torna-se neces- sário melhorar cada etapa de seu ciclo de vida [Paul Oman & Pfleeger 1996]. Um dos alvos de pesquisa dos últimos anos tem sido sobre a avaliação da qualidade de software.

Essa tem como objetivo maior obter a garantia da qualidade seja em um produto inter- mediário do processo de desenvolvimento ou em um produto final. Com a existência de uma direta correlação entre a qualidade de produtos de software e a qualidade do pro- cesso através do qual o software é desenvolvido, a área de estudos em qualidade pode ser dividida em dois ramos [Rocha 2001]:

• Qualidade de produtos de software: procura assegurar a qualidade dos produtos gerados.

• Qualidade de processos de software: visa à avaliação e melhoria de processos de desenvolvimento.

Torna-se fundamental adequá-la aos objetivos específicos da organização e do pro- duto [Gomes & et al. 2000]. Ou seja, qualidade não deve ser entendida como perfeição de software. Qualidade é um conceito que abrange vários níveis, realizado por um conjunto de atributos, representando vários aspectos relacionados ao produto como o seu desenvol- vimento, manutenção e o próprio uso. Qualidade é algo executável, relativo, dinâmico e evolutivo, adequando-se ao nível dos objetivos a serem atingidos [Simão 2002]. Geral- mente, a qualidade dos produtos de software é avaliada através de modelos de avaliação de qualidade. Esses modelos armazenam e organizam as propriedades do produto que está sendo avaliado. Dentre vários modelos de avaliação, existem dois mais utilizados e aceitos no mercado, são eles:

• CMMI (Capability Maturity Model Integration), proposto pelo CMM (Capability Maturity Model) [Al-Kilidar et al. 2005];

• Norma ISO/IEC 9126: Proposta pela ISO (International Organization for Standar- dization) [Chrissis et al. 2003].

A CMMI está incluída na qualidade do produto e na norma ISO/IEC 9126, referente à qualidade do produto.

2.3.1

Norma ISO/ IEC 9126

A série de normas ISO/ IEC 9126 (NBR 13596) representam a atual padronização mundial para a qualidade de software e do produto, descrevendo um modelo de qualidade para produtos de software, categorizando a qualidade em um conjunto de características e subcaracterísticas que devem ser atendidas para que o produto seja classificado como de qualidade. Esta série também propõe métricas que podem ser utilizadas durante a

2.3. QUALIDADE DE SOFTWARE 21 avaliação dos produtos de software (medição, pontuação e julgamento dos produtos de software).

A série de normas ISO/IEC 9126 pode ser aplicada nas seguintes ocasiões [Quintela et al. 2006]:

• Definição dos requisitos de qualidade de um produto de software;

• Avaliação das especificações do software durante o desenvolvimento a fim de veri- ficar se os requisitos de qualidade estão sendo atendidos;

• Descrição das características e atributos do software;

• Avaliação do software desenvolvido antes da entrega ao cliente.

Esse modelo de qualidade categoriza os atributos do software em seis características [Quintela et al. 2006]: funcionalidade, confiabilidade, usabilidade, eficiência, facilidade de manutenção e portabilidade. Dentro dessas seis características, estão presentes subca- racterísticas que tornam o modelo de qualificação mais preciso e convincente.

2.3.2

CMMI - Capability Maturity Model Integration

O framework CMMI foi criado com o objetivo de ajudar organizações envolvidas com o desenvolvimento de softwares, através de um modelo evolucionário. Além disso, tem por objetivo principal funcionar como um guia para a melhoria dos processos da organi- zação, considerando para isto atividades como o gerenciamento do desenvolvimento de software, prazos e custos previamente estabelecidos. O objetivo maior, considerando o CMMI e seus diferentes conceitos, está justamente na produção de software com maior qualidade e menos propenso a erros.

Para isso, o CMMI está dividido em cinco níveis de maturidade que confirmam, por sua vez, o grau de evolução em que uma organização se encontra num determinado mo- mento, consistindo em uma série de metas que, quando satisfeitas, consolidam um com- ponente importante do processo.

• Nível 1 (Inicial) - O processo é caracterizado como sendo imprevisível e caótico, com inexistência de padrões;

• Nível 2 (Gerenciado) - Processos básicos de gerenciamento de projeto são estabe- lecidos, com o planejamento, a medição e o controle dos diferentes processos; • Nível 3 (Definido) - Os processos já estão definidos e são compreendidos. Todos os

projetos utilizam uma versão aprovada e adaptada do processo organizacional para desenvolvimento e manutenção de produtos e serviços tecnológicos;

• Nível 4 (Quantitativamente Gerenciado) - Métricas detalhadas dos processos e dos projetos são coletadas. Tanto os processos como os projetos são quantitativamente compreendidos e controlados;

• Nível 5 (Em otimização) - A melhoria contínua do processo é estabelecida por meio de sua avaliação quantitativa, e da implantação planejada e controlada.

Documentos relacionados