• Nenhum resultado encontrado

Diagramas de sequência

No documento UNIVERSIDADE FEDERAL DE UBERLÃNDIA (páginas 96-144)

Estes diagramas mostram o fluxo de mensagens mostradas ao usuário, por isso como há mensagens no cadastro, edição e exclusão, só serão apresentados estas funções. Também os diagramas de edição são semelhantes ao de cadastro, mudando apenas as mensagens de cadastro para alteração logo não serão diagramados, podendo usar os de cadastro.

APÊNDICE D. Modelo do Projeto 96

Figura 18 – Diagrama de Atividades para o caso de uso de cadastro de clien- tes,categorias,sessões e compromissos.

APÊNDICE D. Modelo do Projeto 97

Figura 19 – Diagrama de Atividades para o caso de uso de alteração e exclusão de clien- tes,categorias,sessões e compromissos.

APÊNDICE D. Modelo do Projeto 98

Figura 20 – Diagrama de Atividades para o caso de uso de alteração e exclusão de pedido e itens do pedido.

APÊNDICE D. Modelo do Projeto 99

APÊNDICE D. Modelo do Projeto 100

APÊNDICE D. Modelo do Projeto 101

APÊNDICE D. Modelo do Projeto 102

APÊNDICE D. Modelo do Projeto 103

APÊNDICE D. Modelo do Projeto 104

APÊNDICE D. Modelo do Projeto 105

APÊNDICE D. Modelo do Projeto 106

Figura 28 – Diagrama de Sequência para o caso de uso cadastro de pedidos e itens do pedido.

APÊNDICE D. Modelo do Projeto 107

Figura 29 – Diagrama de Sequência para o caso de uso exclusão de itens(Obs: o único caso em que não a exclusão é o de estoque , uma vez que o estoque é excluído junto com o produto).

108

APÊNDICE E Ű Protótipo Hi-Fi

Telas referentes ao protótipo Hi-Fi do sistema Meus Estoque Rosa.

APÊNDICE E. Protótipo Hi-Fi 109

APÊNDICE E. Protótipo Hi-Fi 110

Figura 31 – Protótipo Hi-Fi : Tela de cadastro de clientes mostrando os campos obriga- tórios.

APÊNDICE E. Protótipo Hi-Fi 111

Figura 32 – Protótipo Hi-Fi : Tela de cadastro de clientes mostrando os campos preen- chidos sem a data.

APÊNDICE E. Protótipo Hi-Fi 112

Figura 33 – Protótipo Hi-Fi : Tela de cadastro de clientes mostrando os campos preen- chidos com a data no formato adequado.

APÊNDICE E. Protótipo Hi-Fi 113

APÊNDICE E. Protótipo Hi-Fi 114

APÊNDICE E. Protótipo Hi-Fi 115

APÊNDICE E. Protótipo Hi-Fi 116

Figura 37 – Protótipo Hi-Fi : Tela de calendário do módulo agenda, seleção de um dia aleatório .

117

APÊNDICE F Ű Exemplos de Códigos-Fonte

em Java

Neste trecho de código estão descritas todas as variáveis necessárias para a criação das tabelas do módulo de produtos, bem como a instrução para criação das tabelas usando as variáveis. 1 // v a r i a v e i s Cliente 2 p u b l i c s t a t i c f i n a l String t b l C l i e n t e = " cliente "; 3 p u b l i c s t a t i c f i n a l String i d C l i e n t e = " _ i d C l i e n t e "; 4 p u b l i c s t a t i c f i n a l String n o m e C l i e n t e = " n o m e C l i e n t e "; 5 p u b l i c s t a t i c f i n a l String e n d e r e c o C l i e n t e = " e n d e r e c o C l i e n t e "; 6 p u b l i c s t a t i c f i n a l String t e l e f o n e C l i e n t e = " t e l e f o n e C l i e n t e "; 7 p u b l i c s t a t i c f i n a l String d a t a N a s c C l i e n t e = " d a t a N a s c C l i e n t e "; 8 p u b l i c s t a t i c f i n a l String o b s C l i e n t e = " o b s C l i e n t e "; 9 // v a r i a v e i s S u b C a t e g o r i a 10 p u b l i c s t a t i c f i n a l String t b l S u b C a t e g o r i a = " s u b C a t e g o r i a "; 11 p u b l i c s t a t i c f i n a l String i d S u b C a t e g o r i a = " _ i d S u b C a t e g o r i a "; 12 p u b l i c s t a t i c f i n a l String n o m e S u b C a t e g o r i a = " n o m e S u b C a t e g o r i a "; 13 p u b l i c s t a t i c f i n a l String i d C a t e g o r i a F K S = " i d C a t e g o r i a "; 14 p u b l i c s t a t i c f i n a l String n o m e C a t e g o r i a F S = " n o m e C a t e g o r i a "; 15 // v a r i a v e i s C a t e g o r i a 16 p u b l i c s t a t i c f i n a l String t b l C a t e g o r i a = " c a t e g o r i a "; 17 p u b l i c s t a t i c f i n a l String i d C a t e g o r i a = " _ i d C a t e g o r i a "; 18 p u b l i c s t a t i c f i n a l String n o m e C a t e g o r i a = " n o m e C a t e g o r i a "; 19 20 // v a r i a v e i s P r o d u t o s 21 p u b l i c s t a t i c f i n a l String t b l P r o d u t o s = " p r o d u t o s "; 22 p u b l i c s t a t i c f i n a l String i d P r o d u t o = " _ i d P r o d u t o s "; 23 p u b l i c s t a t i c f i n a l String i d C a t e g o r i a F K P = " i d C a t e g o r i a "; 24 p u b l i c s t a t i c f i n a l String i d S u b C a t e g o r i a F K P = " i d S u b C a t e g o r i a "; 25 p u b l i c s t a t i c f i n a l String d e s c r i c a o P r o d u t o = " d e s c r i c a o P r o d u t o "; 26 p u b l i c s t a t i c f i n a l String n o m e P r o d u t o = " n o m e P r o d u t o "; 27 p u b l i c s t a t i c f i n a l String p r e c o P r o d u t o = " p r e c o P r o d u t o "; 28 p u b l i c s t a t i c f i n a l String n o m e C a t e g o r i a F P = " n o m e C a t e g o r i a "; 29 p u b l i c s t a t i c f i n a l String n o m e S u b C a t e g o r i a F P = " n o m e S u b C a t e g o r i a "; 30 31

