Você está na página 1de 20

BOOK_Analise.

indb 1

29/09/2010 13:02:59

Preencha a ficha de cadastro no final deste livro


e receba gratuitamente informaes
sobre os lanamentos e as promoes da Elsevier.
Consulte tambm nosso catlogo completo,
ltimos lanamentos e servios exclusivos no site
www.elsevier.com.br

BOOK_Analise.indb 2

29/09/2010 13:03:00

BOOK_Analise.indb 3

29/09/2010 13:03:00

BOOK_Analise.indb 4

29/09/2010 13:03:00

BOOK_Analise.indb 5

29/09/2010 13:03:00

2011, Elsevier Editora Ltda.


Todos os direitos reservados e protegidos pela Lei no 9.610, de 19/02/1998.
Nenhuma parte deste livro, sem autorizao prvia por escrito da editora, poder ser reproduzida ou
transmitida sejam quais forem os meios empregados: eletrnicos, mecnicos, fotogrficos, gravao ou
quaisquer outros.
Copidesque: Ivone Teixeira
Reviso: Bruno Barrio
Editorao Eletrnica: SBNIGRI Artes e Textos Ltda.
Elsevier Editora Ltda.
Conhecimento sem Fronteiras
Rua Sete de Setembro, 111 16o andar
20050-006 Centro Rio de Janeiro RJ Brasil
Rua Quintana, 753 8o andar
04569-011 Brooklin So Paulo SP Brasil
Servio de Atendimento ao Cliente
0800-0265340
sac@elsevier.com.br
ISBN 978-85-352-3916-4
Nota: Muito zelo e tcnica foram empregados na edio desta obra. No entanto, podem ocorrer erros
de digitao, impresso ou dvida conceitual. Em qualquer das hipteses, solicitamos a comunicao
ao nosso Servio de Atendimento ao Cliente, para que possamos esclarecer ou encaminhar a questo.
Nem a editora nem o autor assumem qualquer responsabilidade por eventuais danos ou perdas a
pessoas ou bens, originados do uso desta publicao.

CIP-Brasil. Catalogao-na-fonte.
Sindicato Nacional dos Editores de Livros, RJ
_________________________________________________________________________
W372a Wazlawick, Raul Sidnei
2.ed.
Anlise e projeto de sistemas de informao orientados a objetos
/ Raul Sidnei Wazlawick. 2.ed. Rio de Janeiro: Elsevier, 2011.
(Srie SBC, Sociedade Brasileira de Computao)
Apndice: Sumrio OCL
Inclui bibliografia e ndice
ISBN 978-85-352-3916-4
1. Mtodos orientados a objetos (Computao). 2. UML (Computao). 3. Anlise de sistemas. 4. Projeto de sistemas. 5. Software Desenvolvimento. I. Sociedade Brasileira de Computao. II. Ttulo. III. Srie.
CDD: 005.117
CDU: 004.414.2
_________________________________________________________________________
10-2632.

BOOK_Analise.indb 6

29/09/2010 13:03:00

Dedicatria

Este livro dedicado aos meus pais e antepassados,


sem os quais eu no existiria.

BOOK_Analise.indb 7

29/09/2010 13:03:00

BOOK_Analise.indb 8

29/09/2010 13:03:00

Agradecimentos

Desejo agradecer a vrias pessoas que, de uma forma ou outra, tornaram este livro possvel: ao mestre Luiz Fernando Bier Melgarejo, por apresentar as ideias de orientao a objetos j em 1987; ao colega Marcos Eduardo
Casa, por todos os trabalhos desenvolvidos em conjunto nos tempos em que
orientao a objetos era coisa de outro mundo; ao colega Antnio Carlos
Mariani, pelo Mundo dos Atores, ferramenta que tanto usamos para ensinar
programao orientada a objetos; ao ex-aluno Leonardo Ataide Minora, por
inicialmente me chamar a ateno para o livro de Larman; s empresas e rgos pblicos que possibilitaram a implantao dessas tcnicas em ambientes
reais de produo de software e especialmente ao engenheiro de software Gilmar Purim, pelas interessantes discusses que muito contriburam para dar a
forma final a este livro; aos ex-alunos Everton Luiz Vieira e Kuesley Fernandes
do Nascimento, por terem ajudado a consolidar algumas das tcnicas quando
da aplicao delas a um interessante sistema Web; ao Departamento de Informtica e Estatstica da UFSC, pela oportunidade de concretizar este trabalho;
e a Dayane Montagna, por digitar o primeiro rascunho deste livro a partir das
gravaes das minhas aulas.
Agradeo tambm aos mais de mil ex-alunos, vtimas da minha disciplina de Anlise e Projeto de Sistemas Orientados a Objetos suas dvidas e
dificuldades me fizeram pesquisar e aprender muito mais; ao colega Rogrio
Cid Bastos, por muitas orientaes recebidas; e, finalmente, aos amigos e irmos, pelos momentos de descontrao e higiene mental.

