Você está na página 1de 79

Centro Universitrio do Sul de Minas UNIS-MG Bacharelado em Cincia da Computao

Aplicao Comercial com nfase em Usabilidade

Hlio Lemes Costa Jr.

Guilherme Loureno Tempesta Jlio Csar Oliveira Flrido

Varginha, 2008

Centro Universitrio do Sul de Minas UNIS-MG Bacharelado em Cincia da Computao

Aplicao Comercial com nfase em Usabilidade

Projeto de Concluso de Curso apresentado ao programa do curso de Bacharelado em Cincia da Computao do Centro Universitrio do Sul de Minas, como requisito parcial para a obteno do ttulo de Bacharel em Cincia da Computao

Varginha, 2008

FOLHA DE APROVAO

Guilherme Loureno Tempesta Jlio Csar Oliveira Flrido

Aplicao Comercial com nfase em Usabilidade

Monografia apresentada ao curso de Cincia da Computao do Centro Universitrio do Sul de Minas UNIS/MG, como pr-requisito para obteno do grau de bacharel pela Banca Examinadora composta pelos membros:

( ) Aprovado ( ) Reprovado

Data 25/11/2008

_________________________________________________________ Prof Especialista Hlio Lemes Costa Jr.

______________________________________________________ Prof. Especialista Fabrcio Pelloso Piurcosky

_________________________________________________________ Prof. Especialista Lzaro Eduardo da Silva

OBS.:

Dedicamos este projeto a todos os que nos ajudaram direta e indiretamente durante todo o seu desenvolvimento, e a ns mesmos, que nos esforamos ao mximo para concluir mais esta etapa.

Agradecimentos
Agradecemos primeiramente a Deus, por ter nos dado fora e perseverana para concluir este projeto, aos nossos familiares, pelo incentivo, compreenso e companheirismo e ao nosso orientador, coordenador e colegas de trabalho por tirar dvidas e procurar nos ajudar nas etapas mais crticas.

RESUMO
Nesta monografia descrita a criao de um prottipo de uma aplicao comercial, cujo foco principal o conceito de Usabilidade, onde a interao entre usurio e sistema tratada como o ponto mais importante do desenvolvimento. O projeto consiste na utilizao deste prottipo especificamente em uma vdeolocadora, sendo que deve ser disponibilizado em quiosques dentro do prprio estabelecimento, para que os clientes da locadora possam ter acesso a ele, entrando com sua identificao e efetuando vrios tipos de consultas de filmes, podendo eles prprios efetuar locaes e reservas, com a utilizao de recursos multimdia como a apresentao de trailers. Tudo isso de uma forma independente, sem necessitar de ajuda do atendente para lhe apresentar os filmes. No desenvolvimento do projeto, foram utilizados conhecimentos adquiridos nas reas de Engenharia de Software, que auxiliou na organizao da parte estrutural, UML, que possibilitou uma viso panormica de como modelar o sistema; programao, utilizando ferramentas para a implementao do software; Banco de Dados, utilizando a linguagem SQL atravs de comandos que facilitam o gerenciamento das informaes; e Interface Homem-Mquina, que o principal foco, procurando interagir com o usurio da melhor forma possvel.

Lista de Figuras
FIGURA 1 DIVERGNCIAS ENTRE ENGENHARIA DE SOFTWARE E IHM .....................................................17 FIGURA 2 - CICLO DE VIDA CLSSICO (FONTE: DCA, 2008)........................................................................19 FIGURA 3 - ORIENTAO OBJETO (FONTE: AUTOR).................................................................................24 FIGURA 4 - APLICAO DE UM DIAGRAMA E-R (FONTE: PONTES, 2008) ..................................................25 FIGURA 5 - DIAGRAMA DE CASO DE USO (FONTE: DSC, 2008)...................................................................27 FIGURA 6 - DIAGRAMA DE CLASSE (FONTE: VOXXEL, 2008)....................................................................28 FIGURA 7 - ASSOCIAES (FONTE: AUTOR) ................................................................................................29 FIGURA 8 - DIAGRAMA DE ATIVIDADE (FONTE: LINHA, 2008)..................................................................31 FIGURA 9 - MODELO EM REDE (FONTE: KORTH E SILBERSCHATZ, 1995) ............................................32 FIGURA 10 - MODELO HIERRQUICO (FONTE: DEVMEDIA, 2008) ...........................................................32 FIGURA 11 - NVEIS DE ABSTRAO (FONTE: KORTH E SILBERSCHATZ, 1995) ...................................33 FIGURA 12 - TIPOS DE CARDINALIDADE (FONTE: AUTOR) ..........................................................................34 FIGURA 13 - DIAGRAMA E-R (FONTE: KORTH E SILBERSCHATZ, 1995)...............................................35 FIGURA 14 - TABELAS DE UM BD RELACIONAL (FONTE: ENG, 2008) ........................................................35 FIGURA 15 - FORM CRIADO NO DELPHI (FONTE: AUTOR) ............................................................................45 FIGURA 16 - CODE EDITOR (FONTE: AUTOR) ..............................................................................................46 FIGURA 17 - COMPONENT PALETTE (FONTE: AUTOR) .................................................................................46 FIGURA 18 - OBJECT TREEVIEW E OBJECT INSPECTOR (FONTE: AUTOR) ....................................................47 FIGURA 19 - CONEXO NO SQLCONNECTION (FONTE: AUTOR) .................................................................48 FIGURA 20 - DATAMODULE E OS COMPONENTES DE CONEXO (FONTE: AUTOR) ......................................48 FIGURA 21 - ADICIONANDO CAMPOS NO CLIENTDATASET (FONTE: AUTOR)..............................................49 FIGURA 22 - LIGAO NO DATASOURCE (FONTE: AUTOR) .........................................................................49 FIGURA 23 - MODELO DE PROTOTIPAGEM (FONTE: PRESSMAN, 1995) ....................................................50 FIGURA 24 - VISUAL PARADIGM COMMUNITY EDITION. .............................................................................52 FIGURA 25 - DIAGRAMA DE CASO DE USO ..................................................................................................53 FIGURA 26 - DIAGRAMA DE CLASSE ............................................................................................................54 FIGURA 27 - DIAGRAMA DE ATIVIDADE ......................................................................................................55 FIGURA 28 - INTERFACE DO IBEXPERT .......................................................................................................56 FIGURA 29 - DOMNIOS CRIADOS NO BANCO ...............................................................................................57 FIGURA 30 - TABELAS E RELACIONAMENTOS DO BD ..................................................................................58 FIGURA 31 DATAMODULE E DEMAIS COMPONENTES DE CONEXO ..........................................................62 FIGURA 32 - TELA DE BUSCA .......................................................................................................................64 FIGURA 33 - TELA DE DETALHES DO FILME .................................................................................................66 FIGURA 34 - EXIBIO DA SINOPSE DO FILME .............................................................................................67 FIGURA 35 - PLAYER QUE EXECUTA OS TRAILERS .......................................................................................68 FIGURA 36 - RESERVA DO FILME .................................................................................................................69 FIGURA 37 - TELA DE LOCAO..................................................................................................................70

Sumrio
RESUMO ....................................................................................................................................................6 1 INTRODUO...............................................................................................................................10 1.1 OBJETIVOS ...............................................................................................................................10 1.1.1 Geral...................................................................................................................................10 1.1.2 Especfico ...........................................................................................................................10 1.2 JUSTIFICATIVA .........................................................................................................................11 1.3 ORGANIZAO DA MONOGRAFIA ............................................................................................11 2 REFERENCIAL TERICO..........................................................................................................12 2.1 AUTOMAO COMERCIAL...............................................................................................12 2.1.1 Benefcios e Dificuldades ...................................................................................................12 2.1.2 Contexto Atual ....................................................................................................................12 2.2 INTERFACE HOMEM-MQUINA ......................................................................................14 2.2.1 O Computador na Relao homem-mquina .....................................................................14 2.2.2 Definio e importncia das interfaces ..............................................................................14 2.2.3 Fatores que influenciam a construo de interfaces ..........................................................15 2.2.4 Objetivos de IHM................................................................................................................15 2.2.5 Desafios de IHM.................................................................................................................15 2.2.6 Usabilidade.........................................................................................................................16 2.2.7 Ergonomia ..........................................................................................................................16 2.2.8 Principais diferenas entre IHM e Engenharia de software ..............................................17 2.3 ENGENHARIA DE SOFTWARE ..........................................................................................18 2.3.1 Importncia do software.....................................................................................................18 2.3.2 Aplicaes do Software ......................................................................................................19 2.3.3 Ciclo de Vida Clssico da Engenharia de Software...........................................................19
2.3.3.1 2.3.3.2 2.3.3.3 2.3.3.4 2.3.3.5 2.3.3.6 Anlise e Engenharia de Sistemas ........................................................................................... 20 Anlise de Requisitos de Software .......................................................................................... 20 Projeto ..................................................................................................................................... 20 Codificao ............................................................................................................................. 20 Testes ...................................................................................................................................... 20 Manuteno............................................................................................................................. 20

2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.3.10 2.3.11

O Processo de Gerencia de Projetos..................................................................................21 Administrao de Projetos .................................................................................................21 Objetivos do Planejamento de Projetos..............................................................................22 Modelos de Processo ..........................................................................................................22 Escopo do Software ............................................................................................................22 Software Comercial ............................................................................................................22 Importncia do Software em Aplicao Comercial .......................................................23 Anlise Orientada a objeto ............................................................................................23
Conceitos da Orientao a Objetos.......................................................................................... 23 Identificao de Objetos.......................................................................................................... 24 Especificao de atributos....................................................................................................... 25

2.3.11.1 2.3.11.2 2.3.11.3

2.3.12
2.3.12.1

Modelagem de Dados ....................................................................................................25


Diagramas Entidade-Relacionamento ..................................................................................... 25

2.4 UNIFIED MODELING LANGUAGE ....................................................................................26 2.4.1 Diagramas da UML............................................................................................................26


2.4.1.1 2.4.1.2 2.4.1.3 Diagramas de caso de uso ....................................................................................................... 27 Diagramas de Classe ............................................................................................................... 28 Diagrama de atividade............................................................................................................. 30

2.5 BANCO DE DADOS ..............................................................................................................32 2.5.1 Principais Caractersticas de um BD .................................................................................33 2.5.2 Abstrao de dados ............................................................................................................33 2.5.3 Modelagem de Dados .........................................................................................................34 2.5.4 Modelagem Lgica .............................................................................................................35
2.5.4.1 2.5.4.2 Banco de dados relacional....................................................................................................... 35 lgebra Relacional.................................................................................................................. 36 Views ...................................................................................................................................... 37

2.5.5

Structured Query Language (SQL).....................................................................................36

2.5.5.1

2.5.5.2 2.5.5.3 2.5.5.4

Generators ............................................................................................................................... 37 Triggers ................................................................................................................................... 38 Stored Procedures.................................................................................................................... 39

2.5.6 2.5.7 2.5.8

Arquitetura Cliente/ Servidor .............................................................................................40 Sistema Gerenciador de Banco de Dados (SGDB).............................................................40 Firebird...............................................................................................................................40
Principais Caractersticas ........................................................................................................ 41 Usurios de peso ..................................................................................................................... 41

2.5.8.1 2.5.8.2

2.6 PROGRAMAO..................................................................................................................42 2.6.1 Algoritmo............................................................................................................................42 2.6.2 Linguagens de Programao..............................................................................................42


2.6.2.1 2.6.2.2 2.6.2.3 2.6.2.4 Linguagem de Mquina........................................................................................................... 42 Traduo ................................................................................................................................. 43 Nveis de Abstrao ................................................................................................................ 43 Paradigmas de Programao ................................................................................................... 43 Object Pascal........................................................................................................................... 44 Borland Delphi 7 ..................................................................................................................... 45 Conexo com o Banco de Dados............................................................................................. 47

2.6.3

Linguagem Delphi ..............................................................................................................44

2.6.3.1 2.6.3.2 2.6.3.3

DESENVOLVIMENTO .................................................................................................................50 3.1 MODELOS DE PROCESSO DE ENGENHARIA DE SOFTWARE ........................................................50 3.1.1 Comunicao......................................................................................................................51 3.1.2 Criao e modelagem do projeto rpido............................................................................51 3.1.3 Construo do prottipo.....................................................................................................51 3.1.4 Implantao, Entrega e Feedback ......................................................................................51 3.2 MODELAGEM UML..................................................................................................................52 3.2.1 Ferramenta utilizada ..........................................................................................................52 3.2.2 Construo dos diagramas.................................................................................................53
3.2.2.1 3.2.2.2 3.2.2.3 Diagrama de caso de uso......................................................................................................... 53 Diagrama de classe.................................................................................................................. 53 Diagrama de atividades ........................................................................................................... 54

3.3 CONSTRUO DO BANCO DE DADOS .........................................................................................56 3.3.1 Ferramentas utilizadas .......................................................................................................56 3.3.2 Criao de domnios e tabelas ...........................................................................................57 3.3.3 Gerao de autonumerao ...............................................................................................58 3.3.4 Utilizao de Stored Procedures ........................................................................................59 3.3.5 Consultas partir de Views................................................................................................60 3.4 IMPLEMENTAO DA APLICAO ............................................................................................61 3.4.1 Ferramenta Utilizada .........................................................................................................61 3.4.2 Conexo com o BD .............................................................................................................61 3.4.3 Interface da Aplicao........................................................................................................63 3.4.4 Tela de Busca .....................................................................................................................64 3.4.5 Tela de Detalhes do Filme..................................................................................................66 4 CONCLUSO .................................................................................................................................71 4.1 4.2 5 6 DIFICULDADES ENCONTRADAS ................................................................................................71 TRABALHOS FUTUROS .............................................................................................................71