APÊNDICE F. Exemplos de Códigos-Fonte em Java 118

32 p r i v a t e s t a t i c f i n a l String D A T A B A S E _ N A M E = " projeto . db "; 33 p r i v a t e s t a t i c f i n a l int D A T A B A S E _ V E R S I O N = 1;

34 // E s t r u t u r a da tabela Cliente ( sql s t a t e m e n t )

35 p r i v a t e s t a t i c f i n a l String c r e a t e C l i e n t e = " create table " + 36 t b l C l i e n t e + " ( " + i d C l i e n t e + " integer primary key

autoincrement , " +

37 n o m e C l i e n t e + " text not null , " + 38 e n d e r e c o C l i e n t e + " text not null , " + 39 t e l e f o n e C l i e n t e + " text not null , " + 40 o b s C l i e n t e + " text , " +

41 d a t a N a s c C l i e n t e + " text not null ) ; "; 42 // E s t r u t u r a da tabela S u b C a t e g o r i a

43 p r i v a t e s t a t i c f i n a l String c r e a t e S u b C a t e g o r i a = " create table "

+

44 t b l S u b C a t e g o r i a + " ( " + i d S u b C a t e g o r i a + " integer primary key

autoincrement , " +

45 n o m e S u b C a t e g o r i a + " text not null , " + 46 i d C a t e g o r i a F K S + " integer not null , " +

47 " FOREIGN KEY ( "+ i d C a t e g o r i a F K S +" ) R E F E R E N C E S "+ t b l C a t e g o r i a +" ( "

+ i d C a t e g o r i a +" ) ) ; ";

48 // E s t r u t u r a da tabela C a t e g o r i a

49 p r i v a t e s t a t i c f i n a l String c r e a t e C a t e g o r i a = " create table " + 50 t b l C a t e g o r i a + " ( " + i d C a t e g o r i a + " integer primary key

autoincrement , " +

51 n o m e C a t e g o r i a + " text not null ) ; "; 52 // E s t r u t u r a da tabela P r o d u t o s

53 p r i v a t e s t a t i c f i n a l String c r e a t e P r o d u t o s = " create table " + 54 t b l P r o d u t o s + " ( " + i d P r o d u t o + " integer primary key

autoincrement , " +

55 d e s c r i c a o P r o d u t o + " text not null , " + 56 n o m e P r o d u t o + " text not null , " +

57 i d C a t e g o r i a F K P + " integer not null , " + 58 i d S u b C a t e g o r i a F K P + " integer null , " + 59 p r e c o P r o d u t o + " real not null , " +

60 " FOREIGN KEY ( "+ i d C a t e g o r i a F K P +" ) R E F E R E N C E S "+ t b l C a t e g o r i a +" ( "

+ i d C a t e g o r i a +" ) ,"

61 + " FOREIGN KEY ( "+ i d S u b C a t e g o r i a F K P +" ) R E F E R E N C E S "+

t b l S u b C a t e g o r i a +" ( "+ i d S u b C a t e g o r i a +" ) ) ; ";

Neste trecho de código estão todas os scripts de criação para o banco de dados equivalente aos módulos cliente e produtos, cada instrução create cria uma tabela no banco e para que essas instruções sejam executadas a fim de criar o banco e as relações,

APÊNDICE F. Exemplos de Códigos-Fonte em Java 119

o seguinte trecho de código é chamado:

1 p u b l i c v o i d o n C r e a t e ( S Q L i t e D a t a b a s e d a t a b a s e ) { 2 // Criacao da tabela 3 4 d a t a b a s e . execSQL ( c r e a t e C l i e n t e ) ; 5 d a t a b a s e . execSQL ( c r e a t e C a t e g o r i a ) ; 6 d a t a b a s e . execSQL ( c r e a t e S u b C a t e g o r i a ) ; 7 d a t a b a s e . execSQL ( c r e a t e P r o d u t o s ) ; 8 }

O trecho a seguir é umas das classes de controle das funções de persistência do banco de dados, a classe apresentada é a de Cliente e está no arquivo ClinteDAO.java .

1 p u b l i c c l a s s C l i e n t e D A O {

2 p r i v a t e S Q L i t e D a t a b a s e d a t a b a s e ; 3 p r i v a t e D a t a b a s e D A O d b H e l p e r ;

4 // Campos da tabela Cliente

5 p r i v a t e String [] colunas = { D a t a b a s e D A O . idCliente , 6 D a t a b a s e D A O . nomeCliente , 7 D a t a b a s e D A O . te le f on e Cl i en t e , 8 D a t a b a s e D A O . en de r ec o Cl i en t e , 9 D a t a b a s e D A O . da ta N as c Cl i en t e , 10 D a t a b a s e D A O . o b s C l i e n t e }; 11 p u b l i c C l i e n t e D A O ( Context context ) { 12 d b H e l p e r = new D a t a b a s e D A O ( context ) ; 13 } 14 p u b l i c v o i d open () t h r o w s S Q L E x c e p t i o n { 15 d a t a b a s e = d b H e l p e r . g e t W r i t a b l e D a t a b a s e () ; 16 } 17 p u b l i c v o i d close () { 18 d b H e l p e r . close () ; 19 } 20 p u b l i c l o n g Inserir ( C l i e n t e V O pValue ) { 21 C o n t e n t V a l u e s 22 values = new C o n t e n t V a l u e s () ;

23 // C a r r e g a r os valores nos campos do Cliente que sera i n c l u i d o

24 values . put ( D a t a b a s e D A O . nomeCliente , pValue . g e t N o m e C l i e n t e () ) ; 25 values . put ( D a t a b a s e D A O . en d er e co C li e nt e , pValue . g e t E n d e r e c o C l i e n t e

() ) ;

26 values . put ( D a t a b a s e D A O . te l ef o ne C li e nt e , pValue . g e t T e l e f o n e C l i e n t e

() ) ;

27 values . put ( D a t a b a s e D A O . da t aN a sc C li e nt e , pValue . g e t D a t a N a s c C l i e n t e

APÊNDICE F. Exemplos de Códigos-Fonte em Java 120

28 values . put ( D a t a b a s e D A O . obsCliente , pValue . g e t O b s C l i e n t e () ) ; 29 r e t u r n d a t a b a s e . insert ( D a t a b a s e D A O . tblCliente , null, values ) ; 30 }

31 p u b l i c int Alterar ( C l i e n t e V O pValue ) { 32 l o n g id = pValue . g e t I d C l i e n t e () ;

33 C o n t e n t V a l u e s values = new C o n t e n t V a l u e s () ;

34 // C a r r e g a r os novos valores nos campos que serao a l t e r a d o s

35 values . put ( D a t a b a s e D A O . nomeCliente , pValue . g e t N o m e C l i e n t e () ) ; 36 values . put ( D a t a b a s e D A O . en d er e co C li e nt e , pValue . g e t E n d e r e c o C l i e n t e

() ) ;

37 values . put ( D a t a b a s e D A O . te l ef o ne C li e nt e , pValue . g e t T e l e f o n e C l i e n t e

() ) ;

38 values . put ( D a t a b a s e D A O . da t aN a sc C li e nt e , pValue . g e t D a t a N a s c C l i e n t e

() ) ;

39 values . put ( D a t a b a s e D A O . obsCliente , pValue . g e t O b s C l i e n t e () ) ;

40 // Alterar o r e g i s t r o com base no ID

41 r e t u r n d a t a b a s e . update ( D a t a b a s e D A O . tblCliente , values ,

D a t a b a s e D A O . i d C l i e n t e + " = " + id , n u l l) ;

42 }

43 p u b l i c v o i d Excluir ( C l i e n t e V O pValue ) { 44 l o n g id = pValue . g e t I d C l i e n t e () ;

45 // Exclui o r e g i s t r o com base no ID

46 d a t a b a s e . delete ( D a t a b a s e D A O . tblCliente , D a t a b a s e D A O . i d C l i e n t e + "

= " + id , n u l l) ;

47 }

48 p u b l i c List < ClienteVO > C o n s u l t a r () {

49 List < ClienteVO > l s t C l i e n t e = new ArrayList < ClienteVO >() ;

50 // C o n s u l t a para trazer todos os dados da tabela Cliente o r d e n a d o s

pela coluna Nome

51 Cursor cursor = d a t a b a s e . query ( D a t a b a s e D A O . tblCliente , colunas , 52 null, null, null, null, D a t a b a s e D A O . n o m e C l i e n t e ) ;

53 cursor . m o v e T o F i r s t () ; 54 w h i l e (! cursor . i s A f t e r L a s t () ) { 55 C l i e n t e V O l C l i e n t e V O = c u r s o r T o C l i e n t e ( cursor ) ; 56 l s t C l i e n t e . add ( l C l i e n t e V O ) ; 57 cursor . m o v e T o N e x t () ; 58 }

59 // Tenha certeza que voce fechou o cursor

60 cursor . close () ; 61 r e t u r n l s t C l i e n t e ; 62 }

APÊNDICE F. Exemplos de Códigos-Fonte em Java 121

64 List < String > nomes = new ArrayList < String >() ;

65 String c o n s u l t a = " select "+ D a t a b a s e D A O . n o m e C l i e n t e +" from " +

D a t a b a s e D A O . t b l C l i e n t e ;

66 Cursor cursor = d a t a b a s e . r a w Q u e r y ( consulta ,n u l l) ;

67 int a c c o u n t n a m e I n d e x = cursor . g e t C o l u m n I n d e x O r T h r o w ( D a t a b a s e D A O .

n o m e C l i e n t e ) ;

68 if( cursor . m o v e T o F i r s t () ) { 69 do{

70 nomes . add ( cursor . g e t S t r i n g ( a c c o u n t n a m e I n d e x ) ) ; 71 } w h i l e( cursor . m o v e T o N e x t () ) ; 72 } 73 cursor . close () ; 74 r e t u r n nomes ; 75 } 76 p u b l i c String R e t o r n a N o m e (l o n g id ) { 77 String [] args = { Long . t o S t r i n g ( id ) };

78 String c o n s u l t a = " select "+ D a t a b a s e D A O . n o m e C l i e n t e +" from " +

D a t a b a s e D A O . t b l C l i e n t e + " where " + D a t a b a s e D A O . i d C l i e n t e +" = ? ";

79 Cursor cursor = ( d a t a b a s e . r a w Q u e r y ( consulta , args ) ) ;

80 int a c c o u n t n a m e I n d e x = cursor . g e t C o l u m n I n d e x O r T h r o w ( D a t a b a s e D A O . n o m e C l i e n t e ) ; 81 String nome = " "; 82 if( cursor . m o v e T o F i r s t () ) { 83 do{ 84 nome = cursor . g e t S t r i n g ( a c c o u n t n a m e I n d e x ) ; 85 } w h i l e( cursor . m o v e T o N e x t () ) ; 86 } 87 r e t u r n nome ; 88 } 89 p u b l i c l o n g R e t o r n a I d ( String n o m e C l i e n t e ) { 90 String [] args = { n o m e C l i e n t e };

91 String c o n s u l t a = " select "+ D a t a b a s e D A O . i d C l i e n t e +" from " +

D a t a b a s e D A O . t b l C l i e n t e + " where " + D a t a b a s e D A O . n o m e C l i e n t e +" = ? ";

92 Cursor cursor = ( d a t a b a s e . r a w Q u e r y ( consulta , args ) ) ;

93 int a c c o u n t n a m e I n d e x = cursor . g e t C o l u m n I n d e x O r T h r o w ( D a t a b a s e D A O . i d C l i e n t e ) ; 94 l o n g id = 0; 95 if( cursor . m o v e T o F i r s t () ) { 96 do{ 97 id = Long . p a r s e L o n g ( cursor . g e t S t r i n g ( a c c o u n t n a m e I n d e x ) ) ;

APÊNDICE F. Exemplos de Códigos-Fonte em Java 122

98 } w h i l e( cursor . m o v e T o N e x t () ) ; 99 }

100 r e t u r n id ; 101 }

102 // C o n v e r t e r o Cursor de dados no objeto POJO C l i e n t e V O

103 p r i v a t e C l i e n t e V O c u r s o r T o C l i e n t e ( Cursor cursor ) { 104 C l i e n t e V O l C l i e n t e V O = new C l i e n t e V O () ; 105 l C l i e n t e V O . s e t I d C l i e n t e ( cursor . getLong (0) ) ; 106 l C l i e n t e V O . s e t N o m e C l i e n t e ( cursor . g e t S t r i n g (1) ) ; 107 l C l i e n t e V O . s e t T e l e f o n e C l i e n t e ( cursor . g e t S t r i n g (2) ) ; 108 l C l i e n t e V O . s e t E n d e r e c o C l i e n t e ( cursor . g e t S t r i n g (3) ) ; 109 l C l i e n t e V O . s e t D a t a N a s c C l i e n t e ( cursor . g e t S t r i n g (4) ) ; 110 l C l i e n t e V O . s e t O b s C l i e n t e ( cursor . g e t S t r i n g (5) ) ; 111 r e t u r n l C l i e n t e V O ; 112 } 113 114 }

A seguir tem-se um exemplo de classe POJO

1 // r e s p o n s a v e l pelo t r a n s p o r t e de dados na a p l i c a c a o e com o banco 2 p u b l i c c l a s s C l i e n t e V O i m p l e m e n t s S e r i a l i z a b l e { 3 4 p r i v a t e s t a t i c f i n a l l o n g s e r i a l V e r s i o n U I D = 1 L ; 5 p r i v a t e l o n g i d C l i e n t e ; 6 p r i v a t e String n o m e C l i e n t e ; 7 p r i v a t e String e n d e r e c o C l i e n t e ; 8 p r i v a t e String t e l e f o n e C l i e n t e ; 9 p r i v a t e String d a t a N a s c C l i e n t e ; 10 p r i v a t e String o b s C l i e n t e ; 11 p u b l i c l o n g g e t I d C l i e n t e () { 12 r e t u r n i d C l i e n t e ; 13 } 14 p u b l i c v o i d s e t I d C l i e n t e (l o n g i d C l i e n t e ) { 15 t h i s. i d C l i e n t e = i d C l i e n t e ; 16 } 17 p u b l i c String g e t N o m e C l i e n t e () { 18 r e t u r n n o m e C l i e n t e ; 19 } 20 p u b l i c v o i d s e t N o m e C l i e n t e ( String n o m e C l i e n t e ) { 21 t h i s. n o m e C l i e n t e = n o m e C l i e n t e ; 22 } 23 p u b l i c String g e t E n d e r e c o C l i e n t e () {

APÊNDICE F. Exemplos de Códigos-Fonte em Java 123 24 r e t u r n e n d e r e c o C l i e n t e ; 25 } 26 p u b l i c v o i d s e t E n d e r e c o C l i e n t e ( String e n d e r e c o C l i e n t e ) { 27 t h i s. e n d e r e c o C l i e n t e = e n d e r e c o C l i e n t e ; 28 } 29 p u b l i c String g e t T e l e f o n e C l i e n t e () { 30 r e t u r n t e l e f o n e C l i e n t e ; 31 } 32 p u b l i c v o i d s e t T e l e f o n e C l i e n t e ( String t e l e f o n e C l i e n t e ) { 33 t h i s. t e l e f o n e C l i e n t e = t e l e f o n e C l i e n t e ; 34 } 35 p u b l i c String g e t D a t a N a s c C l i e n t e () { 36 r e t u r n d a t a N a s c C l i e n t e ; 37 } 38 p u b l i c v o i d s e t D a t a N a s c C l i e n t e ( String d a t a N a s c C l i e n t e ) { 39 t h i s. d a t a N a s c C l i e n t e = d a t a N a s c C l i e n t e ; 40 } 41 p u b l i c String t o S t r i n g () { 42 r e t u r n n o m e C l i e n t e ; 43 } 44 p u b l i c String g e t O b s C l i e n t e () { 45 r e t u r n o b s C l i e n t e ; 46 } 47 p u b l i c v o i d s e t O b s C l i e n t e ( String o b s C l i e n t e ) { 48 t h i s. o b s C l i e n t e = o b s C l i e n t e ; 49 } 50 51 }