BOOK_Analise.indb 9

29/09/2010 13:03:00

BOOK_Analise.indb 10

29/09/2010 13:03:00

Prefcio

Este livro apresenta, de maneira didtica e aprofundada, elementos de


anlise e projeto de sistemas de informao orientados a objetos.
A rea de desenvolvimento de software tem se organizado nos ltimos
anos em torno da linguagem de modelagem UML (Unified Modeling Language) e do processo UP (Unified Process), transformados em padro internacional pela OMG (Object Management Group).
No se procura aqui realizar um trabalho enciclopdico sobre UP ou
UML, mas uma apresentao de cunho estritamente prtico, baseada em mais
de vinte anos de experincia em ensino, prtica e consultoria em anlise, projeto e programao orientada a objetos.
Este livro diferencia-se da maioria de outros livros da rea por apresentar em detalhes as tcnicas de construo de contratos de operao e consulta
de sistema de forma que esses contratos possam ser usados para efetiva gerao de cdigo.
Novos padres e tcnicas de modelagem conceitual so detalhadamente
apresentados, tcnicas estas tambm adequadas para uso com contratos e diagramas de comunicao, de forma a garantir gerao automtica de cdigo;
no apenas de esqueletos, mas de cdigo final executvel.
Em relao aos casos de uso de anlise, o livro apresenta, em detalhes,
tcnicas para ajudar a decidir o que considerar efetivamente como caso de uso.
Essa dificuldade tem sido sistematicamente relatada por analistas de vrias partes do Brasil, a partir do contato obtido em cursos ministrados pelo autor.
Ao contrrio de outros livros da rea, que se organizam em torno da
apresentao dos diagramas UML e procuram explicar todos os seus poss-

BOOK_Analise.indb 11

29/09/2010 13:03:00

veis usos, este livro se concentra nas atividades com as quais o analista e o
projetista de software possivelmente vo se deparar e sugere quais diagramas
poderiam ajud-los e de que forma.
Algumas empresas brasileiras ainda tm dificuldade em conseguir exportar software devido falta de flexibilidade e manutenibilidade dos sistemas
gerados. Este livro apresenta um conjunto de informaes e tcnicas que pode
suprir essa carncia. As tcnicas em questo foram implementadas com xito
pelo autor na empresa TEClgica Ltda., em Blumenau, no desenvolvimento
de um projeto de grande porte em 2004. Posteriormente, as tcnicas foram
aplicadas e aperfeioadas nos departamentos de tecnologia de informao do
Ministrio Pblico de Santa Catarina, Tribunal Regional do Trabalho do Mato
Grosso e Justia Federal de Santa Catarina, contendo agora ainda mais orientaes e detalhes do que na primeira edio deste livro.
O livro direcionado a profissionais de computao (analistas, projetistas e programadores) e a estudantes de graduao e ps-graduao das disciplinas de Anlise e Projeto de Sistemas e Engenharia de Software. Como
conhecimentos prvios so recomendados rudimentos sobre orientao a objetos, notao UML e fundamentos de banco de dados.
Para que o livro pudesse aprofundar ainda mais as informaes sobre
anlise e projeto orientados a objetos sem se tornar demasiadamente longo,
foram suprimidas nesta segunda edio algumas informaes referentes ao
processo de Engenharia de Software que estavam presentes na primeira edio.
Esses processos sero descritos de forma detalhada pelo autor em um novo
livro sobre Engenharia de Software a ser lanado brevemente. Alm disso, para
ganhar espao e dinamismo, os exerccios, anteriormente includos no livro,
passam a estar disponveis apenas na Internet (www.elsevier.com.br/wazlawick
ou www.inf.ufsc.br/~raul/).
Raul Sidnei Wazlawick
Florianpolis, 19 de fevereiro de 2010.

BOOK_Analise.indb 12

29/09/2010 13:03:00

Sumrio

Captulo 1 Introduo .............................................................................. 1


