Metodologia de Pesquisa para Ciência da Computação

Capa

Saiba mais e compre na Elsevier

A necessidade de escrever uma monografia está deixando você sob pressão ou em depressão? Sente-se perdido? Não sabe se sua ideia é adequada para uma dissertação ou para publicar um artigo? Buscou ajuda em livros de metodologia científica, mas só encontrou normas técnicas para formatar texto? Preocupa-se em ter conteúdo antes de sair escrevendo? Este livro pode ajudar você!

Raul Sidnei Wazlawick apresenta neste seu segundo livro sua experiência acumulada em mais de 20 anos de orientação, produção científica e avaliação de trabalhos científicos. O livro destina-se especialmente a alunos de cursos na área de ciência da computação em todos os níveis: da graduação ao doutorado. Mas, as ideias aqui apresentadas podem ser úteis também a alunos de outras áreas, já que a computação permeia praticamente todas as atividades humanas.

Com bom humor e muitos casos ilustrativos, o livro mostra ao aluno o que fazer para ter sucesso no trabalho monográfico e também as gafes a serem evitadas.

Este livro condensa mais de 20 anos de experiência na orientação de trabalhos de graduação, especialização, mestrado e doutorado. O livro apresenta o tema “metodologia de pesquisa” de forma agradável, fundamentada e baseando-se sempre em histórias ilustrativas sobre como fazer e também como não fazer um trabalho de conclusão de curso de computação. A ênfase principal do livro está na caracterização do trabalho científico em ciência da computação, visto que a experiência do autor em bancas examinadoras e na avaliação de artigos científicos demonstra a dificuldade que muitos alunos da área têm em compreender e aplicar a metodologia científica em seus trabalhos.

Sumário

  • Capítulo 1 – Introdução
  • Capítulo 2 –  A Computação e a Classificação das Ciências
  • 2.1.   Ciência e suas Classificações
  • 2.2 Ciências Formais e Empíricas
  • 2.3 Ciências Puras e Aplicadas
  • 2.4 Ciências Exatas e Inexatas
  • 2.5 Ciências Hard e Soft
  • 2.6 Ciências Nomotéticas e Idiográficas
  • Capítulo 3 – O Método Científico
  • 3.1 Empirismo
  • 3.2 Positivismo
  • 3.3 Pragmatismo
  • 3.4 Objetividade
  • 3.5 Indução
  • 3.6 Refutação
  • 3.7 Coerentismo
  • 3.8 Lâmina de Occam
  • Capítulo 4 – Métodos de Pesquisa
  • 4.1 Quanto a Natureza
  • 4.2 Quanto aos Objetivos
  • 4.3 Quanto aos Procedimentos Técnicos
  • 4.4 Ciência e Tecnologia
  •  Capítulo 5 – Estilos de  Pesquisa Correntes em  Computação
  • 5.1.   Estilo “Apresentação de um Produto”
  • 5.2.   Estilo “Apresentação de algo Diferente”
  • 5.3.   Estilo “Apresentação de algo Presumivelmente Melhor”
  • 5.4.   Estilo “Apresentação de algo Reconhecidamente Melhor”
  • 5.5.   Estilo: “Apresentação de uma Prova”
  • 5.6.   Discussão
  •  Capítulo 6 – Preparação de um  Trabalho de Pesquisa
  • 6.1.   Escolhendo o Objetivo de Pesquisa
  • 6.1.1.  O Caminho para a Escolha de um Objetivo de Pesquisa
  • 6.1.2.  O Tema
  • 6.1.3.  O Problema de Pesquisa
  • 6.1.4.  Perspectiva Profissional
  • 6.2.   A Revisão  Bibliográfica
  • 6.2.1.  Fichas de Leitura
  • 6.2.2.  Tipos de Fontes Bibliográficas
  • 6.2.3.  O que deve ser Necessariamente Lido
  • 6.2.4.  Leitura Crítica
  • 6.2.5.  Exposição à Pesquisa
  • 6.2.6.  A Ideia de Pesquisa
  • 6.2.7.  Como Sistematizar a Pesquisa Bibliográfica
  • 6.2.8.  Como Terminar a Revisão Bibliográfica
  • 6.3.   O Objetivo
  • 6.3.1.  A Extensão do Objetivo de Pesquisa
  • 6.3.2.  Objetivo de Pesquisa versus Objetivo Técnico
  • 6.3.3.  Os Objetivos Específicos
  • 6.4.   O Método de Pesquisa
  • 6.4.1.  Dados versus Conceitos
  • 6.4.2. Definições Constitutivas e Operacionais
  • 6.4.3.  Variáveis
  • 6.5.  A Hipótese de Pesquisa
  • 6.6.   Justificativa da Hipótese
  • 6.7.   Resultados Esperados
  • 6.8.   Limitações do Trabalho
  • 6.9.   Discussão
  •  Capítulo 7 – Análise Crítica de  Propostas de  Monografia
  • 7.1.   Análise da Contextualização e Colocação do Problema
  • 7.2.   Análise de Objetivo Geral
  • 7.3.   Análise de Objetivos Específicos
  • 7.4.   Análise de Justificativa
  • 7.5.   Análise de Método de Pesquisa
  •  Capítulo 8 – Escrita da  Monografia
  • 8.1.   Como os Capítulos de uma Monografia são Ordenados
  • 8.2.   Como uma Monografia poderá ser Lida pela Banca Examinadora
  • 8.3.   Como uma Monografia poderia ser Escrita
  • 8.4.   O Título
  • 8.5.   O Resumo
  • 8.6.   A Introdução
  • 8.7.   O Capítulo de Revisão Bibliográfica
  • 8.8.   O Capítulo de Desenvolvimento
  • 8.9.   O Capítulo de Conclusões
  • 8.10.  Trabalhos Futuros
  • 8.11. Seção de Bibliografia ou Referências Bibliográficas
  • 8.12. A Forma do Texto Científico
  •  Capítulo 9 – Escrita de  Artigo Científico
  • 9.1.   Autores
  • 9.2.   Motivação para Escrever
  • 9.3.   Trabalhos Correlacionados
  • 9.4.   A Contribuição do Artigo
  • 9.5.   Tipos de Artigos
  • 9.5.1.  Artigo Teórico
  • 9.5.2.  Relato de Experiência
  • 9.5.3.  Artigos sobre Métodos
  • 9.6.   Veículos de Publicação
  • 9.7.   Ética no Envio de Artigos
  • 9.8.   Qualis
  • 9.8.1.  Periódicos
  • 9.8.2.  Conferências
  •  Capítulo 10 – Plágio
  • 10.1.   Antecedentes
  • 10.2.   Proteção aos Direitos Autorais
  • 10.3.   A Lei Brasileira
  • 10.4 Pérolas do Plágio
  •  Capítulo 11 – Níveis  de  Exigência do Trabalho de  Conclusão
  • 11.1.   Graduação
  • 11.2.   Especialização
  • 11.3.   Mestrado e Doutorado
  •  Referências

 

 