Um exemplo de pesquisa ao banco pode ser visto no trecho de código a seguir:

1 p u b l i c P r o d u t o V O C o n s u l t a r (l o n g i d p r o d u t o ) { 2 P r o d u t o V O produto = new P r o d u t o V O () ;

3 String [] args = { String . valueOf ( i d p r o d u t o ) };

4 String c o n s u l t a = " select * from "+ D a t a b a s e D A O . t b l P r o d u t o s + " as

a inner join "+ D a t a b a s e D A O . t b l C a t e g o r i a +" as b on a . "+

D a t a b a s e D A O . i d C a t e g o r i a F K P +" = b . "+ D a t a b a s e D A O . i d C a t e g o r i a +" "

5 + " inner join "+ D a t a b a s e D A O . t b l S u b C a t e g o r i a +" as c on a . " +

D a t a b a s e D A O . i d S u b C a t e g o r i a F K P + " = c . "+ D a t a b a s e D A O . i d S u b C a t e g o r i a +" where "+ D a t a b a s e D A O . i d P r o d u t o +" = ? ";

6 Cursor cursor = d a t a b a s e . r a w Q u e r y ( consulta , args ) ; 7 cursor . m o v e T o F i r s t () ;

APÊNDICE F. Exemplos de Códigos-Fonte em Java 124 9 produto = c u r s o r T o P r o d u t o V O ( cursor ) ; 10 cursor . m o v e T o N e x t () ; 11 } 12 13 cursor . close () ; 14 r e t u r n produto ; 15 }