1.1. Desenvolvimento de Sistemas Orientados a Objetos ............................... 2
1.2. Linguagem de Modelagem Unificada UML ........................................... 3
1.3. Processo Unificado UP ............................................................................. 4
1.4. As Atividades de Anlise e Projeto no Contexto do Processo
Unificado ........................................................................................................ 6
Captulo 2 Viso Geral do Sistema .......................................................... 9
2.1. Modelagem de Negcio com Diagrama de Atividades .......................... 11
2.2. Modelagem de Aspectos de Negcio com Diagrama de Mquina de
Estados.......................................................................................................... 15
2.3. Comentrios ................................................................................................ 19
Captulo 3 Requisitos ............................................................................. 21
3.1. Levantamento de Requisitos ...................................................................... 22
3.1.1. Levantar Requisitos no Projeto! .............................................. 22
3.1.2. Desafios dos Requisitos................................................................. 23
3.1.3. Requisitos Funcionais ................................................................... 24
3.1.4. Requisitos No Funcionais ........................................................... 25
3.1.5. Requisitos Suplementares ............................................................. 26
3.1.6. Documento de Requisitos ............................................................ 26
3.2. Anlise de Requisitos .................................................................................. 29
3.2.1. Permanncia e Transitoriedade ................................................... 29
3.2.2. Requisitos Evidentes e Ocultos .................................................... 30
3.2.3. Requisitos Obrigatrios e Desejados .......................................... 31
3.2.4. Classificao de Requisitos No Funcionais
e Suplementares ............................................................................. 31

BOOK_Analise.indb 13

29/09/2010 13:03:00

Captulo 4 Casos de Uso de Alto Nvel ................................................... 35


4.1. Caracterizao de Casos de Uso................................................................ 37
4.1.1. Monossesso................................................................................... 38
4.1.2. Interativo......................................................................................... 38
4.1.3. Resultado Consistente ................................................................... 38
4.2. Complexidade de Casos de Uso ................................................................ 39
4.3. Priorizao de Casos de Uso...................................................................... 40
4.4. Fronteira do Sistema ................................................................................... 41
Captulo 5 Casos de Uso Expandidos..................................................... 43
5.1. Caso de Uso Essencial Versus Caso de Uso Real .................................... 44
5.2. Fluxo Principal ............................................................................................ 46
5.2.1. Passos Obrigatrios ....................................................................... 47
5.2.2. Passos Complementares ............................................................... 52
5.2.3. Passos Imprprios ......................................................................... 53
5.3. Estilos de Escrita ......................................................................................... 55
5.4. Tratamento de Excees em Casos de Uso .............................................. 56
5.5. Variantes do Fluxo Principal ..................................................................... 60
5.6. Casos de Uso Includos .............................................................................. 62
5.7. Cenrios e Casos de Uso ............................................................................ 63
5.8. Expanso de Casos de Uso Padro ........................................................... 64
5.8.1. Relatrio Expandido ..................................................................... 64
5.8.2. CRUD Expandido.......................................................................... 65
5.9. Outras Sees de um Caso de Uso Expandido ....................................... 68
5.9.1. Atores .............................................................................................. 68
5.9.2. Interessados .................................................................................... 69
5.9.3. Precondies .................................................................................. 70
5.9.4. Ps-condies de Sucesso ............................................................. 70
5.9.5. Requisitos Correlacionados.......................................................... 70
5.9.6. Variaes Tecnolgicas ................................................................. 71
5.9.7. Questes em Aberto ...................................................................... 71
Captulo 6 Diagramas de Sequncia de Sistema .................................... 73
6.1. Elementos do Diagrama de Sequncia ..................................................... 74
6.2. Representao de Casos de Uso Expandidos como Diagramas de
Sequncia de Sistema .................................................................................. 76
6.3. Ligao da Interface com o Domnio ....................................................... 77
6.4. Estratgias Statefull e Stateless................................................................... 80
6.5. Excees em Diagramas de Sequncia ..................................................... 83
6.6. Padro DTO Data Transfer Object ........................................................ 86

BOOK_Analise.indb 14

29/09/2010 13:03:00

Captulo 7 Modelagem Conceitual ........................................................ 89