REFERNCIAS BIBLIOGRFICAS ..........................................................................................72 ANEXOS..........................................................................................................................................74 6.1 6.2 6.3 ANEXO 1 FEEDBACK DO CLIENTE..........................................................................................74 ANEXO 2 IMPLEMENTAO DO TECLADO VIRTUAL ..............................................................76 ANEXO 3 CONSTRUO DE UM PLAYER DE VDEO ................................................................78

1 INTRODUO
Atualmente, a automao comercial vem apresentando um crescimento considervel, juntamente com ela a complexidade das interfaces, onde vrios indivduos tm acessos aos terminais comerciais, sendo que cada um possui um perfil distinto e tambm apresenta dificuldades diferentes. Pois, enquanto um grupo de usurio consegue interagir com uma interface mais complexa, outros usurios encontram dificuldades na interao, causando insatisfao e desconforto. Com esta necessidade de acompanhar a evoluo da tecnologia sem deixar de lado a preocupao sobre o modo de interao entre usurio e sistema, o desenvolvimento de aplicaes voltadas para um pblico com caractersticas variadas precisa cada vez mais ser focado na Usabilidade e na Ergonomia. Desenvolver aplicaes utilizando estes conceitos como base, resulta na construo de uma interface simples, clara e objetiva, fazendo com que a interao com o usurio acontea de uma forma natural, cmoda e satisfatria, diminuindo a ocorrncia de erros, otimizando a utilizao e fazendo com que o sistema seja bem aceito pelos seus usurios.

1.1 Objetivos
1.1.1 Geral
Desenvolver uma interface clara e objetiva, que faa com que o usurio a utilize de forma independente e interaja com a aplicao de uma forma natural e intuitiva, com clareza e objetividade, buscando sempre a comodidade e a satisfao do usurio ao ter contato com esta interface.

1.1.2 Especfico
Utilizar os conceitos de Interface Homem-Mquina, no desenvolvimento da interface da aplicao, principalmente usabilidade, otimizando a interao com o usurio; Aplicar modelagem UML, construindo diagramas e estabelecendo uma viso do sistema para que possa ser implementado corretamente;

10

Utilizao da Engenharia de Software, onde atravs de modelos de processo, testar, avaliar e estruturar o prottipo, tendo metas de organizao.

1.2 Justificativa
Em algumas aplicaes voltadas para atendimento a um pblico variado, como por exemplo, de caixas eletrnicos, possvel notar a grande insatisfao dos usurios, que nem sempre conseguem interagir corretamente com o sistema, onde so induzidos a fazer escolhas erradas, pela falta de clareza, causando transtorno e fazendo com que o usurio evite utilizar o sistema. Devido a essas dificuldades encontradas por alguns usurios, foi desenvolvido este projeto, onde se preza pela qualidade da interao entre o usurio e o sistema, construindo uma interface planejada para que esta interao exista de forma natural e objetiva.

1.3 Organizao da Monografia


A diviso e organizao da monografia foram feitas da seguinte forma: Captulo 1: Introduo e escopo do projeto; Captulo 2: Referencial terico; Captulo 3: Desenvolvimento do projeto; Captulo 4: Concluso; Captulo 5: Referncias bibliogrficas; Captulo 6: Anexos.

11

2 REFERENCIAL TERICO
2.1 AUTOMAO COMERCIAL
O termo automao comercial pode ser definido como a transformao de tarefas manuais repetitivas em processos automticos executados por uma mquina, com intuito de tomar tais tarefas mais geis e eficientes, na rea comercial. (AUTOMAO, 2008) A automao comercial faz parte na vida da sociedade moderna devido ao grande nmero de empresas que utilizam esta tecnologia, contudo nem todos esto cientes dos seus benefcios. Um estabelecimento automatizado estar preparado para atender com mais qualidade o exigente consumidor, o atendendo com mais agilidade e preciso, e possibilitando uma maior comodidade, tanto para a empresa quanto para o cliente. A misso da automao comercial proporcionar empresa um gerenciamento mais eficiente, tornando possvel uma anlise geral da empresa, auxiliando na tomada de decises com o objetivo de fazer com que a empresa cresa.

2.1.1 Benefcios e Dificuldades


A utilizao da automao comercial traz inmeros benefcios s empresas em geral. Podendo citar como exemplos a reduo de custos; o aumento da eficincia nos processos administrativos, obtendo uma melhor gesto do negcio; a agilidade no atendimento ao cliente, atendendo suas necessidades mais rapidamente; e reduzindo a ocorrncia de erros e falhas. Algumas dificuldades tambm so identificadas na implantao da automao comercial em um estabelecimento, como insegurana e resistncia s mudanas e a questo do treinamento dos usurios. (AUTOMAO, 2008)

2.1.2 Contexto Atual


A automao comercial deixou de ser uma vantagem competitiva e se tornou um fator de sobrevivncia, exigindo um planejamento adequado e uma implementao

12

correta para que se torne uma ferramenta poderosa de gesto do negocio. O nmero de estabelecimentos comerciais automatizados vem praticamente dobrando a cada ano, e a um ritmo acelerado. Atualmente, um dos setores mais promissores para o mercado de tecnologia, movimentando em torno de um bilho de reais por ano no pas, sendo 60% do mercado de negcios especficos para automao comercial representados pelas empresas IBM e Itautec Philco. (AUTOMAO, 2008).

13

2.2 INTERFACE HOMEM-MQUINA


A interface homem mquina (IHM) um elemento indispensvel para aceitao de um sistema interativo pelo usurio. Estudos mostram que o usurio prefere uma interface mais simples e agradvel a uma que lhe fornea maiores funcionalidade e se tornando uma interface pobre deixando a eficincia do usurio afetada. Se os fatores humanos so levados em considerao, o dilogo amigvel e um ritmo estabelecido entre o homem e a mquina. A IHM uma preocupao da indstria muito antes de se falar em interface computacional. Existe uma experincia adquirida sobre o assunto, como por exemplo, a utilizao de mais de um perfil do operador e nveis de conhecimento.

2.2.1 O Computador na Relao homem-mquina


A dependncia da espcie humana de computador enorme, tanto que empresas e at mesmo pessoas no conseguiriam viver sem a ajuda dessa mquina. Vrias pesquisas vm acompanhando a relao que o homem e o computador, tanto que IHM foi constituda para estudar essa relao. Tendo em vista estes conceitos os computadores do futuro j esto sendo projetados para atender as necessidades dos usurios e coletando a sua linguagem verbal e no-verbal, j que a linguagem usual no apropriada para o relacionamento do homem com o computador. O computador uma mquina que ajuda ao homem algum tipo de funo com maior facilidade e foi criado para desempenhar tarefas que o homem no podia

2.2.2 Definio e importncia das interfaces


Segundo Rocha e Baranauskas (2003), no surgimento do conceito de interface, ela era considerada como hardware e software que interagem com o homem, entretanto este conceito evolui, incluindo aspectos emocionais e cognitivos na interao. Sobre essas condies foi que surgiu a prioridade de se desenvolver uma interface devidamente adequada para o usurio fazer essa interao da melhor maneira. O conceito de interface est ligado a algo discreto e tangvel uma coisa que se pode desenhar, mapear, projetar e implementar. A interface responsvel por fazer o usurio ter condies de interagir com a funcionalidade, fazer um entendimento das dificuldades da comunidade dos usurios e

14

tarefas. Anlise dos requisitos, dos usurios, das tarefas, concepo, especificao e prototipao da interface e avaliao da utilizao do prottipo. Estamos cada vez mais dependentes de computadores e dispositivos eletrnicos seja pra trabalho ou at mesmo para nossas atividades pessoais. Essas atividades necessitam de uma facilidade de uso destes dispositivos, juntamente com interfaces difceis no so desenvolvidas como se deveria, sendo desperdiado o tempo e necessitando de um treinamento. Um srio problema est ligado a pessoas que investem muito com tecnologia da informao e no obtendo resultados agradveis devido ao fato de no ter focado em uma interface amigvel.

2.2.3 Fatores que influenciam a construo de interfaces


A tecnologia de construo de interfaces tem sido influenciada por diversos fatores como disseminao do uso de sistemas, aumento da complexidade e a preocupao com a qualidade do software dentro da caracterstica de usabilidade.

2.2.4 Objetivos de IHM


Os objetivos principais objetivos do IHM so o de produzir sistemas usveis, seguro, funcionais dando ao usurio maior comodidade e naturalidade para manipular dados de uma interface, melhorando sua usabilidade. De acordo com Rocha e Baranauskas (2003), esses objetivos podem ser resumidos como a necessidade de desenvolver interfaces abrangendo totalmente os aspectos relacionados interao entre usurios e sistemas.

2.2.5 Desafios de IHM


Devido ao desenvolvimento contnuo da tecnologia, com mquinas mais potentes, melhorias de hardware e software, abrem-se inmeras possibilidades para IHM, o que a torna uma rea cheia de desafios. (ROCHA e BARANAUSKAS, 2003) Alguns dos principais desafios da rea de IHM, acompanhar a rpida evoluo tecnolgica e garantir designs com uma boa interface que explorem suas funcionalidades, possibilitando a interao do usurio com o computador de uma maneira fcil e amigvel sem deixar de ser otimizada.

15

2.2.6 Usabilidade
Segundo Nielsen (apud. Rocha e Baranauskas, 2003, p. 28), nos sistemas computacionais, a Usabilidade um dos critrios que definem a aceitabilidade de um sistema. No se constri uma interface tima apenas com idias prprias, os usurios muitas vezes interpretam mal os elementos da interface, fazendo uso das tarefas de um modo diferente do que foi projetado. Para isso deve-se sempre trabalhar baseado no entendimento do usurio e de suas tarefas. A definio da usabilidade de um sistema computacional pode ser identificada de diversas maneiras, como por exemplo, a facilidade de aprendizagem, pois o sistema necessita de uma aprendizagem fcil, para que ocorra uma rpida interao. A facilidade de memorizao de suas funcionalidades uma conseqncia da facilidade de aprendizagem. Outros exemplos de usabilidade so: a eficincia no seu uso, fazendo com que o usurio desenvolva sua tarefa com bastante produtividade e uma pequena taxa de erros durante a utilizao de um sistema. Outro aspecto que identifica a Usabilidade a satisfao subjetiva do usurio com o sistema, isto , se a forma com que o usurio interage com o sistema agradvel e faz com que ele goste de utiliz-lo.

2.2.7 Ergonomia
Ergonomia a qualidade de como um dispositivo adaptvel ao indivduo que o opera e a tarefa que realiza, podendo considerar que a ergonomia est na origem da usabilidade. A ergonomia tem como objetivo fazer com que diversas ferramentas tenham seu design adequado s necessidades do usurio, maximizando a eficincia e confiabilidade, e aumentando a satisfao e conforto do usurio perante esta ferramenta. (ROCHA e BARANAUSKAS, 2003).

16

2.2.8

Principais diferenas entre IHM e Engenharia de software


Muitos fatores aproximam as reas de IHM e Engenharia de Software, como a

padronizao, confiabilidade, consistncia, portabilidade e integrao do sistema. Entretanto, ainda possvel identificar algumas divergncias entre os mtodos de Engenharia de Software e IHM. A Engenharia de Software trata dos aspectos funcionais do sistema, enquanto IHM trata dos aspectos de interao com o usurio. (RETONDARO, 2008). A figura 1 ilustra a diferena entre as duas reas:

Figura 1 Divergncias entre Engenharia de Software e IHM (Fonte: RETONDARO, 2008)

17

2.3 ENGENHARIA DE SOFTWARE


A engenharia de software um conjunto de trs elementos fundamentais como: mtodos, ferramentas e procedimentos que facilitam ao agente e aos engenheiros uma base estruturada para a construo de software com alta qualidade e produtividade, para estarem aptos a entrar no mercado. (PRESSMAN, 1995). Os mtodos oferecem engenharia de software a proporo nos detalhes de como construir o software. Possuem um conjunto de tarefas que incluem: planejamento, estimativa de projeto, anlise de requisitos de software e de sistemas, projetos da estrutura de dados, arquitetura de programa e algoritmo de processamento codificao teste e manuteno. As ferramentas auxiliam os mtodos na automatizao e sustentao, quando as ferramentas so integradas de forma que a informao criada por uma ferramenta possa ser usada por outra. Os procedimentos fazem a ligao aproximando os mtodos das ferramentas e possibilita o desenvolvimento racional e oportuno do software no seu computador.

2.3.1 Importncia do software


Segundo Pressman, (1995), durante as trs primeiras dcadas da era do computador, o principal desafio era desenvolver um hardware que reduzisse o custo de processamento e armazenamento. Ao longo da dcada de 1980, avanos na microeletrnica resultam em maior poder de computao a um custo cada vez mais baixo. Hoje o problema diferente. O principal desafio durante a dcada de 1990 melhorar a qualidade (e reduzir o custo) de solues baseadas em computador, solues que so implementadas com os softwares. Para o desenvolvimento das tecnologias com enormes capacidades de armazenamento e processamento de dados nos nossos hardwares, existe o software de extrema importncia para fazer a ligao dos dados com o usurio de maneira proveitosa e objetiva dando comodidade para o usurio.

18

