Académique Documents
Professionnel Documents
Culture Documents
Tempo
Aplicao
Desktop
Completo
Anlise
Aplicao
Desktop
Projeto
Servidor
Teste
Implementao
Aplicao
Desktop
Camada
Cliente
Camada
Servidor
Anlise de Sistemas
Luiz Egidio Costa Cunha
Jos Incio Serafini
Colatina - ES
2011
Coordenao Institucional
Guilherme Augusto De Morais Pinto/IFES
Joo Henrique Caminhas Ferreira/IFES
Design Instrucional
Renato Cislaghi/UFSC
Coordenao do Curso
Allan Francisco Forzza Amaral/IFES
Professores-autores
Luiz Egidio Costa Cunha/IFES
Jos Incio Serafini/IFES
Comisso de Acompanhamento e Validao
Universidade Federal de Santa Catarina UFSC
Coordenao Institucional
Araci Hack Catapan/UFSC
Coordenao do Projeto
Silvia Modesto Nassar/UFSC
Coordenao de Design Instrucional
Beatriz Helena Dal Molin/UNIOESTE e UFSC
Web Master
Rafaela Lunardi Comarella/UFSC
Web Design
Beatriz Wilges/UFSC
Mnica Nassar Machuca/UFSC
Diagramao
Brbara Zardo/UFSC
Juliana Tonietto/UFSC
Marlia C. Hermoso/UFSC
Nathalia Takeuchi/UFSC
Reviso
Jlio Csar Ramos/UFSC
Projeto Grfico
e-Tec/MEC
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
e-Tec Brasil
Indicao de cones
Os cones so elementos grficos utilizados para ampliar as formas de
linguagem e facilitar a organizao e a leitura hipertextual.
Ateno: indica pontos de maior relevncia no texto.
e-Tec Brasil
Sumrio
Palavra do professor-autor
Apresentao da disciplina
11
Projeto instrucional
13
17
17
23
23
25
25
33
33
34
41
51
51
51
52
53
57
57
57
5.3 Conceitos
58
59
5.5 Atributo
59
59
5.7 Associaes
60
e-Tec Brasil
61
61
62
63
69
69
69
70
71
72
75
77
83
e-Tec Brasil
77
77
87
87
87
88
88
Referncias
102
103
Nome da disciplina
Palavra do professor-autor
Prezado estudante!
Neste curso voc vai aprimorar seus conhecimentos sobre o desenvolvimento de software.
Vamos estudar com mais profundidade os aspectos das fases de anlise e
projeto de sistemas.
O que vamos estudar nesta disciplina , resumidamente, como transformar
os sistemas reais em solues computacionais que promovam a eficcia dos
negcios das organizaes. Essa tarefa que torna um sistema melhor do
que outro do ponto de vista do desempenho e da sua expanso e atualizao.
Nosso contedo pode ser considerado uma verdadeira carga de experincia
profissional que ajudar o tcnico em Informtica a entender todas as especificaes propostas pelos analistas e/ou a criar seus prprios sistemas.
Vamos examinar algumas questes prticas de projeto de software que serviro como regras que voc poder aplicar em seus futuros projetos.
Aproveite e faa todos os exerccios e participe das discusses nos fruns.
Bom estudo!
Prof. Luiz Egidio Costa Cunha
e-Tec Brasil
Apresentao da disciplina
Nossa disciplina estuda tcnicas para o projeto e o desenvolvimento de sistemas e est dividida em duas partes: Anlise e Projeto, que, atualmente, so
tratados de forma conjunta pelos profissionais da rea.
Em Anlise aprenderemos como planejar o software que pretendemos construir ou programar, a fim de que nossos usurios tenham suas necessidades
atendidas. Aprenderemos como usar diagramas e smbolos para mostrar o
que estamos imaginando de uma forma conceitual, sem muita preocupao
com a aderncia de nossas ideias realidade computacional que enfrentaremos na hora do desenvolvimento dos programas e sistemas.
Em Projeto estudaremos exatamente o elo que faltava entre a fase de Anlise
e a decodificao dos programas. Conheceremos tcnicas que nos ajudaro
a entender como possvel transformar nossos conceitos (diagramas, mtodos, objetos, etc.) em segmentos de software que, efetivamente, rodam
nos computadores.
Para isso estudaremos algumas ferramentas como a UML e seus diagramas,
e depois os padres de construo de classes que so teis na maioria dos
projetos de software. Esse conjunto de tcnicas e padres, quando adotado
no desenvolvimento dos sistemas, oferece ao projeto final caractersticas de
responsabilidades e portabilidade que so fundamentais para seu sucesso.
A bibliografia adotada exatamente a mesma usada por profissionais que
atuam no mercado de trabalho. Estudaremos Larman (2007) e o livro do grupo dos quatro, que dos autores: Gamma, Helm, Johnson e Vlissides (2000).
importante a participao ativa de todos nas atividades propostas em nossa disciplina, para que os exerccios discutidos possam servir de base para a
prtica profissional que todos tero quando conclurem o curso.
Siga em frente!
Prof. Luiz Egidio Costa Cunha
11
e-Tec Brasil
Projeto instrucional
Disciplina: Anlise de Sistemas (carga horria: 60 h).
Ementa: Teoria geral dos Sistemas. Modelagem de dados. Metodologias para
o desenvolvimento de sistemas. Ferramentas para anlise e projeto de sistemas.
AULA
OBJETIVOS DE
APRENDIZAGEM
Conhecer os principais conceitos da TGS.
1. Elementos da
Teoria Geral dos
Sistemas
MATERIAIS
CARGA
HORRIA
(horas)
2. O processo de
desenvolvimento
de software
http://www.andreygomes.com/
index.php?option=com_conten
t&view=article&id=1:metodolo
gias-de-desenvolvimento-de-so
ftware&catid=1:metodologias
&Itemid=2
http://www.dsc.ufcg.edu.
br/~jacques/cursos/map/html/
intro/processo.htm
http://pt.wikipedia.org/wiki/
Modelos_ciclo_de_vida
http://pt.wikipedia.org/wiki/
Scrum
http://pt.wikipedia.org/wiki/
Extreme_programming
http://pt.wikipedia.org/wiki/
RUP
continua
13
e-Tec Brasil
AULA
OBJETIVOS DE
APRENDIZAGEM
MATERIAIS
CARGA
HORRIA
(horas)
10
http://www.youtube.com/
watch?v=t0so6Nagjns
http://www.macoratti.net/
vb_uml2.htm
10
http://www.dsc.ufcg.edu.
br/~jacques/cursos/map/html/
uml/diagramas/interacao/sequencia.htm
Caderno e Ambiente Virtual de
Ensino-Aprendizagem.
5. Criao de um
modelo do sistema
http://www.dsc.ufcg.edu.
br/~jacques/cursos/apoo/html/
anal1/anal1.htm
http://www.macoratti.net/
net_uml2.htm
http://www.dsc.ufcg.edu.
br/~jacques/cursos/map/html/
arqu/camadas.html
Caderno e Ambiente Virtual de
Ensino-Aprendizagem.
http://www.macoratti.net/
vb_uml2.htm
10
http://www.dsc.ufcg.edu.
br/~jacques/cursos/map/html/
uml/diagramas/classes/classes1.htm
continua
e-Tec Brasil
14
AULA
OBJETIVOS DE
APRENDIZAGEM
MATERIAIS
CARGA
HORRIA
(horas)
http://pt.wikipedia.org/wiki/
Padr%C3%A3o_de_projeto_de_software
http://www.macoratti.net/
vb_pd1.htm
10
http://codeigniterbrasil.com/
passos-iniciais/padroes-de-projeto-ou-design-patterns-o-que-sao-para-que-servem-e-qual-sua-implicacao-de-uso/
concluso
15
e-Tec Brasil
17
e-Tec Brasil
b) os atributos so as caractersticas tanto dos objetos como dos relacionamentos; o ambiente o que est fora do sistema, ou seja, no participa
do sistema, porm, ele est inserido nesse espao delimitado ou no.
A Figura 1.1 mostra graficamente o conceito apresentado.
Perturbaes
Assista ao vdeo intitulado
Teoria Geral dos Sistemas,
em http://www.youtube.com/
watch?v=d_c8xvHtdHo para
melhorar seus conhecimentos
sobre a TGS. Em seguida, cite
dois exemplos de sistemas
abertos, de acordo com o que foi
apresentado no vdeo. Mande
para seu tutor esses exemplos e,
para cada um deles, escreva uma
breve justificativa de sua escolha.
Ambiente
Sistema
(Transformao)
Entrada
Sada
Perturbaes
Figura 1.1: Diagrama de sistemas
Fonte: Elaborada pelo autor
e-Tec Brasil
18
Anlise de Sistemas
ABORDAGEM ANALTICA
ABORDAGEM SISTMICA
nfase
Nas partes
No todo
Tipo
Relativamente fechado
Relativamente aberto
Ambiente
No definido
Um ou mais
Hierarquia
Poucas
Possivelmente muitas
Estado
Estvel
Fonte: Schoderbek apud Martinelli e Ventura (2006)
19
e-Tec Brasil
e-Tec Brasil
20
Anlise de Sistemas
Resumo
Chegamos ao final de nossa primeira aula e vimos que quanto mais conhecemos as caractersticas dos sistemas, mais fcil ser prepararmos uma soluo
computacional que o crie ou o preserve. A TGS tambm utilizada por outras
reas de conhecimento, mas cada vez mais a rea de Informtica tem sido
beneficiada com os conceitos propostos por Ludwig Von Bertalanfy. Quando
conhecemos bem esses conceitos antes de comearmos a projetar nossos
sistemas e, consequentemente, aplicar esses conceitos, garantimos o sucesso
de nossos programas, pois eles sero regidos pelos mesmos conceitos. Alm
das questes ligadas Informtica, a TGS tambm nos ajuda nas questes
sociais ligadas aos nossos sistemas, ou seja, podemos usar os mesmos conceitos para os grupos de usurios que trabalham ligados ao nosso software.
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.
2. Descreva o sistema Famlia de acordo com uma abordagem sistmica
utilizando um texto de, no mximo, trs linhas.
3. Descreva o mesmo sistema da questo anterior, porm, agora, na abordagem analtica. Seu texto deve conter no mnimo dez linhas.
4. Usando a Figura 1.1 e o exemplo abaixo como referncias, desenhe os
sistemas propostos nos seguintes itens:
21
e-Tec Brasil
Exemplo:
Partida
Trigo + Sal + leo
Po
e-Tec Brasil
22
Anlise de Sistemas
23
e-Tec Brasil
Processo de
desenvolvimento de
Software
um conjunto de atividades
(prticas e tcnicas) rigorosas,
sistemticas e controlveis que
permitem construir sistemas
informatizados em um prazo
e oramento finitos.em uma
determinada ordem.
e-Tec Brasil
24
Anlise de Sistemas
25
e-Tec Brasil
Quando esse modelo foi proposto, no incio do desenvolvimento dos sistemas, acreditava-se que ao se encerrar uma etapa do modelo, todas as informaes necessrias sobre aquela fase j estavam capturadas. Por exemplo:
aps a entrevista com o usurio sobre as necessidades de seus sistemas,
tudo que se precisaria saber para resolver seu problema j estava dito. Assim,
os desenvolvedores poderiam se concentrar na fase seguinte Anlise
para darem continuidade ao processo de construo do software. O mesmo
acontecia com as etapas seguintes. Ao longo do tempo, verificou-se que,
muitas vezes, coisas importantes sobre etapas anteriores so descobertas
apenas no final do processo de desenvolvimento.
e-Tec Brasil
26
Anlise de Sistemas
27
e-Tec Brasil
e-Tec Brasil
28
Anlise de Sistemas
a) concepo;
b) elaborao;
c) construo;
d) transio.
Essas fases so realizadas em sequncia e no devem ser confundidas com
as etapas do modelo em cascata.
Vamos estudar cada uma dessas fases.
a) Concepo
Nessa fase estabelecemos o escopo do projeto e definimos uma viso geral
dele. Em pequenos projetos, ela pode ser realizada durante um cafezinho
com o cliente!
Nessa fase devemos:
construir um documento, descrevendo a viso geral do sistema;
fazer uma explorao inicial dos requisitos do cliente;
construir um glossrio inicial dos termos utilizados pelo cliente;
fazer uma anlise do negcio (viabilidade, previso de investimentos, etc.);
fazer uma anlise de risco preliminar;
traar um plano de projeto preliminar.
b) Elaborao
Nessa fase analisamos o problema, acrescentamos mais detalhes ao plano de
projeto preliminar e procuramos eliminar ou minimizar os riscos do projeto.
No final da fase de elaborao teremos uma viso geral e um melhor entendimento do problema, devido ao seu detalhamento.
Na UML temos dois modelos que ajudam nesse estgio:
Modelo de caso de uso: que ajuda a entender e capturar os requisitos
do cliente;
29
e-Tec Brasil
Modelo conceitual (diagrama de classes): que mostra os principais conceitos do sistema, os quais o cliente entende.
c) Construo
Nessa fase ocorre a construo de fato do software. Essa fase do projeto no
executada de modo linear, mas na forma do modelo espiral, fazendo uma
srie de iteraes. Em cada uma dessas iteraes utilizamos o modelo em
cascata. Tornando cada iterao mais curta possvel, evitamos os problemas
do modelo em cascata (Figura 2.3).
Concepo
Interao 2
Elaborao
Construo
Transio
Anlise
Projeto
Interao 1
Implementao
Anlise
Teste
Projeto
Utilizao
Implementao
Interao n
Teste
Anlise
Utilizao
Projeto
Implementao
Teste
Utilizao
e-Tec Brasil
30
Anlise de Sistemas
d) Transio
A fase final est relacionada colocao do produto final para o cliente.
As atividades tpicas dessa fase so:
liberao de verses Beta para alguns usurios da comunidade;
teste de validao ou execuo paralela;
converso de dados de sistemas antigos;
treinamento de usurios;
publicidade, distribuio e vendas.
A verso Beta a verso de um produto que ainda se encontra em fase de
desenvolvimento e testes. No entanto, esses produtos muitas vezes so popularizados bem antes de sair a verso final.
A fase de transio no deve ser confundida com a fase de teste tradicional.
No incio da fase de transio deve existir um produto completo, testado e
operacional para os usurios (os clientes).
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 sistemas, 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
31
e-Tec Brasil
Atividades de aprendizagem
1. Quais as principais diferenas entre linguagens de modelagem e metodologias de desenvolvimento de sistemas?
2. Cite duas desvantagens do modelo em cascata de desenvolvimento de
sistemas.
3. Cite dois exemplos de sistemas complexos que so mais bem desenvolvidos se usarmos o Modelo Iterativo e Incremental.
4. Quais problemas encontrados em projetos de software que causam insatisfao do usurio no momento da entrega do produto final.
5. Cite dois exemplos de metodologias geis de desenvolvimento de sistemas.
e-Tec Brasil
32
Anlise de Sistemas
Fase de concepo
a etapa do projeto de um
software em que um sistema
concebido. Nessa fase, aps as
necessidades dos usurios j
terem sido levantadas, projeta-se
o produto (software) com um
escopo definido e se estuda
um plano de negcio para seu
desenvolvimento e implantao.
33
e-Tec Brasil
Requisitos
So as capacidades e condies
a que o sistema deve atender.
e-Tec Brasil
34
Anlise de Sistemas
35
e-Tec Brasil
e-Tec Brasil
36
Anlise de Sistemas
37
e-Tec Brasil
e-Tec Brasil
38
Anlise de Sistemas
39
e-Tec Brasil
e-Tec Brasil
40
Anlise de Sistemas
Caso de uso
uma descrio detalhada de
um conjunto de interaes entre
um usurio e o sistema.
Vamos examinar agora os casos de uso com mais detalhes. Vamos conhecer
os elementos e conceitos a eles ligados.
Ator
algum ou alguma coisa que
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.
Temos dois tipos de atores:
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;
b) ator participante: aquele que de alguma forma participa do caso de
uso. Por exemplo, no caso de uso comprar itens, existe um ator atendente que atende o ator cliente.
Um ator no precisa, necessariamente, ser uma pessoa. Um ator pode
representar:
a) um grupo de pessoas. Por exemplo, clientes, estudantes, etc.;
b) uma funo de uma pessoa. Por exemplo, estudante representante da turma;
c) outro sistema externo;
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.
41
e-Tec Brasil
e-Tec Brasil
42
Anlise de Sistemas
43
e-Tec Brasil
e-Tec Brasil
44
Anlise de Sistemas
45
e-Tec Brasil
e-Tec Brasil
46
Anlise de Sistemas
47
e-Tec Brasil
Ator
Caso de Uso
SISTEMA
Comprar tens
Login
Caixa
Reembolsar tens
Comprados
Cliente
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-Tec Brasil
48
Anlise de Sistemas
49
e-Tec Brasil
Resumo
Nesta aula estudamos os passos iniciais para desenvolver o projeto de um
sistema. A partir do levantamento dos requisitos, conseguimos identificar
elementos importantes, como casos de uso, atores e seus relacionamentos,
de maneira que o diagrama gerado por eles apresente uma viso geral do
sistema e sua complexidade.
Estudamos tambm quais as tcnicas mais comumente usadas para o levantamento dos requisitos: entrevistas e brainstorming. Pelo seu uso conseguimos entender melhor quais as caractersticas de um sistema relatadas por seus usurios.
importante no esquecermos que todo conhecimento gerado pelo levantamento dos requisitos precisa ser documentado, e para isso produzimos o
Documento de requisitos e o Documento de casos de uso, cujos detalhamentos foram discutidos na seo anterior.
Na prxima aula vamos dar um passo frente para a construo de um sistema. Agora que j aprendemos como conhecer as caractersticas do sistema
por meio de seus requisitos, vamos aprender como desenhar um diagrama
que mostrar qual o comportamento ter nosso sistema de acordo com as
operaes que ele realizar. O diagrama que aprenderemos a criar ser o
Diagrama de Sequncia do Sistema (DSS).
Atividades de aprendizagem
1. Em que situaes devemos usar a descrio de caso de uso de alto nvel
e expandido?
2. Cite um exemplo de responsabilidade do cliente/usurio em relao ao
desenvolvimento de um sistema e explique sua importncia.
3. Voc acha que o tempo de resposta um atributo de um sistema de
manuteno de computadores? Explique sua resposta.
4. Desenhe trs casos de uso de alto nvel que mostrem funes de um
sistema de aluguel de fitas numa videolocadora (Por exemplo: emprestar
um vdeo, devolver um vdeo, pagar uma locao, solicitar reserva de
vdeo, etc.). Descreva tambm os casos de uso desenhados.
5. Escreva uma lista dos casos de uso desenhados na questo 4 e ordene-os
por seu grau de importncia
Registre suas respostas num arquivo e poste-o no AVEA.
e-Tec Brasil
50
Anlise de Sistemas
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 financeiro empresarial, podemos identificar alguns comportamentos possveis: boleto
pago, boleto no pago, boleto com pagamento atrasado, etc.
Em UML, a representao grfica utilizada para mostrar as operaes do
sistema chama-se Diagrama de Sequncia de Sistema (DSS).
Comportamento do Sistema
o conjunto de operaes que o
sistema realiza. Um termo muito
usado para referenciar esse
comportamento Application
Programming Interface (API)
do sistema.
51
Diagrama de sequncia do
sistema (DSS)
um diagrama que mostra
graficamente a utilizao do
sistema, de acordo com o caso
de uso. Ele representa atravs
de figuras o comportamento
possvel que o sistema poder
ter.
e-Tec Brasil
As interaes entre o usurio e o sistema so representadas por linhas horizontais com setas que indicam a direo da interao. A descrio da interao escrita na seta. Uma mensagem representada por uma linha contnua e uma resposta representada por uma linha pontilhada (Figura 4.2):
e-Tec Brasil
52
Anlise de Sistemas
Sistema
Mensagem1
Resposta1
Mensagem2
Resposta2
Uma vez que o caso de uso est elaborado, bem simples desenhar o diagrama de sequncia de sistema. Basta ir examinando as interaes descritas
no Cenrio de sucesso principal e nas Extenses.
Podemos considerar um DSS como um resumo grfico ou uma representao grfica de um caso de uso. Assim, importante prestar ateno, ao
colocar os nomes das operaes, para que seja o mais esclarecedor possvel.
Devemos comear o nome com um verbo e procurar mostrar a inteno da
operao. Por exemplo: entrarItem(idItem) melhor do que escanear(idItem).
53
e-Tec Brasil
e-Tec Brasil
54
Anlise de Sistemas
Resumo
Nesta aula estudamos o comportamento do sistema e sua representao na
UML. Sua importncia grande para que seja possvel a melhor compreenso do sistema que se pretende desenvolver. Atravs do diagrama os casos
de uso so descritos, alm de suas operaes, de acordo com a finalidade
do sistema. O DSS a representao grfica dos casos de uso estudados na
fase inicial.
A seguir aprenderemos outra representao importante para o desenvolvimento de um sistema: o modelo de domnio (ou modelo conceitual).
Atividades de aprendizagem
1. Cite duas mensagens enviadas por um ator Estudante para um sistema
chamado Acadmico, referentes matrcula em um novo curso, conforme o exemplo abaixo:
Mensagem 1 Solicitar matrcula
Resposta 1 Enviar lista de documentos necessrios
Mensagem 2 Entregar dados pessoais para matrcula
Resposta 2 Informar que a matrcula foi concluda.
2. Explique como devem ser escritos os nomes das mensagens num DSS.
3. Quais os principais objetivos de um DSS?
Registre suas respostas num arquivo e poste-o no AVEA.
55
e-Tec Brasil
5.1 Introduo
A criao de modelos uma atividade comum em vrias reas de trabalho,
principalmente nas profisses que fazem projetos, como engenharia, arquitetura, etc.
O uso de modelos ajuda o profissional a entender melhor o funcionamento
de um sistema, sua relao com o ambiente onde est inserido e sua troca
de informaes com os usurios (ou pessoas) que usaro esses sistemas para
alguma tarefa.
Em Computao usamos frequentemente modelos para analisarmos e desenvolvermos sistemas de informao. O modelo de domnio um desses
diagramas utilizados pelos analistas.
Em todo projeto importante o uso de modelos que nos ajudem a compreender melhor o funcionamento dos sistemas. Nesta aula estudaremos o
modelo lgico (ou conceitual) de um sistema, sua importncia e as tcnicas
utilizadas para sua criao. Ao final da aula saberemos como representar
graficamente esse modelo. O modelo de domnio no modelo de projeto de software, isto , no representa componentes de software
(rotinas, bibliotecas, programas executveis, etc.).
57
e-Tec Brasil
modelo de domnio
uma representao de coisas
do mundo real, isto , coisas
que nosso cliente capaz
de reconhecer como uma de
suas tarefas de trabalho, ou
ferramentas que ele usa para
executar suas funes, etc.
5.3 Conceitos
Conceito um objeto, uma coisa ou uma ideia (por exemplo: cliente, estudante, professor, matrcula, manuteno, atendente, venda, etc.).
Um conceito deve possuir:
a) smbolo: palavras ou imagens representando um conceito;
b) inteno: a definio de um conceito;
c) extenso: o conjunto de exemplos aos quais o conceito se aplica.
Exemplos:
a) pedido: em um sistema comercial;
b) jogador: em um sistema de jogos;
c) sala: em um sistema de escola;
d) quarto: em um sistema de hotis.
Alguns pssimos exemplos de conceitos so:
DisparoDeEventos e FormularioDePedidos. Esses exemplos no so bons, pois eles
esto voltados ao projeto ( soluo) e no ao problema.
Uma boa regra : se o cliente no entende um determinado conceito, provavelmente isso no um conceito. Ou seja, se o cliente no consegue entender a importncia do conceito no sistema ou no consegue identificar
seu uso no sistema, j temos uma boa indicao de que esse conceito no
pertence ao sistema em desenvolvimento.
e-Tec Brasil
58
Anlise de Sistemas
5.5 Atributo
Devemos incluir em nosso modelo conceitual todos os atributos que de alguma 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.
Chamamos de atributos primitivos aqueles que so naturais para um determinado conceito. Ou seja, so informaes que qualificam, particularizam ou definem aquele conceito. Os tipos de dados associados a esses atributos so os clssicos estudados nas disciplinas de programao (strings, booleans, inteiros, etc.).
Existem, porm, atributos chamados de no primitivos. So aqueles compostos
de sees separadas, ou que promovem operaes que so usualmente associadas a eles prprios, tais como anlise sinttica ou validao; ou que tm outros
atributos; ou que so uma quantidade com uma unidade claramente definida.
59
e-Tec Brasil
Exemplo:
Tenho um conceito chamado Estudante em um determinado sistema. Aps
a reunio com os clientes, foram identificados dois atributos: Nome do
Estudante e Curso do Estudante. Porm, considerando que um curso no
um dado particular de estudantes (na verdade ele pode identificar vrias
outras coisas como: colgio, formao profissional, sala de aula, etc.),
podemos pensar se Curso do Estudante deve ser um atributo de Estudante
ou um novo conceito. A regra transformar em conceito tudo que deixa
dvida em relao sua classificao. Assim, Curso de Estudante ser criado
como um novo conceito em meu Modelo de domnio.
5.7 Associaes
A maioria dos sistemas que iremos desenvolver apresentar, no mnimo, alguns conceitos que tero algum tipo de relacionamento com outros conceitos.
Por exemplo, num sistema acadmico, um Professor leciona uma Disciplina.
Nesse caso, temos uma relacionamento entre Professor e Disciplina, e esse
relacionamento recebe o nome de leciona. Ainda, um Estudante escolhe
um Curso. O relacionamento escolhe. Outro exemplo: um Estudante faz
uma Prova. O relacionamento faz.
Podemos dizer que uma associao um relacionamento entre conceitos
que indica uma conexo com significado e interesse definido.
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 nica 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.
multiplicidade (ou
cardinalidade)
Define o nmero de associaes
que dois conceitos podem ter.
e-Tec Brasil
60
Anlise de Sistemas
Exemplo:
a) entre os conceitos Professor e Disciplina temos a associao leciona.
Dizemos ento que sua cardinalidade de 1 para muitos, porque um
professor pode lecionar muitas disciplinas;
b) entre os conceitos Estudante e Turma temos a associao pertence a.
Dizemos que cardinalidade dessa associao de 1 para 1, ou seja, um
estudante s pode pertencer a uma turma.
No existe nenhuma limitao quanto ao nmero de associaes que os
conceitos podem ter. A definio desse nmero depende do sistema em
questo. Em alguns sistemas podemos encontrar uma cardinalidade 1 para
muitos, enquanto em outros muitos para muitos para um mesmo par de
conceitos. Por exemplo: Estudante pertence a Turma em algumas instituies de ensino um estudante pode estar matriculado em vrias turmas (se
ele fizer mais de um curso) e, assim, a cardinalidade seria 1 para muitos,
porm, em outras instituies um estudante s pode pertencer a uma turma,
pois no se aceita estudante matriculado em mais de um curso.
Conceito
-Atributos
Figura 5.1: Smbolo de classe em UML
Fonte: Elaborada pelo autor
61
e-Tec Brasil
Na parte de cima, colocamos o nome do conceito; na parte do meio, colocamos os atributos do conceito. No modelo conceitual, a parte de baixo est
sempre em branco, pois nela colocamos os comportamentos do conceito
que no so analisados nesta etapa.
A Figura 5.2 mostra um exemplo em que observamos que o conceito Estudante tem dois atributos: nome e curso.
Aluno
-nome
-curso
Figura 5.2: Exemplo em UML de um conceito: Estudante
Fonte: Elaborada pelo autor
*
1..*
1..40
5
3, 5, 8
zero ou muitos;
um ou muitos;
um at quarenta;
exatamente cinco;
exatamente trs,
cinco ou oito;
e-Tec Brasil
62
Anlise de Sistemas
Mdico
Paciente
Medicamento
Equipe
63
e-Tec Brasil
atende
Mdico
1
1
Paciente
prescreve
*
Equipe
dirige
Medicamento
e-Tec Brasil
64
Anlise de Sistemas
Os autores Larman (2007) e Serafini e Cunha (2010) apontam algumas regras que merecem ser seguidas para no construirmos diagramas incorretos:
a) as associaes so menos importantes que os conceitos em um Modelo de domnio. Qualquer associao pode ser acrescentada facilmente
durante o projeto, porm a incluso de novos conceitos em fases mais
adiantadas de um projeto praticamente impossvel visto o trabalho que
teremos para refazer toda a anlise j feita em funo do primeiro modelo gerado;
b) No caia na tentao de escrever associaes em excesso, como forma
de se proteger de algum esquecimento. O que voc vai acabar obtendo
um diagrama confuso e complexo e que no vai te ajudar nas prximas
etapas. (SERAFINI; CUNHA, 2010, p. 66);
c) importante que seus clientes aprovem o modelo conceitual gerado.
Apresente e explique o modelo para todos os usurios envolvidos, a fim
de que possam entend-lo e se sentirem capazes de aprov-lo.
As aes a seguir so um roteiro para o desenho do diagrama do modelo
conceitual:
a) listar os conceitos candidatos, usando a identificao de substantivos
relacionados com os requisitos que esto sendo considerados;
b) desenhar os conceitos no modelo conceitual (modelo de domnio);
c) escolher um conceito e fixar seu lugar no diagrama (modelo) e colocar
graficamente os conceitos relacionados prximos a esse conceito;
d) encontrar, para cada conceito, as associaes entre ele e os demais conceitos;
e) acrescentar a associao (relacionamento) entre os conceitos com a escrita de nome significativo;
f) acrescentar na associao sua cardinalidade;
g) acrescentar os atributos necessrios para completar os requisitos de informao.
65
e-Tec Brasil
Resumo
Conhecemos o modelo conceitual e seus principais componentes nesta aula:
conceito, atributo e associao. Vimos que esse modelo nos apresenta uma
viso grfica e global da relao existente entre os conceitos de um sistema, alm de seus atributos. Estudamos tambm que as associaes entre os
conceitos podem ser uma ou vrias e que elas indicam a cardinalidade da
ocorrncia do relacionamento entre dois conceitos. Aprendemos como representar graficamente todos os elementos do modelo e ainda como montar
o diagrama final. Vimos tambm que podemos usar regras de levantamento
de requisitos e casos de uso para identificar os conceitos e seu comportamento. Na aula seguinte vamos aprender a usar as informaes que estudamos at agora (conceituais) para construo da arquitetura do sistema.
Atravs dela definiremos as partes que comporo nosso futuro software.
Atividades de avaliao
1. Explique o que uma associao e d um exemplo do relacionamento
entre os seguintes conceitos:
a) Pedreiro Casa: constri (EXEMPLO)
b) Professor Estudante: ensina (EXEMPLO)
c) Motorista Carro:
d) Banco Correntista:
e) Mdico Paciente:
f) Juiz Processo:
2. Desenhe um diagrama do modelo conceitual de um sistema hospitalar
que atenda pessoas para internao, contendo os seguintes conceitos e
associaes:
Conceitos:
a) Mdico
b) Paciente
c) Enfermeiro
e-Tec Brasil
66
Anlise de Sistemas
d) Medicamento
e) Enfermaria
f) Pronturio Mdico
g) Farmcia Hospitalar
Associaes:
1. atende
2. cuida
3. prescreve
4. est internado
5. escreve
6. fornece
Registre suas respostas num arquivo e poste-o no AVEA.
67
e-Tec Brasil
6.1 Introduo
Da mesma maneira que um arquiteto trabalha organizando os espaos para a
construo de uma casa, organizamos os componentes de software de maneira a distribuir da forma mais eficaz todos os componentes que faro parte do
nosso sistema. Existem vrias formas de se projetar um software, dependendo
de seu objetivo e funcionalidade. Assim, tambm na arquitetura de software
so definidos modelos que podem ser utilizados para que cada projeto esteja
com o formato mais adequado para seu uso.
Comeamos nesta aula o estudo da forma como nossos sistemas podem
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 preparando para as futuras fases de desenvolvimento de sistemas (codificao)
de forma planejada e que atenda s necessidades dos nossos clientes.
Arquitetura de Software
a forma como dividimos e
organizamos o sistema em blocos
reutilizveis que aumentam a
qualidade e reusabilidade do
software
Segundo Booch, Rumbaugh e
Jacobson (1997 apud LARMAN,
2007), uma Arquitetura de
software um conjunto de
decises significativas sobre a
organizao de um sistema, a
seleo dos elementos estruturais
e suas interfaces pelas quais o
sistema composto, juntamente
com seu comportamento, suas
colaboraes e sua composio.
69
e-Tec Brasil
Camada 2
Camada
Estrita
Camada
Relaxada
Camada 3
Camada 4
e-Tec Brasil
70
Anlise de Sistemas
Package
<<sbsystem>>
SUBSISTEMA
Web
subsistema
Consultas
71
e-Tec Brasil
GUI:Web
Dominio:Consultas
Observe que os exemplos acima so idnticos: mostram a mesma coisa. Ambos mostram os pacotes inseridos em seus respectivos subsistemas, porm
com representaes grficas distintas. Use a representao que achar mais
interessante em seus projetos.
Escalabilidade
a capacidade de manipular
uma poro crescente de
trabalho de maneira uniforme.
Estar preparado para crescer
(SERAFINI; CUNHA, 2010, p.78).
e-Tec Brasil
72
Anlise de Sistemas
Aplicao
Desktop
Aplicao
Desktop
Aplicao
Desktop
Servidor
Camada
Cliente
Camada
Servidor
73
e-Tec Brasil
Aplicao
Desktop
Aplicao
Desktop
Aplicao
Desktop
Servidor de
Aplicao
Servidor
Dados
Servidor
Dados
e-Tec Brasil
74
Anlise de Sistemas
Aplicao
PDA
Aplicao
Celular
Servidor de
Web
Servidor de
Web
Servidor de
Aplicao
Servidor de
Aplicao
Servidor de
Dados
Servidor de
Dados
Aplicao
Desktop
Navegador
Camada
Apresentao
Camada
WEB
Camada
Aplicao
Camada
de Dados
Web Service
uma soluo utilizada na
integrao de sistemas e na
comunicao entre aplicaes
diferentes. Com essa tecnologia
possvel que novas aplicaes
possam interagir com aquelas
que j existem e que sistemas
desenvolvidos em plataformas
diferentes sejam compatveis. Os
Web Services so componentes
que permitem s aplicaes enviar e receber dados em formato
XML. Cada aplicao pode ter a
sua prpria linguagem, que
traduzida para uma linguagem
universal, o formato XML.
75
e-Tec Brasil
Resumo
Nesta aula aprendemos importantes conceitos sobre arquitetura de software. A
partir do detalhamento das partes que compem conceitualmente o sistema,
chegamos aos pacotes e subsistemas. A arquitetura a organizao desses blocos de forma a aumentar a qualidade e eficcia dos sistemas.
Estudamos tambm os conceitos de caixa-preta e caixa-branca, que so utilizados quando estamos projetando a arquitetura de um software.
Na ltima seo desta aula vimos quais os tipos de arquiteturas so mais comumente usados no mercado: arquitetura em uma camada, arquitetura em duas
camadas, arquitetura em trs camadas e, por fim, arquitetura em n-camadas.
A seguir, conheceremos um dos diagramas mais importantes da UML, o
diagrama de classes. A partir do levantamento dos requisitos do sistema e
da definio do modelo conceitual e da arquitetura, estaremos prontos para
definirmos as classes pertencentes ao sistema a ser desenvolvido, bem como
suas relaes e mtodos.
Atividades de aprendizagem
1. Explique as diferenas entre os tipos de arquitetura em n camadas e SOA.
2. Cite os tipos de camadas existentes e explique as diferenas entre eles.
3. Quais as representaes grficas para o package e subsistemas de acordo
com a UML.
4. Aps estudar o conceito de escalabilidade, indique quais tipos de arquitetura
favorecem a aplicao desse conceito nos sistemas. Explique sua resposta.
Registre suas respostas num arquivo e poste-o no AVEA.
e-Tec Brasil
76
Anlise de Sistemas
7.1 Introduo
Aps os levantamentos feitos na fase inicial, quando conhecemos os requisitos 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 )
Figura 7.1: Nome da classe
Fonte: Serafini e Cunha (2010, p. 101)
77
e-Tec Brasil
Formato:
[visibilidade] nome do atributo: tipo
ou
b) uma associao (Figura 7.3):
Venda
Registradora2
-vendaAtual
e-Tec Brasil
78
Anlise de Sistemas
Formato:
[visibilidade] nome da operao (lista de parmetros): tipo de retorno
Operaes especiais que geralmente no aparecem nos diagramas:
a) criao de objetos (create): geralmente associada ao operador new.
b) operadores de acesso: so os mtodos get/set para acesso aos atributos.
Utilizamos a seguinte notao para a visibilidade de atributos e mtodos:
+: public
-: private
#: protected
Podemos utilizar palavras-chave para caracterizar nossas classes.
<<ator>>
<<interface>>
[abstract]
[ordered]
Utilizamos palavras-chave quando desenhamos as classes a mo, ou seja,
sem o apoio de um software.
Para mostrar objetos do tipo Interface podemos utilizar o smbolo (Figura 7.5):
Interface1
+operacao1()
79
e-Tec Brasil
<<interface>>
Interface2
+operacao1()
Figura 7.6: Interface (modelo 2)
Fonte: Serafini e Cunha (2010, p.104)
Venda1
-linhaDeItens : LinhaDeItensDeVenda[1..*]
Formato:
[visibilidade] nome do atributo: tipo [ocorrncias]
b) uma associao (Figura 7.8)
Venda2
-linhaDeItens 1..*
LinhaDeItensDeVenda
Figura 7.8:Associao
Fonte: Serafini e Cunha (2010, p. 105)
Comentrio UML
e-Tec Brasil
80
Anlise de Sistemas
, como mostrado na
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
-nome : String
-c : Curso
Curso
-nome
-cargaHoraria
81
e-Tec Brasil
Endereco
DescricaoProduto
Observe que, nesse caso, a representao grfica possui o losango NO preenchido. No exemplo da Figura 7.14, se eliminarmos o objeto LinhaPedido,
no devemos eliminar a DescrioProduto. Faz sentido no eliminarmos a
DescrioProduto pois esse objeto provavelmente dever ser utilizado por outros objetos. Em termos de programao Java, a diferena entre composio
e agregao sutil e pode ser ignorada.
e-Tec Brasil
82
Anlise de Sistemas
83
e-Tec Brasil
Resumo
Aprendemos nesta aula a representao grfica do diagrama de classes.
Apesar dos novos conhecimentos sobre cada elemento e conceito, importante lembrarmos sempre da forma correta de represent-los, porque
somente assim nossos diagramas podero ser lidos e entendidos por todos
que trabalham no desenvolvimento de um sistema.
Vimos que os conceitos estudados so todos provenientes da Orientao a
Objetos e representam a relao existente entre as classes, objetos e suas
especificaes.
Nosso prximo passo aprendermos como usar os padres de projetos de
acordo com os estudos e diagramas produzidos at esta aula.
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
e-Tec Brasil
84
Anlise de Sistemas
2. Desenhe um diagrama de classe (com apenas duas classes e um relacionamento entre elas) que apresente uma dependncia.
3. Desenhe um diagrama com quatro classes que apresente:
a) Mtodo,
b) Atributos,
c) Composio e Generalizao
Registre suas respostas num arquivo e poste-o no ambiente virtual.
85
e-Tec Brasil
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).
apanha livro
Livro
Estante
0..*
colaborao
aquilo que um objeto pode fazer/executar para outro objeto, de
modo que o caso de uso possa
ser realizado. Dessa forma, um
objeto ajuda o outro a executar
aquilo que a responsabilidade
do outro.
auxilia
Bibliotecario
verifica
responsabilidade
aquilo que um objeto deve ser
capaz de fazer/executar. Esse
conceito diz respeito s prprias
aes que um objeto deve fazer,
ou seja, so suas prprias responsabilidades dentro do sistema.
Catalogo
87
e-Tec Brasil
Padro, de uma forma geral, tudo aquilo que serve de soluo genrica
para problemas semelhantes. Os especialistas em qualquer profisso adotam
procedimentos padres para a soluo de problemas que ocorrem comumente em suas tarefas.
Vamos examinar algumas definies:
Os padres so sempre escritos (ou identificados) obedecendo s seguintes
informaes: nome do padro, problema que ele se prope resolver, soluo
apresentada pelo padro.
e-Tec Brasil
88
Anlise de Sistemas
contm
LinhaPedido
-quantidade
descrito por
0..*
CatalogoProduto
1
-descricao
-preco
89
e-Tec Brasil
contm
LinhaPedido
-quantidade
+calcularSubTotal()
CatalogoProduto
descrito por
0..*
-descricao
-preco
+obterPreco()
e-Tec Brasil
90
Anlise de Sistemas
: LinhaPedido
2: subTotal=obterSubTotal();
: LinhaPedido
2.1: Preco=obterPreco;
: CatalogoProduto
descrito por
Sntese:
Nome: Expert
Problema: Dado um comportamento, a que classe deve ser atribudo esse
comportamento?
Soluo: classe que contm a informao desejada. A classe especialista
(expert) na informao (LARMAN, 2007).
91
e-Tec Brasil
contm
-data
-hora
LinhaPedido
-quantidade
+calcularSubTotal()
+calcularTotal()
: LinhaPedido
Sntese:
Nome: Creator
Problema: Quem deve ser responsvel pela criao de instncias de uma
classe particular?
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;
c) A contm os dados de inicializao que devem ser passados a classe B.
(LARMAN, 2007)
e-Tec Brasil
92
Anlise de Sistemas
93
e-Tec Brasil
ControladorElevadores
+mover()
+atualizarLED()
+obterAndar()
Alarme
Pode acessar
+ligar()
Pode escrever
Pode
escrever
Log
Porta
+abrir()
+fechar()
+mostrar()
+limpar()
Sntese:
Nome: High Cohesion
Problema: Como manter a coeso alta?
Soluo: Cada classe deve representar uma nica coisa (ou abstrao) do
mundo real.
(LARMAN, 2007)
e-Tec Brasil
94
Anlise de Sistemas
95
e-Tec Brasil
Exemplos:
No nosso sistema de Pedidos, identificamos no modelo conceitual que Clientes possuem Pedidos.
No caso de uso Criar Pedidos, que classe deve ser responsvel por criar
um novo pedido?
O padro Creator sugere que a classe Cliente deva ser responsvel
(Figura 8.10):
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 informaes de inicializao necessrias: quantas linhas, que produtos, que quantidades, etc.). Essa soluo mostrada na Figura 8.11:
e-Tec Brasil
96
Anlise de Sistemas
1: criar
Pedido
1: criar
2: *[para cada linha] adiciona nova linha
2.1: *[para cada linha] attach
LinhaPedido
Pedido
97
e-Tec Brasil
Partida
+mostraResultados()
Figura 8.13: Classe Partida
Fonte: Serafini (2008, p.110)
e-Tec Brasil
98
Anlise de Sistemas
Essa soluo pode parecer boa, mas na realidade ela viola o padro Expert!
A classe Partida deve ser especialista em todas as informaes sobre as Partidas, e no ter a responsabilidade de mostrar os resultados das partidas na
Interface Grfica (GUI).
Geralmente, a incluso de informaes sobre a GUI, Bases de Dados, (ou qualquer outro objeto fsico) em nossas classes resultar em um projeto pobre.
Imagine se tivssemos 100 classes em nosso sistema e muitas dessas classes
devessem ler e escrever na tela do computador. O que aconteceria se os
requisitos do sistema mudassem e fosse necessrio alterar toda a interface
com o usurio? Teramos que alterar cada classe envolvida com a interface
com o usurio.
Fica muito melhor manter todas as classes do modelo conceitual puras
chamamos essas classes de Classes de Negcio ou Business Classes.
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.
O nome dessa classe geralmente :
<nomeDoCasoDeUSo>Handler.
Ento, em nosso projeto, precisamos criar uma classe FazerApostasHandler
(Figura 8.14):
Partidas
FazerApostaHandler
Apostador
Aposta
99
e-Tec Brasil
e-Tec Brasil
100
Anlise de Sistemas
Resumo
Com o estudo dos padres apresentados nesta aula, aprendemos a definir responsabilidades a objetos dentro de nossos projetos que garantiro a melhoria
constante de nossos softwares. Os padres apresentam solues bem-sucedidas para vrios problemas que comumente os desenvolvedores encontram no momento de definirem seus objetos e sua interao com os demais.
Os padres propostos por Larman (2007) so conhecidos pelos desenvolvedores de todo o mundo e representam no meio profissional uma excelente soluo para situaes que enfrentamos no trabalho dirio de projetar sistemas.
Alm desses padres, outros tambm so conhecidos no mercado profissional: so os padres do GoF (Group of Four, na lngua portuguesa,
Grupo dos Quatro). So quatro autores de outros padres que atendem
tambm a outras classes de problemas de projeto, apresentando solues
muito interessantes para a construo de software de qualidade e efetividade. Seus padres so apresentados em Gamma et al. (2000).
Atividades de aprendizagem
1. Explique qual o tipo de problema que o padro Creator aborda e indique qual a soluo que ele prope.
2. Explique a diferena entre Responsabilidade e Colaborao. Cite um
exemplo de cada conceito.
3. Escolha um dos padres GRASP e desenhe um diagrama de classe (quatro classes no mnimo) representando uma soluo proposta por esse
padro escolhido.
4. Pesquise na internet a diferena entre os conceitos de Acoplamento e
Coeso, e indique se so relacionamentos indicados ou no para estarem
em nossos projetos de software.
Registre suas respostas num arquivo e poste-o no ambiente virtual.
101
e-Tec Brasil
Referncias
BERTALANFY, Ludwig Von. Teoria geral dos sistemas: fundamentos, desenvolvimento
e aplicaes. Trad. Francisco M. Guimares. 3. ed. Petrpolis: Vozes, 2008.
Diagramas de caso de uso. Disponvel em: <http://www.youtube.com/watch?v=fGAeF8HCjw&feature=related>. Acesso em: 19 set. 2011.
Diagrama de classes. Disponvel em: <http://www.youtube.com/watch?v=F4fRIvPuZU8>.
Acesso em: 19 set. 2011.
FRANCISCO FILHO, Egildo. Entrevistas: tcnicas e dinmicas de grupo. So Paulo:
Qualitymark, 2008.
FOWLER, Martin. UML essencial: um breve guia para a linguagem-padro. So Paulo:
Bookman, 2004.
GAMMA, Erich et al. Padres de projeto: solues reutilizveis de software orientado a
objetos. Trad. Luiz A. Meirelles Salgado. Porto Alegre: Bookman, 2000.
Introduo a UML 1a parte. Disponvel em: <http://www.youtube.com/watch?v=hf
N6n5fJfLc&feature=related>. Acesso em: 19 set. 2011.
LARMAN, Craig. Utilizando UML e padres: uma introduo anlise e ao projeto
orientados a objetos e ao desenvolvimento iterativo. Trad. Rosana Vaccare Braga et al. 3.
ed. Porto Alegre: Bookman, 2007.
MARTINELLI, D. P.; VENTURA, C. A. A. (Org.). Viso sistmica e administrao:
conceitos, metodologias e aplicaes. So Paulo: Saraiva, 2006.
SERAFINI, J. I. Anlise de sistemas. Serra: CEFETES, 2008.
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. Disponvel em: <http://www.youtube.com/watch?v=d_
c8xvHtdHo>. 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.
e-Tec Brasil
102
Anlise de Sistemas
103
e-Tec Brasil
Anlise de Sistemas
Luiz Egidio Costa Cunha
Jos Incio Serafini
Tempo
Aplicao
Desktop
Completo
Anlise
Aplicao
Desktop
Projeto
Servidor
Teste
Implementao
Aplicao
Desktop
Camada
Cliente
Camada
Servidor