7.1. Atributos....................................................................................................... 92
7.1.1. Tipagem .......................................................................................... 92
7.1.2. Valores Iniciais ............................................................................... 93
7.1.3. Atributos Derivados.................................................................................... 94
7.1.4. Enumeraes .................................................................................. 95
7.1.5. Tipos Primitivos ............................................................................ 96
7.2. Conceitos...................................................................................................... 97
7.2.1. Identificadores................................................................................ 97
7.2.2. Classe Controladora de Sistema .................................................. 98
7.2.3. Conceitos Dependentes e Independentes .................................. 98
7.3. Como Encontrar Conceitos e Atributos .................................................. 99
7.4. Associaes ................................................................................................102
7.4.1. Como Encontrar Associaes ....................................................105
7.4.2. Multiplicidade de Papis .............................................................106
7.4.3. Direo das Associaes .............................................................107
7.4.4. Associao Derivada ...................................................................108
7.4.5. Colees ........................................................................................110
7.4.5.1. Conjuntos ....................................................................111
7.4.5.2. Conjunto Ordenado ..................................................111
7.4.5.3. Multiconjunto .............................................................111
7.4.5.4. Lista..............................................................................112
7.4.5.5. Mapeamento ...............................................................113
7.4.5.6. Partio........................................................................113
7.4.5.7. Relao ........................................................................114
7.4.6. Agregao e Composio ...........................................................115
7.4.7. Associaes n-rias .....................................................................116
7.5. Organizao do Modelo Conceitual .......................................................118
7.5.1. Generalizao, Especializao e Herana .................................119
7.5.2. Classes de Associao .................................................................122
7.5.3. Classes Modais .............................................................................124
7.5.3.1. Transio Estvel ........................................................125
7.5.3.2. Transio Monotnica...............................................126
7.5.3.3. Transio No Monotnica ......................................129
7.6. Padres de Anlise ....................................................................................131
7.6.1. Coeso Alta ..................................................................................132
7.6.2. Classes de Especificao .............................................................134
7.6.3. Quantidade ...................................................................................135
7.6.4. Medida ..........................................................................................136
7.6.5. Estratgia ......................................................................................137

BOOK_Analise.indb 15

29/09/2010 13:03:00

7.6.6. Hierarquia Organizacional .........................................................139


7.6.7. Juno de Objetos ........................................................................140
7.6.7.1. Copiar e Substituir .....................................................141
7.6.7.2. Sucessor .......................................................................141
7.6.7.3. Essncia/Aparncia ....................................................142
7.6.7.4. Desfazendo a Juno..................................................143
7.6.8. Conta/Transao ..........................................................................144
7.6.9. Associao Histrica ...................................................................146
7.6.10. Intervalo ........................................................................................148
7.7. Invariantes ..................................................................................................149
7.8. Discusso....................................................................................................151
Captulo 8 Contratos .............................................................................153
8.1. Precondies ..............................................................................................155
8.1.1. Garantia de Parmetros ..............................................................157
8.1.2. Restrio Complementar ............................................................157
8.1.3. Garantia das Precondies .........................................................158
8.1.4. Precondio versus Invariante ...................................................158
8.2. Associaes Temporrias .........................................................................159
8.3. Retorno de Consulta .................................................................................160
8.4. Ps-condies ............................................................................................162
8.4.1. Modificao de Valor de Atributo .............................................164
8.4.2. Criao de Instncia ....................................................................165
8.4.3. Criao de Associao ................................................................166
8.4.4. Destruio de Instncia ..............................................................168
8.4.5. Destruio de Associao ...........................................................169
8.4.6. Ps-condies bem Formadas ...................................................169
8.4.7. Combinaes de Ps-condies ................................................170
8.4.8. Ps-condies sobre Colees de Objetos ...............................171
8.5. Excees .....................................................................................................171
8.6. Contratos Padro CRUD .........................................................................173
8.6.1. Operaes de Criao (Create) ..................................................174
8.6.2. Operaes de Alterao (Update) .............................................174
8.6.3. Operaes de Excluso (Delete) ................................................175
8.6.4. Consultas (Retrieve) ....................................................................178
8.7. Contrato Padro Listagem .......................................................................178
8.8. Contratos Relacionados com Casos de Uso ..........................................179
8.8.1. Contratos para Estratgia Stateless............................................180
8.8.2. Contratos para a Estratgia Statefull .........................................186

BOOK_Analise.indb 16

29/09/2010 13:03:00

Captulo 9 Projeto da Camada de Domnio .........................................193