A estrutura responsável pelas tabelas do módulo financeiro pode ser vista a seguir, e pode-se observar como são chamadas as funções de criação das tabelas, que devem respeitar a ordem de relacionamento das classes para que o banco funcione corretamente.

1 2 // v a r i a v e i s Estoque 3 p u b l i c s t a t i c f i n a l String t b l E s t o q u e = " estoque "; 4 p u b l i c s t a t i c f i n a l String i d E s t o q u e = " _ i d E s t o q u e "; 5 p u b l i c s t a t i c f i n a l String i d P r o d u t o P K F K E = " i d P r o d u t o E s t o q u e "; 6 p u b l i c s t a t i c f i n a l String q u a n t i d a d e E s t o q u e = " q u a n t i d a d e E s t o q u e "; 7 // v a r i a v e i s Pedido 8 p u b l i c s t a t i c f i n a l String t b l P e d i d o = " pedido "; 9 p u b l i c s t a t i c f i n a l String i d P e d i d o = " _ i d P e d i d o "; 10 p u b l i c s t a t i c f i n a l String v a l o r T o t a l = " v a l o r T o t a l "; 11 p u b l i c s t a t i c f i n a l String i d C l i e n t e F K P = " i d C l i e n t e "; 12 p u b l i c s t a t i c f i n a l String d a t a P e d i d o = " d a t a P e d i d o "; 13 p u b l i c s t a t i c f i n a l String n u m P a r c e l a s = " n u m P a r c e l a s "; 14 p u b l i c s t a t i c f i n a l String v a l o r P a r c e l a = " v a l o r P a r c e l a "; 15 // v a r i a v e i s i t e m L i s t a P e d i d o 16 p u b l i c s t a t i c f i n a l String t b l I t e m L i s t a P e d i d o = " i t e m L i s t a P e d i d o " ;