2.3.2 Aplicaes do Software


O Software pode ser aplicado onde so desenvolvidos algoritmo com procedimentos de passos previamente especificados. As informaes coletadas do cliente e a determinncia so fatores importantes no desenvolvimento de um aplicativo. (PRESSMAN, 1995). Determinncia de informao refere-se a previsibilidade da ordem e da oportunidade da informao. Um sistema operacional multiusurio, por outro lado, aceita entradas que tm contedo variado e regulagem de tempo arbitrria, executa algoritmos que podem ser interrompidos por condies externas e produz sada que varia como uma funo do ambiente e do tempo. Aplicaes com essas caractersticas so indeterminadas.

2.3.3 Ciclo de Vida Clssico da Engenharia de Software


Para Pressman (1995), O ciclo de vida requer uma abordagem sistemtica, seqencial ao desenvolvimento do software, que inicia no nvel do sistema e avana ao longo da anlise, projeto, codificao, teste e manuteno, o paradigma do ciclo de vida as seguintes atividades. Conforme o exemplo na figura seguinte.

Figura 2 - Ciclo de vida clssico (Fonte: DCA, 2008)

19

2.3.3.1 Anlise e Engenharia de Sistemas


Os requisitos estabelecidos so de extrema importncia para todos elementos do sistema e prossegue com a atribuio de certo subconjunto desses requisitos ao software. Esta parte o projeto importante tambm para o software fazer a interface com os elementos, tais como hardware, pessoas e banco de dados.

2.3.3.2 Anlise de Requisitos de Software


As informaes auxiliam o engenheiro na construo do programa, bem como na interface adequada para satisfazerem requisio do cliente. Os requisitos, tanto para o sistema como para o software, so documentados e revistos com o cliente.

2.3.3.3 Projeto
O projeto de software consiste em processo de vrios passos que se concentra em quatro atributos distintos do programa: estrutura de dados, arquitetura do software, detalhes procedimentais e caracterizao de interface.

2.3.3.4 Codificao
A parte de codificao necessita de uma linguagem legvel por mquina, esta etapa de codificao executa essa tarefa, se o projeto for executado detalhadamente, a codificao pode ser executada mecanicamente.

2.3.3.5 Testes
A partir do momento que o cdigo for gerado, inicia-se a parte de testes do programa. Estes testes so feitos nas instrues internas do software e tambm nos aspectos funcionais externos, ou seja, as entradas devem corresponder resultados reais com as necessidades exigidas.

2.3.3.6 Manuteno
A manuteno feita depois de ser entregue ao cliente, onde se deve: ao fato de ter encontrado erros, mudanas no seu ambiente externo, mudanas para adaptar ao sistema operacional ou dispositivo perifrico ou acrscimo de cliente.

20

2.3.4 O Processo de Gerencia de Projetos


A gerncia de projetos a primeira camada do processo de engenharia de software. Ns a chamamos camada, em vez de etapa ou atividade, porque ela abrange todo o processo de desenvolvimento, do comeo ao fim. (PRESSMAN, 1995). Ao se conduzir um projeto de software bem-sucedido, devemos estar lcidos com relao ao escopo do trabalho a ser feito, os riscos que podero ocorrer, os recursos exigidos, as tarefas a serem desenvolvidas e executadas, os marcos de referncia a serem acompanhados, o esforo (custo) despedido e a programao a ser escolhida e seguida. Contudo a gerncia de projeto de software oferece essa compreenso.

2.3.5 Administrao de Projetos


O processo de administrao de projetos de software comea com um conjunto determinado de atividades que se interagem para formao do planejamento. A primeira dessas atividades denominada estimativa. Segundo Pressman, (1995), a estimativa dos recursos, custos e programao de atividades para um esforo de desenvolvimento de software exige experincia acesso a boas informaes histricas e a coragem para se comprometer com medidas quantitativas quando dados qualitativos forem tudo que existir. Pontos importantes para determinar o projeto:

a) Complexidade o projeto: Tem um forte efeito sobre a incerteza que inerente ao planejamento. b) Tamanho do projeto: outro fator importante que pode afetar a preciso e a eficcia das estimativas. c) O grau de estrutura do projeto: Tambm exerce um efeito sobre os riscos da estimativa. d) Disponibilidade de informaes histricas: Tambm determina os riscos da realizao de estimativas.

21

2.3.6 Objetivos do Planejamento de Projetos


O objetivo do planejamento de projetos de software fornecer estrutura que realize estimativas com relao aos recursos em curtos prazos. Essas estimativas so desenvolvidas em perodo curto de tempo de quando se inicia o projeto e devem ser atualizadas com o decorrer que se desenvolve o projeto.

2.3.7 Modelos de Processo


Segundo Pressman (1995), os modelos de processo so propostos para organizar o desenvolvimento de software, oferecendo um roteiro consideravelmente efetivo para as equipes de software. Os modelos de processo podem ser prescritivos, em cascata, incrementais ou evolucionrios.

2.3.8 Escopo do Software


O escopo do projeto a primeira atividade determinada pelo planejamento, onde a funo e o desempenho atribudos ao software durante o trabalho de engenharia de sistema computadorizado devem ser avaliados para que o escopo seja claro e compreensvel tanto em nvel tcnico como administrativo. Por tanto os dados quantitativos, ou seja, nmero de usurios simultneo, quantidade de clientes, tempo mximo de resposta permitido, tambm so declarados explicitamente as restries e os fatores mitigantes (por exemplo, algoritmos desejados que sejam bem compreendidos e esto disponveis ) so descritos.

2.3.9 Software Comercial


Uma das reas mais usadas pelos desenvolvedores de software, onde os sistemas foram evoludos e trocados por software de sistemas de informao administrativa (MIS), dando acesso a um ou mais banco de dados contendo informaes comerciais. Essas aplicaes reestruturam os dados organizando de uma maneira que possibilita operaes comerciais e as tomadas de decises administrativas, alm disso, as aplicaes de software comercial focalizam um importante item que a computao interativa (por exemplo, processamento de transaes em pontos de venda).

22

2.3.10

Importncia do Software em Aplicao Comercial

O software com o passar do tempo passa a construir uma tecnologia chave, sendo usada nas mais diversas reas, dentre elas ser citada as aplicaes comerciais, a indstria de computador passa a ser um dos ramos de negcio mais competitivo do planeta, onde o componente software torna-se a fora prevalecente em termos de inovao tecnolgica. Os princpios de engenharia de software levam a um software otimizado fazendo com que as aplicaes comercias sejam confiveis, fceis de compreender e levando ao cliente conforto perante os produtos, deixando tambm o proprietrio com uma melhor viso de seu comercio, tendo um controle satisfatrio e obtendo uma economia de tempo e financeiro em relao a diminuio de empregados.

2.3.11

Anlise Orientada a objeto

No fim da dcada 1980, a anlise orientada a objeto na modelagem de dados comeou a surgiu com intensidade de uma forma poderosa e prtica auxiliando no desenvolvimento do software, criando projetos para aplicaes de todos os tipos. Hoje, a anlise orientada a objeto est fazendo um lento, firme, progresso como mtodo de anlise por seus prprios mritos e como complementos a outros mtodos de anlise.

2.3.11.1

Conceitos da Orientao a Objetos

Para entender o ponto de vista orientado a objeto, necessrio considerar um exemplo de objeto do mundo real, como exemplo a cadeira sendo um objeto da instncia mobiliria onde essa classe possui os conjuntos de atributos dentre eles est, custo, dimenses, peso. Supe agora que se deseja montar uma nova classe dentro da classe mobiliria, chamada camesa, sendo uma mistura de cama e mesa herdando os atributos de mobilirio. Conforme a figura seguinte:

23

Figura 3 - Orientao Objeto (Fonte: Autor)

2.3.11.2

Identificao de Objetos

Ao determinar um, objeto deve-se examinar a declarao do problema, ao executar uma anlise gramatical da narrativa de processamento do sistema a ser construdo. Os objetos fazem parte de uma classe onde herdam atributos da mesma, ao pensar em uma classe bar, faz uma anlise do sistema que fazem funcionar esta classe e logo se definem os objetos que fazem parte do sistema, mesa, cadeira, balco, caixa e produtos. Segundo Pressman, (1995), os objetos podem ser: a) Entidades externas: reproduzem ou consomem informaes a serem usadas por um sistema baseado em computador, como por exemplo, outros sistemas, dispositivos, pessoas. b) Coisas: fazem parte do domnio de informao do problema, como relatrios, displays, cartas, cartazes. c) Ocorrncias ou eventos: ocorrem dentro do contexto de operao do sistema, por exemplo, uma transferncia de propriedade ou a concluso de uma srie de movimentos de rob. d) Papis (funes): desempenhadas por pessoas que interagem com o sistema, como por exemplo, gerente, engenheiro, vendedor. e) Unidades organizacionais: que so pertinentes a uma organizao, como diviso, grupo, equipe. f) Lugares: que estabelecem o contexto do problema e a funo global do sistema, por exemplo, piso de fbrica ou rea de descarga.

24

g) Estruturas: que definem uma classe de objetos ou, ao extremo, classes relacionadas de objetos, por exemplo, sensores, veculos de quatro rodas ou computadores.

2.3.11.3

Especificao de atributos

Os atributos especificam o objeto selecionado para incluso no modelo de anlise, eles do as caractersticas que definem o objeto esclarecendo aquilo que o objeto significa no contexto do espao do problema.

2.3.12

Modelagem de Dados
A tcnica de modelagem de dados concentra-se unicamente nos dados,

representando uma grande rede de dados de um determinado sistema. Modelagem de dados muito importante devido ao relacionamento dos dados ser muito complexa, os dados dentro da modelagem so independentes, ou seja, os processos que transformam os dados no afetam sua modelagem.

2.3.12.1

Diagramas Entidade-Relacionamento

Para Pressman, (1995) a notao fundamental para a modelagem de dados o diagrama entidade-relacionamemto (E-R). Os objetos de dados so representados por um retngulo que ligados por relacionamento que possuem um formato de losango, esses ligamentos possuem linhas que identificam a quantidade, exemplo um funcionrio pode vender muitos carros. Objetividade especifica na busca dos dados faz a diferena com relao aos outros modelos DBMS. A figura a seguir mostra um diagrama E-R:

Figura 4 - Aplicao de um diagrama E-R (Fonte: PONTES, 2008)

25

2.4 UNIFIED MODELING LANGUAGE


A Unified Modeling Language ou (UML) composta basicamente de mtodos, classes, tecnologia de suporte e os fatores de sucesso na implementao. A classe um modelo no qual so criados objetos que se relacionam, uma descrio de um conjunto de instncia que compartilham as mesmas operaes, atributos, relacionamentos e semntica. Os objetos herdam da classe atributos que podem ser compartilhados por todos eles, tambm podem a partir da classe estabelecer relacionamentos com outras classes: duas classes podem compartilhar alguns atributos, mas manipulam outros atributos diferentes. Na programao orientada a objetos, a herana permite expressar

relacionamentos entre as classes onde as classes subjacentes derivam em subclasses mais complexas. Uma classe bsica contm todos os atributos que so compartilhados entre as classes derivadas da classe base. Subclasses usam atributos compartilhados existentes, reimplementam atributos compartilhados ou criam novos atributos.

2.4.1 Diagramas da UML


Os diagramas da UML tm uma grande importncia em vrios aspectos de modelagem atravs da notao definida pelos seus vrios tipos de diagramas. Um diagrama uma apresentao grfica representada por um conjunto de elementos de modelo, frequentemente mostrado como grfico conectado a arcos que indicam os relacionamentos e vrtices (outros elementos do modelo). Para modelar um sistema complexo sero necessrias vrias abordagens com aspectos diferentes como: o aspecto no funcional, que se baseia no tempo de processamento, confiabilidade e produo; o aspecto organizacional, que tem como base a organizao do trabalho mapeamento e cdigo; e o aspecto funcional que foca na estrutura esttica e interao dinmica.

26

2.4.1.1 Diagramas de caso de uso


Segundo Fowler (2005), os diagramas de caso de uso capturam os requisitos funcionais de um sistema, servem para descrever as interaes tpicas entre os usurios e o sistema, fornecendo uma narrativa sobre como o sistema utilizado. Os casos de uso possuem cenrio onde mostram as seqncias de passos que descrevem uma interao entre o usurio e o sistema. Esse cenrio representa vrias alternativas ou aes que so feitas pelos atores dentro do sistema. Cada caso de uso tem um ator principal, que pede ao sistema para que execute um servio. O ator principal aquele cujo objetivo o caso de uso est tentando satisfazer e, normalmente (mas nem sempre) o iniciador do caso de uso. Podem existir outros atores com mais o sistema se comunica enquanto executa o caso de uso. Eles so conhecidos como atores secundrios. A figura abaixo mostra um diagrama de caso de uso.

Figura 5 - Diagrama de Caso de Uso (Fonte: DSC, 2008).

27

2.4.1.2 Diagramas de Classe


Os diagramas de classes descrevem os objetos que esto contidos nos sistemas e os relacionamentos entre eles, tambm nos mostra as propriedades e as operaes de uma classe juntamente com as restries que se aplicam nas conexes dos objetos. Diagrama de classe no aparece do nada ele conseqncia do prvio levantamento de requisitos, definio de casos de usos onde sero mostradas as aes dos usurios. A figura 6 ilustra um Diagrama de Classe.

Figura 6 - Diagrama de Classe (Fonte: VOXXEL, 2008).

