Académique Documents
Professionnel Documents
Culture Documents
Ijuí, RS – Campus Ijuí
DETEC – Departamento de Tecnologia
Curso de Java
Módulo Básico
Introdução à OO
Introdução à UML
Introdução à JAVA
Eleonor Vinicius Dudel Mayer
Agosto de 2006
1
Sumário
1.Introdução à Orientação a Objetos....................................................................................................5
1.1.Objetos........................................................................................................................................6
1.2.Classe.........................................................................................................................................6
1.3.Polimorfismo..............................................................................................................................6
1.4.Herança......................................................................................................................................7
1.5.Métodos orientados a objetos.....................................................................................................7
2.Introdução à UML.............................................................................................................................9
2.1.Origem e evolução da UML.......................................................................................................9
2.2.Diagramas na UML...................................................................................................................9
2.2.1.Diagrama de Caso de Uso.................................................................................................10
2.2.2.Diagrama de Interação.....................................................................................................10
2.2.3.Diagrama de Seqüência....................................................................................................10
2.2.4.Diagrama de Colaboração................................................................................................11
2.2.5.Diagrama de Gráfico de Estados......................................................................................11
2.2.6.Diagrama de Atividades...................................................................................................12
2.2.7.Diagrama de Classes.........................................................................................................12
2.2.8.Diagrama de Componentes..............................................................................................13
2.2.9.Diagrama de Objetos........................................................................................................13
2.2.10.Diagrama de Implantação...............................................................................................14
2.3.Como os diagramas se relacionam na UML............................................................................14
2.4.Elementos da UML..................................................................................................................15
2.5.Blocos de construção da UML.................................................................................................15
2.5.1.Itens...................................................................................................................................15
2.6.Itens Estáticos...........................................................................................................................16
2.6.1.Classe................................................................................................................................16
2.6.2.Colaboração......................................................................................................................16
2.6.3.Caso de Uso......................................................................................................................17
2.6.4.Componente......................................................................................................................17
2.7.Itens Dinâmicos........................................................................................................................17
2.7.1.Iteração..............................................................................................................................17
2.7.2.Máquina de Estados..........................................................................................................18
2.8.Pacotes......................................................................................................................................18
2.9.Notas........................................................................................................................................19
2.10.Relacionamentos.....................................................................................................................19
2.10.1.Associação......................................................................................................................20
2.10.1.1.Multiplicidade de associação........................................................................................20
2.10.2.Agregação e Composição...............................................................................................20
2.10.3.Generalização..................................................................................................................21
2.10.4.Especialização.................................................................................................................21
2.10.5.Realização.......................................................................................................................22
2.11.Propósitos da UML.................................................................................................................23
2.12.O que não é UML...................................................................................................................23
2
2.13.Onde pode ser utilizada a UML.............................................................................................23
2.14.Diferenças entre as versões da UML......................................................................................24
2.14.1.Versão 1.0 para 1.1..........................................................................................................24
2.14.2.Versão 1.1/1.2 para 1.3....................................................................................................24
3.Modelagem utilizando a UML........................................................................................................26
3.1.Modelagem da arquitetura de sistemas.....................................................................................26
3.2.A importância da modelagem..................................................................................................27
3.2.1.Construindo modelos........................................................................................................28
3.2.2.Modelagem orientada a objetos.......................................................................................28
4.Introdução à JAVA...........................................................................................................................29
4.1.Kit de Desenvolvimento JAVA.................................................................................................29
4.1.1.Plataforma JAVA...............................................................................................................29
4.1.2.Java Virtual Machine (JVM)............................................................................................29
4.1.3.Java 2 JDK........................................................................................................................29
4.1.4.Compilador javac..............................................................................................................29
4.1.5.Interpretador java..............................................................................................................29
4.1.6.Interpretador jre................................................................................................................29
4.1.7.Gerador de documentação javadoc...................................................................................29
4.1.8.Java Archieve Tool............................................................................................................29
4.2.Sintaxe.....................................................................................................................................29
4.2.1.Nomes de identificadores.................................................................................................29
4.2.2.Palavras reservadas..........................................................................................................30
4.2.3.Operadores da linguagem JAVA.......................................................................................30
4.2.3.1.Precedência de operadores........................................................................................30
4.2.4.Tipos Primitivos...............................................................................................................30
4.2.5.Java e C++........................................................................................................................30
4.3.JAVA Básico.............................................................................................................................30
4.3.1.Comandos.........................................................................................................................30
4.3.1.1.Declaração de variáveis.............................................................................................30
4.3.1.2.Condicionais.............................................................................................................30
4.3.1.3.Laços.........................................................................................................................30
4.3.1.4.Comandos especiais..................................................................................................30
4.3.2.Comentários.....................................................................................................................30
4.3.3.Modificadores...................................................................................................................31
4.3.4.Declaração de classes, métodos e variáveis......................................................................31
4.3.4.1.Classes.......................................................................................................................31
4.3.4.2.Subclasses.................................................................................................................31
4.3.4.3.Interfaces...................................................................................................................31
4.3.5.Instanciação de objetos.....................................................................................................31
4.3.5.1.super e this................................................................................................................31
4.3.6.Conversões........................................................................................................................31
4.3.6.1.Tipos Primitivos........................................................................................................31
4.3.6.2.Objetos......................................................................................................................31
4.3.6.3.Interfaces...................................................................................................................31
4.3.7.Arrays................................................................................................................................31
4.3.8.Aplicação JAVA................................................................................................................31
4.3.8.1.Parâmetros de entrada...............................................................................................32
3
4.3.9.Exceções...........................................................................................................................32
4.3.10.Threads...........................................................................................................................32
4.3.10.1.Criação de threads...................................................................................................32
4.3.10.2.Métodos de tread.....................................................................................................32
4.3.10.3.Monitores................................................................................................................32
4.3.10.4.Uso de wait() e notify()...........................................................................................32
4.3.11.JDBC...............................................................................................................................32
4.3.11.1.Arquitetura JDBC....................................................................................................32
4.3.11.2.Instalação de um driver JDBC................................................................................32
4.3.11.3.Exemplo com a ponte JDBCODBC.......................................................................32
4.3.11.4.Classes do package java.sql.....................................................................................32
4.3.11.5.Tabela de conversão JAVASQL..............................................................................32
4.3.12.RMI – Remote Method Invocation.................................................................................33
4.3.12.1.Arquitetura RMI......................................................................................................33
4.3.12.2.Interface com métodos de acesso remoto...............................................................33
4.3.12.3.Servidor de métodos...............................................................................................33
4.3.12.4.Cliente.....................................................................................................................33
4.3.12.5.Etapas de compilação.............................................................................................33
4.3.12.6.Inicio do serviço.....................................................................................................33
4
1. Introdução à Orientação a Objetos
A orientação a objetos surgiu como uma nova forma de modelar e construir sistemas de software,
isto é, organizar e gerir conhecimentos manipulados e registrados dentro de uma empresa. No
desenvolvimento de um sistema orientado a objetos, dados e processos são organizados e
manipulados por objetos, e não por programas.
Vantagens:
● Reutilização dos objetos: Os dados e os processos são manipulados por objetos, não
ficando engessados dentro de programas, isto é, os objetos construídos podem ser
utilizados por diferentes sistemas;
● Modularidade: O sistema é formado por objetos e não por programas, facilitando o
trabalho e a manipulação desses objetos no futuro;
● Utilizase dos mesmo conceitos da realidade na construção de sistemas de software.
A orientação a objetos baseiase em conceitos da realidade – objetos, estado e estímulos – para
modelagem e construção de sistema de software. Dessa forma, o uso da orientação a objetos se
torna mais natural, pois os conceitos utilizados são os mesmos que já conhecemos, só que aplicados
nesses casos ao desenvolvimentos de sistemas.
5
Exemplo de objeto, estado e estímulo
1.1.Objetos
Pode ser qualquer coisa na natureza que possua características e comportamentos.
Objetos:
● Uma pessoa;
● Um veículo;
● Uma região;
1.2.Classe
É uma abstração de um conjunto de objetos que possuem os mesmo tipos de características e
comportamentos.
Classe Veículo:
● Carro de Passeio;
● Carro Esportivo;
● Carro Rural;
1.3.Polimorfismo
Polimorfismo (do grego “muitas formas”) referese aos processos que vários objetos podem
6
executar, dado apenas a solicitação de uma única operação. No ambiente polimórfico, todos os
objetos contem uma mesma operação, que é implementada por métodos particulares a cada objeto.
Polimorfismo
1.4.Herança
É o comportamento pelas classes especializadas (subclasses) dos atributos e operações de classes
mais gerais (superclasse).
Herança
1.5.Métodos orientados a objetos
Nos últimos tempos houve uma grande evolução na engenharia de software, que passou a contar
com técnicas, como a análise, o projetos estruturado e a Engenharia da Informação. Os métodos
7
orientados a objetos surgiram na década de setenta (70), procurando melhorar estas técnicas.
A seguir são apresentados resumidamente alguns métodos que surgiram para a orientação a objetos.
Método Descrição
Booch Consiste em técnicas do desenho orientado a objetos. Esse método utilizase
do desenho de objetos, que servem como base para a criação dos módulos
do sistema. Esse método foi criado por Grandy Booch.
OMT O método OMT (Object Modeling Technique) consiste na modelagem
semântica de dados, suportando os conceitos de:
Modelagem de dados (atributos e relacionamentos);
Objetos (composição e agregação);
Herança;
Esse método foi criado por James Rumbaugh.
OOSE O método OOSE (Object Oriented Software Engineering), consiste na
análise dos requerimentos de um sistema utilizando casos de uso, criando
categorias para pessoas e equipamentos com que esses casos interagem. Esse
método foi criado por Ivar Jacobson.
Coad/Yourdon Peter Coad e Ed Yourdon dividiram a análise orientada a objetos em classes
e objetos. Dentro desse contexto, os objetos são relacionados por meio dos
conceitos de agregação, generalização/especialização, associação, conexões
e mensagens.
8
2. Introdução à UML
A Unified Modeling Language (UML) é o resultado da unificação dos métodos Booch, OMT e
OOSE, que dá origem a uma linguagem padronizada para a modelagem de sistema de software
orientados a objetos, sendo adotada pela indústria de software como linguagempadrão, e também
por fornecedores de ferramentas CASE.
2.1.Origem e evolução da UML
Os trabalhos para criação da UML iniciaramse em mil novecentos e noventa e quatro (1994) com
Grandy Booch (Método Booch) e James Rumbaugh (Método OMT), que combinaram seus dois
métodos mais populares.
2.2.Diagramas na UML
Diagrama é a representação gráfica de um conjunto de elementos do sistema. A UML disponibiliza
nove diagramas que permitem representar diferentes partes do modelo de um sistema.
9
2.2.1.Diagrama de Caso de Uso
O diagrama de casos de uso representa um conjunto de atores, casos de uso e os relacionamentos
entre eles.
Diagrama de Casos de Uso
2.2.2.Diagrama de Interação
Os diagramas de interação representam colaborações entre objetos, para realizarem algum tipo de
comportamento para um sistema. Os diagramas de interação são representados por:
● Diagrama de Seqüência;
● Diagrama de Colaboração;
2.2.3.Diagrama de Seqüência
O diagrama de seqüência dá ênfase à ordenação temporal em que as mensagens são trocadas entre
os objetos de um sistema. Podemos entender por mensagens, os serviços solicitados por um objeto a
outro, e as respostas devolvidas a essas solicitações.
10
Diagrama de Sequencia
2.2.4.Diagrama de Colaboração
O diagrama de colaboração dá ênfase à ordenação estrutural em que as mensagens são trocadas
entre os objetos de um sistema.
Diagrama de Colaboração
2.2.5.Diagrama de Gráfico de Estados
O diagrama de gráfico de estados representa os estados possíveis de um objeto em particular. São
11
exibidos os estados de um objeto, eventos, transições e atividades. Pode ser usado principalmente
para a modelagem de estados de classes e colaborações.
Diagrama de Gráfico de Estados
2.2.6.Diagrama de Atividades
O diagrama de atividades representa a modelagem do fluxo de controle de uma atividade para uma
outra no sistema. São exibidos os estados das atividades e ações, transições e objetos.
Diagrama de Atividades
2.2.7.Diagrama de Classes
12
geralmente na maioria dos sistemas orientados a objetos. São exibidos classes e seus respectivos
relacionamentos.
Diagrama de Classes
2.2.8.Diagrama de Componentes
Diagrama de Componentes
2.2.9.Diagrama de Objetos
O diagrama de objetos representa as instâncias das classes de um sistema, em determinado ponto no
tempo.
13
Diagrama de Objetos
2.2.10.Diagrama de Implantação
O diagrama de implantação representa a configuração e a arquitetura de um sistema em que estarão
ligados os respectivos componentes, podendo ser representado também a arquitetura física de
hardwares, processadores, entre outros. Com o diagrama de componentes, representa os aspectos
físicos de um sistema.
Diagrama de Implantação
2.3.Como os diagramas se relacionam na UML
Os diagramas da UML representam diferentes partes do modelo de um sistema. No quadro a seguir
é demonstrado como os diagramas se relacionam, formando toda a modelagem orientada a objetos.
14
Relacionamento entre diagramas da UML
2.4.Elementos da UML
Os elementos da UML são as simbologias e notações que utilizaremos para construir os modelos
orientados a objetos. Nesse caso, os elementos principais são os blocos de construção.
2.5.Blocos de construção da UML
2.5.1.Itens
Os itens são os blocos de construção da modelagem orientada a objetos. Existem quatro tipos de
itens na UML. São eles:
Tipo Descrição
Itens Estáticos Representam a estrutura do modelo, elementos conceituais e físicos
15
Tipo Descrição
(classes, colaborações, casos de uso, entre outros).
Itens Dinâmicos Definem o comportamento do modelo (interações e estado dos
objetos).
Pacotes São as partes organizacionais da UML.
Notas São as partes explicativas do modelo na UML (comentários e
observações de esclarecimentos no modelo).
2.6.Itens Estáticos
Os itens estáticos representam o esqueleto e a estrutura estável de um sistema.
2.6.1.Classe
Classe
2.6.2.Colaboração
Uma colaboração é o nome dado à interação entre duas ou mais classes, com o objetivo de fornecer
algum comportamento cooperativo. Ocorrem por meio da troca de mensagens entre dois ou mais
objetos.
16
2.6.3.Caso de Uso
Um caso de uso é um documentos que descreve os cenários pretendidos para um sistema, com o
objetivo de atender às necessidades do usuário. É representado graficamente como no exemplo a
seguir:
Caso de uso
2.6.4.Componente
Um componente é a parte física de um sistema. Existem diferentes tipos de componentes, como os
componentes COM+ e Java Beans.
Componente
2.7.Itens Dinâmicos
Os itens dinâmicos representam as partes de um sistema que possam ter alguma alteração. Existem
dois tipo principais de itens dinâmicos. São eles:
● Iteração;
● Máquina de estados;
2.7.1.Iteração
Representa a realização dos processos de um sistema, por meio da troca de mensagens entre os
objetos. Pode envolver mensagens, seqüências de ações e conexões entre os objetos. Uma interação
é representada por uma flecha cheia, como no exemplo seguir:
17
Mensagem
2.7.2.Máquina de Estados
Estados
2.8.Pacotes
Os pacotes organizam os modelos criados na UML. Todos os blocos de construção criados no UML
(casos de uso, classes, componentes, e demais), bem como os diagramas que tratam desses blocos,
podem ser organizados em pacotes. Devese fazer essa organização observando a semelhança de
cada bloco e diagrama da UML, no que diz respeito à solução do problema que cada um está
empregando.
18
Pacotes
2.9.Notas
Nota
2.10.Relacionamentos
Os relacionamentos reúnem os itens criados na UML. Existem seis tipo de relacionamentos. São
eles:
● Associação;
● Agregação e composição;
● Generalização;
19
● Especialização;
● Realização;
2.10.1.Associação
Uma associação descreve relacionamentos entre objetos. Cada associação tem duas pontas, onde em
cada ponta está ligado um objeto. Por exemplo, poderíamos ter um relacionamento de associação
entre o objeto Cliente na primeira ponta, e o objeto AnaliseCredito na outra ponta.
Associação
2.10.1.1.Multiplicidade de associação
É a indicação de quantos objetos podem participar de dado relacionamento. No exemplo anterior,
podese dizer que o objeto NotaFiscal pode ter um ou mais objetos Produtos, enquanto esse objeto
pode ter zero ou mais objetos NotaFiscal. Na UML temos basicamente os seguintes tipos de
multiplicidade:
● 0 (zero);
● 1 (um);
● 0..1 (zero ou um);
● 0..* (zero ou mais);
● 1..* (um ou mais);
● * (muitos);
2.10.2.Agregação e Composição
A agregação é um tipo de associação na qual o todo é relacionado com suas partes (um objetos todo
contem os objetospartes – relacionamento todo/parte). É representada como um linha de associação
20
com um diamante junto à classe agregadora.
Agregação
A composição é um tipo de relacionamento muito semelhante à agregação. Em uma composição, o
objetoparte pode pertencer somente ao objetotodo. Além disso, geralmente o objetotodo vive e
morre com suas partes, isto é, acontece uma remoção em cascata. É representada como uma linha
de associação com um diamante preto, junto à classe agregadora.
Composição
2.10.3.Generalização
Generalização é a capacidade de se criar supertipos que encapsulam a estrutura e o comportamento
comum a vários subtipos. Os procedimentos pode se obter a generalização são:
● Identificar similaridades de estrutura/comportamento entre várias classes;
● Criar o supertipo para encapsular a estrutura e o comportamento comum a mais de uma
classe;
● Os objetos originais passam a ser subtipos de novo supertipo criado;
2.10.4.Especialização
A especialização é a capacidade de se criar subtipos que representam refinamentos nos quais a
21
estrutura e/ou comportamento do supertipo são adicionais ou modificados. Os procedimentos para
obter a especialização são:
● Perceber que algumas classes apresentam estrutura e/ou comportamento especializado;
● Criar subtipos de acordo com sua especialização;
Generalização / Especialização
2.10.5.Realização
22
Realização
2.11.Propósitos da UML
Propósito Descrição
Documentar Artefatos como requisições de negócio, modelo de arquitetura, código
fonte, modelo de análise, protótipo e outros documentos que servem de
informação sobre o sistema, podem ser documentados com a UML
Visualizar No processo de desenvolvimento de sistemas de software, é quase
impossível a visualização de toda a estrutura de um software sem o uso de
modelos que a represente. Dessa forma, a UML disponibiliza símbolos
gráficos para a representação de artefatos de software.
Especificar A UML é uma linguagem que atente a todos os requisitos de
especificação dentro de um processo, desde a fase de análise até a fase de
teste e implementação do sistema construído.
Construir Na UML é possível realizar um mapeamento dos modelos gerados, para
linguagens de programação e até mesmo para banco de dados relacionais
ou orientados a objetos.
2.12.O que não é UML
A UML não é uma linguagem de programação visual, e sim uma linguagem para modelagem visual.
Apesar de oferecer suporte a diversas linguagens de programação, a UML é uma linguagem para
construção de artefatos de software que servem para a tomada de decisão quanto à definição de
arquitetura, implementação, entre outros.
A UML não é um processo de desenvolvimento, mas pode e dever ser aplicado a um. A UML, como
uma linguagem de modelagem, pode e deve ser aplicada a um processo de desenvolvimento de
software, assim como outros linguagens utilizadas para a construção de artefatos de software. Em
um contexto de processos, a UML se propõe a tratar, em diversos domínios, diferentes problemas e
em diferentes organizações.
2.13.Onde pode ser utilizada a UML
23
A UML pode ser aplicada a qualquer tipo de sistemas de software. Por ser uma linguagem muito
abrangente, ela pode ser usada também para modelar processos de trabalhos, projetos de hardware,
entre outros.
2.14.Diferenças entre as versões da UML
A UML desde seu nascimento vem passando por mudanças em seu conteúdo. Como conseqüência
dessas mudanças foram criadas versões mais maduras e completas. A seguir são descritas algumas
mudanças (as mais importantes) que ocorreram durante as versões lançadas da UML.
2.14.1.Versão 1.0 para 1.1
As mudanças mais significativas nessa versão dizem respeito aos diagramas de classes e diagramas
de seqüência. Na versão 1.1 as classes pode ser especializadas como tipos ou como classes de
implementação.
2.14.2.Versão 1.1/1.2 para 1.3
As mudanças realizadas da versão 1.1 para a versão 1.2, foram modificações sutis. Somente na
versão 1.3 foram feitas mudanças realmente significativas.
● Relacionamentos entre casos de uso: Na versão 1.1 da UML havia dois tipos de
relacionamentos entre casos de uso: relacionamentos do tipo <<uses>> e <<extends>>.
Já na versão 1.3 foram disponibilizados três tipos de relacionamentos:
Include: No relacionamento do tipo <<include>> (subtituíndo então
<<uses>>) as atividades em comum compartilhadas por alguns casos de uso
24
são incluídas em um outro caso de uso público. Por exemplo, em um sistema
de análise de crédito pode ser que tanto o processo de aprovação de crédito
quanto o processo de reprovação utilizem as atividades de validar a alçada do
analista de crédito;
Extends: No relacionamento do tipo <<extends>> as atividades de um caso
de uso não são obrigatórias são estendidas em um outro caso de uso. Isso
significa que um comportamento de caso de uso pode ser desviado apenas em
situações predefinidas no caso de uso estendido. Por exemplo, em um
processo de análise de crédito, o crédito dos clientes pode ser aprovado
automaticamente, sem que tenha de passar por todas as etapas de análise, caso
sua renda seja cinco vezes o valor total do financiamento. Esse
comportamento de aprovação automática pode mudar todo o comportamento
do sistema caso sua condição seja verdadeira;
Generalização: No relacionamento de generalização o comportamento
comum a mais de um caso de uso em um mesmo domínio é capturado em um
supertipo (generalizado). Sendo assim, esses casos de uso agora considerados
subtipos (especializados) herdam desse supertipo criando o comportamento
comum a eles mesmo;
● Diagrama de Atividade: Para comportamento condicional, você pode agora usar a
atividade de decisão (em forma de losango), para a intercalação ou ramificação de
comportamentos. A barra de sincronização é agora referida como separação ou junção.
Mas você não poderá mais acrescentar condições arbitrárias às junções. Devese, então,
seguir regras de combinação para assegurarse de que separação e junção combinam. O
acionamento duplo não é mais utilizado. Agora você pode utilizar a concorrência
dinâmica em um atividade, usandose o asterisco (*);
25
3. Modelagem utilizando a UML
Esclareceremos agora como é dividida a modelagem de um sistema orientado a objetos e o uso da
UML neste contexto.
3.1.Modelagem da arquitetura de sistemas
A arquitetura de um sistema representa um conjunto dos artefatos e elementos que formarão o
sistema. A arquitetura deve abranger como este será construído, seus elementos estruturais e
comportamentais, suas colaborações, entre outras.
Construir sistemas de software é uma tarefa que requer a visualização da arquitetura desses sistemas
sob várias perspectivas e em diferentes níveis de detalhamento. Todos os envolvidos na construção
de sistemas – gerentes, analistas, programadores, usuários finais – necessitam visualizar a
arquitetura de um sistema sob perspectivas diferentes, pois a necessidade de entendimento de cada
participante neste processo influenciará seu trabalho futuramente quando o sistema estiver pronto.
Portanto, a arquitetura de um sistema deve ser visualizada por meio de cinco visões:
Divisão da arquitetura de um sistema
Visão Descrição
Caso de Uso Essa visão focaliza os comportamentos de um sistema. A visão deve ser
transparente para todos os envolvidos na construção do sistema –
gerentes, analistas, programados, usuários finais.
Diagramas utilizados: Diagrama de casos de uso, interação, atividade e
de gráficos de estados.
Projeto Essa visão focaliza a estrutura (esqueleto) de um sistema. A visão sob
essa perspectiva demonstra as classes, colaborações e as interfaces de um
26
Visão Descrição
sistema em construção.
Diagramas utilizados: Diagramas de classes, de objetos, interação,
atividades e de gráfico de estados.
Processos Essa visão focaliza as questões de desempenho, escalabilidade,
mecanismos de concorrência e de sincronização.
Diagramas utilizados: os mesmos diagramas da visão de projeto.
Implementação Essa visão focaliza os artefatos físicos para a efetiva montagem do
sistema. São abordados componentes e outros arquivos que servem para a
montagem do sistema.
Diagramas utilizados: Diagrama de componentes, de interação, de
atividade e de gráfico de estados.
Implantação Essa visão focaliza os nós que formam a topologia de hardware em que o
sistema será executado.
Diagramas utilizados: Diagrama de implantação, de interação, de
atividade e de gráfico de estados.
3.2.A importância da modelagem
Vamos imaginar um possível situação. Você trabalha para uma grande rede de lojas de
departamentos, onde são comercializados diversos produtos como eletrônicos, eletrodomésticos,
informática e outros. Esta rede automatizará toda a sua área de concessão de crédito, e você foi
designado a conduzir todo o processo de construção de um sistema que atenda as necessidades de
negócios da empresa. Esse sistema será encarregado de realizar toda a análise de crédito dos
clientes dessas lojas, seguindo uma rigorosa política de crédito estabelecida pela diretoria.
Esse sistema deve fornecer informações sobre o crédito do cliente, por meio de Órgãos de Proteção
ao Crédito, realizar análises pelo CreditScore, conferir as informações pessoais prestadas pelo
cliente, enfim, verificar o enquadramento do perfil desse cliente junto às políticas de concessão de
crédito da empresa.
A menos que já tenha feito diversos sistemas com as mesmas requisições de negócios, você
certamente precisará fazer um planejamento antes de começar a fazer a primeira linha de
programação.
Nesses caso, você deverá estimar o tempo necessário para que esse sistema seja desenvolvido, bem
como qual será o curso do seu desenvolvimento. Será preciso estimar também quais serão os
recursos humanos envolvidos nesse processo, bem como o custo de cada recurso, suas
responsabilidades, entre outras atividades.
27
Dessa forma, para que tudo saia conforme suas estimativas (ou o mais próximo disso) você com
certeza necessitará de todos os modelos e esboços desse projeto que demonstrem a complexidade do
processo e os riscos possíveis. Além disso, você desejará manter todo o processo documentado, pois
em manutenções futuras desses sistema e, caso os desenvolvedores iniciais não estejam mais
presentes, você certamente não passará apuros, esperando que se entenda como o processo
funciona. Você também desejará que, no próximo sistema que será desenvolvido, se passa reutilizar
os processos já criados anteriormente, sem que seja necessário “reinventar a roda”.
Uma das variáveis que farão com que esse processo seja bemsucedido é a utilização da modelagem.
Não quer atribuir toda a responsabilidade do sucesso de um sistema, somente pelo fato de uso da
modelagem. É evidente que a escolha de bons profissionais com esforço em equipe (e
principalmente, o apoio de todos os envolvidos nesse processo) se torna indispensável para que se
atinja o objetivo proposto.
3.2.1.Construindo modelos
Imagine a construção de uma nova casa, um novo prédio ou até mesmo um avião, sem que seja
construído primeiro os seus respectivos modelos. Seria um erro cuja proporção não poderíamos
estimar. Milhões de vidas seriam arriscadas (e certamente perdidas) se não houvesse modelos em
que pudéssemos visualizar o que futuramente virá a ser realidade, possibilitando a correção de erros
antes que fossem concebidos os produtos finais.
Enfim, construimos modelos para compreendermos melhor o sistema que estamos desenvolvendo.
Com a modelagem, podemos alcançar:
● A especificação da estrutura e do comportamento do sistema;
● A visualização do sistema como ele é ou como desejamos que ele seja;
● Documentar todas as decisões tomadas;
3.2.2.Modelagem orientada a objetos
A visão do desenvolvimento de sistemas nos últimos anos, vem adotando uma perspectiva orientada
a objetos. Sob esta perspectiva, o principal bloco de construção do sistema é o objeto. Não há
dúvidas de que os métodos orientados a objetos têm consolidado seu uso na construção de sistemas
de diferentes domínios de problemas, sendo simples ou complexos.
28