17 p u b l i c s t a t i c f i n a l String idItem = " _idItem ";

18 p u b l i c s t a t i c f i n a l String q u a n t i d a d e I t e n s = " q u a n t i d a d e I t e n s "; 19 p u b l i c s t a t i c f i n a l String i d P r o d u t o F K I = " i d P r o d u t o "; 20 p u b l i c s t a t i c f i n a l String i d L i s t a P e d i d o F K = " i d L i s t a P e d i d o "; 21 // v a r i a v e i s l i s t a P e d i d o 22 p u b l i c s t a t i c f i n a l String t b l L i s t a P e d i d o = " l i s t a P e d i d o "; 23 p u b l i c s t a t i c f i n a l String i d L i s t a P e d i d o = " _ i d L i s t a P e d i d o "; 24 p u b l i c s t a t i c f i n a l String i d P e d i d o F K = " i d P e d i d o "; 25 // v a r i a v e i s Meta

26 p u b l i c s t a t i c f i n a l String tblMeta = " meta "; 27 p u b l i c s t a t i c f i n a l String idMeta = " _idMeta ";

28 p u b l i c s t a t i c f i n a l String m e t a D i a r i a = " m e t a D i a r i a "; 29 p u b l i c s t a t i c f i n a l String m e t a M e n s a l = " m e t a M e n s a l ";

APÊNDICE F. Exemplos de Códigos-Fonte em Java 125

30 p u b l i c s t a t i c f i n a l String m e t a T r i m e s t r e = " m e t a T r i m e s t r e "; 31 p u b l i c s t a t i c f i n a l String p e r i o d o A n o = " p e r i o d o A n o ";

32 p u b l i c s t a t i c f i n a l String d a t a C a d a s t r o M e t a = " d a t a C a d a s t r o M e t a ";

33 // E s t r u t u r a da tabela Estoque

34 p r i v a t e s t a t i c f i n a l String c r e a t e E s t o q u e = " create table " + 35 t b l E s t o q u e + " ( " + i d E s t o q u e + " integer primary key

autoincrement , " +

36 i d P r o d u t o P K F K E + " integer not null , " + 37 q u a n t i d a d e E s t o q u e + " integer not null ,"+

38 " FOREIGN KEY ( "+ i d P r o d u t o P K F K E +" ) R E F E R E N C E S "+ t b l P r o d u t o s +" ( "+

i d P r o d u t o +" ) ) ; ";

39 // E s t r u t u r a da tabela Pedido

40 p r i v a t e s t a t i c f i n a l String c r e a t e P e d i d o = " create table " + 41 t b l P e d i d o + " ( " + i d P e d i d o + " integer primary key autoincrement

, " +

42 v a l o r T o t a l + " real not null , " + 43 i d C l i e n t e F K P + " long not null ,"+ 44 d a t a P e d i d o + " text not null ,"+ 45 n u m P a r c e l a s + " integer not null ,"+ 46 v a l o r P a r c e l a + " real not null ,"+

47 " FOREIGN KEY ( "+ i d C l i e n t e F K P +" ) R E F E R E N C E S "+ t b l C l i e n t e +" ( "+

i d C l i e n t e +" ) ) ; ";

48

49 p r i v a t e s t a t i c f i n a l String c r e a t e L i s t a P e d i d o = " create table " + 50 t b l L i s t a P e d i d o + " ( " + i d L i s t a P e d i d o + " integer primary key

autoincrement , " +

51 i d P e d i d o F K + " long not null , " +

52 " FOREIGN KEY ( "+ i d P e d i d o F K +" ) R E F E R E N C E S "+ t b l P e d i d o +" ( "+

i d P e d i d o +" ) ) ; ";

53

54 p r i v a t e s t a t i c f i n a l String c r e a t e I t e m L i s t a P e d i d o = " create table

" +

55 t b l I t e m L i s t a P e d i d o + " ( " + idItem + " integer primary key

autoincrement , " +

56 i d L i s t a P e d i d o F K + " long not null , " + 57 i d P r o d u t o F K I + " long not null , " +

58 q u a n t i d a d e I t e n s + " integer not null , " +

59 " FOREIGN KEY ( "+ i d L i s t a P e d i d o F K +" ) R E F E R E N C E S "+ t b l L i s t a P e d i d o +

" ( "+ i d L i s t a P e d i d o +" ) , " +

60 " FOREIGN KEY ( "+ i d P r o d u t o F K I +" ) R E F E R E N C E S "+ t b l P r o d u t o s +" ( "+