a) Propriedades As propriedades correspondem aos campos de uma classes, esses campos possuem caractersticas dos objetos que se parecem com duas notaes distintas: Atributos e associaes. Embora elas se paream diferentes em um diagrama, na realidade elas so a mesma coisa.

28

b) Atributos Atributos fazem a descrio de uma propriedade como uma linha de texto dentro da caixa de classe em si. A forma completa de um atributo a seguinte: Visibilidade nome: Tipo multiplicidade = valor-por-omisso {lista de propriedades} Exemplo: nome: String [1] = Sem Ttulo {readOnly}.

c) Associaes Segundo Fowler (2005) Associao uma linha cheia entre duas classes, direcionada da classe de origem para a classe destino. O nome da propriedade fica no destino final da associao, junto com sua multiplicidade. O destino final da associao vincula classe que o tipo da propriedade. Conforme a figura abaixo:

Figura 7 - Associaes (Fonte: Autor)

d) Multiplicidade Multiplicidade a relao dos objetos identificando por exemplos quantos pedidos um cliente poder fazer ou vrios clientes podem fazer mais de um pedido ou at mesmo vrios clientes podem fazer um pedido. As multiplicidades vistas mais comumente so: 1 ( Um pedido deve ter exatamente um cliente) 0...1 (Um cliente corporativo pode ter ou no um nico representante de vendas)

29

* (Um cliente no precisa fazer um pedido e no existe nenhum limite superior para um nmero de pedidos que um cliente pode fazer- zero ou mais pedidos.)

e) Operaes Operaes so exatamente as aes das classes, essas operaes correspondem aos mtodos presentes em uma classe.

f) Generalizao Generalizao corresponde a uma classe principal onde as subclasses possuem alguns atributos dessa classe, um exemplo claro o que envolve pessoas fsicas e jurdicas de uma empresa. Elas possuem diferenas, porm muitas semelhanas, as semelhanas podem ser colocadas em uma classe geral: Cliente (o supertipo), com cliente pessoa fsica e cliente pessoa jurdica como subtipos.

2.4.1.3 Diagrama de atividade


Os diagramas de atividade consistem em uma tcnica para mostrar a lgica de procedimento, realizando o processo de negcio e fluxo de trabalho. Este diagrama tem uma semelhana muito grande com os fluxogramas, tendo uma diferena em relao ao diagrama de atividade suportar comportamento paralelo. O n inicial da o ponto de partida para a entrada e logo em seguida ter a primeira ao. Poder, durante a seqncia de aes, aparecerem a linha de separao que consiste em um fluxo de entrada e vrios fluxos concorrentes de sada. Segundo (Fowler, 2005) o diagrama de atividade permite que quem esteja seguindo o processo escolha a ordem na qual fazer as coisas. Em outras palavras, ele simplesmente determina as regras essncias de seqncia que se deve seguir.

30

A figura seguinte mostra um diagrama de atividade:

Figura 8 - Diagrama de Atividade (Fonte: LINHA, 2008)

Este diagrama de atividades mostra a primeira ao consultar produto em seguida tem o tringulo de deciso se o produto existe ou no, se existir voc altera o produto se no cadastra produto logo aps vem a separao em que a classe alterar e cadastrar pode estar na mesma classes, onde atravs desses divisores podemos separar as atividades de acordo com as classes, sendo a ultima ao gravar produto.

31

2.5 BANCO DE DADOS


Segundo Korth e Silberschatz (1995), um Banco de Dados (BD) consiste em um conjunto de dados inter-relacionados, projetados para gerenciar e armazenar informaes. Na dcada de 60, foram criados dois dos principais modelos para armazenamento de dados: o modelo de dados em rede e o modelo hierrquico. De acordo com Souza (2007), o modelo de dados em rede, como mostra a figura 9, representado apenas por colees de registros e links, utilizando caixas e linhas, enquanto o modelo hierrquico organiza os dados em forma de rvores, conforme a figura 10. Ambos os modelos necessitavam de um conhecimento de estruturas fsica do banco para realizar consultas.

Figura 9 - Modelo em Rede (Fonte: KORTH e SILBERSCHATZ, 1995)

Figura 10 - Modelo Hierrquico (Fonte: DEVMEDIA, 2008)

32

No entanto, nenhum dos modelos citados anteriormente se tornou padro, mas sim o modelo de dados relacional criado na dcada de 70 por Edgar Frank Codd, que separou a estrutura lgica do mtodo de armazenamento fsico do BD. Em 1976, Peter Chen props o modelo Entidade Relacionamento (E-R), figura que possibilitou ao projetista focar apenas na utilizao dos dados, deixando de lado estrutura lgica da tabela.

2.5.1 Principais Caractersticas de um BD


Os bancos de dados tm como uma de suas principais caractersticas, a forma como so independentes dos programas, podendo ter seus dados compartilhados por mltiplas aplicaes. Um BD descreve a forma como os dados so armazenados, ou seja, a estrutura de cada arquivo, como tipo, formato, restries, etc.

2.5.2 Abstrao de dados


O SGBD fornece aos usurios uma viso abstrata dos dados omitindo alguns detalhes sobre o armazenamento das informaes (KORTH e SILBERSCHATZ, 1995). O nvel Fsico o nvel mais baixo, define a maneira que os dados sero armazenados no BD, sendo descritas estruturas complexas de baixo nvel. O nvel Conceitual define quais os dados que sero armazenados e o relacionamento entre eles, este nvel utilizado pelos administradores do BD. O nvel de Vises do Usurio: o usurio tem acesso aos dados de acordo com sua necessidade, este nvel tem o objetivo de tornar mais simples a interao com o sistema, fornecendo numeras vises para um banco de dados. A figura a seguir apresenta os nveis de abstrao:

Figura 11 - Nveis de Abstrao (Fonte: KORTH e SILBERSCHATZ, 1995)

33

2.5.3 Modelagem de Dados


A Modelagem Conceitual: onde se descreve, de forma independente da implementao, a estrutura do banco de dados, sem informar como os dados estaro armazenados. Utiliza o diagrama Entidade-Relacionamento, projetado para estar mais prximo da viso que o usurio possui dos dados. De acordo com Korth e Silberschatz (1995), o modelo EntidadeRelacionamento, foi projetado para facilitar o projeto de um BD, estando o mais prximo possvel da viso de dados que o usurio possui, pois baseado na percepo de objetos bsicos do mundo real, as entidades e os relacionamentos. Uma entidade consiste em um objeto concreto ou abstrato distinguvel de outros objetos. So representados por um conjunto de atributos, ou seja, os valores dos dados. As entidades so classificadas em entidades fortes, quando existem de forma independente, e entidades fracas, quando dependem de uma entidade forte para existir. Um relacionamento uma associao entre diversas entidades, tornando possvel o compartilhamento de informaes. So classificados de acordo com o grau, ou seja, o nmero de entidades que se relacionam e de acordo com a cardinalidade, isto , o nmero de registro que esto associados entre duas entidades. A figura 12 mostra a cardinalidade dos relacionamentos entre as entidades (a) e (b).

Figura 12 - Tipos de Cardinalidade (Fonte: Autor)

34

O modelo E-R representado graficamente pelo diagrama EntidadeRelacionamento, que fornece um conceito generalizado sobre a estruturao dos dados no sistema. A figura seguinte mostra um diagrama E-R.

Figura 13 - Diagrama E-R (Fonte: KORTH e SILBERSCHATZ, 1995)

2.5.4 Modelagem Lgica


Na modelagem lgica, onde se define como o banco de dados ser implementado e se obtm uma viso mais detalhada sobre o armazenamento dos dados, organizando-os em um banco de dados relacional, conforme SOUZA (2007).

2.5.4.1 Banco de dados relacional


De acordo com Korth e Silberschatz (1995), um banco de dados relacional consiste em uma coleo de tabelas, onde suas linhas representam um relacionamento entre um conjunto de valores. A figura 14 representa um banco de dados relacional:

Figura 14 - Tabelas de um BD Relacional (Fonte: ENG, 2008)

35

2.5.4.2 lgebra Relacional


lgebra relacional uma linguagem de consulta procedural, que consiste em uma coleo de operaes cannicas para manipular relaes, selecionando tuplas, ou seja, conjuntos de registros, para especificar uma determinada consulta em um BD. (SOUZA, 2007). As operaes SELECT e PROJECT, so algumas das operaes fundamentais da lgebra relacional. O Select utilizado para selecionar um conjunto de tuplas que satisfazem uma determinada condio de seleo, conforme o exemplo a seguir. <condies_de_seleo> (<nome da seleo>). O Project, por sua vez, seleciona um conjunto determinado de colunas de uma relao, como a seguinte exemplo: <lista_de_atributos> (<nome da relao>). Project e Select tambm podem ser utilizados em conjunto, fazendo com que determinadas colunas sejam selecionadas. O exemplo a seguir mostra este caso: <lista_de_atributos> (<condies_de_seleo >) (<nome da seleo>).

2.5.5 Structured Query Language (SQL)


Segundo Korth e Silberschatz (1995) a Structured Query Language (SQL), uma linguagem de consulta estruturada desenvolvida no incio dos anos 70, no laboratrio de pesquisa da IBM, em San Jose. A linguagem SQL tornou-se a linguagem padro para acessar bancos de dados. Uma de suas principais caracterstica o fato de ela no ser uma linguagem procedural, por processar conjuntos de registros, ao invs de um registro por vez. Utilizando a linguagem SQL, o usurio capaz de manipular tipos complexos de dados. Divide-se basicamente em duas partes: a linguagem de definio de dados (DDL) e a linguagem de manipulao de dados (DML). (SOUZA, 2007). A DDL oferece comandos para definir esquemas de seleo, modificao e remoo de relaes e criao de ndices. O cdigo a seguir mostra um comando SQL para definio de dados, onde se cria uma tabela (relao).

CREATE TABLE <nome_tabela> (<nome_coluna1><tipo_coluna1>), (<nome_colunan><tipo_colunan>). 36

A DML inclui uma linguagem de consulta, que se baseia na lgebra relacional, onde se utilizam comandos para insero, remoo e alterao de tuplas em um banco de dados. Em SQL o comando SELECT utilizado para selecionar tuplas e atributos em uma ou mais tabelas, como mostra a forma bsica a seguir: SELECT <lista de atributos> FROM <lista de tabelas> WHERE <condies> Inseres e atualizaes de registros em SQL so feitos a partir da utilizao dos comandos INSERT INTO e UPDATE, respectivamente. As formas gerais a seguir mostram como so feitos estas operaes nas tuplas de um banco de dados relacional: Insero: INSERT INTO <nome da tabela> <(lista de colunas)> VALUES <(lista de valores)>; Atualizao: UPDATE <tabelas> WHERE <condio>.

2.5.5.1 Views
Conforme Korth e silberschartz, as Views ou vises so definidas como um mecanismo utilizado para tomar mais simples as consultas do BD, estabelecendo a consulta que ir computar a viso. O exemplo a seguir mostra a criao de uma View: CREATE VIEW <nome da viso> AS SELECT <lista de atributos> FROM <lista de tabelas>

2.5.5.2 Generators
Um Generator uma ferramenta que retorna um valor incrementado toda vez que chamado. So independentes de transaes e podem ser usados de vrias maneiras. Segue um exemplo de como um generator criado: CREATE GENERATOR GEN_CLIENTE_ID; SET GENERATOR GEN_CLIENTE_ID TO 1;

37

2.5.5.3 Triggers
De acordo com Korth e Silberschartz (1995), uma trigger, tambm conhecida como gatilho, consiste em um comando que executado de forma automtica pela aplicao como consequncia de uma alterao no banco de dados. Na construo de uma trigger necessrio especificar as condies em que a trigger ser acionada e as aes que sero executadas aps o seu acionamento. Em SQL uma trigger criada utilizando cdigo conforme o exemplo a seguir. CREATE TRIGGER <nome_da_trigger> FOR <nome_da_tabela> ACTIVE <condio_de_ativao> POSITION 0 AS BEGIN <corpo_da_trigger> END Atravs das triggers, operaes podem ser executadas sempre que determinador eventos ocorrem em uma tabela ou view, como antes da insero em uma tabela (Before Insert), aps a insero (After Insert), antes de efetuar uma alterao (Before Update), depois da alterao (After Update), antes de uma excluso (Before Delete) ou depois da excluso (After Delete). Uma das principais utilizaes das triggers para implementar um mecanismo de auto-incremento, como mostra o seguinte exemplo: CREATE TRIGGER P_CONTAS_BI FOR P_CONTAS ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.COD IS NULL) THEN NEW.COD = GEN_ID(GEN_P_CONTAS_ID,1); END

38

2.5.5.4 Stored Procedures


As Stored Procedures so conjuntos de instrues executadas dentro do banco de dados, utilizadas para encapsular tarefas repetitivas, recebendo parmetros de entrada e retornando um valor na sada. (DEVMEDIA, 2008). A utilizao de stored procedure no banco de dados traz inmeras vantagens: Modularidade: Alternando somente as suas operaes, as modificaes estaro disponveis para toda aplicao, pois o procedimento se encontra dividido do restante do software; Reduo do trfego na rede: com a passagem de parmetros para o servidor e utilizando o seu processamento, h uma reduo do trfego dos dados pela rede; Melhor performance: os stored procedure so pr compilados e aguardam memria cach at serem chamados para executar determinada operao e recebem o valor dos parmetros tornando sua execuo mais rpida e otimizada a performance da aplicao. A criao de uma stored procedure mostrada a seguir: CREATE PROCEDURE <nome_da_procedure ><parmetros_de_entrada> RETURN <lista_de_parmetros_de_sada> AS <lista_de_variveis_locais> BEGIN <corpo_da_procedure> END

