Análise e Projeto Orientado A Objetos
Análise e Projeto Orientado A Objetos
Análise e Projeto Orientado A Objetos
PROJETO
ORIENTADO A
OBJETOS
GRADUAÇÃO
Unicesumar
Reitor
Wilson de Matos Silva
Vice-Reitor
Wilson de Matos Silva Filho
Pró-Reitor de Administração
Wilson de Matos Silva Filho
Pró-Reitor de EAD
Willian Victor Kendrick de Matos Silva
Presidente da Mantenedora
Cláudio Ferdinandi
SEJA BEM-VINDO(A)!
Caro(a) Aluno(a)! Seja bem-vindo(a) à disciplina de Análise e Projeto Orientado a Ob-
jetos (OO). Sou o professor Déverson Rogério Rando. Esta disciplina abordará vários
aspectos relacionados à análise e projeto de sistemas orientados a objetos, utilizando
como notação a UML.
Apresento a você o livro que conduzirá seus estudos, auxiliando no aprendizado de aná-
lise e projeto orientado a objetos com a UML. O livro encontra-se estruturado em cinco
unidades e cada uma conta com uma seção Reflita, Saiba Mais, Vídeos e Atividades de
Autoestudo. A seção Reflita apresenta frases que te remetem ao conteúdo estudado
na disciplina e o fazem pensar um pouco mais sobre ele. A seção Saiba Mais conta com
links para artigos que complementam o aprendizado sobre análise de projetos. A seção
Vídeo apresenta links para vídeos. E, por último, a seção Atividades de Autoestudo ex-
pressa um conjunto de questões sobre o conteúdo abordado.
A unidade I apresenta os conceitos iniciais sobre a análise e projetos orientados a ob-
jetos. Estudaremos como surgiu e como ocorreu a evolução dos métodos orientados a
objetos. Abordaremos, também, as características desses principais métodos. Conhece-
remos os conceitos básicos que envolvem a orientação a objetos, para dar subsídio nos
capítulos subsequentes. E, por fim, veremos os principais diagramas da UML utilizados
na documentação de software.
Na unidade II, estudaremos as fases que compreendem a análise e o projeto de um sof-
tware. Entraremos em contato com dois dos modelos de processos, cascata e evolucio-
nário, veremos as vantagens e desvantagens da utilização de cada um desses métodos.
Abordaremos, também, os requisitos de software e vamos conhecer os procedimentos
mínimos para a obtenção de um software de qualidade. Encerraremos a unidade falan-
do sobre a importância da construção de casos de uso no levantamento de requisitos,
bem como a notação necessária para a construção de diagramas de casos de uso.
A unidade III está toda dedicada à confecção do Diagrama de Classes responsável por
demonstrar a estrutura estática do sistema. Conheceremos a notação para o diagrama
de classes em detalhes. Abordaremos os conceitos e a assinatura da declaração de atri-
butos e métodos. Veremos como ocorrem as ligações entre as classes e como definir a
multiplicidade entre elas. Discutiremos, ainda, sobre as várias formas de se associar as
classes, sejam elas unária, binária, ternária, associativa, agregação ou generalização.
Na unidade IV, avançaremos conhecendo mais três diagramas, essenciais na análise e
projeto OO, que utilizaremos para refinar o diagrama de classes que representa a estru-
tura do sistema. O primeiro diagrama que veremos nessa unidade é o de sequência, que
tem como objetivo estudar as interações entre os objetos, considerando a dimensão
tempo. O segundo diagrama que veremos é o de estados, que tem como objetivo es-
pecificar o comportamento das classes mais complexas utilizando máquinas de estado.
Já o terceiro diagrama é o de comunicação, que contém as mesmas informações que o
diagrama de sequência, porém não considera o tempo e sim a ordem da comunicação.
APRESENTAÇÃO
UNIDADE I
15 Introdução
38 Considerações Finais
UNIDADE II
CASOS DE USO
47 Introdução
53 Modelos de Processo
58 Requisitos de Software
71 Considerações Finais
SUMÁRIO
UNIDADE III
DIAGRAMA DE CLASSES
77 Introdução
78 Diagrama de Classes
81 Atributos
83 Métodos
85 Multiplicidade
88 Associação Unária
89 Associação Binária
90 Classe Associativa
91 Agregação
94 Generalização
98 Herança Múltipla
99 Considerações Finais
11
SUMÁRIO
UNIDADE IV
109 Introdução
UNIDADE V
ESTUDO DE CASO
137 Introdução
173 Conclusão
175 Referências
Professor Me. Déverson Rogério Rando
INTRODUÇÃO AO ESTUDO
I
UNIDADE
DE ORIENTAÇÃO A OBJETOS
Objetivos de Aprendizagem
■■ Entender a importância da análise e projeto.
■■ Conhecer a evolução dos métodos OO.
■■ Compreender as características dos métodos OO.
■■ Entender os diferentes termos utilizados em OO.
■■ Conhecer os principais diagramas da UML.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
■■ Introdução à Orientação a Objetos
■■ Evolução dos métodos OO
■■ Conceitos básicos de OO
■■ Principais diagramas da UML
15
INTRODUÇÃO
Introdução
I
ANÁLISE E PROJETO
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
esforço colaborativo que abrange analistas de sistemas e usuários.
Os analistas procuram obter, a partir dos usuários, em um processo gradual
e cumulativo, o maior conhecimento possível acerca do domínio do problema
e respectivo ambiente.
De acordo com Sommerville (2011), podemos chamar “análise de sistemas”
de “engenharia de requisitos”. Acrescentar o termo engenharia implica dizer que
técnicas sistemáticas deverão ser utilizadas para assegurar que os requisitos do
sistema sejam consistentes, relevantes e completos.
A análise de sistemas é uma atividade de suma importância no processo de
desenvolvimento de sistemas, por ser uma etapa inicial e cujas falhas terão efeitos
em cadeia nas etapas subsequentes, assim como no produto final. A determi-
nação incorreta dos requisitos levará à obtenção e disponibilização de sistemas
computacionais inadequados.
Resumindo: a análise é a solução conceitual dada ao problema. Marca o iní-
cio da definição informática, mas sem levar em conta detalhes da implementação,
tais como a linguagem e o sistema gerenciador de banco de dados a serem uti-
lizados. Preocupa-se, principalmente, com as classes do domínio do problema
e suas relações e, também, com os casos de uso.
Se, por um lado, a análise é a solução conceitual, por outro, o projeto con-
siste na solução computacional aplicada ao problema. Dizer onde acaba a análise
e inicia o projeto é muito complicado, uma vez que o projeto é o resultado de
refinamentos sucessivos do modelo conceitual de análise.
A Orientação a Objetos fez com que fosse alterado o enfoque necessário
para desenvolver um sistema, enquanto na programação estruturada tínhamos
nitidamente uma visão sequencial e bem dividida, como os programas, que exe-
cutam determinados processos e tratam determinados dados, na orientação a
objetos passamos a visualizar classes responsáveis por atributos, com operações
criadas para tratar esses atributos, e a execução das atividades dos sistemas passa
a depender da interação dessas classes.
ANÁLISE E PROJETO OO
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
de regras e modelos que auxiliam o analista a levantar e modelar os requisitos
dos usuários que o sistema deve atender.
Nos anos 50, quando inicia a informática, desenvolver software era um pro-
cesso informal, sem técnicas de projeto, conceito de reusabilidade, controle
de qualidade ou documentação. Neste artigo, Marcos Rodrigues Pinto e Sér-
gio Cosme Noronha C. Filho fazem um Estudo comparativo sobre a aborda-
gem tradicional de desenvolvimento de sistemas e a orientação a objetos.
Confira o texto completo no link disponível em: <http://www.dcc.ufrj.br/~s-
chneide/es/2002/1/g11/index.htm>. Acesso em: 28 jul. 2015.
Fonte: o autor.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
UML-Unified Method Language (2000): abrange as fases de levantamento
de requisitos, análise, projeto e implementação. Fusão dos métodos de James
Rumbaugh/OMT, Grady Boock e Ivar Jacobson. A fusão inicia com o trabalho
de James Rumbaugh e Grady Booch, os dois metodistas que ganharam maior
popularização; os quais se juntaram para criar um método comum por meio de
pontos fortes ao público em 1995. Em seguida, em meados de 1996, Ivar Jacobson
integrou-se ao grupo e lançaram a UML versão 0.9. A partir daí, criaram forças
com cooperação da OMG (Object Management Group), em julho de 1997, con-
siderado um padrão mundial.
A UML sugere fortemente a adoção de casos de uso (use cases) como dire-
cionador de projetos de software, a utilização de diagramas de interação para
identificação de objetos e uma série de outros conceitos.
CONCEITOS BÁSICOS DE OO
Conceitos Básicos De OO
I
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
■■ Classe: representa a ABSTRAÇÃO de um conjunto de OBJETOS do mundo
real que possui comportamentos e características comuns.
■■ Operação: é uma ordem que faz um OBJETO executar uma ação. As ope-
rações são tudo o que os OBJETOS de uma CLASSE fazem e nada além
do que esses objetos podem fazer.
Figura 9: Operação
Fonte: o autor.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Figura 12: Parâmetro
Fonte: o autor.
Conceitos Básicos De OO
I
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Quadro 1: Declaração de um método
Fonte: o autor.
DIAGRAMAS DE COMPORTAMENTO
Os diagramas de comportamento são utilizados para descrever o sistema mode-
lado já em execução. São utilizados para especificar, visualizar, documentar e
construir os aspectos dinâmicos de um sistema, ou seja, é a representação das
partes que sofrem alterações.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Iniciaremos, então, pelo Diagrama de Casos de Uso (comportamento), utilizado
na análise de requisitos. Esse diagrama acompanha o software desde o seu iní-
cio até a conclusão.
Para conhecermos o conceito de caso de uso, temos que conhecer, primeira-
mente, o ator. Este pode ser uma pessoa (usuário), um sistema ou uma máquina.
O ator é quem realiza as atividades e sempre atua sobre um caso de uso.
O diagrama de caso de uso da figura 21 modela o comportamento dos atores
no sistema de uma biblioteca, no exemplo, o diagrama mostra os atores ALUNO
e BIBLIOTECÁRIA, representados pelo stick man (homem palito) e suas res-
pectivas ações descritas nas elipses.
DIAGRAMA DE SEQUÊNCIA
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
DIAGRAMA DE ESTADOS
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Figura 23: Diagrama de Estado
Fonte: o autor.
Não são todas as classes do sistema que apresentam mais de um estado. O diagrama
de estado abaixo mostra todos os estados do exemplar no momento empréstimo,
o início do estado é marcado pelo círculo e o fim é mercado pelo duplo círculo.
DIAGRAMA DE COMUNICAÇÃO
DIAGRAMA DE ATIVIDADES
DIAGRAMAS DE ESTRUTURA
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
CLASSES
DIAGRAMA DE OBJETOS
DIAGRAMA DE COMPONENTES
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Figura 28: Diagrama de Componentes
Fonte: o autor.
DIAGRAMA DE IMPLANTAÇÃO
DIAGRAMA DE PACOTES
CONSIDERAÇÕES FINAIS
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Nesta unidade, aprendemos que a análise é a solução conceitual dada ao problema.
Ela marca o início da definição informática, preocupa-se, principalmente, com as
classes do domínio do problema e suas relações e, também, com os casos de uso.
Já o projeto é o resultado do refinamento da análise e considera os detalhes
da implementação, tais como, a linguagem a ser utilizada e o sistema gerencia-
dor de banco de dados.
Você se familiarizou com o conceito de Orientação a Objetos, ou simples-
mente OO, que é um novo paradigma para o desenvolvimento de aplicações, ou
seja, é uma estratégia de desenvolvimento de software que organiza o software
como uma coleção de objetos, que contém tanto a estrutura dos dados como o
comportamento deles.
Verificamos que os métodos de análise e projeto orientado a objetos surgiram
assim que as linguagens de programação OO começaram a estabilizar, sendo que
um dos primeiros métodos foi o modelo OOSA, proposto por Shlaer e Mellor,
em 1988, e o Wirfs-Brock, lançado em 1989, pelo grupo de pesquisa da Smalltalk.
Por meio do estudo da evolução dos métodos, podemos perceber que UML-
Unified Modeling Language é a fusão dos métodos de James Rumbaugh/OMT,
Grady Boock e Ivar Jacobson. A fusão inicia com o trabalho de James Rumbaugh
e Grady Booch, em seguida, em meados de 1996, Ivar Jacobson integrou-se ao
grupo e lançaram a UML versão 0.9. A partir daí, criaram forças com a coope-
ração da OMG (Object Management Group) em julho de 1997, considerado um
padrão mundial.
Estudamos as características dos principais métodos OO e foi possível verificar
que a maioria das propostas abrangem as fases de análise, projeto, implementação
uma visão geral sobre a Orientação a Objetos. Agora, você vai conhecer as eta-
pas da análise e a notação para o diagrama de caso de uso.
CONSIDERAÇÕES FINAIS
1. Na análise e projeto estruturados, o processo a ser informatizado é visto como
um conjunto de funções com dados de entrada, processamento e dados de saí-
da, ou seja, a ênfase está em funções que agem sobre dados. Diferentemente da
análise e projeto estruturados, na orientação a objetos, o processo a ser infor-
matizado é visto como um conjunto de objetos que interagem para realizar as
funções. Sabendo disso, quais as vantagens do modelo OO?
2. A maior parte dos métodos OO passaram a se tornar estáveis na década de 90,
com a fusão das metodologias de Grady Boock, James Rumbaugh e Ivar Jacob-
son e a criação da UML, que se baseou, também, em outras metodologias, como
a de Shlaer-Mellor. Diante do exposto, quais as fases comuns aos métodos pro-
postos pelos autores citados?
I. A UML – Unified Modeling Language abrange as fases de levantamento
de requisitos, análise, projeto e implementação. É dada como a fusão dos
métodos de James Rumbaugh/OMT, Grady Boock e Ivar Jacobson. Quais
dos conceitos elencados nas assertivas são próprios da orientação a ob-
jetos?
II. Objetos: qualquer coisa concreta ou abstrata com existência perceptível
no mundo real.
III. Classes: ABSTRAÇÃO de um conjunto de OBJETOS.
IV. Atributo: característica particular possuída por todos os OBJETOS de uma
CLASSE.
5. Chave Primária: identifica unicamente um objeto.
Está(ão) correta(s) somente:
A. ( ) I.
B. ( ) I e II.
C. ( ) I, II e III.
D. ( ) III e IV.
E. ( ) I, II, III e IV.
Para aprofundar os conhecimentos sobre OO, leia o artigo intitulado “A história de UML e seus
diagramas”. Esse artigo descreve a história de UML desde a década de 1990 até o momento
atual. Apresenta-se a organização dos treze diagramas de UML, classificando-os em diagramas
estruturais e comportamentais. Os quatro documentos pertencentes à especificação também são
mencionados e explicados.
O artigo encontra-se disponível em: <https://projetos.inf.ufsc.br/arquivos_projetos/projeto_721/
artigo.tcc.pdf>. Acesso em: 28 jul. 2015.
Material Complementar
Professor Me. Déverson Rogério Rando
II
UNIDADE
CASOS DE USO
Objetivos de Aprendizagem
■■ Conhecer as fases da análise e projeto.
■■ Entender os modelos de processo.
■■ Compreender como ocorre o levantamento de requisitos.
■■ Diferenciar requisitos funcionais de não funcionais.
■■ Conhecer o diagrama de Caso de Uso.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
■■ Fases da análise e do projeto
■■ Modelos de processo
■■ Requisitos de software
■■ Diagrama de Casos de Uso
47
INTRODUÇÃO
cialmente requeria.
Entenderemos e conheceremos dois modelos de processos de software,
entre os “N” processos existentes. Citarei, aqui, o modelo em cascata e o evo-
lucionário, em cascata por ser o primeiro modelo de processo a ser utilizado e
evolucionário por ser um dos modelos mais utilizados, principalmente na fase
de aprendizagem do problema.
Veremos que os requisitos de software são objetivos ou restrições estabele-
cidas por clientes e usuários do sistema que definem as diversas propriedades
dele. Aprenderemos como identificar os “requisitos funcionais”, que definem as
funções do sistema, e os “requisitos não funcionais”, que definem outros tipos
de características que o sistema deverá possuir.
Ainda, veremos a importância do levantamento de requisitos para o desen-
volvimento de software. Aprenderemos que a definição de requisitos pode se
utilizar de uma narrativa ou de representações gráficas. Por meio dessas defini-
ções, pode ser elaborado o documento preliminar de requisitos.
E, finalmente, conheceremos o diagrama de Caso de Uso, em que enten-
deremos a notação e o objetivo do caso de uso na fase de análise do software.
Diagramas de casos de uso são utilizados para representar, de forma panorâmica,
os requisitos funcionais de um sistema do ponto de vista do usuário.
Então, o que estamos esperando? Vamos ao trabalho.
Boa leitura a todos.
Introdução
II
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
■■ Executar análise econômica e técnica.
■■ Atribuir funções ao hardware, software, pessoas, banco de dados e aos
demais elementos do sistema.
■■ Estabelecer as restrições de prazo e de custo.
■■ Criar uma definição de sistema que constitua a base para todo o traba-
lho subsequente.
A seguir, detalharei cada uma dessas etapas de suma importância para a produ-
ção de um software de qualidade.
CASOS DE USO
49
IDENTIFICAÇÃO DA NECESSIDADE
Vamos comentar cada uma dessas etapas começando pela identificação da neces-
sidade, que é o ponto de partida na evolução de um sistema. Nessa etapa, são
definidas as metas globais do sistema, respondendo algumas perguntas-chave:
■■ Quais informações serão produzidas?
■■ Quais informações devem ser fornecidas?
■■ Que funções e desempenho são exigidos?
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Ainda nessa etapa, após a definição das metas, o analista deve avaliar:
■■ Existe tecnologia para construir o sistema?
■■ Qual o custo de produção e tempo necessário para conclusão?
Caso o novo sistema seja um produto a ser desenvolvido para venda a muitos
clientes, o analista ainda deve avaliar o seguinte:
■■ Qual é o mercado em potencial para o produto?
■■ Como esse produto se compara com os produtos dos concorrentes?
ESTUDO DE VIABILIDADE
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
projeto provavelmente será abandonado.
Análise
A coleção exata dos dados é essencial para uma análise completa de um sis-
tema, portanto, o analista deve considerar os seguintes objetivos (SOMMERVILE,
2011):
■■ Entender os objetivos do sistema (o que o administrador/usuário espera
do sistema).
■■ Entender as exigências do sistema (o que processar e que saídas produzir).
■■ Entender que os objetivos e exigências são satisfeitos por meio de cui-
dadosa análise.
■■ Entender as áreas-problema do sistema.
Para tanto, são utilizadas técnicas para o levantamento de dados, tais como:
■■ Estudo dos manuais de procedimentos.
■■ Análise de formulários.
■■ Entrevista.
■■ Questionário.
■■ Observação.
CASOS DE USO
51
Projeto
Após a análise, ou levantamento de requisitos, ou, ainda, engenharia de
requisitos (como quiser chamar), vem o projeto que é a solução informática
dada ao problema.
De acordo com Sommerville (2011), o projeto de software descreve a estrutura
do software que será implementado. Nele estão contidos os dados e a interface
entre os componentes do sistema. Na primeira versão do projeto, ainda não é
possível detalhar completamente o sistema, pois, ao se elaborar modelos com
diferentes níveis de abstração, é possível detectar problemas nos níveis anterio-
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
res. A cada nível seguinte, são criados modelos mais detalhados, diminuindo
cada vez mais a abstração.
O projeto de software é importante para formalizar as regras de negócio do
sistema, melhorando a comunicação entre o cliente e o programador.
Implementação
É neste estágio de desenvolvimento de software no qual se cria uma versão
executável do software, utilizando as ferramentas para desenvolvimento defini-
das no projeto.
A implementação pode iniciar após o término do projeto, ou pode acontecer
de forma paralela ao projeto, tudo depende do modelo de processo escolhido.
Implantação
A implantação corresponde à fase na qual o software será entregue ao cliente.
Na fase do estudo da viabilidade, foi levantada pelo analista a viabilidade
técnica, em que se buscou verificar se o projeto pode ser desenvolvido e imple-
mentado usando os recursos existentes: computadores, periféricos, sistema
operacional, dentre outros, e, também, se existe pessoal competente à disposi-
ção para desenvolver o sistema em questão.
Todo o projeto é construído com base no estudo de viabilidade técnica,
utilizando ferramentas suportadas pelo hardware e entendida pelos usuários,
portanto, os riscos da implantação não funcionar são minimizados no projeto.
O fator de maior preocupação nesta fase é justamente o período que será
necessário para a adaptação do usuário com o novo sistema, pois toda mudança
gera transtornos, na maioria das vezes, o usuário está acostumado a executar suas
tarefas de determinada forma e a mudança é vista com restrição.
Manutenção
A manutenção é o processo de modificar o sistema desenvolvido depois que
ele é colocado em operação, é a fase do ciclo de vida do software que dura mais
tempo, até que o sistema deixe de ser utilizado.
O software é continuamente modificado ao longo de seu tempo de duração,
em resposta a requisitos em constante modificação e às necessidades do cliente.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
As manutenções não dizem respeito somente à correção do software por
motivos que não foram possíveis observar no momento da análise, projeto ou
mesmo na implementação.
As manutenções podem ser adaptativas, que têm o objetivo, como o próprio
nome diz, de adaptar algumas tarefas ou funções para o ambiente de implanta-
ção. As manutenções também podem ser evolutivas, que têm como objetivo a
inserção de novos módulos no sistema.
CASOS DE USO
53
MODELOS DE PROCESSO
MODELO CASCATA
Modelos De Processo
II
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
atenda a sua especificação.
A quarta fase é a Integração e teste de sistemas; nesse estágio, as unidades
de programa ou programas individuais são integrados e testados como um sis-
tema completo, a fim de garantir que os requisitos de software foram atendidos.
A quinta fase é a Operação e Manutenção, normalmente, essa é a fase mais
longa do ciclo de vida. O sistema é instalado e colocado em operação. A manu-
tenção envolve corrigir erros que não foram descobertos em estágios anteriores
do ciclo de vida ou aumentar as funções desse sistema à medida que novos requi-
sitos são descobertos.
Nesse modelo de processo em cascata, pressupõe-se que o domínio do pro-
blema foi inteiramente compreendido, portanto, é o modelo indicado quando
conhecemos por inteiro a regra de negócio do software.
MODELO EVOLUCIONÁRIO
CASOS DE USO
55
Modelos De Processo
II
LINGUAGEM DE MODELAGEM
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
A Linguagem de modelagem é uma parte muito importante do método.
Corresponde ao ponto principal da comunicação. Se uma pessoa quer conver-
sar sobre o projeto com outra pessoa, é por meio da linguagem de modelagem
que elas se entendem.
A UML define uma notação e um meta-modelo. Todos os elementos de
representação gráfica vistos no modelo (retângulo, setas, o texto etc.) são a nota-
ção, esta é a sintaxe da linguagem de modelagem. A notação do diagrama de
classes define a representação de itens e conceitos, tais como: classe, associação
e multiplicidade.
Visto isso, é possível concluir que, independente do modelo de processo de
software que você escolheu, é de suma importância que o domínio do problema
seja entendido por todos da equipe de desenvolvimento, inclusive o cliente.
A charge a seguir ilustra de forma lúdica o que ocorre em um projeto de soft-
ware em que a equipe de desenvolvimento e o cliente não se entendem.
CASOS DE USO
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Modelos De Processo
57
II
Pense em quais habilidades o analista deve possuir, uma vez que lida com
vários grupos de usuários. Além de se preocupar com o desenvolvimento e
com todos os componentes do sistema.
Fonte: o autor.
REQUISITOS DE SOFTWARE
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Agora que já sabemos a importância da análise e do projeto na produção de um
software, vamos conhecer os procedimentos mínimos necessários para a obten-
ção de um software de qualidade.
Para tal, precisamos fazer uma engenharia de requisitos, mas o que é enge-
nharia de requisitos? Vamos por partes, então. O termo “ENGENHARIA” permite
dizer que é utilizado um processo sistemático na definição do software. Nesse
contexto, a engenharia de requisitos tem como objetivo compreender o sistema,
ou seja, preocupa-se com “o que fazer” e não com o “como fazer”.
As principais atividades da engenharia de requisitos são (SOMMERVILE,
2011):
■■ Especificar o problema (elicitar).
■■ Compreender o problema (analisar).
■■ Definir uma proposta (modelo válido).
■■ Atualizar requisitos (gerenciar).
CASOS DE USO
59
DOMÍNIO
E o que é domínio? Para entender melhor, vamos imaginar que você foi contra-
tado para desenvolver um software em uma determinada Casa de Carnes. Do
lado direito da Casa de Carnes, existe uma farmácia, do lado esquerdo, um mer-
cado, atrás, uma lanchonete e, em frente, uma igreja.
Nesse caso, o domínio do seu problema é a Casa de Carnes, os demais esta-
belecimentos estão na fronteira do seu problema, portanto, não fazem parte dele.
Creio que, dessa forma, fica fácil compreender o que é o domínio do problema.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
REQUISITOS
Requisitos De Software
II
Especificação de requisitos:
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
dos na representação dos arquivos externos.
CASOS DE USO
61
conflitam com suas respectivas necessidades não estão corretas. Apenas o usuário
pode determinar se a declaração está correta, por meio de inspeções. Inspeções
em que não há a participação do usuário pode tornar o documento de requisi-
tos um documento de adivinhações.
Característica 2 - precisam ser possíveis: você precisa ser hábil para imple-
mentar cada requisito declarado, observando os recursos e limitações do sistema
e ambiente. Para evitar requisitos impossíveis, trabalhe com o pessoal técnico o
documento de requisitos, checando o que é possível e o que não é possível fazer,
avaliando custos e viabilidade.
Característica 3 - precisam ser necessários para o projeto: cada declaração de
requisito deve documentar apenas as necessidades do cliente ou qualquer outra
necessidade que exija atender a um requisito externo, ou uma interface externa,
ou, ainda, um padrão. Você pode pensar que “necessário” significa cada requi-
sito que tem origem na fonte que tem autoridade para determiná-lo.
Característica 4: é necessário definir prioridades: atribua uma prioridade
de implementação para cada requisito ou, ainda, defina casos de uso que auxi-
liem na indicação do quanto é essencial um requisito para o produto. Clientes
devem ter sua parte na responsabilidade do estabelecimento de prioridades. Se
todos os requisitos forem igualmente prioritários, você deve ter a habilidade de
definir conjuntamente com o cliente a prioridade de cada requisito.
Característica 5: não podem ser ambíguas: cada declaração deve ser expli-
citada de maneira que permita somente uma interpretação. Linguagem natural
é altamente propensa a ambiguidades. Elimine termos subjetivos, como ami-
gável ao usuário, fácil, simples, rápido, eficiente, vários, aperfeiçoar, maximizar
Requisitos De Software
II
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
que poderíamos chamar de Documento Preliminar de Requisitos, deverá sofrer
um processo de análise.
A fase de Análise envolve uma série de atividades (SUMMERVILE, 2011):
■■ Validação e Verificação.
■■ Análise de Viabilidade.
■■ Resolução de conflitos.
■■ Definição de prioridade.
CASOS DE USO
63
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Figura 33: 0 Ator
Fonte: o autor.
Atores
Começaremos, então, pelo homem palito, que representa um ator no meu
sistema, este ator pode ser uma pessoa, outro sistema ou uma entidade externa
ao sistema.
Como encontrar os atores para um sistema? Usando as seguintes dicas:
■■ Examine o problema procurando por pessoas ou sistemas do entorno.
■■ Faça as seguintes perguntas:
• Quais as pessoas ou departamentos interessados em um determinado requi-
sito funcional?
• Quem irá suprir o sistema com informações e quem irá receber informa-
ções do sistema?
• Quais os recursos externos utilizados pelo sistema?
• Uma pessoa desempenha diferentes papéis?
• O sistema interage com outros sistemas já existentes?
Essas dicas também não garantem que o ator foi bem escolhido da primeira vez,
pois esse é um processo iterativo, a primeira tentativa dificilmente será a definitiva.
CASOS DE USO
65
Casos de Uso
A coleção de casos de uso representa todos os modos de execução do sis-
tema do ponto de vista do usuário. Um caso de uso é uma sequência de ações
que produz um resultado significativo para um ator.
Em um caso de uso, são necessárias as seguintes definições:
■■ As tarefas de cada ator.
■■ Quais informações o ator obtém do sistema.
■■ Quem fornece as informações.
■■ Quem captura as informações.
■■ Se algum ator precisa ser informado sobre eventos produzidos pelo sistema.
■■ Se existem eventos externos que devem ser notificados ao sistema.
A elipse é a notação para os casos de uso ou use case, as duas denominações são
utilizadas. Um caso de uso representa uma atividade que o ator realiza.
O caso de uso necessita de uma descrição, porém não há descrição padrão defi-
nida pela UML. Em geral, o diagrama é bastante informal e sua estruturação
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
(relação entre casos) não deve ser levada ao extremo.
É importante ressaltar que o diagrama de casos de uso é uma forma de visua-
lizar os casos e não de descrevê-los detalhadamente.
Sendo assim, o diagrama por si só não é suficiente. Os casos de uso devem
vir acompanhados de uma descrição onde normalmente relacionamos os seguin-
tes itens:
■■ Nome.
■■ Descrição.
■■ Requisitos funcionais providos pelo caso de uso.
■■ Restrições, tais como pré e pós-condições.
■■ Pré-condições: define o que deve ser verdadeiro para que o caso de uso
seja iniciado. Por exemplo, em um sistema para seguro de veículo, para o
caso de uso Fazer Seguro Veicular, uma pré-condição é apresentar a CNH.
■■ Pós-condições: o que se torna verdadeiro pela execução do caso de uso.
No mesmo caso de uso acima, o sistema pode se encontrar em um dos
seguintes estados: seguro concedido ou seguro não concedido por repro-
vação da CNH.
■■ Invariantes: condições que são verdadeiras durante a execução do caso
de uso.
■■ Fluxos de eventos: descrição de interações entre atores e sistema que ocor-
rem durante a execução do caso de uso.
■■ Outras informações: data, autor etc.
CASOS DE USO
67
Relações de dependência
As relações de dependência são representadas por uma seta tracejada, a seta
parte do caso de uso que depende de outro em algum momento, o diagrama da
figura 35 nos diz que para o cadastro de aluno é necessária conclusão do cadas-
tro de pessoa.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Vale lembrar que o diagrama de casos de uso é apenas um panorama visual das
funcionalidades do sistema, é necessária uma descrição textual para detalhar os
casos de uso.
Vamos ilustrar essa documentação por meio do caso de uso para resolver
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
expressões aritméticas.
CASOS DE USO
69
Fornece a Expressão
{Valida a expressão}
Avalia se a expressão é sintaticamente correta (A1)
{Calcula valor}
Calcula o valor da expressão
{Mostra o resultado}
Informa o resultado da expressão
{Fim}
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
ou um comportamento alternativo complexo que tornaria o fluxo básico muito
longo ou de difícil compreensão.
CASOS DE USO
71
CONSIDERAÇÕES FINAIS
Nesta unidade, aprendemos que o papel da análise é obter a partir dos usuários,
em um processo gradual e cumulativo, o maior conhecimento possível acerca
do domínio do problema e respectivo ambiente.
Vimos que, independente do método ou processo utilizado para a análise,
projeto e implementação, algumas etapas são comuns, por exemplo, a identifica-
ção da necessidade, o estudo de viabilidade, a análise, o projeto, a implementação,
a implantação e a manutenção.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Considerações Finais
1. Quais objetivos o analista deve ter no momento da análise? Explique cada um
deles.
2. O que é um domínio do problema e qual a importância de conhecê-lo?
3. Conceitue linguagem de modelagem, método e processo.
4. Quando devemos utilizar o modelo de processo cascata e o modelo de processo
evolucionário?
5. O que acontece em um projeto de software no qual a equipe de desenvolvimen-
to e o cliente não se entendem?
6. O que são requisitos de software e como podemos classificá-los?
MATERIAL COMPLEMENTAR
Para aprofundar os conhecimentos sobre OO, leia o artigo intitulado “Em busca de um modelo
de referência para engenharia de requisitos em ambientes de desenvolvimento distribuído de
software”. Esse artigo visa apresentar um modelo de referência para engenharia de requisitos em
ambientes de desenvolvimento distribuído de software, reunindo resultados de pesquisa teórica
e prática.
O artigo encontra-se disponível em: <http://wer.inf.puc-rio.br/WERpapers/artigos/artigos_
WER03/leandro_audy.pdf>. Acesso em: 29 jul. 2015.
Material Complementar
Qual é a função primordial de qualquer Sabendo onde os casos de uso podem nos
software desenvolvido? Parece simples a ajudar, vem a próxima pergunta: o que fazer
questão, mas respondo que é ter acessi- agora? No artigo citado, Silva classifica que
bilidade. Para que isso seja possível, hoje, são várias as utilidades e destaca quatro
já é obrigatório testá-lo adequadamente. procedimentos que podemos seguir:
Vamos conhecer uma forma sistêmica de
montar toda a linha de testes embasada • Selecione o caso de uso que será tes-
em casos de uso. tado, identifique o fluxo principal e os
fluxos alternativos e desenhe um dia-
Uma das primeiras perguntas que devem grama de atividades. Desse modo, vai
ser levantada para iniciar a montagem de conseguir visualizar mais facilmente
um plano de testes é: o que testar? Parece todos os cenários que o usuário pode
visível a resposta que é testar as funcio- utilizar.
nalidades que compõem o escopo do
software que está sendo desenvolvido. • Agora que já identificou os cenários,
Agora, você se pergunta: onde está des- você vai começar a escrever um caso
crito esse escopo? Normalmente, ele pode de teste para cada cenário, detalhando
estar na proposta do projeto, na especifi- todos os passos do cenário. Desse
cação funcional e, em muitos projetos, nos modo, o testador vai poder executar
casos de uso. as ações do ator e validar se a resposta
do sistema está de acordo com o que
Eduardo Ernandes da Silva, no artigo inti- foi especificado.
tulado “Como fazer um plano de testes”,
descreve os casos de uso como requisi- • Para iniciar os testes, vai ser necessária
tos, que identificam o valor que o cliente a criação de uma base de dados de cer-
espera obter da funcionalidade e represen- tificação, se ela ainda não existir (não
tam a forma como o sistema será utilizado. é prudente fazer os testes na base de
Além disso, permitem identificar todos os desenvolvimento e muito menos em
caminhos que o usuário pode percorrer produção), e identificar os dados de
para conseguir o que deseja e se podem entrada que serão utilizados nos testes.
ocorrer problemas. E, também, mostram ao
cliente o que esperar do software, ao desen- • É importante tabular o resultado dos
volvedor, o que codificar e, ao testador ou testes, como quantidade de acertos,
certificador, o que validar para garantir a defeitos e correções, e armazenar essa
qualidade dos entregáveis. informação em algum meio perma-
nente. Isso vai servir para avaliar a
Desse modo, podemos concluir que os casos qualidade de cada desenvolvedor da
de uso ajudam na certificação e validação sua equipe.
dos requisitos implementados, simplifi-
cando e sistematizando o processo de teste Dessa maneira, podemos concluir que usar
do software, permitindo um ganho de pro- o casos de uso como modelo para os tes-
dutividade e ajudando na garantia de que tes vai permitir uma visão mais apurada do
todo o escopo vai ser abrangido pelo teste. software e ter maior noção das necessida-
des dos clientes.
III
UNIDADE
DIAGRAMA DE CLASSES
Objetivos de Aprendizagem
■■ Entender a notação UML para o Diagrama de Classes.
■■ Entender o objetivo do Diagrama de Classes.
■■ Conhecer a Notação UML para a o Diagrama de Classes.
■■ Compreender as características dos Atributos, métodos e tipos de
dados.
■■ Entender como ocorre a multiplicidade entre as associações de
classes.
■■ Conhecer os tipos de associação entre classes (unária, binária,
associativa, agregação, generalização).
■■ Compreender o conceito de Herança múltipla.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
■■ Diagrama de Classes
■■ Notação para classes
■■ Atributos
■■ Métodos
■■ Multiplicidade
■■ Associação Unária
■■ Associação Binária
■■ Classe Associativa
■■ Agregação
■■ Generalização
■■ Herança Múltipla
77
INTRODUÇÃO
Introdução
III
DIAGRAMA DE CLASSES
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
sificados como pertencentes a um mesmo tipo.
Objeto é qualquer coisa concreta ou abstrata com existência perceptível no
mundo real que possa ser individualizado por possuir características e compor-
tamento próprio.
Na figura 39, temos o exemplo de objetos de mundo real que, na verdade, são
funcionários que têm características em comum, por exemplo: todos os funcio-
nários possuem nome, endereço e telefone, dessa forma, podemos abstrair para
criar um objeto conceitual a partir dos objetos do mundo real.
Uma classe é uma estrutura que modela um conjunto de objetos cujas característi-
cas sejam similares. A classe, por meio dos métodos, modela o comportamento de
seus objetos, e os possíveis estados do objeto, são modelados mediante atributos.
As classes juntamente com os atributos, operações e associações são definidas
DIAGRAMA DE CLASSES
79
Aluno
A classe também pode ser apresentada como um retângulo com dois compar-
timentos, em que o primeiro contém o nome da classe e o segundo contém os
atributos juntamente com seu tipo de dados.
Aluno
- Nome: String
- Endereço: String
- Data_nasc: Date
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Figura 42: Notação com nome, atributos e métodos
Fonte: o autor.
Uma classe abstrata não gera objetos, porque geralmente ela tem, no míni-
mo, uma operação abstrata nela definida. Se ela na verdade criasse um ob-
jeto, uma mensagem invocando a operação abstrata do objeto provocaria
um erro de rum-time.
Fontes: Page-Jones (2001)
DIAGRAMA DE CLASSES
81
ATRIBUTOS
[<visibilidade>]<nome>:[<tipo>][=<valor inicial>]
<nome>
■■ O nome do atributo deve obedecer algumas regras também, tais como:
■■ O nome pode começar com qualquer letra e os caracteres $ ou _.
■■ Não conter caracteres exclusivos da língua portuguesa (acentos, cedi-
lhas etc.).
Atributos
III
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
■■ Char: usa o código UNICODE e ocupa cada caractere 16 bits.
■■ Inteiros: diferem nas precisões e podem ser positivos ou negativos:
• Byte: 1 byte.
• Short: 2 bytes.
• Int: 4 bytes.
• Long: 8 bytes.
Reais em ponto flutuante: igual aos inteiros, também diferem nas precisões e
podem ser positivos ou negativos:
• Float: 4 bytes.
• Double: 8 bytes.
<valor inicial>
Valor inicial para o atributo que respeite o tipo de dado, ou seja, se o tipo de
dado for um inteiro, não poderei informar uma data como valor inicial.
No figura 43, podemos observar que o atributo nome tem visibilidade pri-
vada, ou seja, somente os métodos dessa classe poderão realizar operações com
esse atributo. O atributo sexo é protegido, podendo ser visto somente nessa
classe ou em classes derivadas, observe que esse atributo é iniciado com o valor
‘F’, que implica dizer que sempre que um objeto for instanciado receberá o valor
‘F’. Por fim, o atributo código tem a visibilidade pública, que significa dizer que
esse atributo está visível para todas as classes.
DIAGRAMA DE CLASSES
83
Classe
- Nome: String
# Sexo: char = ‘F’
- Codigo: int = 20
MÉTODOS
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
[<visibilidade>]<nome>(<lista argumentos>):[<retorno>]
Métodos
III
<nome>:
O nome do método segue as mesmas regras para o nome dos atributos e
da classe.
<lista de argumentos>
Argumentos são os meios que utilizaremos para passar dados para o método
e esses métodos irão trabalhar, especificamente, em cima dessas informações.
Por exemplo:
Classe
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
- Nome: String
# Data_Nasce: Date
- Codigo: int = 20
Argumento
Figura 44: Lista de Argumentos do método
Fonte: o autor.
<retorno>
Tipo do dado retornado pelo argumento. Pode-se utilizar os tipos da lin-
guagem de implementação:
■■ Boolean: não é um valor numérico, só admite os valores true ou false.
■■ Char: usa o código UNICODE e ocupa cada caractere 16 bits.
■■ Inteiros: diferem nas precisões e podem ser positivos ou negativos:
• Byte: 1 byte.
• Short: 2 bytes.
• Int: 4 bytes.
• Long: 8 bytes.
DIAGRAMA DE CLASSES
85
Classe
- Nome: String
# Data_Nasce: Date
- Codigo: int = 20
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Retorno
Figura 45: Retorno do método
Fonte: o autor.
MULTIPLICIDADE
Associação é uma relação entre duas classes significando que os objetos des-
tas classes possuem uma ligação. Um conceito importante para as associações
entre as classes é a multiplicidade que mostra a cardinalidade de uma associação.
A multiplicidade especifica quantas instâncias de uma classe relacionam-se
a uma única instância de uma classe associada. A tabela a seguir mostra a repre-
sentação da notação e seu significado.
Representação Significado
1 Exatamente um.
0..* Zero ou mais.
* Zero ou mais.
1..* Um ou mais.
0..1 Zero ou um.
5..8 Intervalo específico (5, 6, 7 ou 8).
4..7,9 Combinação (4,5,6,7 ou 9).
Multiplicidade
III
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
■■ A sua resposta será a multiplicidade que deverá ser informada ao
lado da classe aluno.
Dessa forma, podemos fazer a seguinte leitura para o diagrama de classes abaixo:
■■ Da esquerda para a direita:
• Um Aluno pode cursar somente uma disciplina.
Aluno Disciplina
1 Cursa 1
Figura 46: Multiplicidade um para um
Fonte: o autor.
Aluno Disciplina
Vamos definir uma ação entre as classes para definir a multiplicidade, pensei
na palavra “cursa”, uma vez que o aluno cursa a disciplina, ficará como apresen-
tado na figura 48:
DIAGRAMA DE CLASSES
87
Aluno Disciplina
Cursa
Figura 48: Identificação da associação
Fonte: o autor.
Aluno Disciplina
Cursa 1..*
Figura 49: Multiplicidade um ou muitos
Fonte: o autor.
Por fim, o próximo passo é fazer aquela perguntinha da direita para esquerda:
■■ Uma disciplina pode ser cursada por quantos alunos?
• Nossa resposta, agora, será várias disciplinas.
Aluno Disciplina
* Cursa 1..*
Figura 51: Multiplicidade somente um para um ou muitos
Fonte: o autor.
Multiplicidade
III
ASSOCIAÇÃO UNÁRIA
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
suas ordens e um trabalhador pode ter nenhum chefe e, no máximo, um. Mas
quando o trabalhador não terá nenhum chefe? Resposta: quando ele for o chefe.
Funcionário
chefe - Nome: String
0..1 - Endereço: String
* trabalhador
Gerência
Figura 52: Associação Unária
Fonte: o autor.
DIAGRAMA DE CLASSES
89
ASSOCIAÇÃO BINÁRIA
As associações binárias são as mais comuns, elas acontecem entre duas classes.
Fazendo a leitura do diagrama da figura 53 podemos verificar que uma instância
de objeto da classe cliente está associada com várias instâncias da classe compra,
porém cada instância de objeto da classe compra está associada a somente um
cliente, resumindo, um cliente pode realizar muitas compras, mas cada compra
pode ser somente de um cliente (MEDEIROS, 2004).
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Cliente Compra
1 Fazer *
Figura 53: Associação binária
Fonte: o autor.
ASSOCIAÇÃO TERNÁRIA
Contrato Cliente
0..” 1..”
1..”
Regras do
Contrato
Associação Binária
III
CLASSE ASSOCIATIVA
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
■■ A linha que representa a associação não é nomeada, o nome da classe
associativa deve ser suficiente para identificar a associação.
■■ Classes associativas podem estar relacionadas a outras classes.
Produto Venda
* *
Ítens da Venda
Ítens da Venda
DIAGRAMA DE CLASSES
91
AGREGAÇÃO
Lee & Tepfenhart (2002) explicam que a agregação é um caso especial de asso-
ciação utilizado para representar relacionamentos de pertinência “parte-todo”
ou “uma parte de”. Permite representar o fato de que um objeto ou mais objetos
de uma classe fazem parte de um objeto de outra classe.
Um exemplo típico é uma janela de interface com o usuário composta por
diversos botões, caixas de textos, barra de rolagem, entre outros. A agregação
representa uma ligação entre o objeto todo (a janela) e as partes (botão, caixas
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
AGREGAÇÃO REGULAR
A B
B existe sem A
No exemplo da figura 57, verificamos que em um quadro pode ter uma ou várias
figuras, ou seja, a figura é uma parte do quadro, porém a figura existe mesmo
que não exista um quadro para ela.
Agregação
III
Quadro Figura
1..”
Para ficar ainda mais claro, vamos utilizar o exemplo da figura 58, que nos mos-
tra que monitor, teclado, mouse e drive são partes de CPU, porém cada uma das
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
instâncias desses objetos existe sem uma instância de CPU associada. Nesse caso,
podemos afirmar que a destruição do objeto CPU não implicará na destruição
dos demais objetos associados.
CPU
1 1 1 0..”
Monitor Teclado Mouse Drive
AGREGAÇÃO DE COMPOSIÇÃO
Lee & Tepfenhart (2002) explicam que a agregação de composição é uma agre-
gação de fato, em que o todo é composto pelas partes. Existe uma relação forte
entre o todo e as partes, pois, quando o todo é destruído, as partes também serão,
ou seja, a eliminação do todo se propaga para as partes. De outra forma, o todo
e as partes têm tempos de vida semelhantes.
Como podemos verificar na figura 59, a agregação de composição é repre-
sentada por um losango preenchido, o diagrama abaixo nos diz que a classe B
é “parte-todo” da classe A, dessa forma, as instâncias de objetos da classe B não
existem sem um objeto associado na classe A. A destruição da instância de objeto
de A implica na destruição da instância de objeto associado da classe B.
DIAGRAMA DE CLASSES
93
A B
Na figura 60, podemos verificar que um orçamento pode ter muitos itens de orça-
mento, porém os itens de orçamento não existirão sem o orçamento.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Agregação
III
GENERALIZAÇÃO
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
mais específico pode ser usado como uma instância do elemento mais geral.
Existem alguns tipos de generalizações que variam em sua utilização a partir
da situação. São eles: generalização normal e restrita. As generalizações restritas
se dividem em generalização de sobreposição, exclusiva, total e parcial. A gene-
ralização recebeu muitos nomes, podendo ser denominada especialização ou,
ainda, herança.
A diferença entre a generalização e as demais associações é que, na gene-
ralização, é enfatizado o conceito de herança que tem como característica a
reutilização de atributos e métodos definidos nas classes mais gerais (super-
classe) por classes mais específicas (subclasses). Ou seja, permite a criação de
elementos especializados em outros. Por sua vez, as subclasses, que represen-
tam as classes mais especializadas, herdam atributos, métodos e associações da
superclasse, que representa a classe mais genérica. A notação para a generaliza-
ção é uma seta em branco apontando sempre para a superclasse.
A figura 62 modela uma generalização para pessoa. Uma pessoa pode ser
física ou jurídica, porém o que diferencia os tipos de pessoas é um atributo espe-
cífico que identifica e pessoa física (CPF) e a pessoa jurídica (CNPJ), ambas têm
os atributos nome e endereço que serão herdados da superclasse (pessoa), além
dos métodos Criar() e Eliminar().
DIAGRAMA DE CLASSES
95
Pessoa
- Nome: String
- Endereço: String
- Criar( ): void
- Eliminar( ): void
Jurídica Física
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
COBERTURA TOTAL
Pessoa
{Total}
Homem Mulher
Generalização
III
EXCLUSIVA
Pessoa
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
{Total, Exclusiva}
Homem Mulher
PARCIAL
DIAGRAMA DE CLASSES
97
Veículo
{Parcial}
Carro Bicicleta
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
SOBREPOSIÇÃO
Pessoa
{Sobreposição}
Aluno Professor
Generalização
III
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
rica pode ser mapeada para uma ou mais subclasses ou para nenhuma.
HERANÇA MÚLTIPLA
Curso
Evento
DIAGRAMA DE CLASSES
99
CONSIDERAÇÕES FINAIS
Considerações Finais
III
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Conhecemos os vários tipos de associação entre classes, entre elas, a asso-
ciação unária e binária, classes associativas, agregação regular e de composição,
generalização e especialização.
Compreendemos que Herança múltipla permite que uma classe possua mais
de uma superclasse e herde características de todos os seus ancestrais.
Na próxima unidade, conheceremos os diagramas de sequência, comuni-
cação e estado. Esses diagramas permitirão que tenhamos uma nova visão do
domínio de problema que resulta, na maioria das vezes, na alteração do dia-
grama de classes.
DIAGRAMA DE CLASSES
101
Engenharia de Software
Ian Sommerville
Editora: Makron Books
Sinopse: A engenharia de software é uma área relativamente
nova, mas adquiriu rapidamente uma posição central entre as
diferentes vertentes da engenharia. Englobando todos os aspectos
da produção de software, ela é multidisciplinar e está em constante
mudança.
IV
DIAGRAMAS DE
UNIDADE
SEQUÊNCIA, ESTADO E
COLABORAÇÃO
Objetivos de Aprendizagem
■■ Avançar no conhecimento de diagramas UML.
■■ Aprender sobre o Diagrama de Sequência.
■■ Aprender sobre o Diagrama de Estados.
■■ Aprender sobre o Diagrama de Comunicação.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
■■ Avançando nos diagramas
■■ Diagrama de Sequência
■■ Diagrama de Estados
■■ Diagrama de Comunicação
109
INTRODUÇÃO
Introdução
IV
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
meros diagramas.
Porém bons softwares tem documentação que nos permite contar e entender
a história do software. Uma análise criteriosa e um projeto bem fundamentado
na análise são aspectos que definem o sucesso e o tempo de vida de um software.
É fato que manter uma documentação atualizada demanda um esforço,
porém o esforço será maior no momento da manutenção, quando nos depara-
mos com um software sem documentação, a experiência vai ensinar isso a você
muito mais do que poderia estar escrito em qualquer livro.
Dada a importância de se adotar um método – para relembrar: o método
pressupõe a utilização de uma linguagem (notação) e um modelo de processo
- a relevância na construção e manutenção da documentação é imensurável.
Vimos na unidade II que o diagrama de Caso de Uso é utilizado na aná-
lise de requisitos e acompanhará o software desde o seu início até a conclusão.
No diagrama de Caso de Uso, surge a figura do ator, que pode ser uma pes-
soa, um sistema, um roteador. O ator é quem realiza as atividades e sempre atua
sobre um caso de uso. Portanto, o diagrama de caso de uso modela o compor-
tamento dos atores no sistema.
Olhando para o diagrama de caso de uso da Figura 68, fica claro que o aluno
realiza empréstimos, consultas e devoluções, enquanto a bibliotecária é quem
cria o livro, o aluno e os empréstimos no sistema.
Realiza
empréstimo
Realiza
consultra
Aluno
Realiza
devolução
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Cria
livro
Cria
aluno
Bibliotecária
Efetua
empréstimo
Porém o diagrama de casos de uso nos fornece apenas um panorama visual das
funcionalidades do sistema, é necessário um detalhamento por meio de uma
descrição textual, mas não há descrição padrão definida pela UML, em geral, o
diagrama é bastante informal.
Ficou claro então que o diagrama por si só não é suficiente. Os casos de uso
devem vir acompanhados de uma descrição. Após a elaboração do diagrama
de caso de uso e sua descrição, teremos conhecimento suficiente a respeito do
domínio para modelar a primeira versão do diagrama de Classes que nos mos-
trará a estrutura estática do sistema.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
DIAGRAMA DE SEQUÊNCIA
1: Solicita
Empréstimo ( )
2: Verifica se
existe ( )
2.1: Verificação
OK ( )
3: Cria Ítens ( )
4: Verifica se
existe ( )
4.1: Verificação
OK ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
5: Cria Ítens ( )
6: Cria Ítens ( )
7: Cria empréstimo ( )
Muito bem, mas como posso interpretar esse diagrama? A resposta é conhe-
cendo sua notação. Vamos lá!
Diagrama de Sequência
IV
: NomeDoAtor
1: Mensagem
Sincrona( ) 1.1: Mensagem 2: Mensagem
Sincrona( ) Assincrona( ) Ator,
classe ou
atributo
Mensagen
3: Mensagem Assincrona
Sincrona( ) 3.1: Mensagem
Sincrona( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
4: Auto
Mensagem( )
Mensagem
Sincrona
TIMELINE
Linha do Tempo
MENSAGENS
Uma Mensagem é representada por uma seta horizontal, do emissor para o
receptor, com o nome e possíveis argumentos, ligando uma linha de vida a outra.
O objeto do qual parte a seta é aquele que está enviando a mensagem (objeto
remetente). O objeto para o qual a seta aponta é aquele que está recebendo a
mensagem (objeto receptor).
O formato da ponta da seta indica o tipo de mensagem sendo enviada, que
pode ser síncrona ou assíncrona. O rótulo da mensagem é posicionado acima
dessa seta.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Pessoa Compra
1: Sincrona ( )
2: Assincrona ( )
Como podemos verificar na figura 72, uma Mensagem é representada por uma
seta horizontal, do emissor para o receptor, com o nome e possíveis argumentos.
As mensagens são síncronas, quando quem envia (emissor) fica no aguardo
da resposta pelo receptor, e são representadas por uma seta com a ponta preen-
chida. O retorno de Mensagem Síncrona é representado por uma linha tracejada.
As mensagens são assíncronas, quando quem envia (emissor) a mensagem
NÃO fica no aguardo da resposta pelo receptor, e são representadas por uma seta
com a ponta vazada. Não tem notação de retorno para essa mensagem.
As mensagens também podem ser reflexivas, de autodelegação ou, ainda,
automensagem, nesse caso, são representadas por uma seta que retorna para a
mesma linha do tempo de partida. Como apresentado na figura 73:
Diagrama de Sequência
IV
Lifeline1
2: Auto Mensagem( )
TEMPO DE ATIVIDADE
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Os objetos também apresentam um tempo de atividade na linha do tempo, essa
atividade corresponde ao tempo durante o qual um objeto exerce sua ação, direta
ou indiretamente, por meio de um objeto que lhe presta o serviço.
A notação é um retângulo na linha do tempo em que as bordas representam
o período de atividade, como podemos observar na figura 74:
Lifeline1
2:
Tempo de atividade
EXEMPLO
Cadastrar Pessoas
Operador
Figura 75: Caso de Uso
Fonte: o autor.
Diagrama de Sequência
IV
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
de valor aos atores e o que pode impedir sua obtenção. Um fluxo descreve um
caminho entre muitos possíveis, visto que um caso de uso pode ser executado de
vários modos. Existem fluxos básicos, que demonstram o fluxo normal de eventos,
e alternativos, que dizem o que fazer caso não seja possível seguir o fluxo básico.
No caso de uso “Resolver expressões aritméticas”, o usuário pode tanto for-
necer a expressão para o cálculo (fluxo básico) quanto cancelar a operação,
desviando o fluxo alternativo A2, porém, caso o usuário siga no fluxo básico,
após o fornecimento da expressão para cálculo, o fluxo será desviado para um
caminho alternativo A1 que valida a entrada.
Para ficar mais fácil o entendimento da sequência dos fluxos de mensagens,
construiremos o diagrama de sequência para esse caso de uso.
Primeiramente, vamos definir as linhas do tempo, teremos uma para o usuá-
rio, outra para a interface do usuário com o sistema, outra para o controle do
sistema e a última para a calculadora, como mostrado na figura a seguir.
Usuário
Usuário
1.1: Expressão? ( ) 1: SolicitarExpressao ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
{Exp}
{Exp}
Figura 77: Diagrama de Sequência com troca de mensagens entre usuário e sistema.
Fonte: o autor.
Usuário
1.1: Expressão? ( ) 1: SolicitarExpressao ( )
{Exp}
2.2: Calcular(exp) ( )
Diagrama de Sequência
IV
DIAGRAMA DE ESTADOS
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
classe, permitindo a especificação da sua dinâmica. Uma especificação corres-
ponde a como deve ser implementada uma classe.
ESTADO
A notação para o estado final é um círculo preenchido com borda, como mos-
tra a figura a seguir:
State0
O estado simples também pode ser representado por um retângulo com dois
compartimentos, no primeiro compartimento, é informado o nome para o estado
e, no segundo compartimento, as ações.
StateName
entry / action
do / action
exit / action
O Estado também pode ser composto, nesse caso, um retângulo maior identifica
o estado composto, o que significa dizer que dentro dele terão outros estados.
Diagrama De Estados
IV
Estado Composto
Estado Estado
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Fonte: o autor.
Reservado
Disponível Emprestado
Manutenção
Estado 2
Estado 1 Estado 3
Estado 4
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Estado 1
Diagrama De Estados
IV
Estado 1 Estado 2
Estado 3
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Figura 87: Estado de join (junção)
Fonte: o autor.
E, por último, as ações, elas ocorrem em três eventos: quando entra (entry), sai
(exit) ou está (do) em um estado.
Estado 1 Estado 2
entry / funcaoX funcaoZ( ) (Z>1) exit / funcaoY
libera(exemplar_id)
DISPONÍVEL EMPRESTADO
do / atualiza( ) do / atualiza( )
empresta(exemplar_id)
encerra(exemplar_id
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
ENCERRADO
do / atualiza( )
DIAGRAMA DE COMUNICAÇÃO
Diagrama de Comunicação
IV
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
NOTAÇÃO PARA O DIAGRAMA DE COMUNICAÇÃO
Ator
O ator tem a mesma representação dos demais diagramas, ou seja, o homem
palito, com seu rótulo precedido de dois pontos.
:Ator
Figura 90: Ator
Fonte: o autor.
Objeto
O objeto é representado por um retângulo, em que, em seu interior, é infor-
mado o objeto e o nome da classe a qual aquele objeto pertence, separados por
dois pontos, que definimos como instância identificada.
umaPessoa : Pessoa
StateName
entry / action
do / action
exit / action
Fonte: o autor.
: umaPessoa
VÍNCULO
: umaPessoa
MENSAGENS
As mensagens enviadas e recebidas são representadas por setas que apontam suas
direções, a descrição da mensagem vem acompanhada do seu número de ordem.
Diagrama de Comunicação
IV
1: Consulta ( )
2: fazDiagnóstico ( )
3: aplicaMedicação ( )
: umPaciente
: Médico 4: Sara ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Fonte: o autor.
EXEMPLO
1: Cria ( ) 2: Valida ( )
GUI Bibliotecária Empréstimo Aluno
3: Valida ( )
Ítem Empréstimo
4: Valida ( )
Exemplar
CONSIDERAÇÕES FINAIS
Nesta unidade, aprendemos mais três diagramas importantes para análise e pro-
jeto orientado a objetos, são eles: os diagramas de sequência, colaboração e estado.
Familiarizamo-nos com a notação e com como utilizar o diagrama de sequên-
cia, vimos como ele pode nos auxiliar no estudo das interações entre os objetos,
bem como fornecer subsídios para o refinamento da identificação da relação
entre as classes.
Estudamos as principais características do diagrama de estados, vimos que
o comportamento de uma classe pode ser modelado por meio desse diagrama.
Porém, não são todas as classes que necessitam dessa representação, pois não
apresentam um número de estados que se possa quantificar.
Por fim, estudamos outra forma de representação do cenário em que o sis-
tema irá funcionar, representando toda a ordem de comunicação entre classes
por meio do diagrama de colaboração. Aprendemos que, diferentemente do dia-
grama de sequência, o diagrama de colaboração não se importa com o tempo
em que as mensagens ocorrem e sim com sua ordem de ocorrência.
Na verdade, a análise e o projeto de um software são extremamente depen-
dentes da habilidade do analista em articular todos os elementos do sistema. Essa
articulação se faz necessária uma vez que o software não se resume a um arquivo
executável. O software é dependente do hardware, que executará o sistema, bem
como dos usuários, que interagirão com ele, e da cultura da organização.
É difícil, em um primeiro momento, saber por onde começar o levantamento
de requisitos ou qual diagrama elaborar primeiro, porém a prática nos ensina
Considerações Finais
IV
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Da mesma forma que é impossível construir uma casa sem, primeiramente, definir sua planta,
também é impossível construir um software sem, inicialmente, definir sua arquitetura.
Leia mais sobre o assunto no link disponível em: <http://www.dsc.ufcg.edu.br/~jacques/cursos/
map/html/uml/motivacao/motivacao1.htm>. Acesso em: 30 jul. 2015.
133
V
UNIDADE
ESTUDO DE CASO
Objetivos de Aprendizagem
■■ Conhecer uma ferramenta case para modelagem OO.
■■ Fazer a análise e projeto a partir de um estudo de caso.
■■ Elaborar um diagrama de caso de uso.
■■ Elaborar um diagrama de classes.
■■ Elaborar um diagrama de sequência.
■■ Elaborar um diagrama de estado.
■■ Elaborar um diagrama de colaboração.
Plano de Estudo
A seguir, apresentam-se os tópicos que você estudará nesta unidade:
■■ Ferramentas Case
■■ Estudo de caso
■■ Diagrama de caso de uso
■■ Diagrama de classes
■■ Diagrama de sequência
■■ Diagrama de estado
■■ Diagrama de comunicação
137
INTRODUÇÃO
Introdução
V
FERRAMENTAS CASE
Modelar um sistema na mão ou com softwares que não foram construídos para
tal pode ser um barato que sai caro. O ideal é adotarmos uma ferramenta CASE.
Uma ferramenta CASE (Computer-Aided Software Engineering), em uma
tradução livre “engenharia de software auxiliada por computador”, é uma clas-
sificação de software que abrange aquelas ferramentas computacionais que têm
como objetivo auxiliar a atividade de engenharia de software.
Todas as imagens de diagramas que adicionei foram feitas com a ferramenta
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
CASE produzida pela empresa Astah, no material complementar tem o link para
o download dessa ferramenta que é gratuita.
Muito bem, para nossa análise e projeto orientado a objetos, adotaremos ferra-
menta CASE Astah Community, por oferecer suporte para o modelo de linguagem
que utilizaremos, ou seja, a UML.
O modelo de processo de desenvolvimento que adotaremos será o cascata, por
ser um processo clássico e ter as fases bem definidas. As fases para esse modelo
são: análise, projeto, implementação, teste, integração, implantação, manutenção.
No estudo de caso que desenvolveremos, cobriremos duas fases do modelo
em cascata, que é a análise e o projeto.
Penso que não é possível utilizar um modelo de processo sem ferramentas
CASE que o suportem. Invariavelmente, ocorre que na primeira manutenção a
documentação fica desatualizada, já discutimos que documentação desatualizada
ESTUDO DE CASO
139
não serve para muita coisa. Porém, com a utilização de uma ferramenta CASE
adequada, fica fácil atualizar a documentação a cada manutenção.
mente, já vem sendo utilizado há mais de um ano por mais de uma centena
de alunos.
Saiba mais sobre o FAST CASE em: <http://www.inf.ufsc.br/sbes99/anais/
Sessao-Ferramenta-Completo/12-fastcase.pdf>. Acesso em: 31 jul. 2015.
Fonte: o autor.
ESTUDO DE CASO
Estudo De Caso
V
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
tor de um filme pode, também, ser ator nesse ou em outro filme. Um ator possui
código, nome, nacionalidade e idade. Existe um único diretor para cada filme.
Primeiramente, vamos definir os requisitos funcionais do sistema. Lembrando
que, requisitos funcionais é tudo aquilo que o sistema deve fazer.
REQUISITOS
ESTUDO DE CASO
141
5. O menu principal do sistema deve listar os filmes e salas que estão sendo
exibidos.
6. O operador deve cadastrar os filmes, cinemas e salas.
7. O sistema deve permitir ao operador exibir ou suspender a exibição de
um filme.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Estudo De Caso
V
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
lha a opção UseCase Diagram.
Em seguida, abrirá a tela apresentada na figura 98, na elipse vermelha, estão todas
as ferramentas que precisaremos para a confecção do diagrama de caso de uso.
Como você pode observar, o software é bem intuitivo:
ESTUDO DE CASO
143
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Vamos iniciar modelando o ator que será o administrador do sistema, esse usu-
ário será responsável pela administração de novos acessos no sistema.
Cadastrar novos
usuários
Administrador
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Cadastrar Cinemas Exibir Filme
Operador
ATOR: ADMINISTRADOR
Cadastrar novos
usuários
Administrador
Figura 101: Cadastrar novos usuários
Fonte: o autor.
ESTUDO DE CASO
145
Definir permissões
para usuário
Administrador
Figura 102: Definir permissões para usuário
Fonte: o autor.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Abre a Janela de definição de permissões
(A2)
Usuário informa as permissões
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos alternativos
A1: em {Valida entrada} Se o usuário fornecer uma entrada incor-
reta, informá-lo sobre o erro e retornar ao
campo incorreto.
A2: em {Solicita Cancelamento} O usuário pode decidir encerrar o caso
de uso sem fornecer uma entrada. Nesse
caso, retornar ao fluxo básico em {Fim}
Quadro 4: Caso de Uso Definir Permissões para os Usuários.
Fonte: autor
ATOR: OPERADOR
Cadastrar Elenco
Operador
Figura 103: Cadastrar ator
Fonte: o autor.
ESTUDO DE CASO
147
Cadastrar Filmes
Operador
Figura 104: Cadastrar Filmes
Fonte: o autor.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Pré-condições O sistema deve estar em execução
Pós-condições Novo filme inserido
Fluxo Básico
Ações do Ator Ações do Sistema
Solicitar a criação do
novo filme
Abre a Janela de Cadastro (A2)
Usuário informa os dados
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos alternativos
A1: em {Valida entrada} Se o usuário fornecer uma entrada incorreta, infor-
má-lo sobre o erro e retornar ao campo incorreto.
A2: em {Solicita Cancela- O usuário pode decidir encerrar o caso de uso sem
mento} fornecer uma entrada. Nesse caso, retornar ao fluxo
básico em {Fim}
Quadro 6: Caso de Uso Cadastrar Novos Filmes.
Fonte: autor
Cadastrar Cinemas
Operador
Figura 105: Cadastrar Cinemas
Fonte: o autor.
ESTUDO DE CASO
149
Cadastrar Salas
Operador
Figura 106: Cadastrar Salas
Fonte: o autor.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Abre a Janela de Cadastro (A2)
Usuário informa os dados
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos alternativos
A1: em {Valida entrada} Se o usuário fornecer uma entrada incorreta,
informá-lo sobre o erro e retornar ao campo
incorreto.
A2: em {Solicita Cancela- O usuário pode decidir encerrar o caso de uso
mento} sem fornecer uma entrada. Nesse caso, retornar
ao fluxo básico em {Fim}
Quadro 8: Caso de Uso Cadastrar Novas Salas.
Fonte: autor
Exibir Filme
Operador
Figura 107: Exibir Filme
Fonte: o autor.
ESTUDO DE CASO
151
Suspender exibição
de filme
Operador
Figura 108: Suspender filme
Fonte: o autor.
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Abre a Janela de Movimentação (A2)
Usuário informa o
filme
Sistema valida a entrada (A1)
Usuário altera o status
Sistema salva os dados
Fim
Fluxos alternativos
A1: em {Valida entra- Se o usuário fornecer uma entrada incorreta, informá-lo
da} sobre o erro e retornar ao campo incorreto
A2: em {Solicita Cance- O usuário pode decidir encerrar o caso de uso sem for-
lamento} necer uma entrada. Nesse caso, retornar ao fluxo básico
em {Fim}
Quadro 10: Caso de Uso Suspender a Exibição de Filmes.
Fonte: autor
ESTUDO DE CASO
153
DIAGRAMA DE CLASSES
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Diagrama de Classes
V
Cinema Filme
- Cinema_id: int - Filme_id: int
- Nome: String - Título: String
- Endereço: String - Curação: String
- Lotação: int - Indicação: int
- Bairro: String - Status: String
- Cidade: String
- UF: String - Inserir( ): void
- CEP: String - Cancelar( ): void
- Inserir( ): void
- Cancelar( ): void
Elenco
Sala
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
- Elenco_id: int
- Sala_id: int - Nome: String
- Horário: String - Data de Nascimento: Date
- Capacidade: String - Nacionalidade: String
- Inserir( ): void - Inserir( ): void
- Cancelar( ): void - Cancelar( ): void
Como podem ter percebido, o nosso diagrama de classes está sem as associações,
vamos completá-lo, então, com as associações e multiplicidades.
Vamos começar pela classe cinema. Cinema não tem uma associação direta
com filmes, porque filmes são exibidos em salas. Também não tem uma relação
direta com elenco, porque elenco faz parte do filme. Porém, com salas, o cinema
associa, uma vez que o cinema é composto por salas. Olha que interessante, subli-
nhei a palavra composto para indicar que, se não existir cinema, também não
existirá a sala, portanto, a associação é de agregação por composição.
Já vamos aproveitar para definir a multiplicidade para associação fazendo
uma pergunta em duas direções:
■■ Um cinema é composto de quantas salas?
• Resposta: por uma ou várias.
■■ Uma sala compõe quantos cinemas?
• Resposta: somente um.
Sendo assim, nosso diagrama ficou como mostrado na figura 110, observe que
na agregação por composição o losango é preenchido.
ESTUDO DE CASO
155
Cinema Sala
- Cinema_id: int - Sala_id: int
- Nome: String - Horário: String
- Endereço: String 1 1...” - Capacidade: String
- Lotação: int
- Bairro: String - Inserir( ): void
- Cidade: String - Cancelar( ): void
- UF: String
- CEP: String
- Inserir( ): void
- Cancelar( ): void
Fonte: o autor.
Agora, vamos verificar a associação entre sala e filme, uma vez que os filmes são
projetados nas salas. Essa é uma associação simples, pois tanto os objetos da
classe filme quanto os objetos da classe sala não dependem do outro para exis-
tir. Vamos fazer aquelas perguntinhas para verificar a multiplicidade:
■■ Uma Sala pode exibir quantos filmes?
• Somente 1.
■■ Um filme pode estar sendo exibido em quantas salas?
• Em nenhuma ou em várias.
Vamos para a última associação entre filme e elenco. Nós sabemos que um
ator pode atuar em vários filmes e que um filme por ter vários atores. Podemos
Diagrama de Classes
V
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
- Cidade: String - Cancelar( ): void
- UF: String - Inserir( ): void
- CEP: String - Cancelar( ): void
- Inserir( ): void Ator
- Cancelar( ): void
Ator
Elenco
- Elenco_id: int
- Nome: String
- Data de Nascimento: Date
- Nacionalidade: String
- Inserir( ): void
- Cancelar( ): void
DIAGRAMA DE SEQUÊNCIA
ESTUDO DE CASO
157
Nesse caso de uso, o operador solicita a inserção de uma nova instância para
a classe filme, a classe verifica se a entrada está correta, salva os dados e retorna
um ok para o operador.
Filme
Operador
1: Solicita Inserir ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
2: Verifica entrada ( )
3: Salva Dados ( )
4: OK ( )
Diagrama de Sequência
V
Cinema
Operador
1: Solicita Inserir ( )
2: Verifica entrada ( )
3: Salva Dados ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
4: OK ( )
ESTUDO DE CASO
159
Operador
1: Solicita Inserir ( )
2: Verifica entrada ( )
3: Salva os dados ( )
4: Informa Filme ( )
5: Verifica Filme ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
5.1: OK ( )
6: Salva os dados ( )
7: OK( )
8: OK( )
Diagrama de Sequência
V
Sala Cinema
Operador
1: Solicita Inserir ( )
2: Verifica entrada ( )
3: Verifica Cinema ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
3.1: OK ( )
4: Salva Dados ( )
5: OK ( )
O próximo diagrama de sequência é para o caso de uso “Exibir Filme”. Nesse caso
de uso, o operador solicita a edição de uma instância da classe sala para informar
qual filme está sendo exibido, o sistema verifica o status do filme e altera para em
exibição. O sistema solicita o horário para a exibição, verifica a entrada e salva.
ESTUDO DE CASO
161
Sala Filme
Operador
1: Solicita Exibição ( )
2: Verifica entrada ( )
3.2: OK ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
4: Solicita Horário ( )
5: Informa Horário ( )
6: Verifica Entrada ( )
7: Salva Dados ( )
8: OK ( )
Diagrama de Sequência
V
Filme Sala
Operador
1: Solicita Suspensão ( )
2: Solicita Filme ( )
3: Altera Status ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
4: Exclui Filme( )
5: Salva Dados ( )
6: OK ( )
7: OK ( )
DIAGRAMA DE ESTADO
ESTUDO DE CASO
163
números, símbolos).
Por meio do atributo “status” é possível colocar o filme em dois estados dife-
rentes (“exibindo”, “suspenso”). Portanto, modelaremos o diagrama de estado
somente para a classe Filme.
O diagrama de estado da figura 119 nos mostra que, caso o objeto esteja
no estado “SUSPENSO”, seu estado será modificado para “EXIBINDO” e fina-
liza. Porém, se o status já for “EXIBINDO”, então o objeto não sofrerá nenhuma
alteração.
O início é marcado pela notação do círculo preenchido, os estados possíveis
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
SUSPENSO
do / atualiza
Status = “SUSPENSO”
Status = “EXIBINDO”
EXIBINDO
exit / gravar
Diagrama de Estado
V
DIAGRAMA DE COMUNICAÇÃO
EXIBINDO
do / atualiza
Status = “EXIBINDO”
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Status = “SUSPENSO”
SUSPENSO
exit / gravar
ESTUDO DE CASO
165
2: Valida ( )
3: Salva ( )
1: Insere ( )( )
Filme
Operador
4: OK ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
2: Valida ( )
3: Salva ( )
1: Insere ( )( )
Cinema
Operador 4: OK ( )
Diagrama de Comunicação
V
2: Valida ( )
3: Salva ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
Fonte: o autor.
2: Verifica entrada ( )
5: Salva ( )
Sala Cinema
Operador 6: OK ( ) 4: OK ( )
ESTUDO DE CASO
167
2: Verifica Exibição ( )
8: Verifica entrada ( )
Sala Cinema
Operador
6: Solicita Horário ( ) 5: OK ( )
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
7: Informa Horário ( )
10: OK ( )
Filme Sala
Operador
2: Solicita Filme ( ) 7: OK ( )
3: Informa Filme ( )
8: OK ( )
Figura 126: Diagrama de comunicação para suspender a exibição do filme
Fonte: o autor.
Diagrama de Comunicação
V
CONSIDERAÇÕES FINAIS
Nesta unidade, aprendemos como usar uma ferramenta CASE para a modelagem
do sistema, pois, sem o suporte do aplicativo, o trabalho de análise e projeto se
torna bem mais difícil, principalmente quando necessitamos realizar alterações.
Por meio de um estudo de caso para uma distribuidora de filmes, tivemos
a oportunidade de construir os diagramas necessários para a análise e projeto,
aplicando os conceitos trabalhados de forma prática.
Familiarizamo-nos com a construção do diagrama de caso de uso. Este foi
Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.
o primeiro diagrama que criamos para o estudo de caso, justamente para criar-
mos um cenário do sistema, com ele, podemos verificar quais são os atores que
interagem com o sistema e quais tarefas cada um pode realizar no domínio.
Tivemos a oportunidade, também, de colocar em prática a confecção do dia-
grama de classes, que representa a estrutura estática do sistema. Vimos como
definir as classes, associações e multiplicidades.
Vimos, ainda, como construir o diagrama de sequência, que mostra as trocas
de mensagens entre os objetos considerando o tempo. Esse diagrama nos ser-
viu para verificar como e quando ocorrem as trocas. Alterações no diagrama de
classes são comuns após a elaboração do diagrama de sequência.
Estudamos a elaboração do diagrama de estados. Esse diagrama modela o
comportamento da classe com utilização de máquinas de estado, mostrando-nos
quais valores podem ser assumidos pelo atributo que representa o estado da classe.
Por fim, em uma tentativa de mostrar as trocas de mensagens de outra forma,
elaboramos o diagrama de colaboração. Na verdade, esse diagrama é semelhante
ao diagrama de sequência, porém não considera o tempo nas trocas de mensa-
gens, mas sim a ordem com que as mensagens ocorrem.
Chegamos ao final do nosso curso e, para desenvolvermos nossa habilidade
na análise e projeto OO, é extremamente necessária a prática, então, não perca
tempo e coloque a mão na massa. Bom trabalho e sucesso.
ESTUDO DE CASO
169
desenvolvido (TEXEL & WILLIAMS, 1997). cia. Esta fase é definida como análise do
sistema onde tais representações podem
Com base em uma descrição detalhada ser utilizadas para um melhor esclareci-
do sistema, principalmente enfocando as mento e discussão com os usuários e
expectativas dos usuários em termos de responsáveis pela implementação do sis-
“o que o sistema deveria fazer”, Use Cases tema. Numa fase seguinte, caracterizada
potenciais são extraídos, bem como as com maior ênfase no projeto do sistema,
Categorias do sistema. As Categorias (ou busca-se um refinamento destas represen-
Pacotes) são outros tipos de elementos da tações, a nível dos objetos que farão parte
UML e representam os módulos principais do sistema. Ambos os diagramas, Classes
(grupo de objetos com funcionalidade simi- e Interações são utilizados e apoiados por
lar) do sistema em desenvolvimento. Com representações mais detalhadas dos aspec-
base nestes dois elementos, uma descri- tos comportamentais dos objetos, através
ção geral de como as Categorias interagem de diagramas de Estado e Transição e dia-
entre si para executar cada Use Case, pode gramas de Atividades.
ser representada por diagramas de Seqüên-
Leia mais em: <http://www.scielo.br/scielo.php?script=sci_arttext&pi-
d=S0104-530X2001000100003&lng=pt&nrm=iso>. Fonte: Costa (2001, online).
MATERIAL COMPLEMENTAR
Existem duas versões para a ferramenta Astah Community, a versão professional e community. Faça
o download da versão Astah Community, pois esta é gratuita e suficiente para o que precisamos.
Faça o download da ferramenta CASE para a elaboração dos diagramas estados nesse livro no link
disponível em: <http://astah.net/download>. Acesso em: 31 jul. 2015.
Caso tenha dificuldades na confecção do diagrama de caso de uso, sugiro que assistam ao vídeo da
professora Decíola Fernandes, da Universidade Rural da Amazônia. O vídeo apresenta um tutorial
de 4 minutos mostrando como usar as ferramentas. Acesse-o no link disponível em: <https://www.
youtube.com/watch?v=VMG0EOangKY>. Acesso em: 31 jul. 2015.
Com esta unidade, encerramos mais uma etapa e chegamos ao final da disciplina de
Análise e Projeto Orientado a Objetos. Espero que o material tenha sido de grande
valia e que possa somar com o seu conhecimento.
O livro Análise e Projeto Orientado a Objetos foi desenvolvido para proporcionar o
contato com conceitos, ferramentas e métodos para direcioná-lo em sua vida aca-
dêmica e profissional. Procurei focar em elementos práticos e teóricos que contribu-
am para sua formação e aperfeiçoamento. Os exemplos de estudos de casos apre-
sentados são totalmente aplicáveis no dia a dia da engenharia de software.
Sabemos que a análise e o projeto de qualquer sistema, por mais simples que se-
jam, não são tarefas triviais, pois envolvem uma habilidade e perícia do analista em
permear pelas necessidades do usuário, para extrair dele o que realmente deseja
para a solução. Estabelecer domínios e levantar requisitos são atividades que exi-
gem muito do raciocínio lógico formal do analista e tal raciocínio se desenvolve com
a experiência. Este livro representa somente o primeiro passo da sua jornada rumo
ao conhecimento.
Pode ser que, em algum momento da sua caminhada ao encontro do conhecimen-
to, você se depare com dificuldades que, naquele momento, parecem insolúveis e te
desmotivem, talvez, faça você até pensar em desistir, porém a persistência o levará a
solução, por isso, insista e nunca desista, todo problema tem solução, você somente
ainda não a encontrou.
Para os(as) futuros(as) engenheiros(as) de software, fica a dica de leituras dos livros
mencionados no final de cada unidade. São apresentadas situações de análise, pro-
jeto e desenvolvimento que serão muito úteis em sua vida profissional.
Um grande abraço, saúde, paz e luz na sua caminhada.
Prof. Me. Déverson Rogério Rando
175
REFERÊNCIAS