Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AMAURY CSSIO BALDIM ANDR LUZ SILVA DIEGO CAIXETA RODRIGUEZ SIMONIDES ZACARIAS ALVES JUNIOR
Alfenas/MG 2009
AMAURY CSSIO BALDIM ANDR LUZ SILVA DIEGO CAIXETA RODRIGUEZ SIMONIDES ZACARIAS ALVES JUNIOR
Monografia apresentada para concluso do Curso de Cincia da Computao da Universidade Jos do Rosrio Vellano. Orientador: Prof. Celso de vila Ramos
Alfenas/MG 2009
AMAURY CSSIO BALDIM ANDR LUZ SILVA DIEGO CAIXETA RODRIGUEZ SIMONIDES ZACARIAS ALVES JUNIOR
Monografia defendida e aprovada em __/__/____ pela banca examinadora constituda pelos professores:
Dedico este trabalho, primeiramente, a Deus, aos meus pais, meus irmos e, claro, a minha namorada, que me ajudaram incondicionalmente nesta etapa da vida. Amaury Cssio Baldim
Dedico este trabalho a Deus, a meus pais e irmo, a minha namorada e aos meus amigos pelo apoio que me deram ao longo desses anos, pois em momentos importantes de minha vida, eles sempre se fizeram presentes com palavras de encorajamento e afeto. Andr Luz Silva
Dedico este trabalho a Deus, aos meus pais, familiares e amigos que sempre apoiaram, acreditaram e me deram o auxilio fundamental em mais esta fase de minha vida. Diego Caixeta Rodriguez
Dedico este trabalho a Deus, em especial a minha av, minha me e meu pai, que me apoiaram em todas as fases dos meus estudos. Simoniades Zacarias Alves Junior
Enquanto voc no se der valor, no valorizar seu tempo. Enquanto no der valor ao tempo, no far nada de importante. (M. Scott Peck)
RESUMO O desenvolvimento a partir de metodologias e processos que ajudam a modelar e construir sistemas esto em constante crescimento, mas ainda continua sendo uma atividade complexa e demorada. Os processos abordados neste presente trabalho permitem conduzir um projeto de maneira consistente e com isso vem ganhando cada vez mais adeptos devido a esta caracterstica. Ser mostrada atravs do desenvolvimento de uma aplicao web, a comparao entre os processos XP (Extreme Programming) e UP (Unified Process). Esta aplicao em questo, desenvolvida em ambos os processos para efeitos de comparao utilizando a plataforma Microsoft Visual Studio, um simples site institucional de uma boutique. Os resultados obtidos so descritos no desenvolvimento dos projetos, e comparados para se chegar a uma concluso sobre o uso dos dois processos. Conclui-se que o processo XP se mostrou mais eficaz, gil e de custo baixo, no desenvolvimento de um projeto de pequeno porte. J o UP acaba sendo invivel devido suas prticas que suportam projetos grandiosos. Palavras-chave: XP (Extreme Programming). UP (Unified Process). Aplicao Web.
ABSTRACT The development from methodologies and processes that help shape and build systems are constantly growing, but still remains a complex and time consuming. The processes addressed in this investigation capable of leading a project in a manner consistent with that is gaining more fans because of this feature. It will be shown through the development of a web application, the comparison between the processes XP (Extreme Programming) and UP (Unified Process). This application in question, developed in both cases for comparison purposes using the Visual Studio platform, is an institutional site of a boutique. The results are described in project development, and compared to arrive at a conclusion on the use of two processes. Concluded that the XP process is more effective, flexible and low cost in developing a small project. Since the UP has been impossible due to their practices that support grand projects. Keywords: XP (Extreme Programming).UP (Unified Process). Web applications.
LISTA DE FIGURAS FIGURA 1: Prticas do Processo XP .......................................................................................24 FIGURA 2: Fases do Processo XP ...........................................................................................29 FIGURA 3: Fases do Processo Unificado ................................................................................38 FIGURA 4: Fases dos Processos XP e UP em relao s atividades genricas de desenvolvimento.......................................................................................................................43 FIGURA 5: Histrias XP escritas pelo Cliente. .......................................................................45 FIGURA 6: Cronograma ..........................................................................................................45 FIGURA 7: Modelo ER............................................................................................................46 FIGURA 8: Projeto dividido em Releases ...............................................................................47 FIGURA 9: Cadastro de Roupas ..............................................................................................49 FIGURA 10: Listagem das Roupas ..........................................................................................50 FIGURA 11: Detalhes da Roupa ..............................................................................................50 FIGURA 12: Adicionado a excluso de Roupas ......................................................................51 FIGURA 13: Adicionado a edio de Roupas .........................................................................52 FIGURA 14: Requisitos Principais ..........................................................................................53 FIGURA 15: Escopo do Projeto...............................................................................................54 FIGURA 16: Casos de Uso preliminares .................................................................................55 FIGURA 17: Requisitos No-Funcionais.................................................................................56 FIGURA 18: Cronograma da Iterao 1 ..................................................................................56 FIGURA 19: Requisitos Refinados ..........................................................................................58 FIGURA 20: Riscos .................................................................................................................59 FIGURA 21: Detalhes do Risco ...............................................................................................59 FIGURA 22: Casos de Uso Expandidos ..................................................................................60 FIGURA 23: Estrutura geral do Site ........................................................................................61 FIGURA 24: Estrutura da pgina Principal..............................................................................62 FIGURA 25: Demais Pginas do Site ......................................................................................63 FIGURA 26: Modelo ER..........................................................................................................64 FIGURA 27: Dicionrio de Dados Tabela Produtos .............................................................65 FIGURA 28: Banco de Dados Microsoft Access.....................................................................66 FIGURA 29: Estrutura criada e liberada para o cliente............................................................67 FIGURA 30: Pgina inicial do Administrador .........................................................................68 FIGURA 31: Login para a rea administrativa ........................................................................69 FIGURA 32: Tempo gasto em cada Fase do XP......................................................................73 FIGURA 33: Tempo gasto em cada Fase do UP......................................................................73
LISTA DE ABREVIATURAS XP - Extreme Programming UP - Unified Process MA - Modelagem gil FDD - Feature-Driven Development CRC - Class, Responsibility and Collaboration OMG - Object Management Group UML - Unified Modeling Language A/POO - Anlise e Projeto Orientados a Objeto SQL - Structured Query Language VB - Visual Basic CSS - Cascading Style Sheets HTML - Hyper Text Markup Language ER - Entidade Relacionamento
Entendendo a viso global ...................................................................................................................... 34 Organizando o esforo de desenvolvimento............................................................................................ 35 Facilitando as possibilidades do reuso .................................................................................................... 35 Facilitando e evoluo do sistema........................................................................................................... 35 Dirigindo os casos de uso........................................................................................................................ 36 Iterativo e incremental ................................................................................................................................. 36 Benefcios................................................................................................................................................ 37 2.2.3 As quatro fases.................................................................................................................................... 37 Concepo.................................................................................................................................................... 38 Elaborao ................................................................................................................................................... 39 Construo ................................................................................................................................................... 39 Transio...................................................................................................................................................... 40
4 DESENVOLVIMENTO DO SISTEMA............................................................................43
4.1 Descrio geral do sistema ....................................................................................................... 43 4.2 Desenvolvimento utilizando o XP ............................................................................................ 44
4.2.1 Comunicao ...................................................................................................................................... 44 Fase de Planejamento................................................................................................................................... 44 4.2.2 Planejamento....................................................................................................................................... 45 Fase de Planejamento................................................................................................................................... 45 4.2.3 Modelagem ......................................................................................................................................... 46 Fase de Projeto............................................................................................................................................. 46 4.2.4 Construo .......................................................................................................................................... 47 Fase de Codificao ..................................................................................................................................... 47 4.2.5 Implantao......................................................................................................................................... 52 Fase de Teste................................................................................................................................................ 52
5 RESULTADO E DISCUSSES.........................................................................................71
5.1 Comunicao ............................................................................................................................. 71 5.2 Planejamento............................................................................................................................. 71
5.3 Modelagem ................................................................................................................................ 71 5.4 Construo................................................................................................................................. 72 5.5 Implantao............................................................................................................................... 72 5.6 Outras comparaes ................................................................................................................. 72
15
1 INTRODUO
Atualmente, a cada dia aumenta a demanda por sistemas cada vez mais sofisticados em um pequeno intervalo de tempo, visando satisfazer as necessidades das mais diversas reas. Porm, desenvolver software ainda uma atividade difcil, demorada e arriscada. Dois processos de desenvolvimento de software vm ganhando cada vez mais adeptos devido as suas caractersticas que permitem conduzir um projeto de maneira consistente: Programao Extrema (Extreme Programming ou XP) e Processo Unificado (Unified Process ou UP).
1.2 Objetivo
Este trabalho tem como objetivo, apresentar os fundamentos bsicos de desenvolvimento de software adotando as regras e prticas dos processos Programao Extrema e Processo Unificado, bem como suas caractersticas e benefcios. Portanto, ser desenvolvido um mesmo projeto real, adotando estes dois processos, para anlise de diversos fatores.
16
17
2 REFERENCIAL TERICO
2.1 MODELAGEM GIL
Analisando o cenrio atual de desenvolvimento de software observa-se uma situao um pouco desconfortvel, longe daquilo que se deseja. A grande maioria dos sistemas no satisfaz os requisitos dos clientes, quando entregues, geralmente j estouraram o oramento ou esto atrasados. Pensando em reverter esse quadro, um grupo inicial de 17 metodologistas formou a Agile Software Development Alliance em fevereiro de 2001. Um ponto interessante deste grupo que todos vieram de diferentes reas de formao e ainda assim so capazes de concordar em questes nas quais os metodologistas normalmente no concordam. Tal grupo definiu um manifesto contendo quatro declaraes de valores, visando amenizar o problema encontrado no desenvolvimento de software, encorajando melhores meios para o desenvolvimento. Os valores do Manifesto gil so: Indivduos e interaes valem mais que processos e ferramentas. Um software funcionando vale mais do que documentao extensa. A colaborao do cliente vale mais que a negociao de contrato. Responder a mudanas vale mais que seguir um planejamento.
O importante a se entender que enquanto voc deve valorizar os conceitos do lado direito, voc deve valorizar ainda mais os do lado esquerdo. Uma boa maneira de pensar sobre o manifesto que ele define preferncias, no alternativas, encorajando o enfoque de certas reas, mas sem eliminar outras [...] (AMBLER, 2004, p.23).
A MA descreve as habilidades necessrias para realizar uma modelagem eficaz como parte de projetos de software que precisam ter agilidade e oferecer qualidade aos clientes. um processo baseado na prtica que descreve como um modelador gil deve ser. Um modelo gil um modelo inteligvel, bom o suficiente, nada mais, que atende seu propsito; ele suficientemente preciso, consistente e detalhado visando prover um valor positivo e de maneira to simples quanto possvel.
18
Em outras palavras, modelagem gil no um processo prescritivo, no havendo, portanto, especificaes de como se deve elaborar um modelo para o desenvolvimento de um determinado software, uma forma efetiva de se trabalhar em conjunto para atingir as necessidades das partes interessadas no projeto. A MA uma mistura de mtodos simples de modelagem com a ordem vital de atributos de modelagem de software. A eficincia de um processo de desenvolvimento est na sua modelagem, portanto extremamente importante haver comunicao eficaz dentro de uma equipe de desenvolvimento, assim como entre os clientes do projeto. A Modelagem gil no significa menos modelagem; na verdade, muitos desenvolvedores acharo que esto fazendo mais modelagem MA do que antes. Pense na MA como uma arte, no uma cincia [...] (AMBLER, 2004, p.25). Se por um lado h casos em que a modelagem em projetos de software no existe gerando produtos mal projetados, em outros ela excessiva, tirando o foco do desenvolvimento de software, tornando-o lento ou fazendo que at mesmo pare. A MA conduz o desenvolvedor a encontrar um ponto mdio, no qual se modela o suficiente para concluir seu sistema de forma satisfatria, mas no a ponto de tornar isso uma carga e retardar o projeto. Existem vrios processos geis tais como, o XP que uma abordagem deliberada e disciplinada para desenvolvimento de software, a FDD que possui requisitos e passos mais formais que o XP, alm de possuir um mecanismo mais preciso para o acompanhamento do projeto, o SCRUM que um processo para construir software incrementalmente em ambientes complexos, onde os requisitos so vagos ou mudam com freqncia, entre outros.
19
Coragem
Extremamente importante, pois, voc no apenas escolhe uma estratgia gil, mas precisa mant-la quando dificuldades aparecerem, necessitando mudar de direo quando decises se mostrarem inadequadas.
Retorno
O nico modo de determinar se o seu trabalho est correto obtendo retorno (feedback), o que tambm inclui retorno em relao aos seus modelos. (AMBLER, 2002, p.37).
Humildade
Modeladores geis tm a humildade de respeitar as pessoas com as quais trabalham, percebendo que talvez possuam outras prioridades e experincias e, portanto, tero pontos de vista diferentes. Deve-se ter a humildade de reconhecer que no se conhece ou se sabe tudo, ento explorar o conhecimento dos membros do grupo pode ser muito vantajoso para a equipe de desenvolvimento.
Simplicidade
Modele apenas para satisfazer as necessidades atuais e o faa da maneira mais simples possvel, ou seja, nunca modele demais.
20
Valores do XP
XP caracteriza pelo desenvolvimento rpido e visa a satisfao do cliente, alm de favorecer o cumprimento das estimativas, gerando um ambiente timo de desenvolvimento de software para seus seguidores, que so guiados por quatro valores: Comunicao, Simplicidade, Feedback e Coragem. Ns teremos xito quando tivermos um estilo que contempla um conjunto consistente de valores que servem para necessidades tanto humanas quanto comerciais: comunicao, simplicidade, feedback e coragem (BECK, 2004, p.45). Comunicao Valor mais importante do XP. A comunicao feita entre desenvolvedores/cliente e desenvolvedores entre si. Segundo Beck (2004, p.45) quando analisamos os problemas que ocorreram nos projetos, vemos que muitos deles foram provocados por algum que no conversou com outro
21
algum sobre alguma coisa importante. Essa comunicao deve ser muito bem feita para que no haja problemas futuros no desenvolvimento. A partir dessa comunicao que se obtm o retorno esperado para a soluo do problema proposto pelo cliente. De acordo com mesmo autor, a m comunicao no acontece por acaso. Existem muitas circunstncias que levam a um colapso nas comunicaes. A equipe deve trabalhar de forma intensa para que nada passe por despercebido e que informaes mal passadas no aconteam entre a equipe. Simplicidade Tratar cada problema da maneira simples possvel, a XP recomenda que os trabalhos de hoje sejam resolvidos hoje e que os desenvolvedores confiem em suas habilidades. [...] O valor da simplicidade, que nos ensina a implementar apenas aquilo que suficiente para atender a cada necessidade do cliente [...] (TELES, 2006, p.22). Feedback O feedback uma importante estratgia para que o cliente d o retorno esperado para a equipe de desenvolvimento. Segundo Beck (2004) o feedback concreto trabalha justamente com a comunicao e a simplicidade. Quanto mais feedback voc tiver, mais fcil para comunicao, pois a medida que o cliente e a equipe se comunicam obtm-se o progresso do projeto. Coragem O XP por ser nova e se basear em premissas que diferem das tradicionais, exige coragem a equipe. Beck (2004) cita que quando combinada com a comunicao, simplicidade e feedback concreto, a coragem se torna importante. Os outros valores com a combinao da coragem conseguem fazer com que os desenvolvedores sejam audaciosos em projetos simples.
22
[...] A equipe precisa ser corajosa e acreditar que utilizando as prticas e valores do XP, ser capaz de fazer o software evoluir com segurana e agilidade. (TELES, 2006, p.23).
23
Escopo Um escopo menor faz com que seja possvel fornecer maior qualidade (desde que o problema do negcio do cliente ainda seja resolvido). Tambm permite que voc entregue o produto mais cedo e mais barato. (BECK, 2004, p.34). O XP baseia o escopo na negociao entre clientes e desenvolvedores. O escopo fornece aos desenvolvedores as funcionalidades do sistema que sero desenvolvidas.
As 12 prticas do XP
Das quatro variveis: Custo, Tempo, Qualidade e Escopo, resultam em doze prticas na XP (12 mandamentos): [...] onde uma prtica fraca, os pontos fortes de outras prticas compensaro essa fraqueza [...] (BECK, 2004, p.65). A Figura 1 mostra o conjunto de atividades que as equipes do XP tm como base para seu desempenho, dando-as mais confiana em suas prticas, uma vez que os pontos fracos de uma prtica so compensados pelos pontos fortes de outra. Aplicadas em conjunto, o desenvolvimento de software funciona melhor, tornando mais eficaz.
24
Padro de Cdigo
Programao em Par
Refatorao
Jogo de Planejamento
Integrao Contnua
Design Simples
Rtimo Sustentvel
Metforas
Pequenas Verses
O jogo do planejamento Todo o projeto em XP dividido em releases e iteraes. No incio de cada release e de cada iterao ocorre o jogo do planejamento. Trata-se de uma reunio onde o cliente avalia as funcionalidades que devem ser implementadas e prioriza aquelas que faro parte do prximo release ou da prxima iterao. Entregas freqentes Em um perodo curto de tempo o desenvolvedor entrega uma nova verso do sistema ao cliente. Beck (2004) afirma que cada verso entregue ao cliente deve ter o tamanho menor possvel, contendo os requisitos de maior valor para o negcio.
25
A verso entregue precisa atender como um todo ao negcio, [...] Voc no pode implementar meia funo e entreg-la, s para tornar mais curto o ciclo de entrega [...] (BECK, 2004, p.67). Metfora A metfora o poder de transmitir idias complexas de forma simples, atravs de uma linguagem comum que estabelecida entre a equipe de desenvolvimento e tambm para o cliente. A metfora apenas ajuda todos os envolvidos no projeto a entenderem os elementos bsicos e seus relacionamentos. (BECK, 2004, p.68). Projeto simples Segundo Beck (2004), o projeto deve ser projetado da maneira mais simples o possvel em qualquer momento. A complexidade desnecessria removida assim que for descoberta. O XP descarta projetos complexos. Entre dois projetos: um simples e outro mais complexo, mas que tenham basicamente a mesma funo, o mais simples sempre adotado. Testes Os programadores escrevem testes de unidade continuamente, os quais devem executar sem falhas para que o desenvolvimento prossiga. Os clientes escrevem testes de funcionalidade demonstrando que as funes esto terminadas. (BECK, 2004, p.66). Toda funo contida no sistema tem que passar por um teste. Segundo Beck (2004), qualquer aspecto/funo do programa que no tenha um teste automatizado, simplesmente no existe. O resultado de se testar continuamente que o sistema se torne cada vez mais confivel com o tempo.
26
Refatorao Os programadores reestruturam o sistema sem alterar seu comportamento a fim de remover duplicidade, melhorar a comunicao, simplificar e acrescentar flexibilidade. (BECK, 2004, p.66). Na refatorao, os desenvolvedores adicionam uma nova funo ao sistema de forma simples, no prejudicando a funcionalidade do sistema e tambm mantendo todos os testes em execuo aps esta adio. Programao em pares Todo cdigo de produo programado com duas pessoas olhando para uma mquina, com um teclado e um mouse (BECK, 2004, p.69). A programao em par a que mais se destaca dentre as 12 prticas da XP. Diante de cada computador existem sempre dois desenvolvedores que trabalham juntos para produzir um s cdigo. Esta prtica permite que o cdigo seja revisado continuamente na fase de construo. Propriedade coletiva No XP os cdigos no so individuais, ou seja, os cdigos no ficam de responsabilidade por apenas um desenvolvedor especfico da equipe. Segundo Beck (2004), qualquer um da equipe pode modificar qualquer cdigo, em qualquer lugar do sistema, a qualquer momento. O mesmo autor ainda afirma que, todos so responsveis pelo sistema inteiro. Integrao contnua No XP faz-se necessrio a integrao do cdigo para melhor sincronizao dos desenvolvedores. [...] o cdigo integrado e testado aps algumas horas no mximo um dia de desenvolvimento [...] (BECK, 2004, p.70). Na equipe XP, os pares trabalham de forma isolada, porm integram o que produzem com a verso mais recente do cdigo.
27
Segundo Beck (2004), Uma maneira simples de fazer isso ter uma mquina dedicada apenas integrao. [...] um par com o cdigo para ser integrado a ocupa, baixa a verso atual, baixa as modificaes (conferindo e resolvendo qualquer coliso) e executa os testes at que eles passem (100% certos). (BECK, 2004, p.70). Semana de 40 horas
Pessoas diferentes tm tolerncias diferentes para o trabalho. Uma pessoa capaz de agentar 35 horas de trabalho concentradas, outra, 45. Mas ningum consegue agentar 60 horas por semana durante muitas semanas, e ainda estar disposto, criativo, cuidadoso e confiante. No faa isso (BECK, 2004, p.71).
O XP usa a prtica de trabalho de 40 horas semanais para que a produo dos desenvolvedores da equipe seja mais evolutiva. Cliente presente O cliente tambm faz parte da equipe XP, pois ele que dir quais as funcionalidades que precisam ser implementadas. Beck (2004) afirma que um cliente real deve ficar com o time, estar disponvel para resolver questes, resolver disputas e definir prioridades de menor escala. Padres de codificao Voc ter todos esses programadores trabalhando em tantas partes diferentes do sistema, trocando de duplas vrias vezes por dia e refatorando os cdigos uns dos outros constantemente, voc no pode ter conjuntos diferentes de prticas de codificao. Com um pouco de prtica, ser impossvel dizer qual pessoa do time escreveu que cdigo (BECK, 2004, p.72). A equipe XP obtm um padro de codificar para que todos os desenvolvedores possam manipular qualquer parte do software de forma mais rpida.
Caractersticas da equipe XP
Uma equipe que utiliza o XP composta por pessoas que realizam o seguinte trabalho: Gerente de projeto, Coach, Analista de teste, Redator Tcnico e Desenvolvedor.
28
Gerente de projeto O gerente do projeto responsvel pelos assuntos administrativos do projeto. (TELES, 2006, p.29). Atividades que no esto relacionadas diretamente sobre o projeto e a administrao da relao com o cliente para assegurar que ele sempre estar ativo no projeto, so responsabilidades do gerente de projeto. Coach O coach o responsvel tcnico do projeto. O XP recomenda que um profissional tecnicamente bem preparado seja destacado para orientar a equipe de modo que ela siga as boas prticas recomendadas pelo XP. (TELES, 2006, p.29). Analista de teste O analista de teste ajuda o cliente a escrever os testes. [...] quando estes testes no so automatizados, o analista de teste deve fazer com que eles sejam executados diversas vezes ao longo das iteraes do projeto. (TELES, 2006, p.29). Redator tcnico O redator tcnico quem faz a maior parte da documentao. Segundo Teles (2006), O redator tcnico ajuda a equipe de desenvolvimento a documentar o sistema. A sua presena permite que os desenvolvedores se concentrem, prioritariamente na implementao do software. Desenvolvedor O desenvolvedor a pessoa que analisa, projeta e codifica o sistema. (TELES, 2006, p.29). a pessoa que realmente constri o software.
29
As quatro fases
O XP adota uma abordagem orientada a objetos como seu padro de desenvolvimento predileto. Inclui um conjunto de regras e prticas que ocorrem no contexto de quatro atividades: Planejamento, Projeto, Codificao e Teste (FIGURA 2).
Planejamento As atividades de planejamento comeam com a criao de um conjunto de histrias (PRESSMAN, 2006), definindo caractersticas e funcionalidades requeridas para o software a ser construdos. As histrias so escritas pelos clientes e so anexados em um carto de indexao junto com um valor atribudo pelo prprio cliente, que vai determinar sua prioridade. De acordo com Pressman (2006), os membros da equipe XP avaliam cada histria e lhe atribuem um custo. Se a histria precisar mais do que trs semanas de desenvolvimento, pede-se ao cliente para dividir a histria em histrias menores e a atribuio de valor e custo ocorre novamente.
30
medida que o trabalho de desenvolvimento prossegue, o cliente pode adicionar histria, mudar o valor de uma histria, subdividir histrias e elimin-las (PRESSMAN, 2006). Projeto O projeto XP segue rigorosamente o princpio KIS (Keep It Simple mantenha a simplicidade) (PRESSMAN, 2006). O projeto simples sempre prefervel em relao a uma representao complexa. Nessa fase, o projeto fornece diretrizes de implementao para uma histria como ela est escrita, nada mais, nada menos. De acordo com Pressman (2006), o XP encoraja o uso de cartes CRC como mecanismo efetivo para raciocinar sobre o software no contexto orientado a objeto. Com o uso dos cartes, so identificadas e organizadas as classes orientadas a objeto que so relevantes para o incremento. O XP recomenda a criao imediata de um prottipo operacional quando um problema difcil encontrado. De acordo com o mesmo autor, o prottipo denominado solues de ponta. A inteno diminuir o risco quando a implementao verdadeira comea e validar as estimativas originais correspondentes histria que contm o problema de projeto. Codificao Pressman (2006) cita que depois que as histrias forem desenvolvidas e o trabalho preliminar de projeto for feito, a equipe no avance para o cdigo, mas, em vez disso, desenvolva uma srie de testes unitrios. Os testes unitrios exercitaro cada uma das histrias que devem ser includas na verso atual. De acordo com o mesmo autor, o XP recomenda que duas pessoas trabalhem juntas em uma estao de trabalho de computador para criar o cdigo correspondente a uma histria. A programao em pares um conceito-chave durante a atividade de codificao.
31
Teste Os testes unitrios que so criados devem ser implementados usando um arcabouo que lhes permita serem automatizados, conseqentemente, eles podem ser executados fcil e repetidamente (PRESSMAN, 2006). Conforme os testes unitrios vo sendo organizados em uma seqncia universal de testes, o teste de integrao e validao do sistema pode ocorrer diariamente. Isso fornece equipe XP uma indicao contnua de progresso e tambm pode levantar sinais de alerta se as coisas estiverem de deteriorando. Pressman (2006) diz que os testes de aceitao XP, tambm chamados de testes de cliente, so especificados pelo cliente e focalizam as caractersticas e funcionalidades do sistema global que so visveis e passveis de reviso do cliente.
32
33
Deve-se, principalmente, a estes trs princpios, a consagrao e estabilizao deste Processo no mercado.
Centrado na arquitetura
A arquitetura uma viso de todos os modelos que juntos representam o sistema como um todo (SCOTT, 2003). O conceito de arquitetura de software engloba os aspectos estticos e dinmicos mais significantes do sistema que explicitam exatamente como cada Componente construdo e
34
como este se relaciona com os demais. [...] A arquitetura tambm se refere a questes como desempenho, escalabilidade, reuso e restries econmicas e tecnolgicas. (SCOTT, 2003, p.21). De qualquer modo, a arquitetura tambm influenciada por muitos outros fatores, como a plataforma na qual o software ser implantado, os blocos de construo reutilizveis, requisitos de desenvolvimento e requisitos no funcionais. A arquitetura uma viso do sistema como um todo, destacando suas caractersticas mais importantes, mas sem entrar em detalhes.
O que significante em um sistema depende do ponto de vista de cada desenvolvedor e que muitas vezes uma opinio sensata esta ligada experincia, o valor da arquitetura depende das pessoas que esto ligadas ao desenvolvimento do sistema (JACOBSON, 1999, p.46).
Altos graus de manutenibilidade, flexibilidade e expansibilidade, tornando-se um fator fundamental aps a adoo da internet como um principal meio de comunicao, para que a equipe de desenvolvimento possa atender as demandas que surgem em um intervalo de tempo cada vez menor. Outra idia implcita, mas central para a UP, o uso de tecnologias orientadas a objetos, incluindo a A/POO e programao orientadas a objetos (LARMAN, 2004, p.42). A descrio da arquitetura iniciada cedo com a equipe de projeto que posteriormente a expande e refina durante praticamente todas as atividades de projeto (SCOTT, 2003, p.22), assim a arquitetura deve ser projetada a ponto que o sistema evolua, no apenas durante o seu desenvolvimento, mas tambm atravs de geraes futuras. Para alcanar este objetivo, os arquitetos devem trabalhar com as funes chaves de sistema. Estes so apenas 5% a 10 % do total de casos de uso, porm, os mais significantes, aqueles que constituem o ncleo de funes do sistema. Entendendo a viso global A arquitetura tem como propsito facilitar o entendimento da arquitetura em construo.
35
[...] a modelagem rigorosa e a legibilidade dos diagramas UML, associadas ao texto de apoio, contribuiro para tornar a descrio da arquitetura o eixo central para um melhor entendimento da viso global do novo sistema. (SCOTT, 2003, p.22). Organizando o esforo de desenvolvimento
Uma arquitetura sadia define, explicitamente, pores discretas do sistema, bem como as interfaces entre as vrias partes deste. Faz uso efetivo, tambm, de um ou mais padres arquitetnicos, os quais ajudam a dar forma ao esforo de desenvolvimento em vrios nveis. [...] (SCOTT, 2003, p.22).
Facilitando as possibilidades do reuso No desenvolvimento baseado na utilizao de componentes, um dos princpios fundamentais a idia de reutilizao destes componentes, com um mnimo relativo de customizao.
[...] Uma arquitetura de software bem construda oferece "estrutura" (framework) slida na quais os componentes podem residir e trabalhar uns com os outros de modo elegante, ao mesmo tempo em que facilita s equipes que esto trabalhando na construo de outros sistemas identificar oportunidades para possvel reuso de qualquer um dos componentes ou de todos. [...] (SCOTT, 2003, p.23).
Ainda tendo em vista o grau de modularidade, uma arquitetura deve ser elaborada considerando diversos nveis de abstrao. Quanto menor a abstrao de um componente, maior ser seu potencial de reuso. Esta caracterstica fundamental pode ser alcanada atravs da utilizao de frameworks, um conjunto de classes abstratas e concretas com alto grau de especializao. [...] quanto menos tempo for necessrio construo de novos componentes, mais tempo haver para entender os problemas dos clientes e modelar as solues. (SCOTT, 2003, p.23). Facilitando e evoluo do sistema Na construo de um software gasto um determinando tempo que conseqentemente menor do que o tempo necessrio para manter e expandir o sistema. Em tempos que a tecnologia evolui rapidamente e os tempos de negocio mudam com uma grande freqncia, no h duvidas de que um sistema estar sujeito a mudanas evolucionrias de uma enorme magnitude.
36
No entanto, ter uma arquitetura slida oferece um conjunto de pontos de referncia essenciais sobre os quais o trabalho de desenvolvimento futuro poder se apoiar. Uma arquitetura construda de modo que as mudanas em uma parte do sistema quase nunca provoquem efeitos adversos sobre outras partes, tambm contribuir para a evoluo efetiva e eficiente do sistema. (SCOTT, 2003, p.23). Dirigindo os casos de uso A relao existente entre casos de uso e a arquitetura que os casos de uso esto ligados a funcionalidade de um sistema e a arquitetura, por sua vez est ligada forma deste. [...] A idia bsica, ento, focar aqueles casos de uso que agregaro valor arquitetura, o que por sua vez ajudar a dar forma ao contedo daqueles casos de uso e natureza do trabalho envolvido no desenvolvimento do sistema a partir deles. (SCOTT, 2003, p.23). A arquitetura fornece um ambiente para a realizao de todos os requisitos dos casos de uso. Os casos de uso devem ser desenvolvidos de acordo com a arquitetura, com isso funcionalidade e forma devem estar balanceadas para se alcanar um produto final de qualidade.
Iterativo e incremental
Uma das vrias prticas promovidas pelo UP que mais se destaca, o desenvolvimento iterativo e incremental. O desenvolvimento organizado em uma srie de iteraes. Cada iterao considerada um mini-projeto, que possui suas prprias atividades de anlise de requisitos, projeto, implementao e teste. O objetivo da iterao oferecer uma melhora incremental ao sistema. De acordo com Larman (2004), o ciclo de vida iterativo baseado em refinamentos e incrementos de um sistema por meio de mltimplas iteraes, com realimentao (feedback) e adaptao cclicas como principais propulsores para convergir para um sistema adequado.
37
A razo pela qual este princpio conhecido como iterativo e incremental, est no crescimento incremental ao longo do tempo, iterao por iterao. Benefcios um progresso lgico para que uma arquitetura robusta seja alcanada. Durante as iteraes iniciais, uma arquitetura candidata proposta. Sua evoluo ser uma fundao slida para o restante do sistema. Em contraste com metodologias que seguem o paradigma do Processo Cascata, onde todos os requisitos so levantados no inicio e nunca mais revisados, o UP prev a negociao progressiva de requisitos, priorizando aqueles que representam riscos mais altos ao projeto. Possibilita maior flexibilidade para que mudanas ocorram no plano de atuao da equipe de desenvolvimento. Uma avaliao ao final de uma iterao permite isolar um eventual problema identificado e lidar com ele em uma escalada reduzida, sem propagar seus efeitos. Caso o incremento de uma iterao seja um componente ou mdulo, este integrado aos demais existentes. Uma integrao muitas vezes representa a conquista de mais um requisito. A evoluo do trabalho torna-se mais evidente aos interessados. Por fim, a natureza iterativa permite que novos integrantes da equipe de desenvolvimento iniciem suas atividades sem que sejam submetidos a treinamentos extensos que cubram todo o projeto.
38
Concepo
O principal objetivo da fase de concepo estabelecer a viabilidade do sistema proposto (SCOTT, 2003, p.27), definindo como o sistema ser utilizado por cada usurio, atravs da criao de casos de uso mais relevantes. No entanto a partir deste escopo ser definido o que o projeto dever cobrir como prazos, custos, retornos de investimentos, etc. Segundo Scott (2003, p.27), o esforo empenhado na fase de concepo poder evitar o fracasso do projeto atravs da identificao previa de riscos. A causa do fracasso de muitos projetos o fato de riscos crticos serem encontrados tarde demais, geralmente ocorre durante a fase de integrao, etapa de testes, quando no se h mais tempo nem oramento para revises. [...] O principal marco associado com a fase de concepo chamado objetivos do ciclo de vida. (SCOTT, 2003, p.27), na qual devem ser analisados para decidir se o desenvolvimento deve prosseguir em plena escala.
39
Elaborao
O principal objetivo da base de elaborao estabelecer a capacidade para construo do novo sistema, dadas as restries financeiras e de cronograma [...] (SCOTT, 2003, p.28), ento, a maioria dos requisitos remanescentes so capturados e transformados em casos de uso. Para alcanar seu objetivo, o sistema deve ser estudado mais amplamente do que profundamente, ou seja, segundo Scott (2003), nesta fase deve ser concebida uma viso abrangente do sistema. Isto envolve o estudo da maior parte dos casos de uso envolvidos, cerca de 80%. No final desta fase, estaro definidos o escopo e os objetivos detalhados do sistema, a escolha da arquitetura e soluo para os principais riscos. Com isso, as informaes necessrias para a fase de construo estaro disponveis.
Construo
O principal objetivo da fase de construo construir um sistema capaz de operar bem em ambientes beta de clientes (SCOTT, 2003, p.28). O trabalho inicia com base na arquitetura executvel, produzida durante a fase de elaborao e prossegue atravs de iteraes e incrementos, com objetivo de desenvolver um produto pronto para operaes iniciais no ambiente de usurio, ou seja, a verso beta. Durante a fase de construo so detalhados os casos de usos remanescentes e a descrio arquitetural modificada quando necessrio. Esta fase se concentra em corrigir defeitos e modificar o sistema para corrigir problemas no identificados previamente. (SCOTT, 2003, p.28). Enquanto as fases de concepo e elaborao esto ligadas diretamente modelagem do sistema, a fase de construo caracterizada pelo desenvolvimento, isto , a construo de um sistema ou produto dentro dos parmetros de custos e prazos.
40
Transio
O principal objetivo da fase de transio entregar o sistema completamente funcional aos clientes (SCOTT, 2003, p.28), estabelecendo o produto no ambiente operacional do cliente. A fase de transio procura por deficincias mnimas que passaram despercebidas pela fase de construo que possam ser corrigidas dentro da arquitetura existente, outra tarefa da fase de transio a disponibilidade de treinamentos que possibilitaro o cliente utilizar o produto de forma eficiente. O principal marco associado fase de transio a chamada liberao do produto. (SCOTT, 2003, p.29).
41
3 MATERIAL E MTODOS
Para demonstrar as diferenas entre o uso dos processos XP e UP, o presente trabalho utilizar as ferramentas Microsoft Visual Studio 2005 e 2008, banco de dados Microsoft SQL Server 2005 e Microsoft Office Access 2003, linguagem de programao C# e VB.NET e Adobe Fireworks CS3.
3.4 Linguagem C#
C# (CSharp) uma linguagem de programao orientada a objetos criada pela Microsoft, que faz parte da sua plataforma .NET. A companhia baseou C# na linguagem C++ e Java.
42
3.6 Fireworks
O Fireworks um editor de imagens desenvolvido pela Macromedia, posteriormente adquirido pela Adobe. Suas funcionalidades focam a publicao grfica na Internet, por isso inclui suporte a GIF animado, PNG e imagens fatiadas, alm de possuir tima compresso de imagens. A partir da verso MX, ganhou integrao com outros produtos da mesma linha, Dreamweaver, Flash e Freehand.
3.7 Etapas
As etapas (mtodos) que sero utilizados para o desenvolvimento da aplicao sero: Etapa 1: Levantamento bibliogrfico e estudo do assunto em foco. Etapa 2: Definies do aplicativo a ser desenvolvido. Etapa 3: Desenvolvimento do aplicativo usando as tecnologias especificadas. Etapa 4: Anlise completa do aplicativo desenvolvido. Etapa 5: Concluso do trabalho e consideraes finais.
43
4 DESENVOLVIMENTO DO SISTEMA
Neste captulo ser descrito as fases de desenvolvimento de ambos os processos. Para melhor entendimento posteriormente, sero encaixadas as fases de cada processo, nas atividades genricas de desenvolvimento que so: Comunicao, Planejamento, Modelagem, Construo e Implantao (FIGURA 4).
Programao Extrema (XP)
PLANEJAMENTO
PROJETO
CODIFICAO
TESTE
COMUNICAO
PLANEJAMENTO
MODELAGEM
CONSTRUO
IMPLANTAO
CONCEPO
ELABORAO
CONSTRUO
TRANSIO
44
O site contm uma interface grfica (layout) simples e de fcil acesso, sendo separada a parte de folhas de estilo, o CSS, da linguagem HTML.
45
Com a escrita das histrias, o cliente estimulado a pensar na melhor funcionalidade do sistema, conseqentemente, um melhor levantamento de requisitos. Restante das histrias escritas se encontra no Apndice A.
1
Planejamento Projeto Codificao Teste
FIGURA 6: Cronograma
46
ROUPAS
ACESSRIOS
FIGURA 7: Modelo ER
O dicionrio de dados foi criado para demonstrar a consistncia entre os dados nas diferentes tabelas. Com isso, buscou-se padronizao, organizao e estruturao em relao s definies do sistema. Essas definies indicam como os elementos de dados foram armazenados. Veja os detalhes no Apndice B. Foi criado tambm um diagrama de classes para usar no cdigo do projeto. Ver detalhes Apndice C.
47
Releases
R1
R2
R3
R4
1 Semana
R5
R6
R7
R8
Uma iterao basicamente um pequeno espao para a implementao de um conjunto de histrias do usurio. No trabalho, as iteraes foram divididas em dias. A principal diferena entre releases e iteraes que iterao est contida em cada release. O cliente tem opo de mudar cada release, mas no tem direito de mudar a iterao, j que depois que definida a iterao, os requisitos j estariam bem entendidos e os processos de desenvolvimento comeariam.
48
O encerramento de cada iterao foi mostrado para o cliente. Com isso, o cliente fez os testes de aceitao que foram escritos em cada iterao. O release encerrado depois da ltima iterao realizada pelo cliente. As distribuies de cada release ficaram desta maneira: R1: Foi feito o cadastro de roupas, R2: Alterao das roupas, R3: Excluso das roupas, R4: Consulta das roupas, R5: Cadastro de acessrios, R6: Alterao dos acessrios, R7: Excluso dos acessrios, R8: Consulta dos acessrios. A parte de codificao do projeto foi realizada em pares. Em um projeto XP, os desenvolvedores sempre utilizam esta tcnica de programao. A programao em par uma tcnica na qual dois programadores trabalham em um mesmo problema, no mesmo computador. Enquanto um membro assume o teclado e codifica, o outro acompanha, ajudando na codificao, correo entre outros. Foi visto que com a programao em pares diminui os erros j que programando com dois programadores fica mais difcil de passar alguma coisa despercebida, foi comprovado tambm que programar em par teve um grande ganho no tempo, porque na hora que aparece algum problema o colega consegue lhe ajudar na maioria das vezes. A programao em pares muito til para se conseguir um software de qualidade podendo ser usado no s no XP, mas tambm em outros processos. Dentro dos releases foram feitas as iteraes e foram estabelecidas assim: Iterao do R1 cadastro de roupas: O Banco de dados das roupas teve os seguintes atributos (cdigo, marca, cor, preo, descrio, imagem original, imagem, imagem pequena, tamanho da roupa). Feito a escolha dos atributos foi feito a stored procedure para a insero de dados no banco e os testes. Depois disto, foram submetidos ao cliente, que verificou se a operao s quando os atributos tiveram o aval do cliente passou-se para parte de codificao. Para se criar o cadastro, foi desenvolvido uma e dentro desta foi codificado o cadastro, utilizando a programao em pares. Depois disso voltou-se novamente para o cliente. Quando o cadastro atingiu o gosto do cliente, foram feitos os testes e passou-se para o prximo release.
49
Iterao do R2 consulta das roupas: Primeiramente foi criada uma stored procedure para a consulta de dados no banco juntamente com os testes necessrios para a integridade dos dados. Depois disto foi levado para o cliente verificar se ficou ao seu critrio. S quando os atributos tiveram o aval do cliente passou-se para parte de codificao. Para se criar a consulta, foi utilizada prpria pgina de cadastro. Para a codificao desta, utilizou-se a programao em pares. Depois disso voltou-se novamente para o cliente. Quando o cadastro atingiu o gosto do cliente foram feitos os testes e passou-se para o prximo release.
50
Iterao do R3 excluso das roupas: Foi criado a stored procedure para a excluso dos dados no banco juntamente com os testes. Depois disto foi levado para o cliente verificar
51
se ficou ao critrio s quando os atributos tiveram o aval do cliente passou-se para parte de codificao. Para se criar a excluso das roupas, foi utilizada prpria pgina de cadastro, para codificar a pgina utilizou-se de programao em pares. Depois disso voltou-se novamente para o cliente quando o cadastro atingiu o gosto do cliente foram feitos os testes e passou-se para o prximo release.
Iterao do R4 alterao das roupas: Foi criada uma stored procedure para a alterao de dados no banco e seus respectivos testes. Depois disto foi levado para o cliente verificar se ficou ao critrio. S quando os atributos tiveram o aval do cliente passou-se para parte de codificao. Para se criar a alterao, foi utilizada prpria pgina de cadastro. Para a codificao desta, utilizou a programao em pares. Depois disso volta-se novamente para o cliente quando o cadastro atingiu o gosto do cliente foram feitos os testes e passou-se para o prximo release.
52
As iteraes dos acessrios seguem o mesmo modelo feito com as iteraes das roupas, sendo desnecessrio descrev-las aqui novamente em detalhes. As histrias foram priorizadas pelo cliente e, conseqentemente, as ordens do que seria feito.
4.2.5 Implantao
A implantao do sistema foi realizada durante a fase de construo, onde a mesma entregue para o cliente durante o trmino de cada iterao no final do release. Neste, o cliente faz todos os testes de aceitao. As demais pginas que compe o site podem ser visualizadas no Apndice D.
Fase de Teste
Os testes foram realizados durante todo o projeto sendo, estes, testados no final de cada iterao.
53
Requisitos Principais Apresentao da empresa Informaes sobre a empresa Cadastro de produtos (roupas/assessrios) Demonstrao dos produtos por categorias Informaes detalhadas sobre os produtos Informaes para contato FIGURA 14: Requisitos Principais
54
Com a declarao do escopo, definido o que est dentro e o que est fora do projeto, de maneira clara e sem ambigidades, ou seja, o que exatamente o sistema far e o que ele no far (FIGURA 15).
ESCOPO Apresentao da Empresa Cadastro de Clientes Informaes sobre a Empresa Cadastro de Produtos Vendas On-line de Produtos Demonstrao dos produtos por categorias Informaes detalhadas sobre os Produtos Controle de Estoque Informaes para Contato
55
Visualizar Produtos
Para estes casos de uso, a necessidade do ator Visitante visualizar os produtos e seus detalhes. J o administrador, gerenciar estes produtos, adicionando, editando ou excluindo os mesmos. O prximo passo foi definir os requisitos no-funcionais que descrevem como o sistema deve ser feito atravs da anlise de alguns padres como a portabilidade, desempenho, segurana, dentre outros (FIGURA 17). Definiu-se tambm, os atributos como restries ou a qualidade do sistema, lembrando que a qualidade afeta diretamente a satisfao do cliente.
Requisitos No-Funcionais Portabilidade Site implementado nas ferramentas Microsoft Visual Studio 2008 utilizando a linguagem de programao VB.NET. Segurana Somente pessoas cadastradas como administrador do sistema poder realizar todas as tarefas administrativas do site. Realizar controle de acesso via autenticao. A base de dados encontra-se protegida, para acesso apenas dos desenvolvedores. Desempenho O tempo de resposta do site no deve exceder 30 segundos. Ao efetuar algum tipo de cadastro, o mesmo no dever exceder 60 segundos.
56
Maturidade O site dever funcionar vinte e quatro horas por dia, sete dias por semana. Possuir Sistema de Tolerncia a Falhas/Recuperao de Falhas, sendo enviadas mensagens de ocorrncias aos desenvolvedores. Facilidade de Entendimento Possuir tutorial com informaes de detalhes para a rea administrativa do site. Realizar treinamentos com o cliente. Operabilidade O site dever ser visualizado nos browsers Internet Explorer verso 7 ou superior e Mozilla Firefox verso 2 ou superior. Comportamento de Recursos A aplicao ir rodar na Internet com no mximo um total de 50 registros dirios com um crescimento mensal em torno de 10%.
Com a definio do cronograma foi possvel obter um melhor nvel de gerenciamento, onde so controladas todas as atividades a serem executadas durante o perodo estimado e podem-se levantar os custos do projeto. A utilizao do cronograma foi uma excelente ferramenta para controle do tempo de trabalho e do ritmo de produo (FIGURA 18).
Agosto Setembro Outubro Novembro Dezembro
1
Concepo Elaborao Construo Transio
57
Fase de Elaborao
Na fase de elaborao obteve-se uma viso mais abrangente do sistema, onde os requisitos so refinados, os casos de uso so expandidos e uma base arquitetnica slida estabelecida para o desenvolvimento futuro. Com os requisitos refinados, estabeleceu-se uma melhor compreenso dos casos de uso mais crticos, possibilitando entender os objetivos mais detalhados do sistema, inclusive a escolha da arquitetura e a soluo para os principais riscos encontrados. Esta fase forneceu uma base estvel para o esforo da fase de construo. Primeiramente foram refinados os requisitos, detalhando todas as suas
Requisitos Refinados Apresentao da empresa Ser exibido na pgina inicial o principal foco da empresa com imagens e frases Informaes sobre a empresa Pgina Sobre a Charme ter como contedo, toda a histria da empresa. Cadastro de Roupas Permitir adicionar, alterar ou excluir roupas em uma rea restrita ao administrador do site, informando suas caractersticas principais. Cadastro de Acessrios Permitir adicionar, alterar ou excluir acessrios em uma rea restrita ao administrador do site, informando suas caractersticas principais. Demonstrao das roupas por categorias Uma pgina especfica com nome de Roupas, permitir ao visitante visualizar todas as roupas, ou por categorias. Demonstrao dos acessrios por categorias Uma pgina especfica com nome de Acessrios, permitir ao visitante visualizar todos os acessrios, ou por categorias.
58
Informaes detalhadas sobre as roupas Cada roupa ter suas informaes detalhas ao clicar sobre a mesma. Informaes detalhadas sobre os acessrios Cada acessrio ter suas informaes detalhas ao clicar sobre o mesmo. Informaes para contato Uma pgina de contato ir conter informaes para contato como: Endereo, Telefone, Email, etc. Alm de ser possvel o visitante enviar uma mensagem diretamente pela pgina que ser recebida pelo administrador em seu e-mail.
Definir os riscos em um projeto de software uma medida que foi tomada para um futuro evento negativo que poder afet-lo. Qualquer ameaa no andamento do projeto definido como um risco. Os riscos encontrados foram gerenciados, avaliados, controlados e solucionados para que no comprometessem o projeto (FIGURA 20).
Riscos Risco de Projeto A falta de experincia dos desenvolvedores com algumas tecnologias. Risco Especfico WebDesign para criao de imagens do site. Risco Tcnico ou Arquitetural A hospedagem para o banco de dados criado em SQL Server 2005 tem um custo desnecessrio ao cliente visto que a pgina ser somente para demonstrao de produtos, sem maiores transaes. Site destinado a browsers como Internet Explorer verso 7 ou superior e Mozilla Firefox verso 2 ou superior. A Taxa de crescimento anual em registros do banco de dados. Suporte ao projeto aps sua implantao. Os requisitos do projeto so instveis. Data de entrega muito ajustada.
59
Dificuldade de comunicao devido distribuio geogrfica da equipe e disponibilidade de horrios. Registro de Ocorrncias Mudana no escopo do projeto. Uma Pergunta foi levantada e precisa ser resolvida. Outras ocorrncias. Plano de Contingncia Cpias de segurana disponveis. Todas as informaes esto devidamente documentadas. Conhecimento adquirido atravs de cursos a equipe. Criao de tutoriais sobre a utilizao do sistema. Suporte ao projeto aps sua implantao.
Definiu-se, tambm, para os ricos, sua probabilidade, impacto e resposta como mostrado na Figura 21. O restante dos riscos e seus detalhes esto no Apndice E.
Evento de Risco A hospedagem para o banco de dados criado em SQL Server 2005 ter um custo desnecessrio ao cliente visto que a pgina ser somente para demonstrao de produtos, sem maiores transaes. Probabilidade do Risco Mdia Necessidade de outra ferramenta para implementao do banco de dados. Impacto Resposta Mdio Gerao de custos desnecessrios ao cliente Utilizao do sistema relacional para administrao de banco de dados Microsoft Access, por tratar-se de uma ferramenta de fcil manuseio e hospedagem.
60
Visualizar Roupas
<<extend>>
Visitante
Visualizar Acessrios
<<extend>>
Enviar Dvidas
Editar Roupas
<<extend>>
Realizar Login
Administrador
<<include>>
Editar Acessrios
<<extend>>
61
Foi criada uma arquitetura base que contm todos os elementos significativos do projeto, mostrando a descrio da arquitetura como um todo (FIGURA 23).
Logotipo da Empresa
Contedo da Pgina
Rodap
62
Logotipo da Empresa
63
A modelagem de dados foi a primeira etapa do projeto que envolveu o banco de dados, onde pode-se ter organizao sobre os dados e uma reduo na complexidade a ponto que se pudesse compreender e manipular os dados, sendo de vital importncia para o bom resultado. As entidades estabelecidas foram: Usuarios, Produtos, Generos, Marcas e Categorias. Os atributos de cada entidade tambm foram definidos e as tabelas, ento, foram normalizadas pelas trs formas normais.
64
Para que se tivesse uma viso mais detalhada, foi criado o diagrama do modelo de entidade e relacionamento devido a sua simplicidade e eficincia (FIGURA 26).
CodigoProduto Descricao DescricaoDetalhada CodigoGenero Nome CodigoGenero CodigoMarca CodigoCategoria
GENEROS
Situacao
PRODUTOS
MARCAS
Situacao Nome
CATEGORIAS
Situacao Descricao CodigoCategoria
USUARIOS
CodigoMarca
O dicionrio de dados tambm foi criado e um dos benefcios encontrados atravs dele, foi a consistncia entre itens de dados dispostos em diferentes tabelas, padronizando, estruturando e envolvendo as definies adotadas pela empresa. As definies realizadas no dicionrio de dados indicaram como os elementos de dados foram armazenados em uma estrutura de computador de acordo com seu tipo. A Figura 27 ilustra o dicionrio de dados de uma das tabelas, o restante das tabelas pode ser visualizado no Apndice F.
Nome da Tabela: Produtos Campos Nome CodigoProduto Descricao Tipo Num Char Tamanho 50 Chave Primria Comentrios Cdigo do Produto Descrio do Produto
65
200 7 Relacionamentos
Estrangeira Estrangeira -
Descrio detalhada do Produto Gnero do Produto Cdigo da Marca Cdigo da Categoria Situao do Produto
Produtos oo - 1 Marcas Produtos oo - 1 Categorias FIGURA 27: Dicionrio de Dados Tabela Produtos
66
O processo iniciou-se com a arquitetura base definida e liberou-se em ambiente beta a estrutura para o cliente realizar a verificao da mesma (FIGURA 29).
67
Com a estrutura perfeita, foi iniciada a criao das pginas da rea administrativa que acessada para o gerenciamento de todo contedo do site, possibilitando cadastrar, editar ou excluir os produtos, categorias ou marcas (FIGURA 30).
68
Apenas o administrador do sistema poder acessar esta rea, que por medidas de segurana, protegida. O acesso a ela dever ser realizado informando o Login e Senha (FIGURA 31).
69
Fase de Transio
A fase de Transio teve como objetivo, estabelecer o software no ambiente do cliente, com a disponibilizao de uma verso operacional da aplicao.
70
A partir da avaliao realizada pelo cliente, pode-se analisar se o sistema realmente cumpriu com as necessidades do usurio, quais falhas foram apresentadas, e quais dificuldades encontradas na sua utilizao. Concluiu-se que, a fase de transio procurou por deficincias mnimas que passaram despercebidas pela fase de construo, possibilitando sua correo e assim finalizando esta etapa com a entrega do produto. As demais pginas do produto finalizado nesta primeira iterao, podem ser visualizadas no Apndice G. Iteraes Em toda a descrio realizada anteriormente sobre as fases do UP dentro das atividades genricas de processo, foi realizada sobre apenas a primeira iterao. Aps ter sido implantado o sistema e coletado com o cliente todas as informaes sobre defeitos e funcionalidades a serem adicionadas, caminha-se para a segunda iterao. Esta segunda iterao no ser detalhada aqui, pois ela seguir a mesma seqncia da primeira, que so as fases, ou seja, sero levantados os requisitos remanescentes, adicionados ao escopo, criado os casos de uso, etc. Detalhes sobre o que foi adicionado nesta segunda iterao esto no Apndice H.
71
5 RESULTADO E DISCUSSES
5.1 Comunicao
A comunicao no processo XP acontece atravs de histrias escritas pelo prprio cliente, que faz parte diretamente do projeto que tem sua definio guiada por ele. Isso torna o levantamento dos requisitos importante durante o processo. Neste projeto, a agilidade da comunicao do XP torna-se mais vivel devido pequena quantidade de requisitos que no necessitam de tanto detalhamento como realizado no processo UP de forma a obter do cliente todos os requisitos funcionais e as especificaes para que possa definir o escopo do projeto sem maiores ambigidades.
5.2 Planejamento
O UP define, com base no escopo, os casos de uso preliminares, os requisitos nofuncionais, o cronograma, o refinamento dos requisitos principais e os ricos de projeto. Todos estes itens so de suma importncia para a conduo do projeto de maneira consistente, segura e fornece uma base para a futura construo. Porm, leva um tempo maior neste perodo. No processo XP, o planejamento acontece no decorrer de toda a construo do sistema e foi criado um cronograma para facilitar o entendimento. Um exemplo prtico desta situao estaria na fase de codificao, onde, caso exista alguma dvida ou um mau entendimento, pode ser realizada a modelagem de casos de uso. Essa uma das causas que agiliza o desenvolvimento e trs uma vantagem neste projeto, mesmo o UP possuindo um planejamento mais detalhado.
5.3 Modelagem
No projeto desenvolvido utilizando XP foi definido a modelagem de dados, modelo ER e o diagrama de classes, para o entendimento, dispensando outras modelagens. O UP definiu os casos de usos expandidos, onde houve um maior detalhamento dos casos de usos preliminares j criados em sua fase de concepo. Uma arquitetura base foi criada de forma a demonstrar a estrutura do sistema como um todo, e o modelo ER, para termos uma viso mais detalhada de estrutura de dados.
72
5.4 Construo
Na codificao o XP utiliza a programao em pares, o que facilita a programao, dvidas referente a cdigo e conseqentemente, a construo em um menor tempo. Os releases, onde so englobados os testes, simplificam ao mximo o sistema, tornando o processo gil. UP tm uma vantagem nesta etapa, pois com tudo j modelado e estruturado, a construo realizada de maneira segura e eficiente sem riscos crticos que podem afetar o andamento do projeto.
5.5 Implantao
Grande parte da implantao realizada na fase de codificao do XP, ao trmino de cada iterao que est contida em cada release, disponibilizando ao cliente a verso onde o mesmo faz o teste de aceitao e aprovao. J no UP, com entrega da verso beta ao ambiente operacional do cliente, ele poder analisar se realmente cumpriu com suas necessidades e ento, relatar se haver alguma falha, dificuldade na utilizao ou funcionalidade a ser adicionada. Para que o cliente possa entender e operar o sistema, realizados treinamentos e disponibilizado tutoriais detalhados. Esses fatores so fundamentais para o destaque do UP.
73
Agosto
Setembro
Outubro
Novembro
Dezembro
1
Planejamento Projeto Codificao Teste
Agosto
Setembro
Outubro
Novembro
Dezembro
1
Concepo Elaborao Construo Transio
Iterao 1
Agosto
Setembro
Outubro
Novembro
Dezembro
1
Concepo Elaborao Construo Transio
74
CONCLUSO
Conclui-se, com este trabalho, que o processo XP (Extreme Programming) se torna mais vivel para projetos de pequeno porte, como o caso da Loja Charme Boutique, onde apenas sero demonstrados os produtos da loja para visualizao de seus detalhes, sem maiores funcionalidades como vendas on-line, controle de estoque, etc. Neste dado projeto, no seria necessria muita documentao, tutoriais, sesses de treinamento, entre outros, que acabam sendo desnecessrios, considerando que seu manuseio e entendimento no so to complexos, por se tratar de uma simples aplicao web. No processo UP (Unified Process), estes itens so de suma importncia para o desenvolvimento de todo o projeto e torna-se indispensvel, pois eles agregam segurana e eficincia sem riscos crticos que possam afetar seu andamento.
75
REFERNCIAS
AMBLER, S. W. Modelagem gil: prticas eficazes para a programao extrema e processo unificado. Porto Alegre: Bookman, 2004. BECK, K. Programao extrema explicada: acolha as mudanas. Porto Alegre: Bookman, 2004. JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The unified software development process. Massachusetts: Addison-Wesley, 1999. LARMAN, G. Utilizando UML e padres. 2 ed. Porto Alegre: Bookman, 2004. MEDEIROS, Manoel. Implementando testes unitrios em aava. 2007. Disponvel em: http://www.devmedia.com.br/space.asp?id=1537711. Acesso em: 21 Maio. 2009. PRESSMAN, R. S. Engenharia de software. 6 ed. So Paulo: McGraw-Hill, 2006. SCOTT, K. O processo unificado explicado. Porto Alegre: Bookman, 2003. TELES, V. M. Extreme programming: aprenda como encantar seus usurios desenvolvendo software com agilidade e alta qualidade. So Paulo: Novatec Editora, 2006.
76
APNDICE A Histrias XP
Histria: Definir Layout Definio das cores do site Definio do design do site Definio do menu do site
Histria: Definir Pgina Inicial Definir itens da pgina inicial Mostrar data e hora na pgina inicial Definir menus da paina inicial
Histria: Exibir Layout Exibir imagem de uma roupa Exibir descrio da roupa Exibir preo da roupa
Histria: Exibir Acessrios Exibir imagem de um acessrio Exibir descrio do acessrio Exibir preo do acessrio
Histria: Adicionar Roupas Adicionar uma roupa tal como marca, cor, preo e imagem No permitir marca, cor, preo e imagem em branco
Histria: Alterar Roupas Alterar marca, cor, preo e imagem de uma roupa No permitir marca, cor, preo e imagem em branco
77
Histria: Definir Layout Definio das cores do site Definio do design do site Definio do menu do site
Histria: Definir Pgina Inicial Definir itens da pgina inicial Mostrar data e hora na pgina inicial Definir menus da paina inicial
Histria: Exibir Layout Exibir imagem de uma roupa Exibir descrio da roupa Exibir preo da roupa
Histria: Exibir Acessrios Exibir imagem de um acessrio Exibir descrio do acessrio Exibir preo do acessrio
Histria: Adicionar Roupas Adicionar uma roupa tal como marca, cor, preo e imagem No permitir marca, cor, preo e imagem em branco
Histria: Alterar Roupas Alterar marca, cor, preo e imagem de uma roupa No permitir marca, cor, preo e imagem em branco
Histria: Adicionar Acessrios Adicionar um acessrio tal como imagem, descrio e preo
78
Histria: Alterar Acessrios Alterar imagem, descrio e preo de um acessrio No permitir imagem, descrio e preo e branco
79
Nome da Tabela: tbroupas Campos Nome codR marca cor preco descr imgoriginal img imgthumb imgsize tamanho Tipo Int Nvarchar Nvarchar Nvarchar Nvarchar Varbinary Varbinary Varbinary Nvarchar Nvarchar Tamanho 50 50 50 120 MAX MAX MAX 50 50 Relacionamentos Chave Primria Comentrios Cdigo da Roupa Marca da Roupa Cor da Roupa Preo da Roupa Descrio da Roupa Imagem Original Imagem Redimensionada Imagem Pequena Tamanho da Imagem Tamanho da Roupa
Nome da Tabela: tbacessorios Campos Nome codA descr preco imgoriginal img imgthumb imgsize marca nome Tipo Int Nvarchar Nvarchar Varbinary Varbinary Varbinary Nvarchar Nvarchar Nvarchar Tamanho 120 50 MAX MAX MAX 50 50 50 Relacionamentos Chave Primria Comentrios Cdigo do Acessrio Descrio do Acessrio Preo do Acessrio Imagem Original Imagem Redimensionada Imagem Pequena Imagem Original Marca do Acessrio Nome do Acessrio
80
81
APNDICE D - Pginas do Site A pgina principal mostra a pgina inicial do site da Loja Charme. Contm as promoes da loja com imagens dos produtos em questo. Possui tambm o menu com opes de navegao para visualizao dos demais itens da loja, acesso a rea administrativa e informaes sobre localizao da loja real.
Pgina Principal
A pgina que contm os acessrios da loja mostra todos os acessrios disponveis na loja. Possui encontradas informaes como preo, tamanho, cor e marca.
82
A pgina que descreve o acessrio relata as descries do acessrio, bem como sua imagem.
83
A pgina de login da loja mostra a tela de que, onde carregar a pgina do administrador. Por ela sero realizadas as operaes de insero, excluso e alterao. Para acess-la, o usurio dever entrar com seu login e senha pr-definidos na construo do sistema. Toda parte da construo da pgina restrita foi desenvolvida usando a ferramenta ASP.NET Configuration, que realiza toda configurao de restrio da pgina, tornando muito mais rpido o desenvolvimento do site.
A pgina do administrador parte acessrios mostra a parte de administrao das roupas. Podendo efetuar as mesmas operaes como na pgina de acessrios.
84
85
A falta de experincia dos desenvolvedores com algumas tecnologias. Alta Necessidade de cursos e um profissional da rea para acompanhamento.
Impacto Resposta
Alto - Atraso no cronograma e software com m qualidade. Realizao de cursos on-line. Apostilas e vdeo-aula sobre as tecnologias. Auxilio de um profissional especializado na ferramenta.
Webdesign para criao de imagens para o site. Mdia Necessidade de um profissional da rea para criao de imagens e demais configuraes da pagina.
Impacto Resposta
Mdio Atraso no cronograma e software com m aparncia. Contratao de um profissional para devidas tarefas.
Evento de Risco
Site destinado a browsers como Internet Explorer verso 7 ou superior e Mozilla Firefox verso 2 ou superior.
Probabilidade do Risco
Baixa O Site ser visualizado de forma desconfigurada por clientes que dispem de outras verses do aplicativo ou browsers distintos.
Impacto Resposta
Baixa Reclamao do cliente informando problemas ao site. Site criado para ser visualizado nos browsers informados por possurem maiores adeptos e maior segurana.
A Taxa de crescimento anual em registros do banco de dados Alta - Necessidade de manutenes no banco de dados. Alta Podendo ocasionar perda de desempenho e problemas relacionados, inclusive perda de informaes.
86
Resposta
Manuteno regularmente do banco de dados, analisando todos os aspectos para maior desempenho e confiabilidade.
Suporte ao projeto aps sua implantao. Alta - Criao de tutoriais, e treinamento com o usurio. Alta Pode ocasionar rejeio ao sistema por no entendimento, ou manuseio inadequado.
Resposta
Criao de tutorial com informaes de detalhes do site Acompanhamento e instruo ao cliente pessoalmente.
Data de entrega muito ajustada. Alta - Realizao de novas implementaes fazendo com que o prazo fique mais curto.
Impacto
Alta A inaugurao do site est marcada para a decorrente data, inclusive divulgada em panfletagem.
Resposta
Ser necessrio de mais encontros presenciais para acertos, conseqentemente pensar no mximo de detalhes possveis para adiantarmos a implementao.
Evento de Risco
Alta - Necessidade de Reunies presenciais. Alta Atraso no cronograma devido coordenao do trabalho Reunies Presenciais e virtuais de acompanhamento do projeto. Utilizao de ferramentas para o compartilhamento de arquivos.
87
Nome da Tabela: Usuarios Campos Nome CodigoUsuario Nome Login Senha Email Tipo Situacao Tipo Num Char Char Char Char Char Char Tamanho 50 20 20 50 13 7 Chave Primria Comentrios Cdigo do Usurio Nome do Usurio Login do Usurio Senha do Usurio Email do Usurio Tipo do Usurio Situao do Usurio
Relacionamentos -
Nome da Tabela: Generos Campos Nome CodigoGenero Nome Tipo Num Char Tamanho 9 Relacionamentos Generos 1 - oo Produtos Chave Primria Comentrios Cdigo do Gnero Nome do Gnero
Nome da Tabela: Marcas Campos Nome CodigoMarca Nome Situacao Tipo Num Char Char Tamanho 50 7 Chave Primria Comentrios Cdigo da Marca Nome da Marca Situao da Marca
88
Nome da Tabela: Categorias Campos Nome CodigoCategoria Nome Situacao Tipo Num Char Char Tamanho 30 7 Chave Primria Comentrios Cdigo da Categoria Nome da Categoria Situao da Categoria
89
90
Pgina de Roupas
91
Pgina de Acessrios
92
93
94
Requisitos Principais Apresentao da empresa Informaes sobre a empresa Cadastro de produtos (roupas/assessrios) Demonstrao dos produtos por categorias Cadastro de Promoes Informaes detalhadas sobre os produtos Informaes para contato Requisitos Principais
Cadastro de Produtos
Cadastro de Promoes
Controle de Estoque
Escopo do Projeto
95
Editar Roupas
<<extend>>
Realizar Login
Administrador
<<include>>
Editar Acessrios
<<extend>>
<<extend>>
Editar Promoes
Cadastrar Promoes
<<extend>>
Excluir Promoes
Agosto
Setembro
Outubro
Novembro
Dezembro
1
Concepo Elaborao Construo Transio
Cronograma da Iterao 2
96
Requisitos Refinados Apresentao da empresa Ser exibido na pgina inicial o principal foco da empresa com imagens e frases Informaes sobre a empresa Pgina Sobre a Charme ter como contedo, toda a histria da empresa. Cadastro de Roupas Permitir adicionar, alterar ou excluir roupas em uma rea restrita ao administrador do site, informando suas caractersticas principais. Cadastro de Acessrios Permitir adicionar, alterar ou excluir acessrios em uma rea restrita ao administrador do site, informando suas caractersticas principais. Demonstrao das roupas por categorias Uma pgina especfica com nome de Roupas permitir visualizar todas as roupas, ou por categorias. Demonstrao dos acessrios por categorias Uma pgina especfica com nome de Acessrios, permitir ao visitante visualizar todos os acessrios, ou por categorias. Cadastro de Promoes O administrador poder adicionar promoes limitadas por datas de incio e fim, informando as roupas e/ou acessrios que participaro. Informaes detalhadas sobre as roupas Cada roupa ter suas informaes detalhas ao clicar sobre a mesma. Informaes detalhadas sobre os acessrios Cada acessrio ter suas informaes detalhas ao clicar sobre o mesmo. Informaes para contato Uma pgina de contato ir conter informaes para contato como: Endereo, Telefone, Email, etc. Alm de ser possvel o visitante enviar uma mensagem diretamente pela pgina que ser recebida pelo administrador em seu e-mail.
Requisitos Refinados
97
GENEROS
Situacao
PRODUTOS
1
MARCAS
Situacao Nome
CATEGORIAS
Situacao Nome CodigoCategoria
CodigoMarca
ITENS PROMOCOES
CodigoProduto CodigoPromocao CodigoItensPromocoes Situacao Tipo Email 1 Senha Login Nome CodigoUsuario Fim Inicio Descricao CodigoPromocoes
USUARIOS
PROMOCOES
Modelo ER
Nome da Tabela: Produtos Campos Nome CodigoProduto Descricao DescricaoDetalhada Genero CodigoMarca Tipo Num Char Char Char Num Tamanho 30 50 20 Chave Primria Estrangeira Comentrios Cdigo do Produto Descrio do Produto Descrio detalhada do Produto Gnero do Produto Cdigo da Marca
98
CodigoCategoria Situacao
Num Char
Estrangeira -
Nome da Tabela: ItensPromocoes Campos Nome CodigoItensPromocao CodigoPromocao CodigoProduto Tipo Num Num Num Tamanho Chave Primria Estrangeira Estrangeira Comentrios Cdigo do Itens Promoo Cdigo da Promoo Cdigo do Produto
Nome da Tabela: Promocoes Campos Nome CodigoPromocao Descricao Inicio Fim Tipo Num Char Date Date Tamanho 100 Relacionamentos Promocoes 1 - oo ItensPromocoes Chave Primria Comentrios Cdigo do Itens Promoo Descrio da Promoo Inicio da Promoo Fim da Promoo
99
100
Cadastro de promoes