Escolar Documentos
Profissional Documentos
Cultura Documentos
Analise de Sistemas COR Capa Ficha ISBN 20120903 PDF
Analise de Sistemas COR Capa Ficha ISBN 20120903 PDF
Tempo
Aplicao Aplicao Aplicao Camada
Desktop Desktop Desktop Cliente
Completo
Projeto Camada
Anlise Servidor
Servidor
Teste
Implementao
Anlise de Sistemas
Luiz Egidio Costa Cunha
Jos Incio Serafini
Colatina - ES
2011
Presidncia da Repblica Federativa do Brasil
Ministrio da Educao
ISBN: 978-85-62934-03-2
1. Anlise de sistemas. 2. Software - Desenvolvimento. 3. Material
didtico. I. Instituto Federal do Esprito Santo. II. Ttulo.
CDD: 004.21
Apresentao e-Tec Brasil
Prezado estudante,
Voc faz parte de uma rede nacional pblica de ensino, a Escola Tcnica
Aberta do Brasil, instituda pelo Decreto n 6.301, de 12 de dezembro 2007,
com o objetivo de democratizar o acesso ao ensino tcnico pblico, na mo-
dalidade a distncia. O programa resultado de uma parceria entre o Minis-
trio da Educao, por meio das Secretarias de Educao a Distancia (SEED)
e de Educao Profissional e Tecnolgica (SETEC), as universidades e escolas
tcnicas estaduais e federais.
O e-Tec Brasil leva os cursos tcnicos a locais distantes das instituies de en-
sino e para a periferia das grandes cidades, incentivando os jovens a concluir
o ensino mdio. Os cursos so ofertados pelas instituies pblicas de ensino
e o atendimento ao estudante realizado em escolas-polo integrantes das
redes pblicas municipais e estaduais.
Ns acreditamos em voc!
Desejamos sucesso na sua formao profissional!
Ministrio da Educao
Janeiro de 2010
Nosso contato
etecbrasil@mec.gov.br
3 e-Tec Brasil
Indicao de cones
5 e-Tec Brasil
Sumrio
Palavra do professor-autor 9
Apresentao da disciplina 11
Projeto instrucional 13
7 e-Tec Brasil
5.8 A UML e a representao do modelo de domnio 61
5.9 Representao de conceitos e atributos 61
5.10 Representao de associaes 62
5.11 O modelo conceitual 63
Referncias 102
Prezado estudante!
Bom estudo!
9 e-Tec Brasil
Apresentao da disciplina
Siga em frente!
11 e-Tec Brasil
Projeto instrucional
CARGA
OBJETIVOS DE
AULA MATERIAIS HORRIA
APRENDIZAGEM
(horas)
Caderno e Ambiente Virtual de
Conhecer os principais conceitos da TGS.
Ensino-Aprendizagem.
1. Elementos da
Teoria Geral dos Relacionar os conceitos da TGS com a 5
http://pt.wikipedia.org/wiki/
Sistemas Computao.
Teoria_geral_de_sistemas
http://www.devmedia.com.br/
post-1903-Metodologia-de-
-desenvolvimento-de-Software.
html
http://www.andreygomes.com/
index.php?option=com_conten
Conhecer o histrico do processo de
t&view=article&id=1:metodolo
desenvolvimento de software.
gias-de-desenvolvimento-de-so
ftware&catid=1:metodologias
Conhecer os paradigmas de desenvolvi-
&Itemid=2
mento de software mais utilizados.
2. O processo de
desenvolvimento http://www.dsc.ufcg.edu. 5
Diferenciar as metodologias mais
de software br/~jacques/cursos/map/html/
comuns.
intro/processo.htm
http://pt.wikipedia.org/wiki/
Scrum
http://pt.wikipedia.org/wiki/
Extreme_programming
http://pt.wikipedia.org/wiki/
RUP
continua
13 e-Tec Brasil
CARGA
OBJETIVOS DE
AULA MATERIAIS HORRIA
APRENDIZAGEM
(horas)
Conhecer o que so os requisitos de um
sistema.
Caderno e Ambiente Virtual de
Conhecer tcnicas de elicitao de Ensino-Aprendizagem.
requisitos.
3. Os requisitos do http://pt.wikipedia.org/wiki/
10
sistema Conhecer os elementos do Diagrama de Engenharia_de_requisitos
Caso de Uso.
http://www.youtube.com/
Usar o Diagrama de Caso de Uso para watch?v=t0so6Nagjns
especificao das principais funes do
sistema.
Caderno e Ambiente Virtual de
Ensino-Aprendizagem.
Conhecer os elementos dos diagramas
de interao. http://www.macoratti.net/
4. Descrio do vb_uml2.htm
comportamento do Usar os diagramas de interao da UML 10
sistema para especificao do comportamento http://www.dsc.ufcg.edu.
do sistema. br/~jacques/cursos/map/html/
uml/diagramas/interacao/se-
quencia.htm
http://www.dsc.ufcg.edu.
5. Criao de um Usar o Modelo de Domnio para delinear br/~jacques/cursos/apoo/html/
5
modelo do sistema o escopo do sistema a ser desenvolvido. anal1/anal1.htm
http://www.macoratti.net/
net_uml2.htm
continua
e-Tec Brasil 14
CARGA
OBJETIVOS DE
AULA MATERIAIS HORRIA
APRENDIZAGEM
(horas)
Caderno e Ambiente Virtual de
Ensino-Aprendizagem.
http://pt.wikipedia.org/wiki/
Padr%C3%A3o_de_proje-
Conhecer os padres de projeto GRASP. to_de_software
concluso
15 e-Tec Brasil
Aula 1 Elementos da Teoria
Geral dos Sistemas
Objetivos
Outro autor importante nos estudos da TGS foi Kenneth Boulding. Econo-
mista e estudioso dos sistemas, Kenneth escreveu um artigo que descrevia
a natureza geral da teoria dos sistemas, seu objetivo e importncia para o
estudo dos fenmenos (MARTINELLI; VENTURA, 2006, p. 9).
Perturbaes
Assista ao vdeo intitulado
Teoria Geral dos Sistemas, Ambiente
em http://www.youtube.com/
watch?v=d_c8xvHtdHo para
Sistema
melhorar seus conhecimentos (Transformao)
sobre a TGS. Em seguida, cite
dois exemplos de sistemas Entrada Sada
abertos, de acordo com o que foi
apresentado no vdeo. Mande
para seu tutor esses exemplos e,
para cada um deles, escreva uma Perturbaes
breve justificativa de sua escolha.
Figura 1.1: Diagrama de sistemas
Fonte: Elaborada pelo autor
b) o ambiente do sistema;
c) os recursos do sistema;
d) a administrao do sistema.
Os objetivos significam aquilo que deve ser alcanado pelo sistema, ou seja,
o motivo pelo qual um sistema existe e as medidas de rendimento indicam
o quanto ele est (ou no) alcanando seus objetivos. Esse rendimento pode
ser medido de vrias maneiras, por exemplo, em um sistema de controle de
estoque que tenha como objetivo principal no deixar faltar produtos em um
almoxarifado, a quantidade de produtos que no ficaram faltando nas prate-
leiras pode ser considerada uma medida de rendimento. Em outras palavras,
se faltar produtos nas prateleiras por erro nos relatrios do sistema, pode-se
concluir que o programa no atendeu a seu objetivo, que era garantir sem-
pre a disponibilidade de produtos.
O ambiente do sistema est associado com aquilo que est ao redor dele,
ou seja, com todos os outros sistemas ou coisas que se encontram exter-
namente prximos dele.
Atividades de aprendizagem
1. Considere o sistema Corpo Humano. Explique qual o objetivo geral desse
sistema e cite uma medida de rendimento que pode ser aplicada a ele.
Partida
Trigo + Sal + leo Po
b) sistema de Ar Refrigerado;
Objetivos
Estudos feitos nos EUA para se medir a produtividade no desenvolvimento Uma importante empresa que
de sistemas (STANDISH GROUP, 2011) revelaram que: faz estudos de produtividade
de desenvolvimento de
software chama-se Standish
Group. Veja em http://
a) 30% a 40% dos projetos so cancelados; standishgroup.com/newsroom/
chaos_manifesto_2011.php
b) 50% dos projetos custam mais que o dobro do custo inicialmente um resumo do Chaos Manifesto
2011. Escreva um pequeno
projetado; texto informando a respeito do
manifesto (documento) e envie
c) 15 a 20% dos projetos terminam dentro do prazo e dentro do oramento. para seu tutor a distncia.
d) modelo em cascata
a) modelo espiral
Mas esse modelo no tem somente vantagens, ele tambm apresenta algu-
mas desvantagens, que podemos citar:
b) pode ocorrer precipitao e entrega de cdigo, sem que seja feita anlise
completa do alcance dos seus objetivos.
b) elaborao;
c) construo;
d) transio.
a) Concepo
b) Elaborao
c) Construo
Interao 2 Anlise
Projeto
Implementao
Interao 1 Anlise
Teste
Projeto
Utilizao
Implementao
Teste
Interao n Anlise
Utilizao
Projeto
Implementao
Teste
Utilizao
treinamento de usurios;
Resumo
Encerramos assim nossa segunda aula e vimos que muita informao nova
foi aprendida. Esse conhecimento necessrio para que continuemos nosso
estudo sobre a anlise e o projeto de sistemas que atendam, cada vez mais,
s necessidades de nossos clientes.
Vale lembrar que, apesar dos problemas naturais para se desenvolver siste-
mas, muito importante que sempre trabalhemos na construo de nosso
software usando ferramentas adequadas. As metodologias e as linguagens
de modelagem so fundamentais para esse trabalho. Vimos que a UML
a mais importante linguagem de modelagem usada atualmente e pode ser
Atividades de aprendizagem
1. Quais as principais diferenas entre linguagens de modelagem e metodo-
logias de desenvolvimento de sistemas?
Objetivos
a) entrevistas;
d) sempre que surgir uma ideia, ela deve ser imediatamente escrita no
quadro-negro;
c) quais os objetivos;
a) Funes do sistema
Uma boa regra para verificar se uma expresso X , de fato, uma funo do
sistema, colocamos X na sentena O sistema deveria fazer X e essa sen-
tena deve fazer sentido.
c) enfeite/decorao: opcional.
b) Atributos do sistema
a) Questes fundamentais
3. Por que fazemos isso? Por que fazemos assim? Por que fazemos desse modo?
14. O trabalho est sendo executado onde ele faz mais sentido?
Os casos de uso so escritos em um documento que serve para orientar a Caso de uso
uma descrio detalhada de
construo dos demais elementos do projeto. um conjunto de interaes entre
um usurio e o sistema.
Vamos examinar agora os casos de uso com mais detalhes. Vamos conhecer Ator
algum ou alguma coisa que
os elementos e conceitos a eles ligados. participa do caso de uso e
externo ao sistema.
3.3.1 Atores
Na definio de casos de uso encontramos o termo usurio. Nos casos de
uso o usurio chamado de ator.
a) ator iniciador: ele que inicia o caso de uso, geralmente, sendo o seu
ator principal. Por exemplo, se estamos fazendo um sistema bancrio,
o caso de uso retirar dinheiro ter como ator iniciador o ator cliente;
d) um conceito abstrato como hora, data, etc. Por exemplo, o ator data
pode iniciar um caso de uso chamado cancelar pedidos para pedidos
feitos h mais de seis meses.
Tipo: Primrio.
12. autor e data: listagem dos autores e datas das vrias verses revistas.
Exemplo de levantamento
Exemplo de levantamento:
a) entrar carto;
b) entrar senha;
d) confirmar quantia;
e) remover carto;
f) retirar recibo.
Aplicando essa regra aos outros itens da lista, vemos que a resposta NO para
todos eles. O objetivo real do usurio retirar dinheiro, logo, Retirar Dinheiro
deve ser o caso de uso, isto , o nome do caso de uso ser Retirar Dinheiro.
Algumas vezes uma funo resultar em um nico caso de uso; outras vezes,
vrias funcionalidades resultaro em um nico caso de uso.
Quanto mais respostas SIM voc obtiver nessas perguntas, mais importan-
te ser o caso de uso em questo. Assim, podemos criar uma lista de caso
de usos numa ordem decrescente de importncia. Os primeiros casos de uso
listados sero os primeiros a ser implementados.
Ator
SISTEMA
Comprar tens
Login
Caixa Cliente
Reembolsar tens
Comprados
O diagrama de casos de uso muito interessante para dar uma viso geral
do sistema, com seus atores, casos de uso e a relao entre eles.
e) escreva os casos de uso mais crticos, influentes e de maior risco para o No vdeo chamado Diagramas
sistema, no formato expandido; de caso de uso, disponvel
em http://www.youtube.
com/watch?v=fGA-
f) defina a ordem de implementao segundo a importncia de cada caso eF8HCjw&feature=related,
de uso (conforme orientao da seo 3.3.6). podemos ver o uso dos
diagramas de caso de uso
para o desenvolvimento dos
sistemas. Cite trs casos de uso
Dessa forma, ao final da Fase de Concepo, teremos a produo do Do- que encontramos comumente
nos sistemas de informao
cumento de requisitos, conforme vimos na seo 3.2.3, e o Documento de de secretaria escolar. Envie sua
casos de uso, que conter os diagramas e as descries de casos de uso. resposta para seu tutor a distncia.
Atividades de aprendizagem
1. Em que situaes devemos usar a descrio de caso de uso de alto nvel
e expandido?
Objetivos
4.1 Introduo
O comportamento de um sistema definido pelas operaes que ele realiza.
Esse comportamento demonstra situaes em que o sistema pode se encontrar.
Por exemplo, se considerarmos um boleto de pagamento em um sistema finan- Comportamento do Sistema
o conjunto de operaes que o
ceiro empresarial, podemos identificar alguns comportamentos possveis: boleto sistema realiza. Um termo muito
pago, boleto no pago, boleto com pagamento atrasado, etc. usado para referenciar esse
comportamento Application
Programming Interface (API)
do sistema.
Em UML, a representao grfica utilizada para mostrar as operaes do
sistema chama-se Diagrama de Sequncia de Sistema (DSS).
Ator
Sistema
Mensagem1
Resposta1
Mensagem2
Resposta2
Uma vez que o caso de uso est elaborado, bem simples desenhar o dia-
grama de sequncia de sistema. Basta ir examinando as interaes descritas
no Cenrio de sucesso principal e nas Extenses.
Atividades de aprendizagem
2. Explique como devem ser escritos os nomes das mensagens num DSS.
Objetivos
5.1 Introduo
A criao de modelos uma atividade comum em vrias reas de trabalho,
principalmente nas profisses que fazem projetos, como engenharia, arqui-
tetura, etc.
5.3 Conceitos
Conceito um objeto, uma coisa ou uma ideia (por exemplo: cliente, estu-
dante, professor, matrcula, manuteno, atendente, venda, etc.).
Exemplos:
5.5 Atributo
Devemos incluir em nosso modelo conceitual todos os atributos que de algu-
ma forma devem ser memorizados (ou guardados) pelos conceitos. atributo
um valor de dado lgico de um
conceito.
Uma regra prtica para tipo de atributo simples: faa dele um atributo, se
ele puder ser visto naturalmente como um nmero, uma string, um boolean,
uma data, etc.; caso contrrio, represente-o como um conceito. Em caso de
dvida, defina-o como um conceito separado, em vez de um atributo.
5.7 Associaes
A maioria dos sistemas que iremos desenvolver apresentar, no mnimo, al-
guns conceitos que tero algum tipo de relacionamento com outros conceitos.
Para que o relacionamento seja identificado como associao, ele deve ser
preservado por algum tempo dentro do sistema. Ou seja, no faz sentido
indicarmos um relacionamento entre dois conceitos que acontece uma ni-
ca vez durante a existncia do sistema (seria o mesmo que desenvolvermos
uma funo dentro de um sistema que seria usado somente uma nica vez
pelo usurio). importante ainda lembrar que a associao tambm deve
ser identificada por um nome, da mesma forma que o conceito e o atributo.
Conceito
-Atributos
Aluno
-nome
-curso
Figura 5.2: Exemplo em UML de um conceito: Estudante
Fonte: Elaborada pelo autor
* zero ou muitos;
1..* um ou muitos;
1..40 um at quarenta;
5 exatamente cinco;
3, 5, 8 exatamente trs,
cinco ou oito;
Serafini e Cunha (2010) lembram que quando formos decidir sobre que
nomes daremos s associaes, devemos evitar nomes fracos, ou seja, no-
mes com significado muito genrico. Por exemplo: tem, associado a,
possui, etc. A utilizao desses nomes pode esconder problemas ou erros
na definio da associao por darem uma ideia muito ampla de seu signi-
ficado, deixando o desenvolvedor com a possibilidade de criar, no futuro,
programas sem utilidade por ter interpretado erroneamente qual tipo de
associao existe entre os conceitos.
Mdico Paciente
Medicamento Equipe
atende
Mdico Paciente
1 *
1 1
1 Equipe
prescreve
dirige
*
Medicamento
Atividades de avaliao
1. Explique o que uma associao e d um exemplo do relacionamento
entre os seguintes conceitos:
c) Motorista Carro:
d) Banco Correntista:
e) Mdico Paciente:
f) Juiz Processo:
Conceitos:
a) Mdico
b) Paciente
c) Enfermeiro
e) Enfermaria
f) Pronturio Mdico
g) Farmcia Hospitalar
Associaes:
1. atende
2. cuida
3. prescreve
4. est internado
5. escreve
6. fornece
Objetivos
Arquitetura de Software
a forma como dividimos e
6.1 Introduo organizamos o sistema em blocos
reutilizveis que aumentam a
Da mesma maneira que um arquiteto trabalha organizando os espaos para a qualidade e reusabilidade do
construo de uma casa, organizamos os componentes de software de manei- software
ra a distribuir da forma mais eficaz todos os componentes que faro parte do Segundo Booch, Rumbaugh e
nosso sistema. Existem vrias formas de se projetar um software, dependendo Jacobson (1997 apud LARMAN,
2007), uma Arquitetura de
de seu objetivo e funcionalidade. Assim, tambm na arquitetura de software software um conjunto de
decises significativas sobre a
so definidos modelos que podem ser utilizados para que cada projeto esteja organizao de um sistema, a
com o formato mais adequado para seu uso. seleo dos elementos estruturais
e suas interfaces pelas quais o
sistema composto, juntamente
Comeamos nesta aula o estudo da forma como nossos sistemas podem com seu comportamento, suas
colaboraes e sua composio.
agrupar seus componentes. Pelo estudo das camadas nas quais podemos
dividir nosso projeto, aprenderemos quais os tipos de arquitetura podemos
usar para que tenhamos um bom projeto. Dessa forma, estaremos nos pre-
parando para as futuras fases de desenvolvimento de sistemas (codificao)
de forma planejada e que atenda s necessidades dos nossos clientes.
Camada 1
Camada 2 Camada
Camada Relaxada
Estrita
Camada 3
Camada 4
Package
<<sbsystem>>
SUBSISTEMA
GUI subsistema
Web
Consultas
Camada
Servidor
Servidor
a) aumenta a escalabilidade;
Servidor de
Aplicao
Servidor Servidor
Dados Dados
Servidor de Servidor de
Web Web Camada
WEB
Servidor de Servidor de
Aplicao Aplicao Camada
Aplicao
Servidor de Servidor de
Dados Dados Camada
de Dados
Figura 6.7: Arquitetura em quatro camadas
Fonte: Serafini e Cunha (2010, p.79)
Na ltima seo desta aula vimos quais os tipos de arquiteturas so mais comu-
mente usados no mercado: arquitetura em uma camada, arquitetura em duas
camadas, arquitetura em trs camadas e, por fim, arquitetura em n-camadas.
Atividades de aprendizagem
1. Explique as diferenas entre os tipos de arquitetura em n camadas e SOA.
Objetivos
7.1 Introduo
Aps os levantamentos feitos na fase inicial, quando conhecemos os requi-
sitos e domnio do sistema, escrevemos o diagrama de classes. Ele apresenta
o sistema de forma esttica e detalha quais classes e seus relacionamentos
foram identificados no sistema a partir da aprovao do cliente.
NomeDaClasse
-atributo1: Tipo
+atributo2
#atributo3
-operacao1()
+operacao2()
+operacao3( parametro1, parametro2 )
Registradora1
-vendaAtual: Venda
Formato:
ou
Registradora2 Venda
-vendaAtual
Classe
+operacao()
+: public
-: private
#: protected
<<ator>>
<<interface>>
[abstract]
[ordered]
Para mostrar objetos do tipo Interface podemos utilizar o smbolo (Figura 7.5):
Interface1
+operacao1()
+operacao1()
Venda1
-linhaDeItens : LinhaDeItensDeVenda[1..*]
Formato:
Venda2 LinhaDeItensDeVenda
-linhaDeItens 1..*
Figura 7.8:Associao
Fonte: Serafini e Cunha (2010, p. 105)
Comentrio UML
Pai
Filho
Uma dependncia mostrada com uma linha (tracejada com uma seta
partindo do cliente para o fornecedor) entre dois elementos, como mostrado
na Figura 7.11.
Cliente Fornecedor
Aluno Curso
-nome : String -nome
-c : Curso -cargaHoraria
Cliente Endereco
LinhaPedido DescricaoProduto
Assim, cada tabela do banco de dados foi mapeada para uma classe, man-
tendo-se o mesmo nome da entidade (tabela) na classe.
Atividades de aprendizagem
1. Use sua criatividade e desenhe um diagrama de classes que possua os
seguintes conceitos:
1. Homem
2. Mulher
3. Certido de Casamento
4. Filhos
5. Residncia
a) Mtodo,
b) Atributos,
c) Composio e Generalizao
Objetivos
8.1 Introduo
Quando identificamos os conceitos em nosso sistema, identificamos o que
ele deve ser capaz de realizar, isto , identificamos as suas responsabilidades.
Podemos esperar que os conceitos dependam da ajuda de outros conceitos,
isto , que eles colaborem entre si para realizar as suas responsabilidades.
(SERAFINI, 2008, p. 95).
colaborao
aquilo que um objeto pode faz-
er/executar para outro objeto, de
auxilia modo que o caso de uso possa
ser realizado. Dessa forma, um
objeto ajuda o outro a executar
aquilo que a responsabilidade
do outro.
Bibliotecario verifica Catalogo
Assim temos:
A utilizao dos padres de projeto propostos por Larman (2007) pode melhorar
bastante nossos diagramas de colaborao e, por conseguinte, nossos projetos.
Larman deu nome a seu conjunto de regras de GRASP que significa General
Responsibility Assigment Software Patterns, ou seja, Padres de Software
Genricos de Atribuio de Responsabilidades, e esses padres podem nos
ajudar a alocar responsabilidades (ou comportamentos) s classes de uma
forma muito prtica.
a) Expert Especialista
b) Creator Criador
e) Controller Controlador
Pedido
-data
-hora
contm
O padro Expert diz que a nica classe que deve ser permitida lidar com o
Custo Total de um pedido a classe Pedido isso porque ela deve ser espe-
cialista sobre todas as coisas relativas a pedidos.
Mas para calcular o total do pedido, este precisa saber o total de cada
linha de Pedido.
Mais uma vez aplicamos o padro Expert, e temos que a nica classe que
deveria calcular o total de Linha de Pedido LinhaPedido; assim, criamos um
mtodo calcularSubTotal() e alocamos em LinhaPedido.
+calcularTotal()
contm
: Pedido : LinhaPedido
2: subTotal=obterSubTotal();
: LinhaPedido
2.1: Preco=obterPreco;
Sntese:
Nome: Expert
Quem deve ser responsvel pela criao de instncias de uma classe particular?
A resposta que a classe A deve ser responsvel pela criao dos objetos
da classe B se:
a) A contm objetos B;
b) A utiliza objetos B;
1: cria();
: Pedido : LinhaPedido
Sntese:
Nome: Creator
Soluo: a classe A deve ser responsvel pela criao dos objetos da classe B se:
a) A contm objetos B;
b) A utiliza objetos B;
(LARMAN, 2007)
Exemplo
ControladorElevadores
+obterAndar()
+moverElevador()
+abribuirViagem()
+procedimentoEmergencia()
+acionaAlarme()
+atualizarLED()
+abrirPorta()
+fecharPorta()
+reset()
+iniciar()
+desativar()
+mostrarLog()
Essa classe deve ser difcil de manter, e no est claro o que ela deve fazer,
isto , quais as suas responsabilidades.
Pode
escrever
Porta Log
+abrir() +mostrar()
+fechar() +limpar()
Sntese:
Soluo: Cada classe deve representar uma nica coisa (ou abstrao) do
mundo real.
(LARMAN, 2007)
I A C
H B
G F D E
Exemplo:
Por que a classe C est associada classe A, se existe uma associao in-
direta pela classe B? Essa associao pode ter sido criada para melhorar o
desempenho, o que seria razovel, ou pode ter sido criada por desleixo...
Por que a classe B possui tantas associaes? Essa classe provavel-
mente est realizando muito trabalho.
Seguir o modelo conceitual uma forma excelente de reduzir o acopla-
mento. Somente envie mensagem de uma classe outra se a associao foi
identificada durante a fase de modelagem conceitual. Agindo assim, voc
estar se restringindo a introduzir acoplamentos que existem no mundo real.
No caso de uso Criar Pedidos, que classe deve ser responsvel por criar
um novo pedido?
Cliente
Cliente
1: criar
Pedidos
Pedido
Assim, acoplamos Cliente a Pedidos. Neste caso, est OK, pois eles so
acoplados no mundo real (veja no modelo conceitual).
A seguir, uma vez que Pedido foi criado, o caso de uso precisa adicionar as
linhas de pedidos a Pedidos. Quem deve ser responsvel por adicionar as
linhas de pedidos?
Uma soluo seria Cliente adicionar as linhas (afinal ele possui as informa-
es de inicializao necessrias: quantas linhas, que produtos, que quanti-
dades, etc.). Essa soluo mostrada na Figura 8.11:
Cliente
1: criar
LinhaPedido Pedido
Se fizermos Pedido responsvel pela criao das linhas de pedidos, faremos com
que Cliente no tenha nenhum acoplamento com LinhaPedidos (Figura 8.12):
Cliente
1: criar
2: *[para cada linha] adiciona nova linha
LinhaPedido Pedido
Sntese:
Para que o usurio possa fazer as apostas, precisamos que o sistema permita
entrar com as apostas e mostre os resultados dos jogos.
Partida
+mostraResultados()
O padro Controller uma soluo possvel. Criamos uma nova classe que
vai ficar entre o usurio e as classes de negcio. Essa classe funciona como
uma ponte (ou controlador) entre a Interface Grfica e as Classes do Domnio.
<nomeDoCasoDeUSo>Handler.
Partidas
FazerApostaHandler
Apostador
Aposta
Sntese:
Nome: Controller
(LARMAN, 2007)
Atividades de aprendizagem
1. Explique qual o tipo de problema que o padro Creator aborda e indi-
que qual a soluo que ele prope.
SERAFINI, J. I.; CUNHA, L.E.C. Anlise e projeto de sistemas I. Serra: CEFETES, 2010.
THE STANDISH GROUP. Disponvel em: <http://standishgroup.com>. Acesso em: 19 set. 2011.
TEORIA geral dos sistemas e tipologia dos sistemas de informao. Disponvel em <http://
www.youtube.com/watch?v=_EXOAh44oWg&feature=related>. Acesso em: 19 set. 2011b.
Tempo
Aplicao Aplicao Aplicao Camada
Desktop Desktop Desktop Cliente
Completo
Projeto Camada
Anlise Servidor
Servidor
Teste
Implementao