Comandos SQL tambm podem ser utilizados dentro de uma stored procedure, sendo possvel a utilizao de variveis locais ou parmetros de entrada. O exemplo seguinte mostra a utilizao de um comando SQL na stored procedure: CREATE PROCEDURE INSERIR_CLIENTE ( ID_CLIENTE INTEGER, NOME_CLIENTE CHAR (30)) AS BEGIN INSERT INTO CLIENTE (ID_CLIENTE, NOME_CLIENTE) VALUES (:ID_CLIENTE, :NOME_CLIENTE); END

39

Para utilizar uma stored procedure em uma aplicao Delphi, por exemplo, necessrio que sejam passados os parmetros de entrada e que o comando ExecProc seja executado, conforme o cdigo a seguir: procedure TForm1.btnGravarClick(Sender: TObject); begin with spCliente do begin Params[0].AsInteger := cdsClienteID_CLIENTE.AsInteger; Params[1].AsString := cdsClienteNOME_CLIENTE.AsString; ExecProc; end; end;

2.5.6 Arquitetura Cliente/ Servidor


De acordo com Oliveira (2000), a arquitetura Cliente/ Servidor, descreve o processamento cooperativo distribudo, onde o relacionamento entre os Clientes e o Servidor, realiza-se entre componentes de software e hardware.

2.5.7 Sistema Gerenciador de Banco de Dados (SGDB)


Segundo Korth e Silberschatz (1995), o principal objetivo dos SGDBs prover um ambiente onde se pode recuperar e armazenar informaes de maneira eficiente, definindo estruturas de armazenamento e mecanismo de manipulao de dados, evitando redundncia e inconsistncia desses dados e fornecendo segurana s informaes. So os principais exemplos de um SGDB: Firebird, InterBase, PostgreSQL, SyBase, SQL-Server, MySQL, e outros.

2.5.8 Firebird
Segundo (Cantu, 2005), com a abertura de seu cdigo fonte do InterBase em julho de 2000, tornando-o Free e Open Source, a comunidade de usurios criou um novo banco de dados, o Firebird, compatvel com o padro SQL-ANSI-92. Entretanto, a Borland continuou desenvolvendo uma verso comercial do InterBase, esta no teria o cdigo aberto e nem seria free, o que causou uma migrao

40

de usurios para o Firebird, pois aps a criao de novas verses e atualizaes no seu cdigo ao contrrio do InterBase o Firebird se mostrou uma melhor opo por estar em pleno desenvolvimento e pela garantia de continuar sendo Open Source.

2.5.8.1 Principais Caractersticas


O Firebird mantm total compatibilidade com o InterBase 6.0, possuindo inmeras melhorias relacionadas adio de novos recursos e correes de bugs, sendo a facilidade de instalao e manuteno do Firebird um diferencial em relao aos seus concorrentes, pois no exige conhecimento especifico. Ao contrrio de seus concorrentes o Firebird utiliza um modelo de concorrncia diferente do modelo baseado em travas, o Versioning, baseado em um sistema otimista de concorrncia, que presume que a chance de mais de um usurio alterar um registro de dados ao mesmo tempo seja muito baixa. No necessita de manter um log de transaes, para desfazer as ltimas operaes no concludas, o Firebird altera automaticamente o flag de transaes pendentes para Rollback assim que o servidor reiniciado, retornando quase instantaneamente o banco a um estado consistente. Sua alocao de dados feita de forma dinmica, ou seja, a medida que os dados so inseridos, os arquivos do banco de dados crescem no disco. Porm, quando um volume de informaes removido do banco, o seu tamanho em disco no diminui, pois o Firebird deixa o banco com o mesmo tamanho, reaproveitando o espao j alocado para novas informaes, visando melhor performance. O Firebird multiplataforma, com verses para as plataformas Win32, MacOS, Linux, Solaris, e outras e suporta os protocolos de rede TCP/IP e NetBEUI.

2.5.8.2 Usurios de peso


O Firebird utilizado em uma grande variedade de empresas internacionais e nacionais, destacando-se a Embrapa (Empresa Brasileira de Pesquisa Agropecuria), ESALQ-USP, e centenas de empresas de desenvolvimento de software.

41

2.6 PROGRAMAO
No desenvolvimento de softwares necessrio que sejam definidas seqncias de instrues que executam tarefas at atingir um objetivo ou soluo de um determinado problema. (MORAES, 2000)

2.6.1 Algoritmo
Segundo Moraes (2000), algoritmos so seqncias finitas de comandos e instrues que, quando obedecidos, levam a execuo de uma tarefa e alcanam um objetivo proposto. Os algoritmos so independentes das linguagens de programao, pois para serem escritos utilizado o pseudocdigo, uma linguagem simples e de fcil entendimento, que no executado em um sistema real. O exemplo a seguir mostra um algoritmo escrito utilizando pseudocdigo: INICIO LEIA (A); LEIA (B); LEIA (C); MEDIA (A + B + C) / 3;

ESCREVA (A mdia :, MEDIA); FIM.

2.6.2 Linguagens de Programao


De acordo com Farrer et al. (1989), as Linguagens de Programao so utilizadas para transcrever os algoritmos para uma linguagem que o computador compreenda direta ou indiretamente e o traduza para linguagem de mquina, para que possa ser executado.

2.6.2.1 Linguagem de Mquina


A Linguagem de Mquina diz respeito ao conjunto de instrues que tem a capacidade de ativar diretamente os dispositivos eletrnicos do computador, como registradores e acumuladores, sendo diferente para cada arquitetura. (FARRER et al., 1989)

42

extremamente rudimentar, sendo totalmente expressa em forma binria ou hexadecimal, o que torna seu entendimento mais difcil de ser assimilado. Tambm necessita de um cuidado especial para se estabelecer os posicionamentos dos dados e instrues na memria do computador.

2.6.2.2 Traduo
Existem dois mtodos de traduo da linguagem de programao utilizada para a linguagem de mquina, que so a compilao e a interpretao. (WIKIPEDIA, 2008) Na compilao, o cdigo traduzido antes que o programa seja executado, gerando um arquivo executvel, como nas linguagens Pascal e C, por exemplo; enquanto na interpretao a traduo feita durante a execuo do programa, um exemplo disso a linguagem Java.

2.6.2.3 Nveis de Abstrao


As linguagens de programao se dividem em dois tipos distintos, quanto ao grau de abstrao: as linguagens de baixo nvel e as linguagens de alto nvel. (WIKIPEDIA, 2008) Quando possuem caractersticas mais prximas da arquitetura do computador, so classificadas como linguagens de baixo nvel, pois trabalha diretamente com registradores do processador. A linguagem Assembly um exemplo de linguagem de baixo nvel. As linguagens de alto nvel so mais prximas da linguagem humana e dispensam o conhecimento de instrues em nvel de hardware. Como exemplos de linguagens de alto nvel podem ser citados Pascal, Object Pascal (Delphi), C, C++, C #, Java, PHP e Visual Basic, dentre outras.

2.6.2.4 Paradigmas de Programao


Diversas formas so identificadas quanto abordagem da sintaxe de uma linguagem de programao. Alguns exemplos so: a Programao Estruturada e a Programao Orientada a Objeto. (WIKIPEDIA, 2008). A Programao Estruturada tem como princpios bsicos trs mecanismos fundamentais para o desenvolvimento de algoritmos, que so a seqncia, a seleo e a iterao, o que torna a compreenso do programa mais fcil.

43

No mecanismo de seqncia, o programa executado passo a passo, de forma que tarefas so executadas seqencialmente; na seleo onde se encontram as estruturas de deciso; na iterao so utilizadas as estruturas de repetio (DCA, 2008). Conforme Leite e Rahal (2002), a Programao Orientada a Objeto (POO), uma classificao utilizada para linguagens que implementam os conceitos bsicos de abstrao, encapsulamento, herana e polimorfismo. Na POO, o programador deve criar um conjunto de classes que iro definir os objetos que sero utilizados no desenvolvimento do software, sendo que cada classe dever determinar os mtodos, que definem as aes que os objetos iro executar, e os atributos, ou seja, as caractersticas de um determinado objeto.

2.6.3 Linguagem Delphi


Segundo Anselmo (1997), Delphi baseado em Object Pascal, que uma linguagem Orientada a Objeto, pois suporta completamente todos os conceitos de POO, como encapsulamento, herana e polimorfismo.

2.6.3.1 Object Pascal


A linguagem Object Pascal possibilita o desenvolvimento de aplicaes utilizando banco de dados Cliente/ Servidor, ponteiros para alocao de memria, criao e reutilizao de objetos e bibliotecas dinmicas. (ANSELMO, 1997) Na linguagem Object Pascal so utilizadas constantes para armazenar valores fixos, que so declaradas utilizando a palavra reservada const seguida do nome da constante e do valor atribudo a ela; as variveis, isto , os identificadores que armazenam valores no fixos, tm sua declarao utilizando a palavra reservada var antes do nome da varivel, e logo depois indica qual o tipo da varivel. So utilizados como estruturas de condio os comandos if... then... else..., que escolhe o resultado de uma condio booleana e comando case...of, que consiste em uma lista de declaraes que satisfaz a condio de um seletor. Como estruturas de repetio so usadas repeat...until, que repete um bloco de comandos ate que satisfaa certa condio; o for... to ... do..., que incrementa uma varivel e repete um bloco at que um valor final do intervalo seja atingido pela varivel; e o while...do..., que repete um bloco at que satisfaa determinada condio.

44

Blocos de Procedimentos e Funes so utilizados para implementar os mtodos vinculados a cada objeto, sendo que os procedimentos no retornam um valor especfico, enquanto as Funes so obrigadas a retornar algum valor. Como Object Pascal considerada uma Linguagem Orientada a Objeto, ela tem a capacidade de trabalhar com objetos, pertencentes a classes j existentes ou criadas pelo prprio programador. O exemplo a seguir mostra a declarao de um objeto TForm1, que uma instncia da classe TForm: type TForm1 = class (TForm);

2.6.3.2 Borland Delphi 7


O Delphi 7 possui diversas caractersticas que se tornam diferenciais do produto em relao aos concorrentes, sendo um compilador rpido e otimizado, que gera executveis sem a necessidade de utilizar bibliotecas run time, resultando em um desempenho muito superior ao de outras ferramentas e tendo a possibilidade de se criar novos componentes, o que o torna bastante flexvel e adaptvel, facilitando o trabalho do programador. Logo quando o Delphi iniciado, alguns objetos so visveis formando o seu ambiente de trabalho, que so os seguintes: Form, Code Editor, Component Palette, Object Inspector e Object Tree View. Os Forms so os formulrios onde so adicionados e organizados os outros objetos que iro interagir com o usurio; em uma aplicao ele se torna uma janela, ou seja, a interface que o usurio utilizar no software. A figura a seguir mostra um form:

Figura 15 - Form criado no Delphi (Fonte: Autor)

45

No Code Editor onde se gera todo o cdigo-fonte do projeto. Ao ser aberto um novo projeto, na pgina do editor de cdigos do Delphi gerado automaticamente uma Unit com o arquivo de cdigo (.PAS). A figura abaixo mostra um Code Editor:

Figura 16 - Code Editor (Fonte: Autor)

Os componentes so elementos que sero utilizados no desenvolvimento da interface da aplicao, eles esto localizados na palheta de componentes (Component Palette). Os objetos da palheta so divididos em grupos de acordo com sua funcionalidade, conforme mostra a figura 17. A linguagem Delphi torna possvel a criao de novos componentes, assim como a remoo, adio de componentes e criao de novas pginas na palheta de componentes.

Figura 17 - Component Palette (Fonte: Autor)

O Object Inspector composto por duas pginas: Properties e Events, onde so exibidos as propriedades e os eventos, respectivamente, que podem ser utilizados para personalizar os componentes. O Object TreeView, tem como sua principal funo exibir os componentes do formulrio de uma forma hierrquica, com ele possvel ter uma viso mais ampla dos componentes tornando mais simples alterar a hierarquia entre os componentes e encontr-los mais rapidamente. Ambos so mostrados na figura seguinte:

46

Figura 18 - Object TreeView e Object Inspector (Fonte: Autor)

2.6.3.3 Conexo com o Banco de Dados


De acordo com Oliveira (2000), quando uma aplicao que utiliza a arquitetura Cliente/ Servidor desenvolvida, a primeira tarefa a ser cumprida a conexo com o Banco de Dados. Existem inmeras tecnologias de acesso ao banco de dados que o Delphi capaz de suportar, entretanto a Borland desenvolveu uma tecnologia prpria, compatvel com as plataformas Windows e Linux, o dbExpress (IMASTERS, 2008). O dbExpress compatvel com plataformas Windows e Linux e tem como uma de suas principais vantagens o baixo overhead adicionado s operaes no banco, o que torna o desempenho extremamente alto, trabalhando com a tecnologia ClientDataSet do Delphi. No Delphi, os componentes de conexo com o banco de dados so adicionados em um DataModule. O primeiro componente que dever ser inserido no DataModule o SQLConnection, nativo da palheta dbExpress. Com um clique duplo sobre ele possvel criar uma nova conexo, a partir da tela mostrada na figura a seguir:

47

Figura 19 - Conexo no SQLConnection (Fonte: Autor)