Object-Oriented Analysis and Design

capa

Learn more and buy on Elsevier Store

WAZLAWICK, R. S. (2014). Object-Oriented Analysis and Design for Information Systems: Modeling with UML, OCL, and IFML. New York: Morgan-Kaufman.

This book presents, in a deep and didactic way, elements of object oriented analysis and design for information systems.

The area of software development for information systems have been organized during last years around the Unified Modeling Language (UML) and the Unified Process (UP), adopted as international standards by the Object Management Group (OMG). Even agile developing methods nowadays use object oriented development as the leading paradigm.

In contrast to some other books in this area, which are organized around the presentation of the UML diagrams and their many possible uses, this book concentrates on the daily analyst’s and designer’s activities, and explains how the different diagrams can help them.

Although the object oriented culture has more than forty years of existence, there are still companies that find it hard to produce good quality software, especially due to the lack of maintainability and flexibility on the systems they produce. This book presents information and techniques to minimize that deficiency.

The techniques described here were applied with success by the author in many software development companies, as well as in research projects in academy. The last project lead by the author in 2013 involved the production of an information system to integrate more than fifty thousand Brazilian public health centers, in more than five thousand cities with more than a million users.

This book is intended to computing professionals (analysts, designers and programmers), and Computer Science students, both in under graduation or graduation studies with at least some knowledge about object oriented development. Beginners and experienced people developing software with object oriented technology will find guidance presented in this book useful in order to improve design quality. This book was written to help them achieving the best design possible.

 Summary

  • 1       Introduction. 13
  • 1.1        Object Oriented Systems Development. 14
  • 1.2        Unified Modeling Language – UML. 15
  • 1.3        Unified Process – UP. 15
  • 1.4        Analysis and Design Activities in the Context of UP and the Contents of this Book. 17
  • 1.5        The Process So Far. 20
  • 1.6        Questions. 20
  • 2       Business Modeling. 21
  • 2.1        Initial Documentation for a Project. 23
  • 2.2        Business Use Cases. 26
  • 2.2.1         Business Actors and Business Workers. 27
  • 2.2.2         Automation Opportunities. 28
  • 2.3        Business Activity Diagram.. 31
  • 2.3.1         Basic Elements. 31
  • 2.3.2         Control Flow Structures. 33
  • 2.3.3         Simplified Notation. 35
  • 2.4        State Dependant Business Aspects. 37
  • 2.5        Remarks. 42
  • 2.6        The Process So Far. 43
  • 2.7        Questions. 43
  • 3       High Level Requirements. 44
  • 3.1        System Actors. 45
  • 3.2        System Use Cases. 45
  • 3.2.1         Single Session. 47
  • 3.2.2         Interactive. 49
  • 3.2.3         Consistent Result. 49
  • 3.2.4         System Frontier. 51
  • 3.3        How to Find System Use Cases in the Business Model. 51
  • 3.4        Requirements. 55
  • 3.4.1         Requirements Elicitation. 55
  • 3.4.2         Eliciting Requirements is not Design! 57
  • 3.4.3         Requirements Challenges. 58
  • 3.4.4         Evident and Hidden Functional Requirements. 59
  • 3.4.5         Non Functional Requirements. 59
  • 3.4.6         Permanence and Transience of Non Funcional Requirements. 60
  • 3.4.7         Mandatory and Desired Requirements. 61
  • 3.4.8         Supplementary Requirements. 62
  • 3.5        Preliminary Conceptual Model. 66
  • 3.6        The Process So Far. 70
  • 3.7        Questions. 70
  • 4       Use Case Based Project Planning. 71
  • 4.1        Use case point analysis. 71
  • 4.1.1         UAW – Unadjusted Actors Weight72
  • 4.1.2         UUCW – Use Case Complexity. 72
  • 4.1.3         UUCP – Unadjusted Use Case Points. 73
  • 4.1.4         TCF – Technical Factors. 74
  • 4.1.5         EF – Environmental Factors. 81
  • 4.1.6         UCP – Adjusted Use Case Points. 84
  • 4.1.7         Effort85
  • 4.1.8         Linear Time and Average Team Size. 86
  • 4.1.9         Counting Methods for Detailed Use Cases. 87
  • 4.2        Project Planning with Iterative Cycles. 88
  • 4.2.1         Time Estimation for Iterative Cycles. 88
  • 4.2.2         Number of Iterative Cycles. 89
  • 4.2.3         Effort per Use Case Point89
  • 4.2.4         Team Capacity per Cycle. 90
  • 4.2.5         Use Cases Priorities. 90
  • 4.2.6         Deliveries Planning. 91
  • 4.3        The Process So Far. 92
  • 4.4        Questions. 93
  • 5       Detailed Use Cases. 94
  • 5.1        Main Flow.. 94
  • 5.2        Alternate Flows. 96
  • 5.2.1         Scenarios. 96
  • 5.2.2         Variants. 97
  • 5.2.3         Exception Handling. 98
  • 5.3        Writing Recommendations. 101
  • 5.3.1         Essential versus Real Use Case. 103
  • 5.3.2         Explicit Information. 104
  • 5.3.3         Identification and Selection. 104
  • 5.3.4         Mandatory Steps. 104
  • 5.3.5         Complementary Steps. 108
  • 5.3.6         Unsuitable Steps. 109
  • 5.4        Included Use Cases. 110
  • 5.5        Expansion of Predefined Use Cases. 111
  • 5.5.1         Report Expanded. 111
  • 5.5.2         CRUD Expanded. 112
  • 5.6        Other Sections of an Expanded Use Case. 116
  • 5.6.1         Stakeholders. 116
  • 5.6.2         Preconditions. 116
  • 5.6.3         Success Post Conditions. 117
  • 5.6.4         Open Issues. 117
  • 5.7        System Sequence Diagrams. 117
  • 5.7.1         Elements of a Sequence Diagram.. 118
  • 5.7.2         Expanded Use Cases as System Sequence Diagrams. 120
  • 5.7.3         Connecting the Interface to the Façade-Controller. 122
  • 5.7.4         Statefull and Stateless Strategies. 126
  • 5.7.5         Alternate Flows in System Sequence Diagrams. 128
  • 5.8        The Process So Far. 131
  • 5.9        Questions. 131
  • 6       Conceptual Modeling – Fundamentals. 132
  • 6.1        Attributes. 134
  • 6.1.1         Attribute Types. 135
  • 6.1.2         Initial Values. 135
  • 6.1.3         Derived Attributes. 136
  • 6.1.4         Enumerations. 137
  • 6.1.5         Primitive Types. 138
  • 6.2        Concepts. 139
  • 6.2.1         Identifiers. 139
  • 6.2.2         System Control Class. 140
  • 6.3        Associations. 141
  • 6.3.1         Role Multiplicity. 143
  • 6.3.2         Association Direction. 144
  • 6.3.3         Derived Association. 145
  • 6.3.4         Aggregation and Composition. 147
  • 6.3.5         N-ary Associations. 148
  • 6.4        Collections. 150
  • 6.4.1         Set151
  • 6.4.2         Ordered Set. 151
  • 6.4.3         Bag. 152
  • 6.4.4         Sequence. 152
  • 6.4.5         Map. 153
  • 6.4.6         Partition. 154
  • 6.4.7         Relation. 155
  • 6.5        Organization of the Conceptual Model. 155
  • 6.5.1         Generalization, Specialization and Inheritance. 156
  • 6.5.2         Association Classes. 159
  • 6.5.3         Modal Classes. 164
  • 6.6        Invariants. 169
  • 6.7        Iterative Construction of the Conceptual Model. 171
  • 6.7.1         How to Find Concepts and Attributes. 172
  • 6.7.2         Dependent and Independent Concepts. 175
  • 6.7.3         How to Find Associations. 177
  • 6.7.4         Example of Iterative Construction of the Conceptual Model. 178
  • 6.8        Answer. 181
  • 6.9        The Process So Far. 181
  • 6.10     Questions. 182
  • 7       Conceptual Modeling – Patterns. 183
  • 7.1        High Cohesion. 183
  • 7.2        Specification Classes. 186
  • 7.3        Quantity. 187
  • 7.4        Measure. 188
  • 7.5        Strategy. 189
  • 7.6        Composite. 191
  • 7.7        Organizational Hierarchy. 191
  • 7.8        Objects Joining. 192
  • 7.8.1         Copy and Replace. 192
  • 7.8.2         Superseding. 193
  • 7.8.3         Essence/Appearance. 194
  • 7.8.4         Undoing Joining. 194
  • 7.9        Account/Transaction. 195
  • 7.10     History Association. 201
  • 7.11     Interval. 203
  • 7.12     Discussion. 204
  • 7.13     The Process So Far. 204
  • 7.14     Questions. 205
  • 8       Functional Modeling with OCL Contracts. 206
  • 8.1        Preconditions. 207
  • 8.1.1         Parameter Guarantee. 209
  • 8.1.2         Complementary Constraints. 210
  • 8.1.3         Preconditions Assurance. 210
  • 8.1.4         Precondition versus Invariant. 211
  • 8.2        Temporary Associations. 211
  • 8.3        Query Return. 212
  • 8.4        Post conditions. 213
  • 8.4.1         Changing an Attribute Value. 215
  • 8.4.2         Creating an Instance. 216
  • 8.4.3         Adding a Link. 218
  • 8.4.4         Destroying an Instance. 219
  • 8.4.5         Removing a Link. 220
  • 8.4.6         Well Formed Post conditions. 220
  • 8.4.7         Combinations of Post conditions. 221
  • 8.4.8         Former Values. 222
  • 8.4.9         Post conditions over Collections of Objects. 223
  • 8.4.10      Post conditions and Real World Events. 223
  • 8.5        Exceptions. 224
  • 8.6        Pattern Contracts for CRUD. 225
  • 8.6.1         Create Contract. 226
  • 8.6.2         Update Contract. 226
  • 8.6.3         Delete Contract. 227
  • 8.6.4         Retrieve Contract. 229
  • 8.7        Pattern Contracts for Listing. 229
  • 8.8        Pattern Contracts Related to Use Cases. 230
  • 8.8.1         Contracts for the Stateless Strategy. 230
  • 8.8.2         Contracts for the Statefull Strategy. 235
  • 8.9        The Process So Far. 237
  • 8.10     Questions. 238
  • 9       Domain Tier Design. 239
  • 9.1        Responsibility Distribution and Basic Operations. 240
  • 9.2        Visibility. 243
  • 9.2.1         Visibility by Association. 243
  • 9.2.2         Visibility by Parameter. 251
  • 9.2.3         Locally Declared Visibility. 254
  • 9.2.4         Global Visibility. 256
  • 9.3        Dynamic Modeling for Post Conditions. 256
  • 9.3.1         Instance Creation. 257
  • 9.3.2         Link Adding. 260
  • 9.3.3         Attribute Value Modification. 261
  • 9.3.4         Instance Destruction. 262
  • 9.3.5         Link Removing. 263
  • 9.3.6         Conditional Post Conditions and Exceptions. 264
  • 9.3.7         Post Conditions over Collections. 266
  • 9.4        System Queries. 268
  • 9.5        Delegation and Low Coupling. 270
  • 9.6        Design Class Diagram.. 277
  • 9.7        The Process so Far. 280
  • 9.8        Questions. 281
  • 10         Code Generation. 282
  • 10.1     Classes and Attributes. 282
  • 10.2     Unidirectional Associations. 283
  • 10.2.1      Unidirectional Association to One. 285
  • 10.2.2      Unidirectional Association to Many. 286
  • 10.2.3      Unidirectional Qualified Association. 287
  • 10.2.4      Unidirectional Association with Association Class. 290
  • 10.3     Bidirectional Associations. 291
  • 10.3.1      Mutual Friends. 292
  • 10.3.2      Unidirectional Implementation. 293
  • 10.3.3      Implementation with an Intermediary Object295
  • 10.4     Delegated Methods and System Operations. 295
  • 10.5     Patterns for Filtered Queries. 299
  • 10.6     The Process So Far. 302
  • 10.7     Questions. 303
  • 11         Test. 304
  • 11.1     Functional Test. 305
  • 11.2     Unit Test. 306
  • 11.3     System Operations Test (Integration). 308
  • 11.4     Use Case Test (System Test). 311
  • 11.5     Acceptance Test. 313
  • 11.6     Business Cycle Test. 313
  • 11.7     Regression Test. 314
  • 11.8     The Process So Far. 314
  • 11.9     Questions. 315
  • 12         Interface Tier Design. 316
  • 12.1     WebML. 316
  • 12.2     Units. 317
  • 12.2.1      Data Units. 318
  • 12.2.2      Multidata Units. 320
  • 12.2.3      Index Units. 321
  • 12.2.4      Scroller Units. 327
  • 12.2.5      Entry Units. 327
  • 12.3     Pages. 329
  • 12.4     Links. 330
  • 12.4.1      Link Types. 330
  • 12.4.2      Link Parameters. 331
  • 12.4.3      Multiple Link Parameters. 333
  • 12.4.4      Transport Links. 334
  • 12.4.5      Automatic Links. 335
  • 12.5     Hypertext Organization. 335
  • 12.5.1      Site Views. 335
  • 12.5.2      Areas. 336
  • 12.5.3      Page Kinds. 336
  • 12.6     Web Interface Patterns. 337
  • 12.6.1      Cascade Index. 337
  • 12.6.2      Filtered Index. 338
  • 12.6.3      Guided Tour. 339
  • 12.6.4      Viewpoints. 339
  • 12.7     Modeling Operations in the Interface. 340
  • 12.7.1      Create Unit. 341
  • 12.7.2      Delete Unit. 343
  • 12.7.3      Modify Unit. 344
  • 12.7.4      Connect and Disconnect Units. 345
  • 12.8     WebML Models for CRUD. 346
  • 12.9     The Process So Far. 350
  • 12.10        Questions. 351
  • 13         Data Persistency. 353
  • 13.1     Object-Relational Equivalence. 353
  • 13.1.1      Classes and Attributes. 353
  • 13.1.2      Many-to-Many Associations. 354
  • 13.1.3      One-to-many Associations. 355
  • 13.1.4      One-to-one Associations. 356
  • 13.1.5      Ordered Associations. 357
  • 13.1.6      Associations Representing Bags. 359
  • 13.1.7      Qualified Associations. 359
  • 13.1.8      Association Classes. 361
  • 13.1.9      N-ary Associations. 361
  • 13.1.10         Temporary and Façade Controller Class Associations. 362
  • 13.1.11         Inheritance. 363
  • 13.2     Virtual Proxy. 365
  • 13.3     Virtual Data Structures. 367
  • 13.4     Materialization. 368
  • 13.5     Caches. 369
  • 13.6     Commit and Rollback. 370
  • 13.7     Caches Control in a Multiuser Server. 370
  • 13.8     The Process So Far. 371
  • 13.9     Questions. 372
  • 14         Appendix: Quick OCL Guide. 373
  • 15         References. 377

Atuação

Supervisor geral do projeto e-SUS.

  • http://dab.saude.gov.br/portaldab/esus.php

Professor do Programa de Pós-Graduação em Ciência da Computação.

  • Modelagem de Sistemas Orientados a Objetos.

Professor do Bacharelado em Ciência da Computação.

  • Engenharia de Software II.
  • Informática e Sociedade.

Membro do Comitê Assessor do INEP para o ENAD, Área de Sistemas de Informação.