Estão abertas as inscrições para o maior evento sobre EXTREME PROGRAMMING da
América Latina, a ser realizado em São Paulo entre os dias 21 e 23 de Julho
de 2004.
O maior Congresso de Tecnologia da Informação e Comunicações da América
Latina", ocorrerá de 17 a 19 de Agosto no Anhembi, em São Paulo - SP. O
objetivo é ser uma fonte completa e esgotar o assunto tecnologia, oferecendo
aos convidados todos os mais atuais temas relacionados ao universo da
Tecnologia da Informação.
Temas abordados:
- Segurança
- Gestão de Projetos
- Software Livre
- Java
- Business Intelligence
- Desenvolvimento de Projetos
- Gestão Estratégica de TI
- Aplicações
- Infra-Estrutura
- Telecomunicações
A Fatto estará presente no evento com o Tutorial: "Abordagens para Estimativas
de Projetos de Software - Sem Mágicas".
1. SWEBOK - SOFTWARE ENGINEERING BODY OF KNOWLEDGE
O projeto do Software Engineering Body of Knowledge, iniciado em 1998 com
o patrocínio do IEEE Computer Society e ACM, liberou no final do mês de Junho
a versão final do seu documento, o SWEBOK. Este documento serve como um
compêndio e guia para o corpo de conhecimento desenvolvido na área de
engenharia de sofware ao longo das últimas décadas.
2. SOFTWARE PROJECT METRICS: DEFINITION, GUIDELINES AND CONSIDERATIONS
Nesse artigo, Sean P. Logue discute a importância das métricas aplicadas aos
projetos de software com objetivos de melhoria dos processos. Apresenta uma
categorização simples e consistente das métricas de acordo com suas diversas
aplicações e defende uma avaliação rigorosa para a seleção das métricas que
são realmente relevantes para um determinado projeto.
Nesse artigo, David Longstreet defende a necessidade de procedimentos de
auditoria que possam validar a correta aplicação da APF nas organizações,
utilizando auditores "independentes" que possam agregar valor a uma contagem
em particular ou mesmo ao processo de contagem de pontos de função em uso.
Descreve como as evidências utilizadas pelos auditores devem ser avaliadas
para produzir um julgamento correto de determinada contagem e indica um
procedimento de avaliação que fornece as linhas gerais que devem conduzir
as auditorias.
R.: Assim como na edição anterior, o objetivo dessa questão é esclarecer as
diferenças de significados dados ao termo quando empregado na APF e de forma
genérica na área da tecnologia da informação, causando confusões frequentes
nos usuários da técnica.
Na área da tecnologia da informação, de maneira geral, o termo "aplicação"
é utilizado para designar um programa executável que cumpre um ou um conjunto
de objetivos específicos dos usuários. Como exemplos clássicos podemos citar a
Calculadora do Windows, o Word, o Contas a Pagar, etc.
Os desenvolvedores, por sua vez, costumam determinar o escopo das aplicações
segundo a segmentação física do software. Sendo assim, Um conjunto único de
funções relacionadas é separado segundo questões tecnológicas:
1) Os modos de execução física. Por exemplo, funções executadas batch ou on-line;
2) As plataformas físicas em que os subconjuntos de funções residem. Por exemplo,
mainframe ou PC (plataforma baixa);
3) As arquiteturas segundo as quais as aplicações são projetadas. Por exemplo,
desktop, cliente-servidor, web ou 3-tier.
Na análise de pontos de função uma aplicação é definida segundo a visão do
usuário e de acordo com considerações de negócio e não com questões técnicas.
Segundo o Manual de Práticas de Contagem (CPM), uma aplicação é um conjunto
coeso de dados e procedimentos automatizados que suportam um objetivo de
negócio, podendo consistir de um ou mais componentes, módulos ou subsistemas.
Frequentemente, o termo "aplicação" é utilizado como sinônimo para sistema,
sistema aplicativo ou sistema de informação.
Para a análise de pontos de função o correto entendimento do termo e, por sua
vez, a correta identificação de uma aplicação (delimitada por sua fronteira)
é a base para o emprego consistente da técnica, evitando superdimensionamentos
ou subdimensionamentos durante as contagens.
QUESTÕES DE CONTAGEM
P.: Como tratar o componente gráfico tipo drop-down nas contagens utilizando
APF?
R.: Para melhor responder esta pergunta, deve-se dividi-la em duas partes:
1) Contando drop-down como processo elementar
Cada componente gráfico tipo drop-down fornece a funcionalidade de apresentar
uma lista de valores. Este tipo de componente será tratado como uma CE
(Consulta Externa), desde que os dados sejam provenientes de uma simples
recuperação de um ALI (Arquivo Lógico Interno) ou um AIE (Arquivo de Interface
Externa). O comando referente à apresentação da lista, assim como as informações
apresentadas, são contados como Tipos de Dados e os ALIs e/ou AIEs referenciados,
como Arquivos Referenciados (exatamente da mesma forma que seriam considerados
em uma consulta em tela cheia).
Deve-se contar apenas um PE (Processo Elementar) ainda que o mesmo componente
gráfico seja utilizado em várias telas. No entanto, se houver dois componentes
que referenciem os mesmos arquivos e tiverem os mesmos tipos de dados, eles só
serão contados como um único PE se também tiverem a mesma lógica de processamento.
Um exemplo do caso em que apesar de haver coincidência nos itens de dados e
arquivos referenciados, mas uma lógica de processamento diferente entre dois
destes componentes gráficos é o caso em que há um drop-down que exibe a lista
de todos os clientes e outro que exibe apenas os clientes inadimplentes. Neste
caso, deve-se contar dois processos elementares, pois individualmente atendem
a regra de unicidade do Manual de Práticas de Contagem do IFPUG.
Componentes tipo drop-down estáticos ou com informações recuperadas de uma
tabela que não é reconhecida como um ALI ou um AIE não devem ser contados, mesmo
que seja um requisito de eficiência do usuário final.
Quando gerarem dados derivados ou conversões poderão até serem considerados como
SE (Saída Externa). Um exemplo seria um requisito do usuário que solicitasse que
os campos do tipo data tenham a opção de escolha através de calendário. Nesta
situação, mesmo que se use componentes fornecidos pelo ambiente de
desenvolvimento (VB, Delphi, etc), essa funcionalidade deve ser contada, pois o
requisito atende às definições de SE.
2) Contando drop-down nos processos elementares onde ele é utilizado (arquivos referenciados e tipos de dados)
Em uma tela de inclusão ou alteração de dados contendo drop-downs dinâmicos,
na prática, conta-se o arquivo referenciado do drop-down também, pois no momento
que o registro é salvo deve-se validar a existência
do elemento apontado pelo drop-down, pois ele pode não existir mais (por ter
sido apagado por outro usuário, por exemplo). Um questionamento que pode surgir
é o fato de que os bancos de dados relacionais já fazem isto de forma automática através
das consistências de restrições de integridade referencial. No entanto, deve
sempre ser lembrado que a APF não leva em consideração questões de implementação.
Além do mais, isso precisa ser configurado pelo desenvolvedor durante a
construção do banco de dados para que essa consistência tenha efeito.
Já em uma tela de consulta com simples navegação não se deve contar o arquivo
referenciado pelo componente tipo drop-down, a menos que este arquivo seja
utilizado para outro fim. Contudo, em telas de consulta com filtro onde o
usuário pode escolher o item para filtragem em um drop-down, será contado o
arquivo referenciado do drop-down se no momento de aplicar o filtro à consulta
for um requisito do usuário que seja feita uma validação com o item escolhido no drop-down.
Em relação à contagem dos tipos de dados, o CPM costuma abordar os drop-downs
com um campo código ao seu lado, que guarda o identificador do item escolhido (um
exemplo está na página 2-54 na parte 3 do CPM 4.2). Assim, deve-se contar apenas
o campo código como tipo dado do processo elementar que o utiliza, pois os demais
já foram contados na CE referente ao componente tipo drop-down. No entanto, os
sistemas modernos normalmente utilizam o componente drop-down de maneira solitária,
com o objetivo de substituir a digitação dos identificadores do item escolhido.
Nestes casos, deve-se contar como tipos de dados estes identificadores do
drop-down em questão.