Desenvolvimento de Um Sistema Completo

Download Desenvolvimento de Um Sistema Completo

Post on 09-Aug-2015

35 views

Category:

Documents

5 download

TRANSCRIPT

VB.NET - Desenvolvimento de um sistema completo

http://www.macoratti.net/vbn_essc1.htm

VB.NET - Estimativa de preo com Anlise de Pontos de Funo - APFEste uma srie de artigos onde voc vai acompanhar todo o ciclo de desenvolvimento de um sistema completo em VB.NET. Iremos acompanhar o ciclo de vida do projeto para Manuteno de clientes que ser desenvolvido em VB.NET com acesso a uma base de dados Access.

Como voc j deve saber, o desenvolvimento de um projeto de software no uma tarefa trivial, e, esta bemdistante de sentar na frente de um terminal de vdeo e sair codificando a esmo. Se voc no acredita no que eu estou falando talvez acredite em dados estatsticos; O CHAOS Report de 2003 apresentou as seguintes estatsticas: Somente 34% dos projetos de software so bem sucedidos; 15% dos projetos foram cancelados; 43% o erro mdio em relao ao oramento do projeto daqueles que foram completados; 52% das caractersticas (requisitos no funcionais) e funcionalidades so entregues no produto.

Na verdade se voc quiser desenvolver software com qualidade dever adotar um processo de desenvolvimento de software. Um processo de software pode ser entendido como um conjunto estruturado de atividades exigidas para desenvolver um sistema de software. Assim Sommerville[1] trs a seguinte definio: "[O processo ] um conjunto de atividades e resultados associados que produzem um produto de software". Jalote[7] conclui que um processo de software : " um conjunto de atividades, ligadas por padres de relacionamento entre ela, pelas quais se as atividades operarem corretamente e de acordo com os padres requeridos, o resultado desejado produzido. O resultado desejado um software de alta qualidade e baixo custo. Obviamente , um processo que no aumenta a produo (no suporta projetos de software grandes) ou no pode produzir software com boa qualidade no um processo adequado." A partir destas definies podemos considerar que de forma geral um processo de software padro pode ser visto como um conjunto de atividades, mtodos, ferramentas e prticas que so utilizadas para construir um produto de software. Na definio de um processo de software devem ser consideradas as seguintes informaes: atividades a serem realizadas, recursos necessrios, artefatos requeridos e produzidos, procedimentos adotados e o modelo de ciclo de vida utilizado [3]. Sucintamente podemos definir o processo de software (defini-lo(o processo) como um conjunto de atividades uniformizadas a serem aplicadas sistematicamente que se encontram agrupadas em fases, cada uma das quais com os seus intervenientes com responsabilidades, que possui diversas entradas e produz diversas sadas. Isto , define quem faz o qu, quando e como para atingir um certo objetivo. Humphrey[4] define as seguintes razes para a definio de um processo padro: Reduo dos problemas relacionados a treinamento, revises e suporte ferramentas; As experincias adquiridas nos projetos so incorporadas ao processo padro e contribuem para melhorias em todos os processos definidos; Economia de tempo e esforo na definio de novos processos adequados a projetos.

Fases de um processo de SoftwarePara Schwartz[5] as principais fases de um processo de software so : 1. Especificao de Requisitos: traduo da necessidade ou requisito operacional para uma descrio da funcionalidade a ser executada. 2. Projeto de Sistema: traduo destes requisitos em uma descrio de todos os componentes necessrios para codificar o sistema. 3. Programao (Codificao): produo do cdigo que controla o sistema e realiza a computao e lgica envolvida. 4. Verificao e Integrao (Verificao): verificao da satisfao dos requisitos iniciais pelo produto produzido. Ao contrrio do que possa parecer no existe uma sequncia obrigatria de fases, sendo que diversos autores apontam a natureza no-simultnea das fases como uma realidade na aplicao de processos de software, e tambm defendem que o processo de software muito mais iterativo e cclico do que a idia de fases simples pode sugerir.[6]

Atividades do Processo de SoftwareEm cada fase de um processo de software definido so executadas as atividades bsicas para que sejam atingidos os objetivos propostos. Segundo Pressman[2] estas atividades constituem um conjunto mnimo para se obter um produto de software. Realizando uma combinao de classificaes dadas por Schwartz[5] , Pressman[2] e Sommerville[1] podemos identificar as seguintes atividades[6]:

1 de 8

27/01/2013 01:54

VB.NET - Desenvolvimento de um sistema completo http://www.macoratti.net/vbn_essc1.htm 2. Anlise de Requisitos: levantamento das necessidades do software a ser implementado. A Anlise temcomo objetivo produzir uma especificao de requisitos, que convencionalmente um documento. 3. Especificao de Sistema: descrio funcional do sistema. Pode incluir um plano de testes para verificar adequao. 2. Projeto 1. Projeto Arquitetural: onde desenvolvido um modelo conceitual para o sistema, composto de mdulos mais ou menos independentes. 2. Projeto de Interface: onde cada mdulo tem sua interface de comunicao estudada e definida. 3. Projeto Detalhado: onde os mdulos em si so definidos, e possivelmente traduzidos para pseudo-cdigo. 3. Implementao 1. Codificao: a implementao em si do sistema em uma linguagem de computador. 4. Validao 1. Teste de Unidade e Mdulo: a realizao de testes para verificar a presena de erros e comportamento adequado a nvel das funes e mdulos bsicos do sistema. 2. Integrao: a reunio dos diferentes mdulos em um produto de software homogneo, e a verificao da interao entre estes quando operando em conjunto. 5. Manuteno e Evoluo 1. Nesta fase, o software em geral entra em um ciclo iterativo que abrange todas as fases anteriores. Desta forma as atividades relacionadas a um processo de software esto diretamente vinculadas com a produo do software como produto final . Afim de especificar quais atividades devem ser executadas e em qual ordem temos diversos modelos de desenvolvimento de software.

extra-software.

Sistema de Manuteno de ClientesDescrio do sistema: - Em um sistema de manuteno de clientes um usurio (funcionrio de empresa) registra as entradas, alteraes, excluses e sadas(relatrio) dos dados relativos a um cliente da empresa no sistema. Qualquer usurio da empresa poder acessar o sistema e efetuar o cadastramento.(No haver controle de acesso no sistema). Ser emitido um relatrio de todos os clientes cadastrados e dos dados de um determinado cliente. Caractersticas do sistema: - O sistema ir permitir o acesso sem restries para qualquer usurio da empresa , no havendo portanto controle de acesso. - No existe qualquer interface com outros sistemas existentes - Devero ser cadastrados os seguintes dados de um cliente: Nome , endereo, Cidade , Cep , Telefone , Email e Observaes. - O nome do cliente , endereo , cidade , cep e email so obrigatrios e devero ser sempre informados Lista de ator(es): Usurio (funcionrio da empresa) Casos de uso identificados

1. Exibir Clientes Cadastrados 2. Efetuar Manuteno de clientesDiagrama de caso de uso simplificado:

Para sobreviver no mercado voc deve produzir um produto de qualidade com um preo competitivo. No adiante trabalhar de graa e nem superestimar o preo do seu produto. Voc tem que ser gil para poder saber quanto cobrar a partir do tamanho do sistema que voc vai desenvolver. Para saber o tamanho do sistema voc deve realizar medies de tamanho do software a ser desenvolvido. Uma das formas de alcanar este objetivo realizar estimativas de tamanho, custo, esforo e qualidade de software. Geralmente esta estimativa feita com base em um histrico de informaes de experincias passadas que so usadas para embassar as tomadas de decises feitas durante o ciclo de desenvolvimento do projeto. Para tornar tal procedimento confivel necessrio estabelecer um processo sistemtico que pode ser repetido e ser usado para realizar comparaes. O roteiro obtido com a sistematizao destes passos se configura em uma mtrica.

2 de 8

27/01/2013 01:54

VB.NET - Desenvolvimento de um sistema completo

padro est descrito pelo IFPUG em seu Manual de Prticas de Contagem.

http://www.macoratti.net/vbn_essc1.htm

Empiricamente as principais tcnicas de estimativa de projetos de desenvolvimento de software assumem que o tamanho de um software um vetor importante para a determinao do esforo para sua construo. Logo, saber o seu tamanho um dos primeiros passos do processo de estimativa de esforo, prazo e custo. Da importante destacar que pontos de funo no medem diretamente esforo, produtividade ou custo. exclusivamente uma medida de tamanho funcional do software. Este tamanho em conjunto com outras variveis que poder ser usado para derivar produtividade, estimar esforo e custo." www.fattocs.com.br/faq.htm

Vamos ento utilizar a tcnica de anlise de pontos de funo para estimar o preo que voc dever cobrar do seu cliente para desenvolver o sistema para manuteno de clientes. Encare a situao da seguinte forma : voc foi solicitado a dar um oramento para desenvolver o sistema e no pode demorar ou vai perder o servio. Voc resolveu usar APF- Anlise de Pontos de Funo, como uma ferramenta de apoio para determinar o tamanho funcional da aplicao adotando os seguintes procedimentos: 1. definio do escopo do sistema manuteno de clientes 2. estimativa do tamanho funcional da aplicao 3. estimativa do custo e esforo para desenvolvimento

Determinar o tamanho funcional do sistema a ser desenvolvido usando APFEntidades e funes do processo de manuteno de clientes 1- Usurio (funcionrio) - Gesto do cadastro de clientes 2- Cadastros - Clientes A tecnologia usada no sistema para manuteno de cliente ser a plataforma desktop usando a linguagem Visual Basic .NET envolvendo 3 camadas : camada de dados , camada de aplicao e camada de apresentao. O propsito da contagem verificar se vivel o desenvolvimento do sistema. Com a estimativa de tamanho do sistema pretende-se estimar o custo de desenvolvimento com objetivo de fornecer uma estimativa de oramento ao cliente que solicitou o seu desenvolvimento. Para alcanar o objetivo de estimativa de tamanho ser feita uma contagem estimativa segundo o modelo proposto pelo IFPUG. Vamos usar o processo de contagem conforme preconiza o manual do IFPUG para determinar o nmero de pontos por funo de um projeto de software. Como no objetivo deste artigo entrar nos detalhes do processo de contagem vou apenas descrever as etapas do processo. Etapas do processo de contagem da APF:

A figura 2 apresenta uma viso geral dos tipos de funo que so considerados na contagem da APF.(grfico retirado de http://www.inf.ufes.br/~falbo/download/aulas/es-g/2005-1/APF.pdf )

3 de 8

27/01/2013 01:54

VB.NET - Desenvolvimento de um sistema completo

http://www.macoratti.net/vbn_essc1.htm

1- Determinar o tipo de Contagem Para o nosso caso estamos efetuando a medida de um projeto de desenvolvimento. 2- Identificar as fronteiras da aplicao A fronteira separa o que interno e externo a uma aplicao sendo contada. Confina os dados lgicos que so mantidos pela aplicao e ajuda na identificao dos dados lgicos que so referenciados, mas no mantidos por ela; No nosso exemplo a aplicao manuteno de clientes muito simples, e, portanto podemos representar a fronteira da aplicao da seguinte forma: A fronteira da aplicao manuteno de clientes. Nota: A aplicao no acessa nem acessada por programas externos.

3- Determinar Funes do tipo dadoO sistema usa o banco de dados Cadastro.mdb e a tabela Clientes que possui a seguinte estrutura: Para determinar se a tabela Clientes um ALI devemos fazer duas perguntas : um grupo lgico de dados identificvel pelo usurio ? Sim. mantido por um processo elementar dentro da fronteira da aplicao ? Sim. A aplicao possui somente um ALI. Aps identificar os ALI e AIE devemos classificar a funo de acordo com sua complexidade funcional . Para alcanar este objetivo devemos determinar :

1. Nmero de Tipos de Dados (TD) - um campo nico , reconhecido pelo usurio , no repetido 2. Nmero de Tipos de Registros (TR) - um subgrupo de tipo de dados , reconhecido pelo usurio,componente de um ALI ou AIE. Aps determinar as quantidades de tipos de dados e tipos de registros, devemos classificar a complexidade de acordo com a seguinte tabela: Tipos de Dados Tipos de Registros 1 2-5 >5 < 20 20 - 50 Baixa Baixa Baixa Mdia Mdia Alta > 50 Mdia Alta Alta

Aps determinar a complexidade dos arquivos , devemos calcular sua contribuio conforme a seguinte tabela: Tipo de Funo Arquivo Lgico Interno ALI Baixa 7 PF Mdia 10 PF Alta 15 PF

4 de 8

27/01/2013 01:54

VB.NET - Desenvolvimento de um sistema completoDeterminao dos AIE

http://www.macoratti.net/vbn_essc1.htm

AIE - Arquivo de interface externa - um grupo de dados logicamente relacionados que usado pela aplicao mas sofre manuteno a partir de outra aplicao. A aplicao no tem nenhum AIE. Com contribuio de 0 PF. 4- Determinar as funes do tipo Transao As funes do tipo transao representam a funcionalidade fornecida ao usurio para atender os requisitos da aplicao. So classificadas como :

1. Entradas Externas - EE - Processa as informaes e/ou dados recebidos de fora da fronteira da aplicao 2. Saidas Externas - SE - Envia dados ou informaes para fora da fronteira da aplicao 3. Consultas Externas - CE - Envia dados ou informaes de controle para fora da fronteira da aplicao.Cada funo do tipo transao deve ser classificada com relao a sua complexidade funcional em :

1. Nmero de Arquivos Referenciados - AR - Um ALI lido ou mantido pela funo do tipo transao ouum AIE lido pela funo do tipo transao.

2. Nmero de Tipos de Dado - TD - Um campo nico , reconhecido pelo usurio, no repetido.Aps determinar a quantidade de AR e TD da aplicao podemos definir a sua complexidade de acordo com as seguintes tabelas: Tabela de complexidade para Entradas Externas: Tipos de Dados Arquivos Referenciados 2 15 Mdia Alta Alta

Tabela de complexidade para Sadas Externas e Consultas Externas: Tipos de Dados Arquivos Referenciados 3 19 Mdia Alta Alta

Determinando a quantidade de AR e TD da aplicao Vamos criar uma tabela para indicar quais as funes do tipo transao identificada e para cada uma delas a quantidade de AR e TD. Funo Cadastro de Clientes - Incluir - Alterar - Excluir - Listar - Consultar Tipo AR TD

EE EE EE SE CE

1 1 1 1 1

7 7 7 10 (*) 8

5 de 8

27/01/2013 01:54

Total dos Pontos um sistema para as VB.NET - Desenvolvimento dede funo completo funes O total geral dos

de tipo transao da aplicao : 16 PF http://www.macoratti.net/vbn_essc1.htm

pontos de funo no ajustados para a aplicao de 23 PF ( 16 + 7 )

Clculo do fator de ajuste O valor do fator de ajuste (VFA) baseado em 14 caractersticas gerais de sistema listadas abaixo:

1. COMUNICAO DE DADOS: Quando so utilizados recursos de Comunicao de Dados para o envio ourecebimento de dados e informaes de controle utilizados pela aplicao;

2. PROCESSAMENTO DISTRIBUDO: Quando a aplicao prev a distribuio de dados ou deprocessamento entre vrias CPUs da instalao;

3. PERFORMANCE: Esta caracterstica identifica os objetivos de performance da aplicao, estabelecidos e 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.aprovados pelo usurio, que influenciaram (ou iro influenciar) o desenho, desenvolvimento, implantao e suporte da aplicao; UTILIZAO DO EQUIPAMENTO: Representa a necessidade de se fazer consideraes especiais no desenho dos sistemas para que a configurao do equipamento no sofra degradao; VOLUME DE TRANSAES: Avalia o impacto no desenho da aplicao do volume de transaes previsto para ela; ENTRADA DE DADOS "ON-LINE": Avalia o volume de transaes que so entradas de dados interativas; EFICINCIA DO USURIO FINAL: Analisa as funes "on-line" desenhadas e disponibilizadas voltadas para a eficincia do usurio final; ATUALIZAO "ON-LINE": Verifica o volume de arquivos lgicos internos que sofrem manuteno "on-line" e o impacto do processo de recuperao de seus dados; PROCESSAMENTO COMPLEXO: Considera o impacto, sobre o desenho da aplicao, causado pelo tipo de complexidade do processamento; REUTILIZAO DE CDIGO: Avalia se a aplicao e seu cdigo foram especificamente projetados e desenvolvidos para serem reutilizados em outras aplicaes; FACILIDADES DE IMPLANTAO: Considera o esforo gasto para o atendimento dos requerimentos de converso de dados para a implantao da aplicao; FACILIDADE OPERACIONAL: Avalia o desenho da aplicao quanto aos requisitos estabelecidos para inicializao, "backup" e recuperao voltados minimizao da interveno manual do operador; MLTIPLOS LOCAIS: Quando a aplicao for especificamente projetada e desenvolvida para ser instalada em mltiplos locais ou para mltiplas organizaes; FACILIDADES DE MUDANAS: Quando os requisitos da aplicao prevem o projeto e desenvolvimento de mecanismos que facilitem mudanas operacionais, tais como: capacidade de emisso de relatrios genricos, de consultas flexveis ou de alteraes nos dados de controle do negcio (parametrizao).

Cada uma destas caractersticas possui um nvel de influncia sobre a aplicao que pode variar em um intervalo de zero a cinco( 0 a 5):

0 1 2 3 4 5

-

Nenhum Influncia Influncia Mnima Influncia Moderada Influncia Mdia Influncia Significativa Grande Influncia

Aps determinar os nveis de influncia das 14 caractersticas gerais o fator de ajuste calculado com a

6 de 8

27/01/2013 01:54

1 8 VB.NET - Desenvolvimento de um 4 sistema completo 2 3 4 5 6 7

0 0 3 0 0 0

9 10 11 12 13 14

Valor Total =>

0 2 0 4 3 0 4 20

http://www.macoratti.net/vbn_essc1.htm

Chegamos portanto a um nvel de influncia igual a 20. Calculando o fator de ajuste pela frmula

VFA = ( NI x 0,01) + 0,65 temos:

VFA = (20 x 00,1 ) + 0,65 = 0,85 O valor do fator de ajuste igual a

0,85.

Portanto o nmero de pontos de funo para o projeto obtido da seguinte forma: NPF = PFNA * VFA onde temos

NPF = 27 * 0,85 = 22,95PFNA - No de pontos de funo No ajustados VFA -

Onde : NPF - nmero de pontos de funo valor do fator de ajuste

Finalmente conseguimos obter uma medida para o tamanho da nossa aplicao. O seu tamanho igual a

22,95 PF.Lembre-se que apenas uma estimativa pois estamos na fase inicial de desenvolvimento do projeto. E agora o que eu fao com isto ??? Qual o preo de um ponto de Funo ? Os Pontos de Funo (PF) so apenas uma unidade de medida , assim como eu digo que um projeto tem 100 PF , eu tambm digo que um imvel tem 100 m2 de rea construda. Quanto tempo vai demorar para construir e quanto vai custar um imvel com 100 m2 de rea construda ? Depende. Existem diversos fatores que podem afetar uma estimativa de prazo e custo. Da mesma forma eu posso dizer : Quanto tempo vai demorar para construir e quanto vai custar o projeto "Cadastro de Clientes" com 100 PF ? A resposta a mesma. Percebeu o significado dos Pontos de Funo ? Se um construtor fosse estimar o prazo e o preo do imvel com 100 m2 de rea a construir , ele poderia basear sua estimativa na sua experincia passada. Fazendo uma comparao do imvel atual com algum imvel similar j construdo. Diversos fatores teriam que ser levando em conta : se um imvel trreo ou sobrado , quantos quartos , banheiros , janelas , portas , tipo de telhado , tipo de acabamento , tipo de material hidrulico , eltrico , se h a necessidade de aterro , etc..

7 de 8

27/01/2013 01:54

VB.NET - Desenvolvimento de um sistema completo APF amparada pelo IFPUG e partir de 2002 passou a condio de padro http://www.macoratti.net/vbn_essc1.htm reconhecida e de fcil utilizao (Ainternacional atravs da norma ISSO/IEC 20926) , mais cedo voc vai poder realizar estimativas com maior preciso.

Quanto mais cedo voc comear a medir e a formar uma base histrica de medidas baseada em um mtrica

Referncias:[CMMI02] CMMI Product Team. CMMI for Software Engineering, Version 1.1, Staged Representation (CMMI-SW, V1.1, Staged). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2002. Available from World Wide Web: http://www.sei.cmu.edu/publications/documents/02.reports/02tr029.html [IFPUG99] THE INTERNATIONAL FUNCTION POINT USERS GROUP, Princeton Junction. Function Point Counting Practices Manual release 4.1. [s.l.], 1999. [ISO01] THE INTERNATIONAL ORGANIZATION FOR STANDARDIZATION. ISO/IEC 15939; Software Engineering Software Measurement Process. [s.l.], 2001. [PAULK93] PAULK, Mark C. et al. Key Practices of the Capability Maturity Model SM , Version 1.1. (CMU/SEI93-TR-025). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1993. Available from World Wide Web: http://www.sei.cmu.edu/publications/documents/93.reports/93.tr.025.html GQM - http://sel.gsfc.nasa.gov/website/exp-factory/gqm.htm acessado em 21 de setembro de 2005-09-21 HAZAN - Implatano de um Processo de medies de software - http://www.bfpug.com.br/Artigos /Palestra%20_Medicoes%20Claudia%20Hazan.pdf

8 de 8

27/01/2013 01:54

Recommended

View more >