i d P r o d u t o +" ) ) ; ";

APÊNDICE F. Exemplos de Códigos-Fonte em Java 126

62 p r i v a t e s t a t i c f i n a l String c r e a t e M e t a = " create table " +

63 tblMeta + " ( " + idMeta + " integer primary key autoincrement , "

+

64 m e t a D i a r i a + " real not null , " + 65 m e t a M e n s a l + " real not null , " + 66 m e t a T r i m e s t r e + " real not null , "+ 67 p e r i o d o A n o + " integer not null , " + 68 d a t a C a d a s t r o M e t a + " text not null ) ; "; 69 70 p u b l i c v o i d o n C r e a t e ( S Q L i t e D a t a b a s e d a t a b a s e ) { 71 // Criacao da tabela 72 // ... 73 d a t a b a s e . execSQL ( c r e a t e E s t o q u e ) ; 74 d a t a b a s e . execSQL ( c r e a t e P e d i d o ) ; 75 d a t a b a s e . execSQL ( c r e a t e L i s t a P e d i d o ) ; 76 d a t a b a s e . execSQL ( c r e a t e I t e m L i s t a P e d i d o ) ; 77 d a t a b a s e . execSQL ( c r e a t e M e t a ) ; 78 }

127

APÊNDICE G Ű Descrição dos casos de

Teste Unitários

Caso de uso: Cadastrar Cliente

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Cliente cadastrado com sucesso! A mensagem caso algum campo esteja fal- tando deve ser mostrada por meio de um ícone de exclamação nos campos obrigatórios, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.

Descrição Para este teste é preciso acessar a tela de clientes e clicar no botão

Cadastrar Cliente, inserir os dados e confirmar as saídas

Pré Requisito Não há

Observação Não há

Tabela 9 – Caso de Teste: Cadastro de Clientes

Caso de uso: Cadastrar Categoria

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco. A mensagem de sucesso deve ser a seguinte: Categoria cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mos- trada como um popup na tela que desaparece sem algum clique.

Descrição Para este teste é preciso acessar a tela de produtos e clicar no

botão Cadastro e na opção Cadastrar Categoria, inserir os dados e confirmar as saídas

Pré Requisito Não há

Observação Não há

APÊNDICE G. Descrição dos casos de Teste Unitários 128

Caso de uso: Cadastrar Subcategoria

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco. A mensagem de sucesso deve ser a seguinte: Subcategoria cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mos- trada como um popup na tela que desaparece sem algum clique.

Descrição Para este teste é preciso acessar a tela de produtos e clicar no botão

Cadastro e na opção Cadastrar Subcategoria, inserir os dados e confirmar as saídas

Pré Requisito Ter categorias cadastradas

Observação Não há

Tabela 11 – Caso de Teste: Cadastro de Subcategorias

Caso de uso: Cadastrar Produto

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Produto cadastrado com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.

Descrição Para este teste é preciso acessar a tela de produtos e clicar no

botão Cadastro e na opção Cadastrar Produto, inserir os dados e confirmar as saídas

Pré Requisito Ter categorias e subcategorias cadastradas.

Observação Não há

APÊNDICE G. Descrição dos casos de Teste Unitários 129

Caso de uso: Cadastrar Sessão

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco, verificar se ao inserir dados inváli- dos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Sessão cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.

Descrição Para este teste é preciso acessar a tela de agenda e clicar no botão

Sessão e na opção Cadastrar Sessão, inserir os dados e confirmar as saídas

Pré Requisito Ter clientes cadastrados.

Observação Deve-se garantir que não haja sessões cadastradas no mesmo horário

Tabela 13 – Caso de Teste: Cadastro de Sessões

Caso de uso: Cadastrar Compromisso

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Compro- misso cadastrado com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.

Descrição Para este teste é preciso acessar a tela de agenda e clicar no botão

Compromisso e na opção Cadastrar Compromisso, inserir os dados e confirmar as saídas

Pré Requisito Não há.

Observação Deve-se garantir que não haja compromissos cadastradas no mesmo

horário

APÊNDICE G. Descrição dos casos de Teste Unitários 130

Caso de uso: Cadastrar Meta

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco, verificar se ao inserir dados inváli- dos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem, verificar se o calculo das metas que não foram inseridas foi feito. A mensagem de sucesso deve ser a seguinte: Meta cadastrada com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique.

Descrição Para este teste é preciso acessar a tela financeira e clicar no botão

Meta e na opção Cadastrar Meta, inserir os dados e confirmar as saídas

Pré Requisito Não há.

Observação Deve-se garantir que ao clicar no botão calcular o sistema calcule

as metas de forma correta e aproximada. Tabela 15 – Caso de Teste: Cadastro de Metas

Caso de uso: Cadastrar Pedido e Itens do Pedido

Objetivo Testar o caso de uso verificando se os dados inseridos estão de

acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A mensagem de sucesso deve ser a seguinte: Pedido ca- dastrado com sucesso! A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique. Neste mesmo teste deve se testar se o cadastro de itens está de acordo, assim clicando em adicionar produtos após o preenchimento dos campos em um novo cadastro de pedidos, no caso deve seguir a mesma ideia do cadastro de pedidos.

Descrição Para este teste é preciso acessar a tela financeira e clicar no botão

Cadastrar Pedido , inserir os dados e confirmar as saídas, bem como para a adição de itens ao pedido.

Pré Requisito Ter clientes cadastrados e produtos no estoque.

Observação Não há.

APÊNDICE G. Descrição dos casos de Teste Unitários 131

Caso de uso: Adicionar ao estoque

Objetivo Testar se ao acessar a opção da tela financeira, Adicionar ao Es-

toque, o sistema redireciona para a tela de alteração do estoque, verificando se os dados inseridos estão de acordo com os dados no banco, verificar se ao inserir dados inválidos o sistema informa ao usuário o erro e também se caso ocorra algum erro na inserção o sistema também mostre ao usuário por meio de mensagem. A men- sagem de sucesso deve ser a seguinte: Estoque alterado com sucesso! , esta mensagem deve aparecer no momento que o usuário clicar em Adicionar mas possibilitar a inserção de mais itens. A mensagem caso o campo esteja faltando deve ser mostrada por meio de um ícone de exclamação no campo obrigatório, caso seja um erro deve ser mostrada como um popup na tela que desaparece sem algum clique..

Descrição Para este teste é preciso acessar a tela financeira e clicar no botão

Adicionar ao Estoque , inserir os dados e confirmar as saídas

Pré Requisito Não há.

Observação Deve-se garantir que ao clicar no botão pesquisar estoque e seleci-

onar um item, logo clicar em editar o sistema também redirecione para a mesma tela.

Tabela 17 – Caso de Teste: Adicionar ao Estoque

Caso de uso: Pesquisar Clientes

Objetivo Testar verificando se ao clicar no botão Pesquisar Clientes o sistema

redireciona para a tela de pesquisa com a lista de clientes cadastra- dos, caso o usuário preencha o campo de Nome Cliente o sistema filtra a lista pelo nome inserido.

Descrição Para este teste é preciso acessar a tela de clientes e clicar no bo-

tão Pesquisar Clientes.Para testar o filtro basta preencher o campo Nome Cliente.

Pré Requisito Ter clientes cadastrados.

Observação Deve-se filtrar os clientes a partir da primeira letra inserida.

Tabela 18 – Caso de Teste: Pesquisar Clientes

Caso de uso: Pesquisar Categorias

Objetivo Testar verificando se ao clicar no botão Pesquisar Categorias o sis-

tema redireciona para a tela de pesquisa com a lista de Categorias cadastrados, caso o usuário preencha o campo de Nome Categoria o sistema filtra a lista pelo nome inserido.

Descrição Para este teste é preciso acessar a tela de categorias e clicar no

botão Pesquisar Categorias. Para testar o filtro basta preencher o campo Nome Categoria.

Pré Requisito Ter categorias cadastrados.

Observação Deve-se filtrar os Categorias a partir da primeira letra inserida.

APÊNDICE G. Descrição dos casos de Teste Unitários 132

Caso de uso: Pesquisar Subcategorias

Objetivo Testar verificando se ao clicar no botão Pesquisar Subcategorias o

sistema redireciona para a tela de pesquisa com a lista de Subca- tegorias cadastrados, caso o usuário preencha o campo de Nome Subcategoria o sistema filtra a lista pelo nome inserido.

Descrição Para este teste é preciso acessar a tela de subcategorias e clicar no

botão Pesquisar Subcategorias. Para testar o filtro basta preencher o campo Nome Subcategoria.

Pré Requisito Ter subcategorias cadastrados.

Observação Deve-se filtrar os Subcategorias a partir da primeira letra inserida.

Tabela 20 – Caso de Teste: Pesquisar Subcategorias

Caso de uso: Pesquisar Produtos

Objetivo Testar verificando se ao clicar no botão Pesquisar Produtos o sis-

tema redireciona para a tela de pesquisa com a lista de produtos cadastrados, caso o usuário preencha o campo de Nome Produto o sistema filtra a lista pelo nome inserido.

Descrição Para este teste é preciso acessar a tela de produtos e clicar no botão

Pesquisar Produtos.Para testar o filtro basta preencher o campo Nome Produto.

Pré Requisito Ter produtos cadastrados.

Observação Deve-se filtrar os produtos a partir da primeira letra inserida.

Tabela 21 – Caso de Teste: Pesquisar Produtos

Caso de uso: Visualizar Calendário

Objetivo Testar verificando se ao clicar no botão Calendário o sistema redire-

ciona para a tela de pesquisa com a lista de sessões e compromissos do dia vigente e o calendário marcando o dia atual, caso o usuá- rio clique em qualquer dia mostrado no calendário, o sistema deve retornar a lista de sessões e compromissos do dia selecionado.

Descrição Para este teste é preciso acessar a tela de agenda e clicar no botão

Calendário. Para testar o filtro basta clicar em um dia aleatório no

No documento UNIVERSIDADE FEDERAL DE UBERLÃNDIA (páginas 96-144)

Documentos relacionados