Aps configurar a conexo, dever ser inserido no DataModule o componente SQLDataSet, tambm da palheta dbExpress, este componente ligado na conexo criada atravs da propriedade SQLConnection. Na propriedade Command Text do SQLDataSet, pode ser criado um cdigo SQL como um select, que ir trazer os campos da tabela que sero utilizados na aplicao. Na palheta DataAccess se encontram os outros componentes que sero utilizados, como o DataSetProvider, o ClientDataSet e o DataSource, este ser adicionado diretamente no form da aplicao. A figura seguinte mostra um DataModule com os componentes necessrios para uma conexo simples:

Figura 20 - DataModule e os Componentes de Conexo (Fonte: Autor)

48

O DataSetProvider ligado no SQLDataSet atravs da propriedade DataSet, depois liga-se o ClientDataSet no DataSetProvider indicando-o na propriedade Provider Name .Depois de ligar os componentes, com um duplo clique no ClientDataSet, abre-se uma janela onde sero includos os campos trazidos pelo select, clicando com o boto direito e escolhendo a opo Add all Fields, conforme a figura seguinte:

Figura 21 - Adicionando campos no ClientDataSet (Fonte: Autor)

Com a adio dos campos no ClientDataSet, o componente DataSource necessita ser ligado a ele, pois o ltimo nvel antes que seja ligado aplicao. Os componentes da palheta DataControls, como DBEdit, DBText, DBGrid so os componentes do Delphi capazes de serem ligados ao banco de dados. Atravs da propriedade DataSource, indicado qual o DataSource que ser utilizado pra conectar ao banco e na propriedade DataField informado a qual campo o componente DataControl estar ligado, como mostra a figura.

Figura 22 - Ligao no DataSource (Fonte: Autor)

49

DESENVOLVIMENTO

3.1 Modelos de Processo de Engenharia de Software


A engenharia de software teve uma um papel importante no desenvolvimento do sistema, onde se obteve uma organizao atravs de cronogramas para dividir as tarefas com determinadas metas e informaes coletadas. Foi utilizado um modelo de processo evolucionrio para organizar o processo de desenvolvimento do software: o modelo de prototipagem. Este modelo foi escolhido por oferecer uma melhor abordagem sobre formas de IHM que devero ser assumidas, testes de eficincia de algoritmos, etc. A figura a seguir ilustra o funcionamento do paradigma de prototipagem:

Figura 23 - Modelo de Prototipagem (Fonte: PRESSMAN, 1995)

50

3.1.1 Comunicao
Na fase de comunicao, foi feita uma reunio com o cliente, no caso o dono de uma vdeo-locadora que no ainda no informatizada, para a definio do objetivo geral do software, coleta de requisitos e identificao das necessidades conhecidas. Nessa reunio definiu-se que o software seria voltado para utilizao dos clientes da locadora e que necessitaria da aplicao de conceitos de usabilidade para a construo de sua interface.

3.1.2 Criao e modelagem do projeto rpido


Uma iterao, ou seja, repetio da prototipagem foi planejado de forma rpida, ocorrendo a modelagem. Na modelagem do projeto rpido, foi representado os aspectos que sero visveis para o usurio, como o layout da interface da aplicao de locao, mostrando a navegabilidade do software e utilizando os recursos de IHM.

3.1.3 Construo do prottipo


O resultado do projeto rpido um prottipo do software para vdeo-locadoras, que inicialmente apenas faz as operaes de busca, locao e reserva de filmes, que pode ser implantado no estabelecimento para que seja testado e avaliado pelo usurio.

3.1.4 Implantao, Entrega e Feedback


Na implantao e entrega do prottipo para o cliente, o prottipo foi avaliado e foi retornado um feedback por parte do cliente contendo informaes sobre esta avaliao prvia do software, para que fosse possvel refinar os requisitos e ajustar o software para que satisfaa as necessidades do usurio, ocorrendo a iterao, isto , iniciando novamente com a comunicao com o cliente e repetindo este ciclo, com o objetivo de que seja desenvolvido um software que atenda totalmente o que o usurio precisa. O Anexo 1 mostra o feedback retornado pelo dono da locadora, que testou e avaliou o prottipo do software. Foi feita uma coleta de novos requisitos, entrando mais uma vez no ciclo a partir da comunicao com o cliente.

51

3.2 Modelagem UML


Foram utilizados os conceitos de UML no desenvolvimento da modelagem do prottipo do sistema de locadora, onde foram aplicados os diagramas UML.

3.2.1 Ferramenta utilizada


Para desenvolver os diagramas UML com preciso, foi utilizado o software Visual Paradigm, uma ferramenta CASE, voltada para UML, que capaz de criar diversos diagramas, como diagramas de caso de uso, de atividades, de classes, de seqncia, dentre outros. A imagem seguinte mostra a interface do Visual Paradigm:

Figura 24 - Visual Paradigm Community Edition.

O software possui uma verso para testes, que expira em 30 dias, a Professional Edition for Windows 6.3 e uma verso gratuita com recursos limitados, a Community Edition. A verso escolhida foi a Communit Edition, pois os recursos que ela apresenta atendem totalmente as necessidades do projeto em desenvolvimento.

52

3.2.2 Construo dos diagramas


Cada diagrama possui uma viso parcial do sistema, que estando em conjunto, formam um todo integrado e coerente. Na fase de modelagem do sistema, foram construdos trs diagramas: o diagrama de caso de uso, o diagrama de atividade e o diagrama de classe.

3.2.2.1 Diagrama de caso de uso


O diagrama de caso de uso desse sistema mostra as aes do cliente em um cenrio de locadora, onde ao interagir com o sistema ele faz a reserva do filme obtendo atravs da opo de reserva as extenses agregadas, opes essas que so: obter tipo de preo, a censura do filme, reserva por categoria, tipo filme e tambm atravs do caso de uso locao tem se a extenso locao por itens, ou seja, ter uma opo dentro de locao. Cada ao representa um caso de uso dentro do cenrio da Locadora.

Figura 25 - Diagrama de Caso de Uso

3.2.2.2 Diagrama de classe O diagrama de classe a parte do trabalho que mostra a interao dos objetos que compem o sistema, onde teremos o objeto cliente fazendo reserva de filmes, sendo que cada um desses objetos possuem seus devidos atributos, esses atributos vo

53

classificar cada um deles, eles tambm possuem mtodos para desenvolver sua funo especifica no sistema. Na figura abaixo podemos ver tambm a multiplicidade dos relacionamentos, os asteriscos significam muitos para um ou muitos para muitos, onde um cliente poder fazer vrias reservas de vrios filmes, sendo que vrios filmes podem estar em uma mesma categoria ou censura e vrios filmes podem ter o mesmo preo. Os objetos categoria, censura, tipo preo e tipo filme so uma composio da classe filmes, sendo que se a classe filme for excluda, automaticamente as outras classes que esto unidas a ela tambm sero.

Figura 26 - Diagrama de Classe

3.2.2.3 Diagrama de atividades


Diagrama de atividade ilustra as etapas das tarefas feitas paralelamente pelo usurio no sistema, o crculo preto significa o inicio, logo o cliente efetua a primeira ao entrando no sistema com sua senha em seguida ele efetua a busca de filmes, escolhe o filme desejado. Logo depois entra no tringulo de deciso tendo as opes de fazer a locao deste filme, reserv-lo ou simplesmente cancelar a operao e sair do

54

sistema. Se a opo escolhida for fazer a locao, ele poder alugar outro filme ou concluir a locao. Caso escolha alugar outro filme, dever passar por todos os passos anteriores, e caso escolha concluir a locao, o cliente efetua o pagamento e termina a atividade de locao.

Figura 27 - Diagrama de Atividade

55

3.3 Construo do banco de dados


O banco de dados que ir armazenar e gerenciar os dados da aplicao foi construdo utilizando o modelo relacional. No desenvolvimento da aplicao foram aplicados os conceitos de banco de dados com a ajuda de algumas ferramentas.

3.3.1 Ferramentas utilizadas


O SGBD utilizado na aplicao o Firebird 2.0, o principal motivo pelo qual este SGDB foi escolhido, foi as inmeras vantagens que ele apresenta, como por exemplo, o fato de ser uma ferramenta OpenSource e free; a simplicidade de instalao, configurao e administrao; a compatibilidade total com aplicativos implementados em Delphi. Para o gerenciamento das tabelas e dos dados em geral do BD foi utilizado o IBExpert, que no uma ferramenta gratuita, mas possui uma verso trial, o IBExpert Trial Version, que compatvel com Firebird 2.0. A figura a seguir mostra a interface do IBExpert.

Figura 28 - Interface do IBExpert

56

A utilizao do IBExpert para administrar o banco de dados facilita e agiliza as operaes nas tabelas, como consultas simples e complexas, criao de stored procedures, triggers, generators, dentre outros. A biblioteca utilizada para acesso aos dados no Firebird a fbclient.dll, que uma biblioteca especfica para trabalhar com Firebird.

3.3.2 Criao de domnios e tabelas


Utilizando a ferramenta IBExpert, foram enviados primeiramente os domnios, que tem a finalidade de simplificar a identificao dos tipos de cada campo das tabelas, como por exemplo, domnio para chaves primrias, domnio para nomes, domnio para valores do tipo moeda: fazendo uma padronizao dos tipos e agilizando a construo do BD. A figura 28 mostra alguns dos domnios criados no banco de dados da aplicao:

Figura 29 - Domnios criados no banco

Depois da definio dos domnios, foram criadas nove tabelas: a) CLIENTES: armazena os clientes do estabelecimento; b) FILMES: armazena todos os filmes que a locadora possui; c) CATEGORIA: categorias ou gneros dos filmes como, por exemplo: comdia, ao, terror, etc. d) CENSURA: mostra a censura do filme, ou seja, a partir de qual classificao etria ele voltado, como 12 anos, 18 anos, livre, etc. e) TIPO_PRECO: o tipo de faixa de preo que o filme se encaixa, como por exemplo: promoo, lanamento, preo padro da locadora; f) TIPO_FILME: o tipo de unidade do filme se um DVD (unitrio), se uma coleo com trs DVDs; g) RESERVAS: a tabela que armazena as reservas de um filme, quando no se encontra disponvel, o cliente pode reserv-lo para alug-lo quando estiver disponvel. 57

h) LOCACAO: indica qual cliente efetuou a locao, sendo que os filmes alugados so armazenados na tabela LOCACAO_ITENS. i) LOCACAO_ITENS: indica os filmes alugados. A figura abaixo mostra todas as tabelas do banco, indicando seus campos, chaves primrias e estrangeiras e os relacionamentos existentes entre elas.

Figura 30 - Tabelas e relacionamentos do BD

3.3.3 Gerao de autonumerao


Com as tabela j criadas, o prximo passo foi criar as SEQUENCES, que no Firebird 2.0, so semelhantes aos GENERATORS do Firebird 1.5, gerando uma seqncia numrica para os campos chave primria, que necessitam do uso de autonumerao. O cdigo SQL a seguir mostra a criao de uma sequence utilizada no BD, que tem a finalidade de armazenar o valor atual da seqncia numrica da tabela Filmes: CREATE SEQUENCE SEQ_FILMES_ID

Aps a criao das sequences, foi preciso cirar os gatilhos, ou triggers, para que antes da insero dos elementos nas tabelas, sejam gerados um novo id, utilizando as sequences criadas anteriormente e incrementando o valor 1. A seguir mostrado o

58

cdigo SQL utilizado para criar uma trigger para auto incremento no campo ID_FILME da tabela FILMES. CREATE TRIGGER FILMES_BI FOR FILMES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.ID_FILME IS NULL) THEN NEW.ID_FILME = GEN_ID (SEQ_FILMES_ID, 1); END

3.3.4 Utilizao de Stored Procedures


Foram criadas tambm stored procedures para as operaes de insero/ atualizao e para incluso. O motivo pelo qual foi decidido fazer estas operaes dentro do banco de dados, foi pelo fato de que desta maneira aumenta-se a performance da aplicao, executando-a mais rapidamente do que se todas estas operaes fossem feitas na prpria aplicao e eliminando os riscos de inconsistncia no banco de dados. A stored procedure mostrada no cdigo a seguir executa as operaes de insero e atualizao na tabela CATEGORIAS, que onde so cadastrados as categorias, ou gneros, dos filmes. Seu funcionamento acontece da seguinte forma: se o parmetro passado j existir a operao executada a de atualizao, e se no existir efetua a incluso. CREATE PROCEDURE CATEGORA_IU ( ID_CATEGORIA INTEGER, NOME_CATEGORIA VARCHAR (50)) AS BEGIN IF (EXISTS (SELECT ID_CATEGORIA FROM CATEGORIA WHERE (ID_CATEGORIA = :ID_CATEGORIA))) THEN UPDATE CATEGORIA SET NOME_CATEGORIA = :NOME_CATEGORIA WHERE (ID_CATEGORIA = :ID_CATEGORIA); ELSE INSERT INTO CATEGORIA ( ID_CATEGORIA, NOME_CATEGORIA)

59

VALUES ( NEXT VALUE FOR SEQ_CATEGORIA_ID, :NOME_CATEGORIA); END As excluses dos registros de uma tabela so feitas no banco de dados conforme o cdigo seguinte, que mostra a excluso de uma reserva do banco de dados. CREATE PROCEDURE RESERVAS_D ( ID_RESERVA INTEGER) AS BEGIN DELETE FROM RESERVAS WHERE (ID_RESERVA = :ID_RESERVA); END

