Escolar Documentos
Profissional Documentos
Cultura Documentos
CURITIBA
2006
Ledyvnia Franzotte
CURITIBA
2006
Agradeo
oportunidade
primeiramente
de
realizar
a
o
Deus
Mestrado
a
e,
SUMRIO
RESUMO ______________________________________________________________ iii
ABSTRACT ____________________________________________________________ iv
LISTA DE TABELAS _____________________________________________________ v
LISTA DE FIGURAS ____________________________________________________ vi
GLOSSRIO ___________________________________________________________vii
1.
2.
INTRODUO______________________________________________________1
1.1.
Contexto _____________________________________________________________ 1
1.2.
Motivao____________________________________________________________ 4
1.3.
Objetivos ____________________________________________________________ 4
1.4.
Organizao do Trabalho_______________________________________________ 5
XML E TECNOLOGIAS______________________________________________6
2.1.
2.2.
2.3.
2.3.1.
2.3.2.
2.4.
3.
3.1.1.
3.1.2.
3.2.
5.
6.
Consideraes Finais__________________________________________________ 13
4.
SAX ____________________________________________________________________ 11
DOM ___________________________________________________________________ 12
Consideraes Finais__________________________________________________ 27
4.2.
4.3.
4.4.
4.5.
Consideraes Finais__________________________________________________ 36
5.2.
Consideraes Finais__________________________________________________ 39
EXPERIMENTOS __________________________________________________40
6.1.
Experimento 1 _______________________________________________________ 40
6.2.
Experimento 2 _______________________________________________________ 46
6.3.
7.
Consideraes Finais__________________________________________________ 49
Trabalhos Futuros____________________________________________________ 51
REFERNCIAS ________________________________________________________53
Apndice A Algoritmos da XTM ____________________________________________57
Anexo A Operadores Definidos por Li e Miller ________________________________59
Anexo B Especificaes dos esquemas utilizados nos experimentos _______________64
ii
RESUMO
Schema.
Este
fato
deve-se
principalmente
algumas
de
suas
iii
ABSTRACT
iv
LISTA DE TABELAS
LISTA DE FIGURAS
vi
GLOSSRIO
Sigla
Definio
AOC
API
CCR
COC
CSP
DOM
DT
Data Type
DTC
DTD
EBNF
EEC
ENM
ENR
EOC
GO
HTML
Group Order
HyperText Markup Language
IT
Insert_Tree
JDOM
Java DOM
NCC
QGR
QIR
RAR
REQ
Required
RPC
RT
Remove_Tree
RTG
SAX
vii
SLC
SNC
SO
Size Occurence
SPC
SQC
SQL
STE
SubTree_Exchange
TDE
UCR
W3C
XML
XTM
viii
1. INTRODUO
1.1.
Contexto
XML (eXtensible Markup Language) [XML05] uma linguagem de
Para isto,
1.2.
Motivao
Dado o contexto acima, tm-se as seguintes questes como motivao
1.3.
Objetivos
1.4.
Organizao do Trabalho
Este trabalho est subdividido em sete captulos. No Captulo 2
2. XML E TECNOLOGIAS
2.1.
XML possibilitando que sua sintaxe seja vlida, pois qualquer elemento que no
esteja especificado na DTD ou que no esteja conforme especificado torna o
documento XML invlido [MAR01].
A DTD usa uma gramtica oficial, a EBNF (Extended Backus Naur Form)
para especificar a estrutura e valores que so permitidos em um documento XML
[MAR01].
A Tabela 2-1 descreve os tipos de elementos que podem estar contidos nos
documentos DTD. Os dois primeiros tipos so elementos que espera-se encontrar
em documentos XML, e os demais so opcionais.
A DTD define todos os elementos que esto presentes em um documento
XML [TIT03]. A Figura 2-3 apresenta um exemplo de uma DTD. Este exemplo
valida o documento XML mostrado Figura 2-1, ou seja, nele esto presentes
todos os elementos e seus respectivos tipos permitidos no documento XML.
Significados
Declarao de um tipo elemento XML
ELEMENT
ATTLIST
permitidos
ENTITY
NOTATION
sua
leitura;
no
fornecem
suporte
para
espaos
identificadores
2.2.
XML SCHEMA
A origem do XML Schema est relacionada s limitaes da DTD. Sua
tipo de dados simples so os elementos que possuem apenas texto, como por
exemplo integer, string, date, entre outros. Este tipo restringe o texto que pode
aparecer no valor de um atributo ou no contedo de um elemento textual.
prov herana;
2.3.
2.3.1. SAX
A interface SAX (Simple API for XML) [SAX05] permite que sejam lidos
dados contidos em um documento XML sem que este seja todo carregado para a
memria. uma API baseada em eventos, pois, o analisador l o documento e
diz ao programa a respeito dos smbolos que ele encontra [MAR01]. Ela oferece
mtodos que respondem a eventos produzidos durante a leitura do documento
notificando quando um elemento abre, quando fecha, dentre outros.
A utilizao desta API apresenta algumas vantagens, dentre elas: permite
que sejam utilizados arquivos de grande tamanho (por haver pouco consumo de
memria) e possibilita a criao da estrutura de dados; simples de ser usada e a
informao que se busca rapidamente obtida. Ela ideal para aplicaes
simples que no precisam manipular toda a rvore de objetos.
Assim como qualquer outra API, a SAX tambm possui algumas
desvantagens, dentre as quais citamos [MAR01]: no h acesso aleatrio ao
documento, pois deve-se lidar com os dados medida que estes so lidos, no
possui uma DTD para validao, informaes lxicas no esto disponveis tais
como, comentrios, ordem dos atributos e caracteres de nova linha. Outra
desvantagem apresentada que ela no permite modificao no arquivo XML,
11
tornando este um arquivo apenas para leitura alm de no servir para validar
referncias cruzadas.
2.3.2. DOM
A interface DOM (Document Object Model) [DOM05] assim como a API
SAX permite que os dados de documentos XML sejam lidos. Todo o arquivo
quebrado em elementos individuais e carregado para a memria criando-se uma
representao do arquivo como uma rvore.
A API DOM uma recomendao definida pela W3C que contm a
especificao para a interface que pode acessar qualquer documento estruturado
XML e descreve como as cadeias de caracteres devem ser manipuladas e define
os objetos, mtodos e propriedades que a compem [DOM05].
Esta API oferece um conjunto robusto de interfaces para facilitar a
manipulao da rvore e dos ns, conforme mostra a Figura 2-5.
1.1.1.1 JDOM
A interface JDOM (Java DOM) [JDOM05] uma extenso da API DOM.
uma API escrita em Java puro e open source. Foi criada para resolver alguns
inconvenientes da API DOM, como, por exemplo, s possuir um nico tipo de
exceo, no possuir mtodos tpicos de classes Java como equals(), hashcode(),
clone(), tostring(), alm de ser uma API mais intuitiva para os desenvolvedores
JAVA do que o DOM [CLA04].
Por ser uma extenso da API DOM, tambm est baseada na estrutura de
rvores e permite o parsing, criao, manipulao e serializao dos documentos
XML. A Tabela 2-2 apresenta as principais diferenas entre os elementos usados
pelas API DOM e JDOM [CLA04].
2.4.
Consideraes Finais
Este captulo apresentou a tecnologia XML, as principais linguagens de
13
JDOM
Significado
Attr
Attribute
Atributo
CDATASection
CharacterData
Tipo
que
descreve
uma
seqncia
de
caracteres
Comment
Comment
Comentrios
Document
Document
Documento XML
DocumentType
DocType
Documento DTD
DocumentFragment
--
Parte do documento
DOMImplementation
--
Element
Element
Elemento N
Entity
Entity
Contedo reutilizvel
EntityReference
--
Referncia ao contedo
NamedNodeMap
--
Node
--
NodeList
--
Lista de Ns
Notation
--
ProcessingInstruction
ProcessingInstruction
Instrues de Processamento
Text
java.lang.String
Tipo String
-DOMException
Verifier
JDOMException,
Tipos de excees
IllegalAddException,
IllegalDataException,
IllegalNameException.,
IllegalTargetException
14
15
3. TESTE DE SOFTWARE
16
17
3.1.
Trabalhos Relacionados
A utilizao do teste baseado em defeitos e do teste de mutantes para a
18
Tag Alterada
Operador
<user>Ledyvnia</user>
<user>Ledy</user>
<user>Ledyvnia</user>
Caracteres removidos
19
(documento A)
Documento B)
Documento C)
<users>
<user>Ledyvnia</user>
</user>
<users>
<user>Ledyvnia</user>
</user>
<users>
<user>Maria</user>
<users>
20
X o conjunto de restries;
nr o n raiz;
Exchange (n1, n2): quando n1 e n2 so elementos do mesmo tipo trocase o valor n1 por n2 e vice versa;
Estes
operadores
so
definidos
na
Tabela
3-3.
Para
melhor
compreenso, um documento XML Schema foi definido com uma rvore [XU05]
para a qual se utiliza a mesma notao de [OFF04].
21
Descrio
Exemplo
DeleteN (n)
insertND (np, ep, n, ec, d) Insere um novo n (n) em que a Figura 3-1 C
definio de seu tipo ser a do n
pai (np)
deleteND (n)
DeleteT (e)
Figura 3-2 A
aresta e
changeE (e, e)
22
23
24
Nome
XML Schema Namespace Change
Descrio
Altera o ano de referncia
no namespace do esquema
TDE
ENR
Altera o identificador do
namespace para outro valor
aleatrio
ENM
Remove o elemento
prefixado do identificador do
namespace
QGR
Altera a definio da
qualificao dos elementos
locais e atributos das tags
elementFormDefault e
attributeFormDefault
QIR
CCR
COC
CDD
Remove um elemento de
uma composio de
qualquer tipo
EOC
Altera a restrio de
ocorrncias mnimas e/ou
mximas de um elemento
25
SPC
Altera as expresses
regulares declaradas para
uma seqncia exata de
caracteres aceitveis
RAR
EEC
Inclui ou remove um
elemento de uma restrio
para conjuntos enumerados
SLC
NCC
Altera o tamanho de um
nmero decimal nas
restries de representao
decimal
DTC
UCR
Altera o modificador de
controle usado nas
instncias
26
3.2.
Consideraes Finais
A atividade de teste uma das principais maneiras de garantir a qualidade
27
28
4. OPERADORES
DE
MUTAO
PARA
4.1.
Contexto do Teste
A escolha do padro XML Schema para gerao de mutantes para testes
29
30
4.2.
T rvore
E conjunto de Elementos
D conjunto de Dados
N conjunto de Ns
A conjunto de Atributos
O conjunto de Operadores
o GO Group Order
o REQ Required
o DT DataType
o SO SizeOccurs
o CT ChangeTag
o CSP ChangeSingPlural
o LO LengthOf
o STE SubTree_Exchange
o IT Insert_Tree
o RT Remove_Tree
4.3.
Group Order - GO
Required - REQ
DataType - DT
31
ChangeSingPlural - CSP
32
Exemplo:
<element type="A"/>
Mutaes possveis:
<element type="AXXX"/>
33
4.4.
34
35
4.5.
Consideraes Finais
Esse captulo introduziu um conjunto de operadores de mutao e um
36
5. A FERRAMENTA XTM
37
5.1.
38
5.2.
Consideraes Finais
Neste
captulo
foi
descrita
ferramenta
XTM,
suas
principais
39
6. EXPERIMENTOS
6.1.
Experimento 1
Objetivo
Este experimento teve como objetivo mostrar que as ferramentas de
validao de esquemas, geralmente utilizadas, tais como a ferramenta da W3C
por exemplo, no so capazes de identificar os defeitos introduzidos pelos
40
Ferramentas utilizadas
Para validar os esquemas foram utilizadas duas das mesmas ferramentas
utilizadas no trabalho de Li e Miller [LI05]: Validador da W3C [XSV05] e XMLSpy
[SPY05]. Alm dessas, tambm foi utilizada outra ferramenta, o Stylus Studio 6
[STY05].
Para este experimento algumas observaes referentes s validaes
efetuadas pelas ferramentas so feitas, pois isto influencia diretamente a
quantidade de mutantes vlidos gerados pelos operadores de mutao propostos
tanto por Li e Miller [LI05] quanto os propostos neste trabalho:
Descrio do Experimento
Para cada esquema em teste foram realizados os seguintes passos:
1. Gerar mutantes utilizando todos os operadores implementados pela XTM.
2. Validar sintaticamente os esquemas mutantes utilizando as ferramentas da
seo anterior
Resultados
A Tabela 6-1 mostra o nmero total de mutantes gerados por esquemas
para todos os operadores de mutao implementados. Este total no considera a
validade dos documentos. Nesta tabela detalhado o nmero de mutantes
gerados para o grupo de operadores de dado, sendo que, os 11 (onze) primeiros
41
XML Schema
Total
Total
1. SNC
2. QCR
3. AOC
4. QIR
5. CCR
16
16
50
50
6. UCR
7. SLC
8. RAR
9. NCC
10. DTC
11. SPC
12. GO
13. CSP
10
10
11
36
34
109
107
14. REQ
15. DT
12
12
10
52
48
142
139
16. SO
23
20
32
25
80
75
255
218
17. LO
10
10
11
35
36
110
110
18. IT
22
28
28
20
80
83
261
62
19. STE
28
28
28
15
77
96
271
268
20. RT
15
15
12
54
57
157
153
Total
115
129
143
102
436
451
1376
1021
42
RT
Vlidos
vlidos
Aluno.xsd
0/4
70
66,66
Disciplina.xsd
0/15
89
74,79
Obras.xsd
0/15
106
80,30
Usurio.xsd
0/12
74
78,72
Sia.xsd
285
68,67
Sih.xsd
304
75,80
928
74,15
XML Schema
Total de Vlidos
471
% Vlidos
81,62
268
36
Total de % mutantes
153
RT
Vlidos
vlidos
Aluno.xsd
0/4
75
71,42
Disciplina.xsd
0/15
89
74,79
Obras.xsd
0/15
90
68,18
Usurio.xsd
0/12
62
65,96
Sia.xsd
289
69,63
Sih.xsd
300
74,81
905
70,80
XML Schema
Total de Vlidos
448
% Vlidos
77,64
268
36
Total de % mutantes
153
Stylus Studio
Dados STE IT
RT
Total de % mutantes
Vlidos
vlidos
Aluno.xsd
0/4
70
66,63
Disciplina.xsd
0/15
82
68,90
Obras.xsd
0/15
89
67,42
Usurio.xsd
0/12
59
62,76
Sia.xsd
264
70,55
Sih.xsd
290
72,32
856
68,10
Total de Vlidos
399
% Vlidos
81,58
268
36
153
44
100 32,14
100
68,24
Disciplina.xsd 68.39
100 14,29
100
72,83
Obras.xsd
68.12
100 14,29
100
71,97
Usuarios.xsd
67.23
100
100
69,15
Sia.xsd
65.57
Sih.xsd
59.43
Total
64.80
Aluno.xsd
15
45
6.2.
Experimento 2
Objetivo
O objetivo dos operadores propostos neste trabalho descrever defeitos
relacionados semntica e no apenas a defeitos sintticos. Como apontado
pelos resultados do Experimento 1, os defeitos no so revelados apenas com
validadores. Para revelar os defeitos descritos pelos operadores necessrio
aplicar o teste de mutantes.
O Experimento 2 teve como objetivo a aplicao dos operadores propostos e
verificar quantos dados de teste so necessrios por operador para identificar
todos os mutantes gerados, qual o nmero de esquemas equivalentes gerados, e
o nmero de defeitos revelados. Este experimento permitiu que uma comparao
com o trabalho de Emer et al [EME05] fosse realizada.
Para a comparao,
Passos
Para cada esquema foram considerados todos os esquemas mutantes
vlidos gerados pela XTM no passo anterior. Foi utilizado na ferramenta XTM um
mecanismo de validao utilizando-se a API SAX o qual descarta mutantes no
vlidos para validar de documentos XML. Este mecanismo semelhante s
validaes feitas pelo validador da W3C.
Os seguintes passos foram realizados:
1. Para a realizao deste experimento foi utilizado um conjunto inicial de dados
de teste, isto , documentos XML que estavam disponveis para os esquemas
descritos por seus desenvolvedores. Cada documento do conjunto de dados
de teste foi submetido validao de acordo com o esquema em teste e com
cada esquema mutante gerado. O esquema mutante considerado morto se
ele produziu uma sada diferente da sada do esquema sendo testado.
2. Para os mutantes que permaneceram vivos aps o Passo1, isto , produziram
as mesmas sadas que o esquema original para todos os documentos no
conjunto de teste inicial.
46
No Passo 2 necessrio avaliar o resultado de um mutante para considerlo morto. Ele ser considerado morto se validou um documento XML e o esquema
original no o fez, ou, caso contrrio, um documento XML no pde ser validado
pelo mutante, mas o foi pelo esquema sendo testado. No caso de o resultado do
mutante ser o correto, um defeito no esquema em teste foi revelado. Esse
resultado foi utilizado para a anlise da eficcia.
Resultados
Os resultados obtidos com este experimento so apresentados na Tabela
6-6. Est identificado para cada esquema o nmero de mutantes vlidos usados
no experimento, quantidade de mutantes equivalentes gerados, nmero de dados
de testes distintos usados e o score de mutao obtido. A quantidade de defeitos
revelados pela quantidade de defeitos conhecidos por esquema tambm
informada.
Qtd mutantes
Mutantes
Score de
vlidos
Equivalentes Mutao
Qtd. Dados
Qtd. Defeitos
de Testes
Revelados /
existentes
Aluno.xsd
60
10/10
Disciplina.xsd
79
8/8
Obras.xsd
95
4/4
Usurio.xsd
66
9/9
Sia.xsd
250
0/0
Sih.xsd
268
1/1
48
6.3.
Consideraes Finais
Os experimentos realizados demonstraram que para revelar defeitos em
49
50
7.1.
Trabalhos Futuros
Como trabalho futuro, sugerido um aperfeioamento da implementao
51
52
REFERNCIAS
[BUD81]
[CLA04]
[DEL93]
[DEM78]
[DOM05]
W3C.
Document
Object
Model
(DOM).
Disponvel
em:
[DTD05]
W3C.
Document
Type
Definition.
Disponvel
em:
[EME05]
[HTML99]
53
[JDOM05]
[KUN00]
KUNG, D.C. and LIU, C.H. and HSIA, P. An Object-Oriented Web Test
Model for Testing Web Applications. In: The 24th Annual International
Computer Software and Applications Conference, COMPSAC 2000, p: 537542, 2005.
[LEE01]
LEE, Suet Chun. OFFUTT, Jeff, Generating Test Cases for XML-based
Web Component Interaction Using Mutation Analysis. In: Proceedings of
the 12th International Symposium o Software Reliabilty Engineering, p. 200209, Hong Kong, China, Novembro, 2001.
[LI05]
LI, Jian Bing, MILLER, James. Testing the Semantics of W3C XML
Schema. In: he 29th Annual International Computer Software and
Applications Conference, COMPSAC 2005 - QATWBA 2005, Julho, 2005.
[LIU00a]
LIU, C.H. and KUNG, D.C. and HSIA, P. and HSU, C.T. Structural Testing
of Web Applications. In: 11th International Symposium on Software
Reliability Engineering, p: 84-96, 2000.
[LIU00b]
LIU, C.H. and KUNG, D.C. and HSIA, P. Object-based data flow testing of
Web applications. In: First Asia-Pacific Conference on Quality Software, p:
7-16, 2000.
[MAL91]
estrutural
de
software.
1991.
Tese
(Doutorado)
[MAR01]
[MYE79]
54
[OFF02]
[OFF04]
OFFUTT, J. and XU, W. Generating Test Cases for Web Services Using
Data Perturbation. In: TAV-WEB Proceedings, Setembro, 2004.
[PRE05]
[RAP82]
RAPPS, S.; WEYUKER, E. J. Data flow analysis techniques for test data
selection. In: INTERNATIONAL CONFERENCE ON SOFTWARE, p: 272278, Tokio, 1982 .
[RAP85]
[SAX05]
[SPY05]
[SQC05]
IBM
XML
Schema
Quality
Checker,
version
2.2.
[STY05]
Stylus
Studio
2006.
Disponvel
em:
[TIT03]
55
[WON94]
[WU04]
[XML05]
[XMLS05]
[XSV05]
W3C
Validator
for
XML
Schema.
Disponvel
em:
[XU05]
XU, Wuzhi, OFFUTT, Jeff, LUO, Juan. Testing Web Services by XML
Pertubation. In: Proceedings of the 16th IEEE International Symposium on
Software Reliability Engineering, Novembro, 2005.
56
Principal
1.
2.
3.
4.
ou
57
58
ANEXO A
MILLER
Original:
<schema xmlns=http://www.w3.org/2001/XML Schema>
Mutante:
<schema xmlns=http://www.w3.org/1999/XML Schema>
Original:
<schema
xmlns=http://www.w3.org/2001/XML Schema
xmlns:po=http://www.example.com.PO1
targetNamespace:http://www.example.com/PO1>
Mutante:
<schema
xmlns= http://www.example.com.PO1
xmlns:po=http://www.w3.org/2001/XML Schema
targetNamespace:http://www.example.com/PO1>
Original:
<element name=purchaseOrder type=po:PurchaseOrderType>
Mutante:
<element name=purchaseOrder type=newpo:PurchaseOrderType>
Original:
<element name=purchaseOrder type=po:PurchaseOrderType>
Mutante:
59
Original:
<schema ... elementFormDefault=unqualified>
Mutante:
<schema ... elementFormDefault=qualified>
Original:
<attribute name=publicKey type=base64Binary form=qualified>
Mutante:
<attribute name=publicKey type=base64Binary form=unqualified>
Original:
<complexType>
<sequence>
<! elementos -->
</sequence>
</complexType>
Mutante:
<complexType>
<choice> /* ou all */
<! elementos -->
</choice> /* ou all */
</complexType>
Original:
<complexType>
<sequence>
<element name=name type=string/>
<element name=street type=string/>
<element name=city type=string/>
</sequence>
</complexType>
Mutante:
<complexType>
<sequence>
<element name=name type=string/>
<element name=city type=string/>
<element name=street type=string/>
60
</sequence>
</complexType>
Original:
<complexType>
<sequence>
<element name=name type=string/>
<element name=city type=string/>
<element name=street type=string/>
</sequence>
</complexType>
Mutante:
<complexType>
<sequence>
<element name=city type=string/>
<element name=street type=string/>
</sequence>
</complexType>
Original:
<xsd:element name=item minOccurs=0 maxOccurs=unbounded>
Mutante 1:
<xsd:element name=item minOccurs=1 maxOccurs=unbounded>
Mutante 2:
<xsd:element name=item minOccurs=0 maxOccurs=1>
Original:
<xsd:attribute name=partNum use=required/>
Mutante 1:
<xsd:attribute name=partNum use=optional/>
Mutante 2:
<xsd:attribute name=partNum use=prohibited/>
Original:
<xsd:simpleType name=SKU>
<xsd:restriction base=xsd:string>
<xsd:pattern value=\d{3}-{A-Z}{2}>
</xsd:restriction>
61
</xsd:simpleType>
Mutante 1:
<xsd:pattern value=\d{4}-{A-Z}{2}>
Mutante 2:
<xsd:pattern value=\d{3}-{A-Y}{2}>
Original:
<xsd:simpleType name=myInteger>
<xsd:restriction base=xsd:integer>
<xsd:minInclusive value=10000/>
<xsd:maxInclusive value=99999/>
</xsd:restriction>
</xsd:simpleType>
Mutante 1:
<xsd:minExclusive value=10000/>
<xsd:maxInclusive value=99999/>
Mutante 2:
<xsd:minInclusive value=10000/>
<xsd:maxExclusive value=99999/>
Mutante 3:
<xsd:minInclusive value=9999/> /* ou 10001 */
<xsd:maxInclusive value=99999/>
Mutante 4:
<xsd:minInclusive value=10000/>
<xsd:maxInclusive value=99998/> /* ou 100000*/
Original:
<xsd:simpleType name=USState>
<xsd:restriction base=xsd:string>
<xsd:enumeration value=AK/>
<xsd:enumeration value=AL/>
<xsd:enumeration value=AR/>
</xsd:restriction>
</xsd:simpleType>
Mutante 1:
/* REMOVE <xsd:enumeration value=AK/>
<xsd:enumeration value=AL/>
<xsd:enumeration value=AR/>
*/
Mutante 2:
<xsd:enumeration
<xsd:enumeration
<xsd:enumeration
<xsd:enumeration
value=AK/>
value=AL/>
value=AR/>
value=AW/>
/* ADICIONA */
62
Original:
<xsd:restriction base=USStateList>
<xsd:length value=6/>
</xsd:restriction>
Mutante:
<xsd:restriction base=USStateList>
<xsd:length value=5/>
/* Ou value=7
</xsd:restriction>
*/
Original:
<complexContent>
<restriction base=ipo:Itens>
<! Outras definies -->
</restriction>
</complexContent>
Mutante:
<complexContent>
<extension base=ipo:Itens>
<! Outras definies -->
</extension>
</complexContent>
Original:
<complexType name=Adress final=restriction>
<complexType name=Adress block=restriction>
<simpleType name=Postcode>
<restriction base=string>
<length value=7 fixed=true/>
</restriction>
</simpleType>
Mutante:
<complexType name=Adress final=#all>
<complexType name=Adress block=extension>
/* REMOVE
<length value=7 fixed=true/> */
63
ANEXO B
Sistema de Biblioteca
Descrio do Sistema
O usurio cadastrado poder acessar o sistema mediante login e senha
para consultar obras disponveis no acervo da biblioteca. O usurio que estiver
com a mensalidade em dia poder acessar no mximo o contedo de trs obras
por ms. Portanto, o acesso do usurio a uma obra deve ser armazenado.
Obras --> cdigo, ttulo, descrio, contedo, autor, editora, local, ano, ISBN.
Observaes
os cdigos devem possuir uma quantidade de dgitos limitada (obras e usurio:
seis), o login deve conter at oito caracteres, a senha deve conter 4 caracteres e
2 nmeros em qualquer ordem, a obra pode ter um ou mais autores.
Sistema de Matriculas
Descrio do Sistema
64
O aluno poder acessar o sistema com logina e senha para realizar matrcula. O
aluno somente poder se matricular em disciplinas do seu perodo ou pendentes
e cujos pr-requisitos tenham sido cumpridos.
Aluno --> cdigo, nome, login, senha, curso, perodo, disciplinas cursadas,
disciplinas matriculadas;
Disciplina --> cdigo, nome, carga horria, crditos, perodo, ementa, cdigo
do professor, cdigo de pr-requisitos (cdigo de disciplinas cursadas
necessrias).
Observaes
os cdigos devem possuir uma quantidade de dgitos limitada(aluno seis e
disciplina trs), o login deve conter at oito caracteres, a senha deve conter 4
caracteres e 2 nmeros em qualquer ordem, as disciplinas podem ter 1 ou 2
professores e zero ou mais pr-requisitos.
3
3.1
Sistema Hospitalar
Arquivo - Ficha de Internamento Hospitalar
Objetivo
Coletar informaes dos gastos com os internamentos Hospitalares pagos
pelo SUS. Esse arquivo dever ser enviado por todas instituies que internam
pacientes SUS.
Dicionrio de Dados
CGC: Especificar o CGC/CNPJ da prestadora de servio. Deve possuir quatorze
(14) dgitos numricos (sem pontos, traos ou barras).
DATA: Especificar a data em que o arquivo foi gerado. Deve possuir o seguinte
formato: DD/MM/AAAA (D = Dia, M = Ms, A = Ano).
65
Especificar
CPF
do
mdico
solicitante
do
internamento. Deve possuir onze (11) dgitos numricos (sem pontos, traos ou
barras).
CPF_MED_AUDITOR: Especificar o CPF do mdico que realizou a auditoria do
laudo mdico. Deve possuir onze (11) dgitos numricos (sem pontos, traos ou
barras).
CPF_MED_RESPONSAVEL: Especificar o CPF do mdico responsvel pelo
internamento do paciente no hospital. Deve possuir onze (11) dgitos numricos
(sem pontos ou traos).
CID: Especificar o cdigo internacional de doenas. Deve possuir no mximo dez
(10) dgitos alpha numricos.
NR_PRONTUARIO: Especificar o identificador do paciente no hospital. Deve
possuir no mximo quinze (15) dgitos alpha numricos.
NOME: Especificar o nome do paciente internado. Deve possuir no mximo cento
e cinqenta dgitos (150) dgitos alpha numricos.
DATA_NASC: Especificar a data de nascimento do paciente. Deve possuir o
seguinte formato: DD/MM/AAAA (D = Dia, M = Ms, A = Ano).
RG: Especificar o registro geral do paciente. Deve possuir de (8) a nove (9) dgitos
apenas numricos (sem pontos, traos ou barras).
CPF: Especificar o cadastro de pessoa fsica do paciente internado. Deve possuir
onze (11) dgitos numricos (sem pontos, traos ou barras).
LOGRADOURO: Especificar o nome do logradouro (rua, avenida) que reside o
paciente. Deve possuir no mximo cem (100) dgitos alpha numricos.
66
Observaes
No
campo
procedimentos
executados
<proc_executados>
3.2
Objetivo
67
Dicionrio de Dados
CGC: Especificar o CGC/CNPJ da prestadora de servio. Deve possuir quatorze
(14) dgitos numricos (sem pontos, traos ou barras).
DATA: Especificar a data em que o arquivo foi gerado. Deve possuir o seguinte
formato: DD/MM/AAAA (D = Dia, M = Ms, A = Ano).
DATA_ATENDIMENTO: Especificar a data em que o paciente foi atendido. Deve
possuir o seguinte formato: DD/MM/AAAA (D = Dia, M = Ms, A = Ano).
DATA_SOLICITACAO: Especificar a data em que os procedimentos foram
solicitados pelo mdico. Deve possuir o seguinte formato: DD/MM/AAAA (D = Dia,
M = Ms, A = Ano).
CPF_MED_SOLICITANTE: Especificar o CPF do mdico solicitante dos
procedimentos. Deve possuir onze (11) dgitos numricos (sem pontos, traos ou
barras).
CPF_MED_AUDITOR: Especificar o CPF do mdico que realizou a auditoria do
laudo mdico. Deve possuir onze (11) dgitos numricos (sem pontos, traos ou
barras).
VALOR_TOTAL: Especificar o custo total dos procedimentos realizados. Deve
possuir nmeros reais positivos com no mximo duas (2) casas decimais
separadas por ponto(.). Exemplo: 1275.50 (mil duzentos e setenta e cindo reais e
cinqenta centavos).
CID: Especificar o cdigo internacional de doenas. Deve possuir no mximo dez
(10) dgitos alpha numricos.
NR_PRONTUARIO: Especificar o identificador do paciente na prestadora de
servio. Deve possuir no mximo quinze (15) dgitos alpha numricos.
NOME: Especificar o nome do paciente. Deve possuir no mximo cento e
cinqenta dgitos (150) dgitos alpha numricos.
DATA_NASC: Especificar a data de nascimento do paciente. Deve possuir o
seguinte formato: DD/MM/AAAA (D = Dia, M = Ms, A = Ano).
68
RG: Especificar o registro geral do paciente. Deve possuir de (8) a nove (9) dgitos
apenas numricos (sem pontos, traos ou barras).
CPF: Especificar o cadastro de pessoa fsica do paciente internado. Deve possuir
onze (11) dgitos numricos (sem pontos, traos ou barras).
LOGRADOURO: Especificar o nome do logradouro (rua, avenida,) que reside o
paciente. Deve possuir no mximo cem (100) dgitos alpha numricos.
CEP: Especificar o CEP do logradouro que reside o paciente. Deve possuir no
mximo vinte (20) dgitos alpha numricos.
NR_PREDIAL: Especificar o nmero predial que reside o paciente. Deve possuir
no mximo dez (10) dgitos alpha numricos.
BAIRRO: Especificar o nome do bairro que reside o paciente. Deve possuir no
mximo cem (100) dgitos alpha numricos.
COD_IBGE_CIDADE: Especificar o cdigo da cidade com base no IBGE que
reside o paciente. Deve possuir no mximo 10 dgitos alpha numricos.
CIDADE: Especificar o nome da cidade que reside o paciente. Deve possuir no
mximo cem (100) dgitos alpha numricos.
COMPLEMENTO: Especificar informaes complementares sobre o local em que
o paciente reside. Deve possuir no mximo cinqenta (50) dgitos alpha
numricos.
COD_SIASUS: Especificar o cdigo SIA SUS do procedimento. Deve possuir oito
(8) dgitos numricos (sem pontos, traos ou barras).
DESCRICAO_PROC: Especificar a descrio do procedimento. Deve possuir no
mximo dois mil e quinhentos (2500) dgitos alpha numricos.
VALOR_UNIT: Especificar o valor unitrio do procedimento. Deve possuir
nmeros reais positivos com no mximo duas(2) casas decimais separadas por
ponto(.). Exemplo: 1275.50 (mil duzentos e setenta e cindo reais e cinqenta
centavos).
QTD: Especificar a quantidade de vezes que o procedimento foi executado. Deve
possuir somente nmeros inteiros positivos. Exemplo: 10.
Observaes
elemento
data
de
atendimento
<DATA_ATENDIMENTO>
69
elemento
data
de
solicitao
<DATA_SOLICITACAO>
elemento
CPF
do
mdico
solicitante
<CPF_MED_SOLICITANTE>
elemento
CPF
do
mdico
auditor
<CPF_MED_AUDITOR>
de
uma
requisio
de
exames/procedimentos
de
alta
complexidade;
elemento
procedimento
principal
<PROC_PRINCIPAL>
de
uma
requisio
de
exames/procedimentos
de
alta
complexidade.
70