9.1. Responsabilidades e Operaes Bsicas .................................................197
9.2. Visibilidade ................................................................................................199
9.2.1. Visibilidade por Associao .......................................................200
9.2.1.1. Visibilidade para Um .................................................200
9.2.1.2. Visibilidade para Muitos ...........................................201
9.2.1.3. Associaes Ordenadas .............................................201
9.2.1.4. Associaes Qualificadas ..........................................202
9.2.1.5. Classes de Associao ................................................204
9.2.1.6. Influncia das Precondies na Visibilidade por
Associao...................................................................205
9.2.2. Visibilidade por Parmetro ........................................................206
9.2.3. Visibilidade Localmente Declarada...........................................207
9.2.4. Visibilidade Global ......................................................................208
9.3. Realizao Dinmica das Ps-condies ...............................................209
9.3.1. Criao de Instncia ....................................................................209
9.3.2. Criao de Associao ................................................................212
9.3.3. Modificao de Valor de Atributo .............................................214
9.3.4. Destruio de Instncia ..............................................................216
9.3.5. Destruio de Associao ...........................................................217
9.3.6. Ps-condies Condicionais ......................................................218
9.3.7. Ps-condies sobre Colees ...................................................220
9.4. Consultas de Sistema ................................................................................221
9.4.1. Padres de Consulta com Filtro ................................................223
9.5. Delegao e Acoplamento Baixo .............................................................226
9.6. Diagrama de Classes de Projeto ..............................................................231
Captulo 10 Projeto da Camada de Interface (Web) .............................235
10.1. WebML .......................................................................................................236
10.2. Unidades.....................................................................................................237
10.2.1. Data Units .....................................................................................237
10.2.2. Multidata Units ............................................................................240
10.2.3. Index Units ...................................................................................242
10.2.3.1. Multi-Choice Index Unit...........................................243
10.2.3.2. Hierarchical Index Unit ............................................243
10.2.3.3. Hierarchical Index Unit Recursiva ..........................245
10.2.4. Scroller Units ................................................................................246
10.2.5. Entry Units ...................................................................................247
10.3. Pginas ........................................................................................................249
10.3.1. Links ..............................................................................................251

BOOK_Analise.indb 17

29/09/2010 13:03:00

10.4.

10.5.

10.6.
10.7.

10.3.1.1. Link de Transporte.....................................................254


10.3.1.2. Link Automtico ........................................................255
Organizao de Hipertexto ......................................................................256
10.4.1. Vises de Site ................................................................................256
10.4.2. reas ..............................................................................................257
10.4.3. Tipos de Pginas ..........................................................................257
Padres de Interface Web.........................................................................258
10.5.1. ndice em Cascata ........................................................................258
10.5.2. ndice Filtrado..............................................................................259
10.5.3. Tour Guiado .................................................................................260
10.5.4. Pontos de Vista.............................................................................261
Modelagem de Operaes na Interface ..................................................261
Construo de Modelos WebML a Partir de Diagramas de
Sequncia de Sistema ................................................................................265

Captulo 11 Persistncia ........................................................................269


11.1. Equivalncia entre Projeto Orientado a Objetos e Modelo
Relacional ...................................................................................................270
11.1.1. Classes e Atributos.......................................................................270
11.1.2. Associaes de Muitos para Muitos ..........................................271
11.1.3. Associaes de Um para Muitos ................................................272
11.1.4. Associaes de Um para Um .....................................................273
11.1.5. Associaes Ordenadas ..............................................................274
11.1.6. Associaes Representando Multiconjuntos ...........................275
11.1.7. Associaes Qualificadas ............................................................276
11.1.8. Classes de Associao .................................................................278
11.1.9. Associaes Temporrias e Associaes da Controladora .....279
11.1.10. Herana ........................................................................................................280
11.2. Proxy Virtual..............................................................................................282
11.2.1. Estruturas de Dados Virtuais .....................................................284
11.3. Materializao ...........................................................................................285
11.4. Caches .........................................................................................................286
11.5. Commit e Rollback ...................................................................................288
11.6. Controle das Caches em um Servidor Multiusurio ............................288
Captulo 12 Gerao de Cdigo e Testes ...............................................291
12.1. Classes e Atributos ....................................................................................291
12.2. Associaes Unidirecionais .....................................................................292
12.2.1. Associao Unidirecional para Um...........................................293
12.2.2. Associao Unidirecional para Muitos .....................................295

BOOK_Analise.indb 18

29/09/2010 13:03:00

12.2.3. Associao Unidirecional Qualificada ......................................296


12.2.4. Associao Unidirecional com Classe de Associao .............298
12.3. Associao Bidirecional ...........................................................................299
12.3.1. Implementao nas Duas Direes ...........................................300
12.3.2. Implementao Unidirecional ...................................................301
12.3.3. Implementao de um Objeto Associao ...............................303
12.4. Mtodos Delegados e Operaes de Sistema ........................................304
12.5. Testes...........................................................................................................307
12.5.1. Teste de Unidade..........................................................................308
12.5.2. Teste de Integrao ......................................................................309
12.5.3. Teste de Sistema ...........................................................................309
12.5.4. Testes de Aceitao, Operao e Regresso..............................310
Apndice: Sumrio OCL ..........................................................................313
Bibliografia ...............................................................................................319
ndice Remissivo ......................................................................................323

BOOK_Analise.indb 19

29/09/2010 13:03:00

BOOK_Analise.indb 20

29/09/2010 13:03:00

Você também pode gostar