3.3.5 Consultas partir de Views


Para facilitar as consultas que sero utilizadas na aplicao, foram criadas views, uma delas a view RESERVAS_CLIENTE, que a partir do campo ID_CLIENTE, traz todas as reservas de filmes que um determinado cliente efetuou, e que ainda esto em aberto. O cdigo a seguir mostra o funcionamento da view. CREATE VIEW RESERVAS_CLIENTE ( ID_RESERVA, ID_CLIENTE, ID_FILME, TITULO, DATA_RESERVA, STATUS) AS SELECT RESERVAS.ID_RESERVA, RESERVAS.ID_CLIENTE, RESERVAS.ID_FILME, FILMES.TITULO, RESERVAS.DATA_RESERVA, RESERVAS.STATUS FROM RESERVAS INNER JOIN FILMES ON (RESERVAS.ID_FILME =

FILMES.ID_FILME) WHERE END (RESERVAS.STATUS = A);

60

3.4 Implementao da Aplicao


Aps a criao do banco de dados e a definio dos mecanismos de excluso, alterao e incluso dos dados no banco, foi iniciada a implementao do software. O foco principal do projeto desenvolver um software em que o prprio cliente ir efetuar a busca, locao e reserva dos filmes. Portanto a construo do software foi focada nestas operaes relacionadas locao. Como uma vdeo-locadora necessita de um gerenciamento mais complexo, uma rea administrativa, onde sero feitos os cadastros dos clientes, filmes, gneros, e as devolues dos filmes, poder ser construda, utilizando a mesma conexo com o banco; esta ser citada como uma perspectiva de trabalhos futuros.

3.4.1 Ferramenta Utilizada


A linguagem escolhida para ser utilizada na implementao do software foi a linguagem Delphi. Um dos principais motivos para a utilizao desta linguagem foi pelo fato de ser baseada em Object Pascal, uma linguagem de alto nvel, que tem uma sintaxe de fcil entendimento, muito prxima da linguagem humana; e tambm por ter uma grande quantidade de material de aprendizado disponvel na internet. O compilador utilizado no projeto foi o Borland Delphi 7.

3.4.2 Conexo com o BD


Primeiramente foram criado um DataModule, e nele inseridos todos os componentes necessrios para efetuar a conexo com o banco de dados. Alm dos componentes citados anteriormente, foi utilizado o componente SQLStoredProc que ser ligado diretamente nas Stored Procedures (SP) do banco. A conexo com o banco de dados foi criada utilizando o driver UIBFirebird15, que um driver especfico para trabalhar com os componentes de conexo da palheta dbExpress e com banco de dados Firebird. Depois de configurar a conexo com o banco no SQLConnection, os demais componentes foram conectados devidamente entre si, sendo que todos os ClientDataSet do DataModule so ligados em um DataSetProvider genrico, assim concluindo a conexo com o banco de dados. A figura a seguir apresenta os componentes de conexo no DataModule:

61

Figura 31 DataModule e demais componentes de conexo

Como os procedimentos de excluso, alterao e incluso dos dados foram criados dentro do prprio banco, na aplicao apenas sero passados os parmetros necessrios para que as stored procedures do BD faam estas operaes. Ao concluir a conexo, foram criados os mtodos para as operaes de incluso, alterao e excluso, onde so passados os parmetros. O cdigo a seguir mostra um fragmento do mtodo para incluso e atualizao na tabela de reservas: with spReserva do begin Params[0].AsInteger := cdsReservasID_RESERVA.AsInteger; params[1].AsInteger := cdsReservasID_CLIENTE.AsInteger; params[2].AsInteger := cdsReservasID_FILME.AsInteger; params[3].AsDate := cdsReservasDATA_RESERVA.AsDateTime; Params[4].AsDate := cdsReservasVALIDADE_RESERVA.AsDateTime; params[5].AsString := cdsReservasSTATUS.AsString; ExecProc; end;

62

O mtodos que fazem as passagens de parmetros para incluso e alterao, so implementados nos eventos BeforePost de cada ClientDataSet, ou seja, antes que as modificaes sejam gravadas no banco.

3.4.3 Interface da Aplicao


Durante o desenvolvimento da interface, se obteve uma preocupao especial para que a interface satisfaa as condies de usabilidade, tornando a interao com o usurio fcil e satisfatria, diminuindo a taxa de erros. Como a interface foi projetada para ser simples e clara o mximo possvel, conseqentemente, sua utilizao ter fcil aprendizado e durante as vrias vezes que o usurio a utilizar, suas funcionalidades sero memorizadas. Como a aplicao voltada para utilizao dos clientes da locadora, ela foi desenvolvida de um modo que a interao com o usurio possa ser feita de vrias formas, como a forma tradicional, com teclado e mouse; e tambm com a utilizao da tecnologia touch screen (monitores ou lentes sensveis ao toque). Pensando nesta possibilidade, no desenvolvimento da interface, foram utilizados recursos que tornam possveis a utilizao dos recursos touch screen para interao com o usurio, como a criao de botes maiores e um teclado virtual. A interface da aplicao foi desenvolvida no Delphi, e foi baseada basicamente em um form principal, onde foram adicionados os componentes necessrios para tornar o software funcional. Foram utilizados os componentes ActionList, que tem a finalidade de listar as aes que podero ser feitas durante um evento de um objeto; uma ImageList, onde armazena-se as imagens utilizadas no sistema; e os DataSources que faro uma ponte de ligao entre a aplicao e o banco de dados. Como a aplicao possui vrias telas diferentes, para continuar utilizando apenas um form, foi necessrio utilizar o componente PageControl, nativo do Delphi 7, atravs do PageControl podem ser criadas inmeras pginas na aplicao conforme as necessidades existentes. O PageControl principal, foi renomeado para PagePrincipal e nele foram criados dois TabSheets, isto , duas pginas que foram apresentadas como pgPesquisa, onde so feitas as buscas de filmes e pgLocacao, onde mostrado os detalhes do filme, sinopse, trailer e opes de locao ou reserva.

63

3.4.4 Tela de Busca


Primeiramente, na TabSheet de busca, a pgPesquisa, foram adicionados os botes relacionados a cada tipo de busca, como pesquisa pelo ttulo do filme, pelo gnero, pelos atores que estrelam o filme, pelo diretor do filme, pelo ano de lanamento; seguindo o mesmo padro foram adicionados botes para busca avanada, como busca pelos lanamentos, pelos filmes mais alugados e pelos filmes em promoo. Estes botes foram criados a partir dos componentes BitBtn. Foram utilizados os componentes Panel (painis), que auxiliam na organizao da interface separando certos objetos. Dentro de um dos Panels da tela de busca foi inserido outro PageControl, onde foram criados TabSheets para cada tipo de busca. Este PageControl foi denominado pageBusca e em cada TabSheet foram adicionados os componentes para a exibio dos dados pesquisados, que so os DBGrids e os objetos que onde sero digitados os parmetros de pesquisa, neste caso os Edits. A figura seguinte mostra a tela de busca da aplicao:

Figura 32 - Tela de busca

Para que a interao com o usurio seja feita independente dos meios que sero usados para utilizar a aplicao, foi criado um teclado virtual, que composto por um

64

teclado numrico, um teclado de letras maisculas, pontuao, e outros smbolos e um teclado de funes, como as teclas espao e apagar. Todas as funcionalidades baseadas nos conceitos de Usabilidade, principalmente na facilidade de aprendizado e na eficincia e satisfao do usurio. A tela de busca por ttulo a tela padro de busca, sendo que o cliente pode escolher o tipo de busca desejada. Quando o cliente escolhe fazer um tipo de busca, o componente ClientDataSet ligado no DataSource utilizado fechado e depois aberto, para se caso algum filme for includo na maquina do servidor, este poder aparecer atualizado na aplicao do cliente, os teclados ficam visveis e os ndices dos PageControls mudam de acordo com a escolha. Clicando no boto de busca desejado, o DBGrid preenchido com os dados relacionados pesquisa. O preenchimento do grid implementado no evento OnChange do Edit, onde enquanto algum texto digitado o DBGrid preenchido em tempo real e o resultado do texto buscado indicado no prprio DBGrid. Quando se escolhe um gnero como parmetro de busca, os filmes relacionados a este gnero so filtrados, aparecendo no grid de filmes. A propriedade Filter do ClienDataSet possibilita a implementao desta operao, pelo fato de quando o usurio der um duplo clique no grid de gneros, uma varivel receber o valor do campo ID_GENERO do gnero desejado, logo depois o Filter do ClientDataSet referente aos filmes receber o valor armazenado na varivel, assim filtrando todos os filmes do gnero escolhido. O cdigo a seguir mostra como a propriedade Filter do Client utilizada: dmLocacao.CdsBuscaFilme.Filter := 'ID_CATEGORIA = '+ IntToStr(codGenero); ShowMessage(dmLocacao.CdsBuscaFilme.Filter); dmLocacao.CdsBuscaFilme.Filtered := True; Os outros tipos de busca tambm utilizam a propriedade Filter, como a busca por ator/ atriz, por diretor, ano de lanamento e as buscas avanadas. Aps efetuar a busca, o cliente pode dar um clique duplo no filme escolhido, esta ao seta o TabSheet da pgina de detalhes do filme, ou seja, a pgina de locaes. Este mtodo implementado no evento duplo clique do DBGrid de filmes, onde verificado se existem trailer e sinopse cadastrada no banco. Para visualizar o cdigo-fonte referente s funcionalidades do teclado virtual consultar o Anexo 2.

65

3.4.5 Tela de Detalhes do Filme


Aps a indicao do filme escolhido, a pagina ndice do PageControl torna-se a tela onde so mostrados os detalhes do filme como os dados gerais, a sinopse e o trailer. A interface desta tela tambm foi projetada levando em conta os critrios de usabilidade, como a preocupao de que o cliente no utilize as tarefas de um modo no esperado, por isso o teclado no est disponvel nesta tela, pois o usurio no ter a necessidade de utiliz-lo; outro aspecto da usabilidade a facilidade de utilizao e memorizao do sistema, pelo fato da utilizao de recursos audiovisuais, como a exibio do trailer do filme, o que torna a interao entre o usurio e a aplicao mais natural, agradvel e com o objetivo de ser o mais satisfatria possvel. Na construo da tela de detalhes do filme, foram utilizados botes para visualizar a sinopse e o trailer, e tambm para efetuar as operaes de locao e reserva; e mais um PageControl, para organizar todos os detalhes do filme por pginas, economizando espao na tela e tornando a interface mais simples e clara. A seguir mostrada a imagem da tela de detalhes do filme e suas funcionalidades.

Figura 33 - Tela de detalhes do filme

66

A capa do filme uma imagem armazenada no diretrio da aplicao, sendo que no banco gravada o caminho do diretrio. Quando o filme selecionado, feita uma verificao se existe ou no no banco o caminho da imagem da capa do filme. Se existir, carrega a imagem da capa, seno carrega uma imagem padro. O cdigo a seguir mostra como feita esta verificao: if (dmLocacao.cdsBuscaFilme.fieldByName('LOCAL_IMG').AsString) <> '' then imgCapaFilme.Picture.LoadFromFile(dmLocacao.cdsBuscaFilme.fieldByName ('LOCAL_IMG').AsString) else imgCapaFilme.Picture.LoadFromFile('C:\Locadora\capa\default.jpg'); A visualizao da sinopse feita atravs do componente RichEdit onde so exibidos textos no formato Rich Text (.rtf), estes arquivos tambm so armazenados no diretrio da aplicao e no banco de dados est gravado o caminho do diretrio e no o prprio arquivo. A verificao feita de um modo semelhante ao da imagem, apenas mudando o campo da tabela FILMES que deve ser verificado. A figura a seguir mostra a tela de detalhes do filme na parte de sinopse:

Figura 34 - Exibio da sinopse do filme

Com os trailers o mecanismo de armazenamento o mesmo que o das sinopses, gravando apenas o caminho do diretrio no banco. Para tornar possvel que o usurio

67

assista a vdeos diretamente dentro do software, foi preciso construir um player prprio, utilizando os componentes DSPack, que so o FilterGraph e o VideoWindow, que uma espcie de tela onde o vdeo exibido. O Anexo 3 mostra o cdigo-fonte utilizado para construir um player de vdeo, utilizando os componentes DSPack. O player que executa os vdeos foi construdo utilizando alm dos componentes DSPack, outros componentes nativos do Delphi: um SoundLevel, pra controlar o volume do som; uma TrackBar, para navegar pelo vdeo; uma ToolBar onde foram inseridos os botes de navegao (play, pause, stop, tela cheia) A figura seguinte ilustra o player de vdeo construdo para rodar os trailers.

Figura 35 - Player que executa os trailers

Os botes do lado esquerdo so os componentes que efetuam locao e reserva. Quando o usurio seleciona um filme para ver seus detalhes, ele tem a opo de aluglo, reserv-lo, ou simplesmente voltar e buscar outro filme. Caso o filme no esteja disponvel no momento, o cliente poder efetuar uma reserva, vlida por um determinado perodo. O sistema verifica se o filme est disponvel pelo campo STATUS da tabela FILMES, sendo que quando estiver gravado o caractere D neste campo porque o filme est disponvel.

68

Esta reserva poder conter apenas um filme por vez, sendo que durante a visualizao dos detalhes do filme que se pode reserva-lo, clicando no boto reservar e confirmando numa caixa de dilogo. A figura seguinte mostra a operao de reserva de filmes.

Figura 36 - Reserva do filme

Se a opo for a locao, o filme ser adicionado na tabela que indica quais os filmes esto sendo alugados, a tabela LOCACAO_ITENS, com isso utilizou-se a relao Mestre / Detalhe, onde a locao o Mestre e os itens so os detalhes. Quando o filme adicionado na locao, o usurio tem a opo de alugar mais algum filme ou concluir a locao. Se a opo for alugar mais filmes, a aplicao ir voltar para a tela de busca onde ser escolhido o prximo filme. Caso o cliente deseje concluir a locao, ser calculado o total e um recibo ser gerado na tela e impresso, contendo o nome do cliente, a data da locao, a data prevista para devoluo, o cdigo da locao, que gerado sequencialmente, os detalhes da locao, isto , os filmes que foram alugados e o valor a ser pago. Aps a emisso deste recibo, o cliente se dirige ao caixa e o entrega ao funcionrio da locadora, que ir conferi-lo e entregar os filmes escolhidos ao cliente.

69

A figura seguinte mostra a operao de locao de filmes, na tela em que mostrado os detalhes da locao, como a data e os filmes que sero alugados.

Figura 37 - Tela de Locao

70

4 CONCLUSO
A rea de usabilidade de sistemas ainda um campo relativamente pouco explorado atualmente, pelo fato de existirem uma grande quantidade de softwares que no se encaixam nos conceitos de usabilidade. Atravs do desenvolvimento deste projeto, pode-se afirmar que ele trouxe muitos benefcios, pois mostra como uma interface pode ser construda utilizando os conceitos de usabilidade, sem aumentar o custo da implementao do software, melhorando a interatividade com o usurio e otimizando o atendimento aos clientes, com diminuio de filas. Permitiu-se tambm o entendimento da importncia da modelagem do sistema utilizando UML, servindo de base para a construo do banco de dados e da aplicao e tambm de seguir os conceitos de Engenharia de Software, para aumentar a qualidade do software. Por fim, o desenvolvimento do projeto fez com que adquirssemos um grande conhecimento sobre as disciplinas estudadas e aprendssemos a trabalhar em equipe, o que contribuiu para um crescimento profissional e pessoal.

4.1 Dificuldades Encontradas


No decorrer do desenvolvimento de projeto, foram encontradas algumas dificuldades, nas quais podemos citar: A dificuldade para encontrar contedos relacionados a algumas reas. A busca da melhor interface para satisfazer o usurio, que um dos principais desafios da rea de IHM.

4.2 Trabalhos Futuros


Como perspectiva para trabalhos futuros pode ser citada a idia de construir uma aplicao completa a partir do prottipo criado, que possa tambm cuidar de toda a parte administrativa do estabelecimento, tornando esse prottipo um software pronto para ser comercializado. Poder tambm ser feito um estudo muito mais aprofundado sobre a interface, melhorando a interao com o usurio.

71

5 REFERNCIAS BIBLIOGRFICAS
ANSELMO, Fernando A. F., Borland Delphi: Desvendando o Caminho das Pedras. 1995-1997.

AUTOMAO. Disponvel em: <http://www.automacaocomercial.org> Acesso em 03 Nov. 2008.

CANTU, Carlos Henrique. Firebird Essencial. Rio de Janeiro, Editora Cincia Moderna Ltda. 2005.

DCA. Disponvel em: <http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node7.html>. em 14 nov. 2008. Acesso

DEVMEDIA. Disponvel em: <http://www.devmedia.com.br> Acesso em 16 Nov. 2008.

DSC. Disponvel em: <http://www.dsc.ufcg.edu.br/~sampaio/cursos/2007.1/Graduacao/SIII/Uml/diagramas/usecases/usecases.htm> Acesso em 15 Nov. 2008.

FARRER, Harry. et al. Algoritmos Estruturados. Rio de Janeiro. LTC Livros Tcnicos e Cientficos Editora S.A. 1989.

FOWLER, Martin. UML Essencial. Porto Alegre, Bookman, 2005.

IMASTERS. Disponvel em: <http://imasters.uol.com.br/artigo/2169/interbase/tecnologia_dbexpress_e_conexao_ao_ firebird/> Acesso em 17 nov. 2008.

KORTH, Henry F.; SILBERSCHATZ, Abraham. Sistemas de Banco de Dados, 2 edio, So Paulo, Makron Books. 1995. 72

LEITE, Mrio; RAHAL Jr., Nelson Abu Sanra. (Agosto de 2002) Programao Orientada a Objeto: uma abordagem didtica. Disponvel em: <http://www.ccuec.unicamp.br/revista/infotec/artigos/leite_rahal.html>.

Acesso em 14 nov. 2008.

LINHA. Disponvel em: <http://www.linhadecodigo.com.br/ArtigoImpressao.aspx?id=853>. Acesso em 13 nov. 2008.

MORAES, Paulo Srgio de. Lgica de Programao. Unicamp. 2000. (Apostila).

OLIVEIRA, Wilson Jos de. Banco de Dados InterBase com Delphi. Florianpolis. Visual Books.. 2000.

PONTES. Disponvel em: <http://lf.pontes.sites.uol.com.br/sgbd/revisao.pdf>. Acesso em 22 set. 2008.

PRESSMAN, Roger S.. Engenharia de software. 3 edio. So Paulo. Makron Books, 1995.

RETONDARO. Disponvel em: <http://www.retondaro.pro.br/luis/ihc/ihcPauloLima1.pdf.> Acesso em 24 set. 2008.

ROCHA, Helosa V. da; BARANAUSKAS, Maria Ceclia C. Design e Avaliao de Interfaces Humano-Computador. Campinas. Nied/Unicamp. 2003.

SOUZA, Paulo Roberto Rodrigues de. Banco de Dados. 2007. (Apostila).

VOXXEL. Disponvel em: <http://www.voxxel.com.br/pages/images/introu3.gif> Acesso em: 17 nov. 2008.

WIKIPEDIA. Disponvel em: <http://pt.wikipedia.org/wiki/P%C3%A1gina_principal> Acesso em 18 Out. 2008.

73

6 ANEXOS
6.1 Anexo 1 Feedback do Cliente
Na fase de implantao, entrega e feedback do Modelo de processo de Prototipagem, ocorreu uma nova entrevista com o cliente, o senhor Leandro, proprietrio da Locadora Central, situada em Trs Coraes, onde ele ressaltou a importncia do sistema para seu estabelecimento, onde seus clientes muitas vezes solicitam ajuda para procurar e escolher um filme, pedindo a opinio dos funcionrios sobre o filme e at para que ligassem o aparelho de DVD, para mostrar trechos dos filmes que lhes interessavam, tornando o atendimento mais lento, acumulando muitas pessoas na fila de atendimento. Ao analisar o sistema, ele comentou que a disponibilidade da sinopse e principalmente dos trailers, faria com que o cliente ficasse mais a vontade para fazer a escolha do filme desejado. E a opo do prprio cliente poder efetuar a locao e a reserva do filme, diminuiria consideravelmente o acmulo de pessoas na fila de atendimento em sua locadora, agilizando e otimizando o atendimento ao pblico, poupando os seus clientes de qualquer transtorno desnecessrio. Os clientes da vdeo-locadora se identificaram muito com a interface, comentando a sua clareza e simplicidade, que no gera dvidas sobre a utilizao de suas ferramentas e no os induzem a cometer erros, e principalmente a facilidade de aprendizagem, pois, segundo eles, por ser uma interface simples de se utilizar, as suas funcionalidades so memorizadas mais rapidamente fazendo com que eles consigam utiliz-la sem ajuda de um atendente, de forma independente, o que gera mais conforto, satisfao e confiabilidade do usurio para com o sistema. Porm os clientes opinaram na questo em que poderia ainda aumentar um pouco o tamanho dos botes do player de vdeo que toca o trailer do filme, melhorando a interao no caso de utilizao de telas touch-screen. Foram identificados novos requisitos e novas necessidades, como a implantao de uma parte administrativa para o gerente e demais funcionrios da locadora terem um controle das locaes e reservas efetuadas atravs de relatrios e tambm fazerem cadastros dos filmes, clientes e outras informaes necessrias. Tambm foi identificada a necessidade de melhorar a segurana do software, pedindo a confirmao do login do

74

usurio sempre que ele for fazer mais de uma operao, evitando que os usurios faam locaes e reservas no nome de outros usurios. O software pode ser modificado de acordo com as informaes coletadas, entrando novamente no ciclo do paradigma da prototipagem, visando a evoluo do prottipo at que se torne inteiramente pronto para ser comercializado.

75

6.2 Anexo 2 Implementao do Teclado Virtual


O cdigo-fonte a seguir mostra a rotina para a implementao do teclado virtual utilizado no prottipo. Os mtodos de insero de caracteres so relacionados ao evento onClick de cada tecla e a excluso insero de um espao entre os caracteres relacionado ao evento onClick dos botes btnBackspace e btnEspaco, respectivamente. Em todos os mdotos verifica-se, primeiramente, qual pgina o ndice do componente PageControl. Ser exibido apenas o mtodo para insero na pgina de ndice 0, pois nas demais pginas a lgica praticamente a mesma. O mtodo a seguir para insero e caracteres: //---------------------------------------TECLADO VIRTUAL------------------------------------//evento para inserir um caracter no edit procedure TfrmLocacao.btnQClick(Sender: TObject); begin case pageBusca.TabIndex of 0:begin if edtTituloFilme.Focused = true then edtTituloFilme.Text := edtTituloFilme.Text + tbutton(sender).caption else begin edtTituloFIlme.SetFocus; edtTituloFIlme.Text := edtTituloFIlme.Text + TButton(Sender).Caption; end; edtTituloFilme.SelStart := length(edtTituloFilme.Text); end; end; end;

O mtodo seguinte implementa a insero de um espao entre os caracteres, que na verdade uma string vazia. // tecla espaco procedure TfrmLocacao.btnEspacoClick(Sender: TObject); begin

76

case pageBusca.TabIndex of //verifica em qual tabsheet se encontra 0:begin if edtTituloFilme.Focused = true then //verifica se o foco esta no edit edtTituloFilme.Text := edtTituloFilme.Text + ' ' //insere um espaco vazio na frente //do conteudo do edit else begin edtTituloFIlme.SetFocus; //senao coloca o foco do cursor no edit edtTituloFIlme.Text := edtTituloFIlme.Text + ' '; //insere o espaco end; edtTituloFilme.SelStart := length(edtTituloFilme.Text); //manda o cursor pra frente //do ltimo caractere end;

O mtodo a seguir relacionado ao evento que apaga os caracteres do Edit: // pressionar a tecla APAGAR (backspace) procedure TfrmLocacao.btnBackspaceClick(Sender: TObject); begin case pageBusca.TabIndex of 0:begin if edtTituloFilme.Focused = true then edtTituloFilme.Text := Copy (edtTituloFIlme.Text,1,length (edtTituloFIlme.Text) -1) else begin edtTituloFilme.SetFocus; edtTituloFilme.Text := Copy(edtTituloFIlme.Text,1,length(edtTituloFIlme.Text) -1); end; edtTituloFilme.SelStart := length(edtTituloFilme.Text); end;

77

6.3 Anexo 3 Construo de um Player de Vdeo


//--------------------------------------------------------------------------------// duplo clique na tela de vdeo, tela cheia procedure TfrmLocacao.VideoWindowDblClick(Sender: TObject); begin VideoWindow.FullScreen := not VideoWindow.FullScreen; btFullScreen.Down := VideoWindow.FullScreen; end;

// clique no boto play, ativa a propriedade play do filterGraph procedure TfrmLocacao.btPlayClick(Sender: TObject); begin FilterGraph.play; TravaBotoesLocacao; end;

//clique no boto pause, ativa a propriedade pause do filterGraph procedure TfrmLocacao.btPauseClick(Sender: TObject); begin FilterGraph.Pause; end;

// clique boto stop, para o trailer e volta na tela geral de descrio do filme // habilitando novamente os botes de navegao procedure TfrmLocacao.btStopClick(Sender: TObject); begin FilterGraph.Stop; DestravaBotoesLocacao; pageFilme.TabIndex := 0; btnGeral.Enabled:= False; if (dmLocacao.cdsBuscaFilme.fieldByName('LOCAL_VIDEO').AsString) <> '' then btnTrailer.Enabled:=True else btnTrailer.Enabled:=False;

78

if (dmLocacao.cdsBuscaFilme.fieldByName('LOCAL_DESCR').AsString) <> '' then btnResumo.Enabled:=True else btnResumo.Enabled:=False; end;

// boto tela cheia, faz a mesma coisa que duplo clique na tela de video procedure TfrmLocacao.btFullScreenClick(Sender: TObject); begin VideoWindow.FullScreen := not VideoWindow.FullScreen; btFullScreen.Down := VideoWindow.FullScreen; end;

//quando muda a posio do soundLevel, altera tambm a prop. Volume do FilterGraph procedure TfrmLocacao.SoundLevelChange(Sender: TObject); begin FilterGraph.Volume := SoundLevel.Position; end;

//mostra o tempo do vdeo na barra de status, conforme posio do TrackBar procedure TfrmLocacao.TrackBarTimer(sender: TObject; CurrentPos, StopPos: Cardinal); begin StatusBar.SimpleText := format('Position: %s Duration: %s', [TimeToStr(CurrentPos / MiliSecPerDay), TimeToStr(StopPos / MiliSecPerDay)]) end;

//-------------------------------------------------------------------------------------------------------

79