Escolar Documentos
Profissional Documentos
Cultura Documentos
ORIENTADO
A OBJETOS
PROFESSORES
Me. Déverson Rogério Rando
Esp. Janaína Aparecida de Freitas
ACESSE AQUI
O SEU LIVRO
NA VERSÃO
DIGITAL!
EXPEDIENTE
DIREÇÃ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 Executivo de EAD William Victor Kendrick de Matos Silva Pró-Reitor de Ensino
de EAD Janes Fidélis Tomelin Presidente da Mantenedora Cláudio Ferdinandi
FICHA CATALOGRÁFICA
Coordenador(a) de Conteúdo
Flavia Lumi Matuzawa
C397 CENTRO UNIVERSITÁRIO DE MARINGÁ.
Projeto Gráfico e Capa
Núcleo de Educação a Distância. RANDO, Déverson Rogério;
Arthur Cantareli, Jhonny Coelho FREITAS, Janaína Aparecida de.
e Thayla Guimarães
Análise e Projeto Orientado a Objetos.
Editoração Déverson Rogério Rando; Janaína Aparecida de Freitas.
Flávia Thaís Pedroso
Design Educacional Maringá - PR.: UniCesumar, 2020. Reimpresso em 2023.
Paulo Victor Souza e Silva 176 p.
Revisão Textual “Graduação - EaD”.
Carla Cristina Farinha e 1. Análise 2. Projeto Orientado a Objeto 3. Informática. EaD.
Ariane Andrade Fabreti I. Título.
Ilustração
Bruno Pardinho e André Azevedo
Fotos CDD - 22 ed. 005.1
CIP - NBR 12899 - AACR/2
Shutterstock Impresso por:
978-85-459-0113-6
qualidade, como, acima de tudo, gerar a con- são, que é promover a educação de qua-
versão integral das pessoas ao conhecimento. lidade nas diferentes áreas do conheci-
Reitor
Wilson de Matos Silva
TRAJETÓRIA PROFISSIONAL
http://lattes.cnpq.br/3108532655755995
http://lattes.cnpq.br/4906244382612830
A P R E S E N TA Ç Ã O DA DISCIPLINA
Caro(a) aluno(a)! Seja bem-vindo(a) à disciplina de Análise e Projeto Orientado a Objetos (OO).
Esta disciplina abordará vários aspectos relacionados à análise e ao projeto de sistemas orien-
tados a objetos, utilizando, como notação, a linguagem de modelagem UML. Apresentamos
a você, aluno(a), o livro que conduzirá seus estudos, auxiliando no aprendizado de análise e
projeto orientado a objetos com a UML.
Na Unidade 4, conheceremos mais três diagramas, essenciais em análise e projeto OO, que
utilizaremos para refinar o diagrama de classes que representa a estrutura do sistema. O
primeiro diagrama que veremos, nesta unidade, é o de sequência, cujo objetivo é estudar as
interações entre os objetos, considerando a dimensão tempo. O segundo diagrama que ve-
remos é o de estados, que tem como objetivo especificar 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 do diagrama de sequência, porém não considera o tempo,
e sim a ordem da comunicação.
Por fim, na Unidade 5, resolveremos, juntos, um estudo de caso, no qual teremos a oportu-
nidade de apresentar, de forma prática, a construção dos diagramas citados na elaboração
da análise e do projeto de um software. Dessa forma, reforçaremos todos os conceitos tra-
balhados nas unidades anteriores.
Ao longo deste livro, você encontrará indicações de leitura complementar, as quais enrique-
cerão o seu conhecimento sobre projetos. É importante que você desenvolva as atividades de
estudo para fixar o conteúdo abordado e identificar eventuais dificuldades. Preparados(as)?
Vamos lá!
ÍCONES
pensando juntos
explorando ideias
quadro-resumo
conceituando
Sabe aquela palavra ou aquele termo que você não conhece? Este ele-
mento ajudará você a conceituá-la(o) melhor da maneira mais simples.
conecte-se
PROGRAMÁTICO
UNIDADE 01
10 UNIDADE 02
40
INTRODUÇÃO CASOS DE USO
AO ESTUDO DE
ORIENTAÇÃO A
OBJETOS
UNIDADE 03
70 UNIDADE 04
102
DIAGRAMA DE DIAGRAMAS DE
CLASSES SEQUÊNCIA, ESTADO
E COLABORAÇÃO
UNIDADE 05
130 FECHAMENTO
168
ESTUDO DE CASO CONCLUSÃO GERAL
1
INTRODUÇÃO
AO ESTUDO
de orientação a objetos
PROFESSORES
Me. Déverson Rogério Rando
Esp. Janaína Aparecida de Freitas
PLANO DE ESTUDO
A seguir, apresentam-se as aulas 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.
OBJETIVOS DE APRENDIZAGEM
Entender a importância de análise e projeto • Conhecer a evolução dos métodos OO • Compreender as
características dos métodos OO e seus diferentes termos • Conhecer os principais diagramas da UML.
INTRODUÇÃO
À ORIENTAÇÃO
a objetos
ANÁLISE E PROJETO
12
Resumindo: a análise é a solução conceitual dada ao problema. Marca o início
UNICESUMAR
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 utilizados.
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 consiste na solução computacional aplicada ao
problema. Dizer onde acaba a análise e se inicia o projeto é muito complicado,
uma vez que o projeto é o resultado de refinamentos sucessivos do modelo con-
ceitual de análise.
A Orientação a Objetos fez com que fosse alterado o enfoque necessário
para desenvolver um sistema, enquanto que, na programação estruturada, havia,
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 tratá-los, e a execução das atividades dos sistemas passa a depender
da interação dessas classes.
Análise e projeto OO
13
O DER modela a estrutura de dados parados, ou seja, é o modelo conceitual do
UNIDADE 1
explorando Ideias
Um sistema orientado a objetos é composto de objetos interativos que mantêm seu pró-
prio estado local e oferecem operações nesse estado. A representação do estado é privada
e não pode ser acessada diretamente, de fora do objeto. Processos de projeto orientado a
objetos envolvem projetar as classes de objetos e os relacionamentos entre essas classes.
Essas classes definem os objetos no sistema e suas interações. Quando o projeto é con-
cebido como um programa em execução, os objetos são criados dinamicamente a partir
dessas definições de classe. Sistemas orientados a objetos são mais fáceis de mudar do
que os sistemas desenvolvidos com abordagens funcionais. Os objetos incluem os dados
e as operações para manipulá-los. Portanto, eles podem ser entendidos e modificados
como entidades autônomas. Como os objetos são associados com coisas, muitas vezes,
existe um mapeamento claro entre entidades do mundo real e seus objetos de controle
no sistema, o que melhora a inteligibilidade e, portanto, a manuteniblidade do projeto.
Fonte: Sommerville (2011, p.125).
14
2
EVOLUÇÃO
UNICESUMAR
DOS MÉTODOS OO
15
Shlaer e Mellor (1990)
UNIDADE 1
Fusion (1996)
Abrange as fases de análise, projeto e implementação. Sintetiza os aspec-
tos mais positivos dos métodos de James Rumbaugh/OMT, Grady Booch,
Wirfs-Brock/CRC e Ivar Jacobson/Objectory. O autor enfoca os modelos
de objetos e processos do método OMT, a interação de objetos da CRC, a
visibilidade do método de Booch e complementa com pré e pós-condições
de métodos formais (COLEMAN, 1996).
16
UML – Unified Modeling Language (2000)
UNICESUMAR
Abrange as fases de levantamento de requisitos, análise, projeto e implemen-
tação. Fusão dos métodos de James Rumbaugh/OMT, Grady Boock e Ivar
Jacobson. A fusão inicia com o trabalho de Rumbaugh e Booch, os dois me-
todistas que ganharam mais popularização, os quais se juntaram para criar
para o público um método comum por meio de pontos fortes em 1995. Em
seguida, em meados de 1996, 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, considerado um padrão mundial.
A UML sugere, fortemente, a adoção de casos de uso (use cases) como dire-
cionadores de projetos de software, a utilização de diagramas de interação para
identificação de objetos e uma série de outros conceitos.
explorando Ideias
pensando juntos
O modelo de projeto engloba quatro elementos distintos; à medida que cada um é desen-
volvido, evolui uma visão mais completa do projeto.
(Roger Pressman)
17
3
CONCEITOS
UNIDADE 1
BÁSICOS DE OO
18
■ Abstração: abstraímos quando definimos um objeto conceitual partindo
UNICESUMAR
de objetos do mundo real com os mesmos comportamentos e caracterís-
ticas, os quais são classificados como de um mesmo tipo.
da sua classe.
■ 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.
UNICESUMAR
utilizada na solicitação de execução de uma operação. É a maneira como
conseguimos que um método seja executado.
■ Evento: é um tipo especial de operação que faz com que os objetos mu-
dem de estado.
Figura 12 - Parâmetro - Avião, partida (linha aérea, número do voo, cidade) / Fonte:
os autores.
21
■ Estado: é a forma de apresentação dos objetos de uma classe em deter-
UNIDADE 1
minado instante.
UNICESUMAR
de se comportarem de forma diferente em uma mesma operação. A es-
trutura (atributos) de cada classe é diferente.
23
4
PRINCIPAIS
UNIDADE 1
DIAGRAMAS DA UML
24
É comum verificarmos que a documentação do software, na maioria das vezes, não
UNICESUMAR
tem a devida atenção da equipe de desenvolvimento, por preguiça, ou por falta de
tempo, ou mesmo por pensar que é perda de tempo elaborar inúmeros diagramas.
Porém, bons softwares têm documentação que nos permite contar e entender a sua
história. A seguir, conheceremos alguns dos diagramas mais utilizados na UML.
Diagramas de comportamento
Realiza
Cria livro empréstimo
Realiza
Cria aluno
consulta
Bibliotecária Aluno
Realiza
Efetua empréstimo devolução
25
Diagrama de sequência
UNIDADE 1
26
Outra forma de representar esse cenário é pelo diagrama de comunicação (com-
UNICESUMAR
portamento). Ele contém as mesmas informações que o diagrama de sequência,
porém não considera a dimensão temporal.
Diagrama de estados
explorando Ideias
Não são todas as classes do sistema que apresentam mais de um estado. O diagrama
de estado a seguir mostra todos os estados do exemplar no momento empréstimo.
O início do estado é marcado pelo círculo, e o fim é marcado pelo duplo círculo.
Diagrama de atividades
28
UNICESUMAR
Figura 25 - Diagrama de atividades / Fonte: os autores.
Diagramas de estrutura
Diagrama de classes
29
Para entendermos melhor, faremos a analogia com a construção de um veícu-
UNIDADE 1
lo. Todos os veículos serão rigorosamente iguais, pois estarão baseados em uma
planta (projeto) que esclarece o número de portas, a potência do motor, o número
de marchas do câmbio, entre outros atributos. Portanto, o projeto do veículo é a
classe, e os veículos são os objetos que foram baseados na classe.
O diagrama de classes a seguir modela a estrutura estática do sistema de bi-
blioteca, apresentado em análise inicial. Por meio do diagrama de caso de uso, a
classe possibilita a abstração dos objetos mediante os atributos (data: date; nome:
string...) e métodos (Cria(); Recupera()...).
Toda notação do diagrama será inteiramente desmistificada na Unidade 3, mas,
para adiantar, é possível observar, neste diagrama, além das classes, que contêm
atributos e métodos, as conexões entre as classes, que podem ser uma agregação,
representada pelo losango, ou uma especialização, representada pelo triângulo.
Diagrama de objetos
30
PESSOA
UNICESUMAR
• Nome: “João da Silva”
• Fone: “(43) 3948-4039
ALUNO PROFESSOR
Diagrama de componentes
31
Diagrama de implantação
UNIDADE 1
32
Diagrama de pacotes
UNICESUMAR
O pacote representa um agrupamento de classes, formando uma unidade. Nor-
malmente, os pacotes apresentam relações em que um depende de outro para o
funcionamento. Como a estrutura de uma aplicação é dada pelas classes e associa-
ções, podemos agrupar as classes em pacotes de análise, o que facilita o manuseio
do modelo de análise.
Podemos utilizar o diagrama de pacotes para representar um conjunto de sub-
sistemas, e, neste caso, cada subsistema é representado por um pacote. Dessa forma,
um pacote pode representar uma biblioteca, um subsistema, um sistema, entre
outros, e, também, um pacote pode conter outros. Os pacotes, invariavelmente,
apresentam dependência entre si, o relacionamento de dependência indica que
o pacote dependente precisa, de alguma forma, daquele outro do qual depende.
33
CONSIDERAÇÕES FINAIS
UNIDADE 1
34
na prática
a) I, apenas.
b) I e II, apenas.
c) I, II e III, apenas.
d) III e IV, apenas.
e) I, II, III e IV.
35
na prática
5. Leia o excerto a seguir e veja quais das alternativas preenche, corretamente, a lacuna:
a) De comunicação.
b) De caso de uso.
c) De classes.
d) De estado.
e) De pacotes.
36
aprimore-se
QUALIFICAÇÃO DE SOFTWARES
Como um software pode ser qualificado? É muito simplório definir isto pelo tempo
de desenvolvimento ou pela excelência na programação. Existem casos de desen-
volvimento de softwares em que o programador ouve todas as informações e apre-
senta uma solução instantânea, quase que “mágica”, algo que resolve perfeitamente
o que foi apresentado. Vendo desta forma, a sensação é que o atendimento foi
excepcional, contudo, na maioria dos casos, programas feitos neste formato não
suprem a real necessidade do cliente.
Não podemos julgar o cliente por não saber apresentar, de forma assertiva, as
suas necessidades, pois o conhecimento da construção técnica é inexistente ou su-
perficial, não acompanha as tendências do mercado, entre outras hipóteses. E a
consequência disso tudo é a perda de investimento financeiro e de tempo em um
projeto que não suprirá a necessidade geral e uma programação desgastante, tanto
para o programador quanto para o cliente. Casos assim não são exceções, é muito
provável que você já os tenha vivenciado.
Este problema, porém, não é exclusivo do desenvolvimento de softwares, é cor-
riqueiro no mercado. Para provar isto, basta necessitarmos de um serviço que não
temos nenhum conhecimento do processo, como consertar um carro. A solução
só vem quando um profissional qualificado está mais preocupado em satisfazer o
cliente do que resolver, exclusivamente, o seu problema apresentado. Os profissio-
nais que mantêm este método de atendimento são substituídos aos poucos.
Na rotina diária de programação, normalmente, o início do projeto vem de uma
conversa informal, e, só na primeira apresentação, depois de um bom tempo de de-
dicação, é que o cliente consegue esclarecer o que deseja, ainda de forma abstrata,
por meio de frases como “não é bem isso que eu esperava”. Outro caso comum que
acontece pela falta de alinhamento é o seguinte: as solicitações do cliente aumen-
tam durante o processo todo, e, como nada é estabelecido de forma clara no início
do trabalho, você pode até prolongar o projeto, mas, possivelmente, não atenderá a
todas as necessidades do seu cliente.
37
aprimore-se
Finalizo lembrando que o cliente não tem obrigação de entender como funciona
toda a programação e que a preocupação em o atender deve ser do programador,
não o contrário. Um bom profissional precisa “interpretar” a necessidade de um clien-
te e oferecer não o que ele está pedindo, mas, sim, o que suprirá a necessidade dele.
Fonte: o autor.
38
eu recomendo!
livro
conecte-se
39
2
CASOS
DE USO
PROFESSORES
Me. Déverson Rogério Rando
Esp. Janaína Aparecida de Freitas
PLANO DE ESTUDO
A seguir, apresentam-se as aulas que você estudará nesta unidade: • Fases da Análise e do Projeto •
Modelos de Processo • Requisitos de Software • Diagrama de Casos de Uso.
OBJETIVOS DE APRENDIZAGEM
Conhecer as fases de 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 diagra-
ma de caso de uso.
INTRODUÇÃO
DA ANÁLISE
e do projeto
UNICESUMAR
■ Implantação.
■ Manutenção (adaptativa, corretiva e evolutiva).
Identificação da necessidade
Ainda nesta 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 o tempo necessário para conclusão?
Caso o novo sistema seja um produto a ser desenvolvido para a venda direcio-
nada a muitos clientes, o analista, ainda, deve avaliar o seguinte:
■ Qual é o mercado em potencial para o produto?
■ Como este produto se compara com os produtos dos concorrentes?
Estudo de viabilidade
Análise
A coleção exata dos dados é essencial para a análise completa de um sistema, por-
tanto o analista deve considerar os seguintes objetivos (SOMMERVILE, 2011):
■ Entender os objetivos do sistema (o que o administrador/usuário espera dele).
■ Entender as exigências do sistema (o que processar e que saídas produzir).
■ Entender que os objetivos e as 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.
44
Projeto
UNICESUMAR
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 es-
trutura 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 elaborar modelos com
diferentes níveis de abstração, é possível detectar problemas nos níveis anteriores.
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
Implantação
45
mais preocupante, nesta fase, é, justamente, o período que será necessário para a
UNIDADE 2
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 de-
terminada forma, e a mudança é vista com restrição.
Manutenção
explorando Ideias
Projeto é o que quase todo engenheiro quer fazer. É o lugar onde a criatividade impera
— onde os requisitos dos interessados, as necessidades da aplicação e considerações
técnicas se juntam na formulação de um produto ou sistema. O projeto cria uma repre-
sentação ou modelo do software, mas diferentemente do modelo de requisitos (que se
concentra na descrição do “O que” é para ser feito: dos dados, função e comportamento
necessários), o modelo de projeto indica “O Como” fazer, fornecendo detalhes sobre a ar-
quitetura de software, estruturas de dados, interfaces e componentes fundamentais para
implementar o sistema. Os engenheiros de software conduzem cada uma das tarefas de
projeto. Por que é importante? O projeto permite que se modele o sistema ou produto
a ser construído. O modelo pode ser avaliado em termos de qualidade e aperfeiçoado
ANTES de o código ser gerado, ou de os testes serem realizados, ou de os usuários finais
se envolverem com grandes números.
Fonte: Pressman (2011, p. 206, grifo do autor).
46
2
MODELOS
UNICESUMAR
DE PROCESSO
Modelo cascata
Modelo evolucionário
49
Linguagem de modelagem – UML
UNIDADE 2
50
UNICESUMAR
Figura 3 - Charge sobre projeto de software / Fonte: Ampersand (2013, on-line, traduzido
pelo autor)1.
pensando juntos
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.
51
3
REQUISITOS
UNIDADE 2
DE SOFTWARE
52
Domínio
UNICESUMAR
O que é domínio? Para entender melhor, imaginaremos que você foi contrata-
do(a) para desenvolver um software em determinada Casa de Carnes. Do lado
direito da Casa de Carnes, existe uma farmácia, do lado esquerdo, um mercado,
atrás, uma lanchonete e, em frente, uma igreja. Neste caso, o domínio do seu
problema é a Casa de Carnes, os demais estabelecimentos 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.
É óbvio que determinar o domínio do problema não é uma tarefa trivial, pois
você pode ser contratado(a) para desenvolver um software para determinado
departamento de uma empresa, dessa forma, determinar esse domínio se torna
mais complexo.
Sendo assim, os limites do domínio (fronteira) podem ser determinados por
meio do estabelecimento dos objetivos pretendidos. Para tanto, não devemos
centrar em funcionalidades, mas, sim, em finalidade.
Requisitos
53
Definições de requisitos:
UNIDADE 2
Especificação de requisitos:
1.1. O usuário deverá ser provido de recursos que permitam definir os tipos de arqui-
vos externos que serão acessados.
1.2. Para cada tipo de arquivo externo, deve ser associado o aplicativo que o gerou.
1.3. A cada tipo de arquivo externo, deve ser associado um ícone específico.
1.4. Deverá ser permitido ao usuário definir os ícones que serão utilizados na repre-
sentação dos arquivos externos.
54
A partir das definições dos requisitos, produzimos o documento preliminar deles,
UNICESUMAR
que deve conter todos os serviços (requisitos) requeridos pelo cliente, explicitados
de forma clara, sem contradições. Atingir este objetivo é uma tarefa difícil pelas
inúmeras dificuldades que são encontradas no domínio. Mas, para que essas
dificuldades sejam superadas, o documento preliminar de requisitos deve conter
algumas características de qualidade. Segundo Pressman (1995), são elas:
55
Característica 5 – Não podem ser ambíguas: cada declaração deve ser ex-
UNIDADE 2
56
Os casos de uso têm um papel importantíssimo na análise de requisitos, pois
UNICESUMAR
permitem criar um cenário do domínio, e, talvez, este seja o único instrumento
que acompanha o software do início até seu término, além disso, casos de uso
representam funcionalidades completas para o usuário e não funcionalidades
internas do sistema. Outro ponto importante é que o diagrama de casos de uso
é um artefato de comunicação entre cliente, usuários e desenvolvedores. Por ser
extremamente simples e, consequentemente, de fácil compreensão, incentiva a
participação do cliente e dos usuários no processo de desenvolvimento, também
serve como um contrato entre a equipe desenvolvedora e o cliente.
A coleção de casos de uso representa todos os modos pelos quais o sistema
pode ser utilizado pelos atores envolvidos. Um caso de uso é uma sequência de
ações realizada, colaborativamente, pelos atores envolvidos e pelo sistema que
produz um resultado significativo (com valor) para os atores, e estes podem ser
um usuário ou outro sistema.
O diagrama de casos de uso é apenas um panorama visual das funciona-
lidades do sistema, é necessária uma descrição textual para detalhar os casos.
Portanto, a saída da fase de análise de requisitos é composta por:
■ Lista de requisitos funcionais e não funcionais.
■ Diagrama de casos de uso e definições textuais dos casos.
explorando Ideias
57
4
DIAGRAMA
UNIDADE 2
DE CASOS DE USO
58
Atores
UNICESUMAR
Começaremos, então, pelo homem palito, que representa um
ator no meu sistema. Esse ator pode ser uma pessoa, outro sis-
tema ou uma entidade externa ao sistema.
Como encontrar os atores para um sistema? Usando as
seguintes dicas:
■ Examine o problema procurando por pessoas ou sis-
Figura 4 - O ator /
temas do entorno. Fonte: os autores.
■ Faça as seguintes perguntas:
■ Quais são as pessoas ou os departamentos interessados em determi-
nado requisito funcional?
■ Quem suprirá o sistema com informações e quem receberá informa-
ções dele?
■ Quais os recursos externos utilizados pelo sistema?
■ Uma pessoa desempenha diferentes papéis?
■ O sistema interage com outros sistemas existentes?
Essas dicas também não garantem que o ator foi bem escolhido da primeira vez,
pois este é um processo iterativo; dificilmente, a primeira tentativa será a definitiva.
explorando Ideias
Os casos de uso são documentados por um diagrama de casos de uso de alto nível. O
conjunto de casos de uso representa todas as possíveis interações que serão descritas
nos requisitos de sistema. Atores, que podem ser pessoas ou outros sistemas, são repre-
sentados como figuras “palito”. Cada classe de interação é representada por uma elipse.
Linhas fazem a ligação entre os atores e a interação. Opcionalmente, pontas de flechas
podem ser adicionadas às linhas para mostrar como a interação se inicia. Não há distin-
ção entre cenários e casos de uso que seja simples e rápida. Algumas pessoas consideram
cada caso de uso um cenário único; outros, encapsulam um conjunto de cenários em um
único caso de uso. Cada cenário é um segmento através do caso de uso. Portanto, seria
um cenário para a interação normal, além de cenários para cada possível exceção. Você
pode, na prática, usá-los de qualquer forma.
Fonte: Sommerville (2011, p. 74).
59
Casos de uso
UNIDADE 2
A elipse é a notação para os casos de uso, ou use case, na verdade, as duas denomi-
nações são utilizadas. Um caso de uso representa uma atividade que o ator realiza.
Sendo assim, o diagrama, por si só, não é suficiente. Os casos de uso devem vir
acompanhados de uma descrição em que, normalmente, relacionamos os se-
guintes itens:
■ Nome.
■ Descrição.
■ Requisitos funcionais providos pelo caso de uso.
■ Restrições, tais como pré e pós-condições.
60
■ Pré-condições: define o que deve ser verdadeiro para que o caso de uso
UNICESUMAR
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 anterior, o sistema pode se encontrar em um dos seguintes es-
tados: seguro concedido ou seguro não concedido por reprovaçã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.
Relações de dependência
As relações de dependência são representadas por uma seta tracejada, ela parte
do caso de uso que depende de outro em algum momento. O diagrama da Figura
6 nos diz que, para o cadastro de aluno, é necessária a conclusão do cadastro de
pessoa.
´
Figura 6 - Dependência / Fonte: os autores.
61
UNIDADE 2
<<include>>
Calcular contas Calcular contas
a pagar receber
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.
Ilustraremos esta documentação, por meio do caso de uso, para resolver ex-
pressões aritméticas.
62
Podemos fazer a descrição textual para o caso de uso Resolver Expressões Arit-
UNICESUMAR
méticas de acordo com o quadro a seguir:
Ator Aluno.
Fluxo básico
Usuário Sistema
{Solicita expressão}
Fornece a expressão
{Valida a expressão}
{Calcula valor}
{Mostra o resultado}
{Fim}
63
Fluxos alternativos
UNIDADE 2
64
CONSIDERAÇÕES FINAIS
UNICESUMAR
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 do respectivo ambiente. Vimos que, independentemente
do método ou processo utilizado para a análise, projeto e implementação, algu-
mas 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.
Aprendemos que um método precisa de um modelo de linguagem e um
processo. O primeiro diz respeito à notação que o método usa para descrever o
projeto, já o segundo descreve os passos que devem ser seguidos para construí-lo.
Familiarizamo-nos com dois modelos de processo de software: o cascata e
o evolucionário. Verificamos que o modelo cascata é indicado quando conhe-
cemos o domínio e o problema por completo, pois as fases são bem definidas e
pressupõem que o início de uma nova fase depende da conclusão da anterior. Já
o modelo evolucionário é indicado quando temos que aprender sobre o domínio
e o problema no desenvolvimento da aplicação, resultando em várias versões
intermediárias até chegarmos ao produto final.
Aprendemos que a adição do termo “engenharia” à análise de requisitos pres-
supõe que técnicas sistemáticas são utilizadas no processo de levantamento de
requisitos, garantindo que eles serão consistentes, completos e relevantes. Vimos,
também, que a engenharia de requisitos é de suma importância, pois é nesta fase
que especificamos o problema, bem como compreendemos e definimos uma
proposta por meio de um modelo válido.
Por fim, aprendemos que o modelo de caso de uso é um diagrama utilizado
na análise de requisitos, com o objetivo de compreender o problema, delimitar o
sistema e definir as funcionalidades oferecidas ao usuário, sem nos preocuparmos
com a implementação.
65
na prática
1. Quais são objetivos que o analista deve ter no momento da análise? Explique cada
um deles.
66
aprimore-se
67
aprimore-se
■ Selecione o caso de uso que será testado, identifique o fluxo principal e os fluxos
alternativos e desenhe um diagrama de atividades. Desse modo, você consegui-
rá visualizar, mais facilmente, todos os cenários que o usuário pode utilizar.
■ Agora que já identificou os cenários, você começará a escrever um caso de
teste para cada cenário, detalhando todos os passos do cenário. Desse modo,
o testador poderá executar as ações do ator e validar se a resposta do siste-
ma está de acordo com o que foi especificado.
■ Para iniciar os testes, será necessária a criação de uma base de dados de
certificação, se ela ainda não existir (não é prudente fazer os testes na base
de desenvolvimento e, muito menos, em produção), e identificar os dados de
entrada que serão utilizados nos testes.
■ É importante tabular o resultado dos testes, como quantidade de acertos, de-
feitos e correções, e armazenar esta informação em algum meio permanente.
Isto servirá para avaliar a qualidade de cada desenvolvedor da sua equipe.
Dessa maneira, podemos concluir que usar os casos de uso como modelo para os
testes permitirá a visão mais apurada do software, bem como mais noção das ne-
cessidades dos clientes.
68
eu recomendo!
livro
conecte-se
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 de-
senvolvimento distribuído de software”. Este 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.
http://wer.inf.puc-rio.br/WERpapers/artigos/artigos_WER03/leandro_audy.pdf
69
3
DIAGRAMA
DE CLASSES
PROFESSORES
Me. Déverson Rogério Rando
Esp. Janaína Aparecida de Freitas
PLANO DE ESTUDO
A seguir, apresentam-se as aulas que você estudará nesta unidade: • Diagrama de Classes • Notação
para Classes • Atributos e Métodos • Multiplicidade entre as Associações de Classes • Tipos de Associação
entre Xlasses • Herança Múltipla.
OBJETIVOS DE APRENDIZAGEM
Entender o objetivo do diagrama de classes • Conhecer a notação UML para 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.
INTRODUÇÃO
DE CLASSES
72
UNICESUMAR
Figura 1 - Objetos do mundo real / Fonte: os autores.
Uma classe é uma estrutura que modela um conjunto de objetos cujas caracterís-
ticas 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 atribu-
tos. As classes, juntamente com os atributos, as operações e associações, são de-
finidas em um diagrama de classe. Porém, não existe uma receita ou um método
para a escolha das classes do sistema, esta tarefa depende, fundamentalmente, da
experiência do desenvolvedor.
No início do projeto, as classes são denominadas “candidatas” ou “análise”, pois
existe uma probabilidade muito grande de que mudem ao longo dele. Antes de
aprendermos como fazer, apresento a notação para classes.
explorando Ideias
73
2
NOTAÇÃO
UNIDADE 3
PARA CLASSES
74
Por fim, a classe também pode ser
UNICESUMAR
apresentada em um retângulo divi-
dido em três compartimentos, como
ilustra a Figura 4.
pensando juntos
Uma classe abstrata não gera objetos, porque, geralmente, ela tem, no mínimo, uma ope-
ração abstrata nela definida. Se ela, na verdade, criasse um objeto, uma mensagem invo-
cando a operação abstrata do objeto provocaria um erro de run-time.
(Ian Sommerville)
75
3
ATRIBUTOS
UNIDADE 3
E MÉTODOS
Atributos
O dicionário Michaelis ([2020], on-line)3 explica que atributo é aquilo que é pró-
prio de alguém ou de algo, resumindo, atributo é uma característica. Dessa forma,
os atributos são os elementos que definem a estrutura de uma classe e, também,
são denominados variáveis de classe. O atributo é um elemento da classe que
pode representar uma característica dos objetos instanciados.
A sintaxe (assinatura) para declaração de um atributo em UML tem o se-
guinte formato:
[<visibilidade>]<nome>:[<tipo>][=<valor inicial>]
76
<visibilidade>
UNICESUMAR
A visibilidade nos informa quais são as classes que podem ver esse atributo. Te-
mos as seguintes opções:
<nome>
<tipo>
■ Long: 8 bytes.
■ Reais em ponto flutuante: igual aos inteiros, também diferem nas preci-
sõ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.
Na Figura 6, podemos observar que o
atributo nome tem visibilidade privada, ou
seja, somente os métodos desta classe pode-
rão realizar operações com esse atributo. O
atributo sexo é protegido, podendo ser vis-
to somente nesta classe ou em classes deri-
vadas, observe que esse atributo é iniciado
com o valor ‘F’, que implica dizer que sem-
pre que um objeto for instanciado, receberá
Figura 6 - Classe com os compartimentos
o valor ‘F’. Por fim, o atributo código tem a de nome e atributos / Fonte: os autores.
visibilidade pública, que significa dizer que
esse atributo está visível para todas as classes.
Métodos
UNICESUMAR
butos, vamos lá:
[<visibilidade>]<nome>(<lista argumentos>):[<retorno>]
<visibilidade>
<nome>
O nome do método segue as mesmas regras para o nome dos atributos e da classe.
<lista de argumentos>
80
4
MULTIPLICIDADE
UNICESUMAR
ENTRE AS
ASSOCIAÇÕES
de classes
Associação é uma relação entre duas classes, significando que os seus objetos pos-
suem 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.
* Zero ou mais.
1..* Um ou mais.
81
Vamos exemplificar: o diagrama de classes da Figura 10 nos mostra o relacio-
UNIDADE 3
Dessa forma, podemos fazer a seguinte leitura para o diagrama de classes a seguir:
■ Da esquerda para a direita:
■ Um aluno pode cursar somente uma disciplina.
■ Da direita para a esquerda:
■ Uma disciplina pode ser cursada somente por um aluno.
Aluno Disciplina
Aluno Disciplina
Cursa 1..*
Figura 12 - Identificação da associação / Fonte: os autores.
82
O próximo passo é fazer aquela pergunta da esquerda para a direita:
UNICESUMAR
■ Um aluno cursa quantas disciplinas?
■ Nossa resposta, agora, será: no mínimo, uma, no máximo, várias dis-
ciplinas.
Aluno Disciplina
* Cursa 1..*
Figura 13 - Multiplicidade um ou muitos / Fonte: os autores.
Por fim, o próximo passo é fazer aquela pergunta da direita para a esquerda:
■ Uma disciplina pode ser cursada por quantos alunos?
■ Nossa resposta, agora, será: vários alunos.
Aluno Disciplina
* Cursa 1..*
Figura 14 - Multiplicidade um ou muitos para muitos / Fonte: os autores.
Perfeito! Agora nosso diagrama está completo! Fácil, não é!? Testaremos outras
cardinalidades: supondo que um aluno pode cursar somente uma disciplina, mas
a disciplina pode ser cursada por, no mínimo, um e, no máximo, muitos alunos,
nosso diagrama ficará como na Figura 15:
Aluno Disciplina
1..” Cursa 1
Figura 15 - Multiplicidade somente um para um ou muitos / Fonte: os autores.
83
5
TIPOS DE
UNIDADE 3
ASSOCIAÇÃO
entre classes
Associação unária
Funcionário
chefe - Nome: String
0..1 - Endereço: String
* trabalhador
Gerência
Figura 16 - Associação unária / Fonte: os autores.
84
Associação binária
UNICESUMAR
As associações binárias são as mais comuns, elas acontecem entre duas classes.
Fazendo a leitura do diagrama da Figura 17, podemos verificar que uma instância
de objeto da classe cliente está associada a 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).
Cliente Compra
1 Fazer *
Figura 17 - Associação binária / Fonte: os autores.
Associação ternária
A associação ternária associa três classes. A notação para essa associação é um losango
(diamante) e, ainda, suporta uma associação de classe ligada a ela (MEDEIROS, 2004).
O diagrama da Figura 18 mostra que um cliente pode não ter nenhum contrato
ou vários, e um contrato pode ser de um cliente ou de vários, porém a associação
entre as classes Cliente e Contrato associa, também, a classe Regras do Contrato,
que, neste caso, pode ter uma ou várias regras para aquele contrato específico.
Contrato Cliente
0..” 1..”
1..”
Regras do
Contrato
85
Classe associativa
UNIDADE 3
De acordo com Sommerville (2011), quando uma associação possuir atributos pró-
prios, pode-se criar uma classe associativa. Estas classes são úteis quando queremos
armazenar o histórico de uma associação (relacionamentos que ocorrem e inte-
ressam ser salvos). Enumeraremos algumas características das classes associativas:
■ São comuns em associações de multiplicidade *:* (muitos para muitos),
embora não seja uma regra.
■ 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
* *
Itens da Venda
Itens da Venda
Agregação
UNICESUMAR
de textos, barra de rolagem). Um comportamento que se aplica ao todo se pro-
paga às partes, por exemplo, ao movimentar a janela, todos seus elementos se
deslocam também. A agregação pode ser regular ou de composição. Veremos a
diferença entre elas.
Agregação regular
A B
B existe sem A
Quadro Figura
1..”
Para ficar ainda mais claro, utilizaremos o exemplo da Figura 22, o qual nos mos-
tra que monitor, teclado, mouse e drive são partes de CPU, porém cada uma das
instâncias desses objetos existe sem uma instância de CPU associada. Neste caso,
podemos afirmar que a destruição do objeto CPU não implicará a destruição dos
demais objetos associados.
87
UNIDADE 3
CPU
1 1 1 0..”
Monitor Teclado Mouse Drive
Agregação de composição
A B
Na Figura 24, podemos verificar que um orçamento pode ter muitos itens, porém
os itens de orçamento não existirão sem o orçamento.
88
Na Figura 25, o diagrama nos diz que um documento é composto de nenhum
UNICESUMAR
ou muitos parágrafos, e um parágrafo é composto por uma ou muitas sentenças;
as sentenças não existem sem o parágrafo, e o parágrafo não existe sem o docu-
mento. A destruição de uma instância de objeto da classe documento implica a
destruição das instâncias de objetos das outras duas classes agregadas.
Generalização
Cobertura total
90
Exclusiva
UNICESUMAR
A cobertura de uma generalização é exclusiva se cada elemento da classe genérica
é mapeado para, no máximo, um elemento das subclasses.
Na Figura 28, refinamos o diagrama do exemplo anterior, juntando as cober-
turas total e exclusiva. Dessa forma, temos que uma pessoa será, obrigatoriamente,
um homem ou uma mulher, não podendo ser os dois.
Parcial
91
Sobreposição
UNIDADE 3
92
6
HERANÇA
UNICESUMAR
MÚLTIPLA
93
A herança múltipla permite a concatenação (mesclagem) de informações de duas
UNIDADE 3
explorando Ideias
Herança múltipla dá-se quando uma subclasse herda atributos e operações de duas ou
mais superclasses. Este tipo de situação deve ser evitado. Apesar de a orientação a obje-
tos prever esta situação, ela introduz possibilidades de difícil solução.
Fonte: Medeiros (2004, p. 80).
94
CONSIDERAÇÕES FINAIS
UNICESUMAR
Nesta unidade, aprendemos que o diagrama de classes mostra a estrutura estática
do domínio das abstrações (classes) do sistema. Ele descreve os tipos de objetos
no sistema e os vários tipos de relacionamentos estáticos que existem entre eles.
Mostra os atributos e as operações de uma classe e checa a maneira com que os
objetos colaboram entre si.
Vimos que essa ferramenta de modelagem produz o diagrama mais impor-
tante do sistema, pois é usada para modelar um entendimento do domínio da
aplicação (essencialmente, parte do sistema de atividades humanas), e os objetos
também são entendidos como partes do sistema resultante.
Conhecemos a notação UML para o diagrama de classes em suas diversas
apresentações, além de compreendermos que o objetivo do diagrama de classes
é mostrar a estrutura estática do sistema, modelado a partir do levantamento de
requisitos representado no diagrama de caso de uso.
Familiarizamo-nos com o conceito e a sintaxe dos atributos e aprendemos
que são estes elementos que definem a estrutura de uma classe, representando
uma característica dos objetos instanciados. Aprendemos, também, que são os
métodos que determinam o comportamento dos objetos de uma classe e são
semelhantes às funções ou aos procedimentos da programação estruturada.
Entendemos como ocorre a multiplicidade entre as associações de classes e
que a multiplicidade especifica quantas instâncias de uma classe relacionam-se
a uma única instância de uma classe associada.
Conhecemos os vários tipos de associação entre classes: a associação unária
e binária, as classes associativas, a agregação regular e de composição, a genera-
lização e a especialização. Compreendemos que a 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, comunicaçã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 diagrama de classes.
95
na prática
2. O que é a herança?
96
aprimore-se
97
aprimore-se
98
aprimore-se
99
eu recomendo!
livro
Engenharia de Software
Autor: 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 as-
pectos da produção de software, ela é multidisciplinar e está em
constante mudança.
conecte-se
100
anotações
4
DIAGRAMAS DE
SEQUÊNCIA,
ESTADO
e colaboração
PROFESSORES
Me. Déverson Rogério Rando
Esp. Janaína Aparecida de Freitas
PLANO DE ESTUDO
A seguir, apresentam-se as aulas que você estudará nesta unidade: • Avançando nos Diagramas • Dia-
grama de Sequência • Diagrama de Estados • Diagrama de Comunicaçã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.
INTRODUÇÃO
NOS DIAGRAMAS
104
Vimos, na Unidade 2, que o diagrama de caso de uso é utilizadoRealiza
na análise
UNICESUMAR
empréstimo
de requisitos e acompanha o software desde o seu início até a conclusão. Nesse
diagrama, surge a figura do ator, que pode ser uma pessoa, um sistema, um ro-
Realiza
teador. O ator é quem realiza as atividades e sempre atua sobre um consulta
caso de uso.
Portanto, o diagrama de caso de uso modela o comportamento dos atores no
sistema. Olhando para o diagrama de caso de Aluno
uso da Figura 1, fica claro que o
Realiza
aluno realiza empréstimos, consultas e devoluções, enquanto a bibliotecária
devolução é
quem cria o livro, o aluno e os empréstimos no sistema.
Realiza Cria
empréstimo livro
Realiza Cria
consulta aluno
Bibliotecária
Aluno
Realiza Efetua
devolução empréstimo
Cria
Porém, o diagrama de casos de livrouso nos fornece apenas um panorama visual das
explorando Ideias
É a classe que nos fornecerá a estrutura para modelar um conjunto de objetos com carac-
terísticas similares. A classe contém métodos e atributos. Os métodos são responsáveis
por modelar o comportamento dos objetos da classe, e os atributos modelam os possíveis
estados do objeto.
Fonte: os autores.
105
2
DIAGRAMA
UNIDADE 4
DE SEQUÊNCIA
106
UNICESUMAR
s
Muito bem, mas como posso interpretar esse diagrama? A resposta é: conhecendo
sua notação. Vamos lá!
107
Notação do Diagrama de Sequência
UNIDADE 4
Timeline
Linha do Tempo
As timelines, ou linhas de vidas, fazem
parte da dimensão vertical do diagra-
ma. A linha de vida é composta por
duas partes: cabeça e cauda. A cabeça
é representada por um retângulo, no
qual é exibida a identificação do objeto,
a cauda corresponde a uma linha verti-
cal tracejada.
Figura 4 - Timeline (linha de vida ou tempo) /
Fonte: os autores.
108
Mensagens
UNICESUMAR
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 par-
te a seta é aquele que está enviando
a mensagem (objeto remetente). O
objeto para o qual a seta aponta é Figura 5 - Mensagens síncrona e assíncrona /
aquele que está recebendo a mensa- Fonte: os autores.
gem (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.
Como podemos verificar na Figura 5, 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 aguardando a
resposta do receptor e são representadas por uma seta com a ponta preenchida.
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 aguardando a resposta do receptor e são representadas por uma seta com
a ponta vazada. Não há 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 6:
109
Tempo de atividade
UNIDADE 4
Exemplo
Cadastrar Pessoas
Operador
Figura 8 - Caso de uso / Fonte: os autores.
110
O Quadro 1 mostra a descrição textual para o caso de uso “Cadastrar Pessoas”,
UNICESUMAR
vejamos:
Ator Operação.
Fluxo Básico
Usuário Sistema.
{Solicita Dados}
Fornece os dados
{Valida os dados}
{Grava os dados}
{Fim}
Fluxos alternativos
111
Essa descrição textual detalha o caso de uso, mostrando as prés e pós-condições
UNIDADE 4
para execução, bem como o fluxo básico de execução, que significa dizer que o
sistema solicitará a entrada de dados ao operador, que poderá cancelar, se desejar,
sendo desviado o fluxo de execução para o fluxo alternativo A2, porém, caso não
cancele, o sistema validará a entrada de dados fornecida pelo operador, desviando
para o fluxo alternativo A1, que tem como objetivo validar a entrada de dados,
verificando as máscaras de entrada, intervalo de valores, dentre outras regras. Se
passar pela validação, o sistema gravará os dados na base de dados.
Um fluxo descreve como o sistema e os atores colaboram para produzir algo
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, des-
viando 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,
definiremos as linhas do tempo, teremos uma para o usuário, outra para a inter-
face 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
112
Em seguida, o sistema solicitará a expressão para o usuário, enviando uma mensa-
UNICESUMAR
gem síncrona para a interface usuário, que deverá aguardar a resposta do Usuário
para a continuação, conforme a figura a seguir.
Usuário
1.1: Expressão? ( ) 1: SolicitarExpressao ( )
{Exp}
{Exp}
Figura 10 - Diagrama de sequência com troca de mensagens entre usuário e sistema / Fonte:
os autores.
Usuário
1.1: Expressão? ( ) 1: SolicitarExpressao ( )
{Exp}
2.2: Calcular(exp) ( )
113
3
DIAGRAMA
UNIDADE 4
DE ESTADOS
Nesta aula, veremos o diagrama de estados, que tem como objetivo especificar o com-
portamento das classes mais complexas, utilizando máquinas de estado. Somente, as
classes que possuem um número finito de estados conhecidos têm a necessidade de
uma representação por um diagrama de estado. É possível prever os possíveis com-
portamentos de um objeto por meio da análise da mudança de estados dos tipos de
objetos de um sistema. Dessa forma, o diagrama de estado representa o comporta-
mento interno da classe, permitindo a especificação da sua dinâmica. Uma especifi-
cação corresponde a como deve ser implementada uma classe.
Estado
114
Todos os objetos possuem um estado que, normalmente, é determinado pelos
UNICESUMAR
valores de seus atributos, que é o resultado de atividades executadas pelo objeto.
Figura 11 - Estado inicial / Fonte: os autores. Figura 12 - Estado final / Fonte: os autores.
State0
O estado simples, também, pode ser representado por um retângulo com dois
compartimentos. No primeiro compartimento, é informado o nome para o es-
tado, 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.
115
Estado Composto
UNIDADE 4
Estado Estado
Reservado
Disponível Emprestado
Manutenção
Estado 2
Estado 1 Estado 3
Estado 4
116
O fork, representado por um retângulo preenchido, indica estados concorrentes.
UNICESUMAR
Quando um estado chega ao fork, desencadeia um ou mais estados concorrentes.
Estado 1
Estado 1 Estado 2
Estado 3
E, por último, as ações. Elas ocorrem em três eventos: quando entra (entry), sai
(exit) ou quando está (do) em um estado.
Estado 1 Estado 2
entry / funcaoX funcaoZ( ) (Z>1) exit / funcaoY
117
De acordo com o diagrama de estados apresentado na Figura 15, a funcaoX será
UNIDADE 4
libera(exemplar_id)
DISPONÍVEL EMPRESTADO
do / atualiza( ) do / atualiza( )
empresta(exemplar_id)
encerra(exemplar_id)
ENCERRADO
do / atualiza( )
Figura 21 - Diagrama de estado / Fonte: os autores.
118
4
DIAGRAMA
UNICESUMAR
DE COMUNICAÇÃO
119
Notação para o Diagrama de Co-
UNIDADE 4
municação
Ator
Objeto
umaPessoa : Pessoa
Figura 23 - Instância identificada / Fonte: os autores.
Pessoa
Figura 24 - Classe / Fonte: os autores.
: umaPessoa
Figura 25 - Instância / Fonte: os autores.
120
Vínculo
UNICESUMAR
O vínculo é a ligação entre dois objetos, que identifica o envio e o recebimento
de mensagens.
: umaPessoa
: Médico
Figura 26 - Vínculo / Fonte: os autores.
Mensagens
As mensagens enviadas e recebidas são representadas por setas que apontam suas
direções, e a descrição da mensagem vem acompanhada do seu número de ordem.
1: Consulta ( )
2: fazDiagnóstico ( )
3: aplicaMedicação ( )
: umPaciente
: Médico 4: Sara ( )
Exemplo
121
Após a validação do aluno, o objeto empréstimo envia uma mensagem para o
UNIDADE 4
item empréstimo validar (3) o exemplar que está sendo emprestado, porém, para
o item empréstimo validar (4) o exemplar, é necessário enviar uma mensagem de
validação para o objeto exemplar.
1: Cria ( ) 2: Valida ( )
GUI Bibliotecária Empréstimo Aluno
3: Valida ( )
Item Empréstimo
4: Valida ( )
Exemplar
Figura 28 - Diagrama de Comunicação / Fonte: o autor.
pensando juntos
122
CONSIDERAÇÕES FINAIS
UNICESUMAR
Nesta unidade, aprendemos mais três diagramas importantes para análise e projeto
orientado a objetos, sendo eles: diagramas de sequência, de colaboração e de estado.
Familiarizamo-nos com a notação e com o modo de utilizar o diagrama de
sequência; 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 sistema
irá funcionar, representando toda a ordem de comunicação entre classes por meio
do diagrama de colaboração. Aprendemos que, diferentemente do diagrama 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
atalhos, e o tempo tratará de refinar sua arte. Então, programar é uma arte? Sim,
consideramos dessa forma, porque o software é uma produção intelectual, ou seja,
é uma obra do espírito, assim como aquele bom livro que lemos, aquele excelente
filme que assistimos ou, ainda, aquela escultura que apreciamos os contornos. A
diferença é que nem sempre produzimos aquilo que gostaríamos, mas, sim, aquilo
para o qual fomos contratados, por isso, há necessidade de apresentar habilidades
que permitam agregar pessoas.
123
na prática
124
aprimore-se
Prezado(a) aluno(a), segue uma matéria muito interessante sobre UP, um processo
unificado e estabelecido para o desenvolvimento de software, resultado de três dé-
cadas de desenvolvimento e de uso prático.
ENGENHARIA DE REQUISITOS E O UP
125
aprimore-se
126
aprimore-se
A UML foi adotada pela OMG (Object Management Group), em 1997, como lingua-
gem padrão para a modelagem de sistemas orientados a objeto. É uma linguagem
para especificação, visualização, construção e documentação de artefatos de sis-
temas de software, como também para a modelagem de negócios e outros siste-
mas não necessariamente relacionados a software, e representa uma coleção das
melhores práticas de engenharia que comprovaram bom êxito na modelagem de
sistemas grandes e complexos (OMG, 1997). Os principais diagramas da UML são:
Diagrama de Classes, Diagrama de Objetos, Diagrama de Casos de Uso, Diagrama
de Sequência, Diagrama de Colaborações, Diagrama de Gráficos de Estados, Diagra-
ma de Atividades, Diagrama de Componentes, Diagrama de Implantação.
A UML também permite a ampliação da linguagem de maneira controlada, por
meio de mecanismos de extensão, de forma a expressar todas as nuances possíveis
de todos os modelos em qualquer domínio de análise (exemplo: análise de negó-
cios), fornecendo alguma flexibilidade.
127
eu recomendo!
livro
conecte-se
Da mesma forma que é impossível construir uma casa sem, primeiramente, de-
finir 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/motiva-
cao1.htm
128
anotações
5
ESTUDO
DE CASO
PROFESSORES
Me. Déverson Rogério Rando
Esp. Janaína Aparecida de Freitas
PLANO DE ESTUDO
A seguir, apresentam-se as aulas 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.
OBJETIVOS DE APRENDIZAGEM
Conhecer uma ferramenta CASE para modelagem OO • Fazer a análise e projeto a partir de um estu-
do 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.
INTRODUÇÃO
CASE
Modelar um sistema à 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 tra-
dução livre, significa “engenharia de software auxiliada por computador”. É uma
classificaçã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 inseridas neste material foram feitas com a fer-
ramenta CASE, produzida pela empresa Astah. Desse modo, no material comple-
mentar, disponibilizamos o link para o download dessa ferramenta, que é gratuita.
pensando juntos
132
Muito bem, para nossa análise e projeto orientado a objetos, adotaremos a ferra-
UNICESUMAR
menta CASE Astah Community, por oferecer suporte para o modelo de lingua-
gem 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. Pensa que não é possível utilizar um mo-
delo de processo sem ferramentas CASE que o suportem. Invariavelmente, ocorre
que, na primeira manutenção, a documentação fica desatualizada, e, conforme
já discutimos, documentação desatualizada não serve para muita coisa. Porém,
com a utilização de uma ferramenta CASE adequada, fica fácil atualizar a docu-
mentação a cada manutenção.
explorando Ideias
O FAST CASE provê todas as funcionalidades necessárias para a construção dos modelos,
tais como o Modelo de Requisitos, suportando a técnica de casos de usos, e os Modelos
de Análise e Projeto, suportando os modelos de classes, interações e de ciclo de vida. O
sistema, que é distribuído livremente, já vem sendo utilizado há mais de um ano por mais
de uma centena de alunos. Para saber mais sobre o FAST CASE, acesse: http://www.inf.
ufsc.br/sbes99/anais/Sessao-Ferramenta-Completo/12-fastcase.pdf
Fonte: o autor.
133
2
ESTUDO
UNIDADE 5
DE CASO
UNICESUMAR
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, definiremos os requisitos funcionais do sistema. Lembrando que
requisito funcional é tudo aquilo que o sistema deve fazer.
Requisitos
135
3
DIAGRAMA
UNIDADE 5
DE CASO DE USO
UNICESUMAR
as ferramentas que precisaremos para a confecção do diagrama de caso de uso.
Como você pode observar, o software é bem intuitivo:
Cadastrar novos
usuários
137
O diagrama da Figura 4, agora, completo, mostra o operador do cinema e suas
UNIDADE 5
atribuições de realizar os cadastros de ator, filme, cinemas, salas, bem como fazer
as movimentações de exibir e suspender a exibição de um filme.
Administrador
Operador
138
Ator: Administrador
UNICESUMAR
Cadastrar novos
usuários
Administrador
Figura 5 - Cadastrar novos usuários / Fonte: os autores.
Ator Administrador.
Fluxo Básico
6. Fim
Fluxos alternativos
139
UNIDADE 5
Definir permissões
para usuário
Administrador
Figura 6 - Definir permissões para usuário / Fonte: os autores.
Ator Administrador.
Fluxo Básico
6. Fim
Fluxos alternativos
140
Ator: operador
UNICESUMAR
Cadastrar Elenco
Operador
Figura 7 - Cadastrar ator / Fonte: os autores.
Ator Operador.
Fluxo Básico
6. Fim
Fluxos alternativos
141
UNIDADE 5
Cadastrar Filmes
Operador
Figura 8 - Cadastrar filmes / Fonte: os autores.
Ator Operador.
Fluxo Básico
6. Fim
Fluxos alternativos
142
UNICESUMAR
Cadastrar Cinemas
Operador
Figura 9 - Cadastrar cinemas / Fonte: os autores.
Ator Operador.
Fluxo Básico
6. Fim
FLUXOS ALTERNATIVOS
143
UNIDADE 5
Cadastrar Salas
Operador
Figura 10 - Cadastrar salas / Fonte: os autores.
Ator Operador.
Fluxo Básico
6. Fim
Fluxos alternativos
144
UNICESUMAR
Exibir Filme
Operador
Figura 11 - Exibir filme / Fonte: os autores.
Ator Operador.
Fluxo Básico
9. Fim
Fluxos alternativos
Suspender exibição
de filme
Operador
Figura 12 - Suspender filme / Fonte: os autores.
Ator Operador.
Fluxo Básico
7. Fim
Fluxos alternativos
146
O que fizemos até agora?
UNICESUMAR
■ Levantamos os requisitos do sistema.
■ Elaboramos o diagrama de caso de uso.
■ Elaboramos a descrição de cada um dos casos de uso.
147
4
DIAGRAMA
UNIDADE 5
DE CLASSES
148
Cinema Filme
UNICESUMAR
- 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 - 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 pôde ter percebido, o nosso diagrama de classes está sem as associações,
então vamos completá-lo 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 se associa, uma vez
que o cinema é composto por salas.
Olhe que interessante: sublinhei 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 por quantas salas?
■ Resposta: por uma ou várias.
■ Uma sala compõe quantos cinemas?
■ Resposta: somente um.
149
Sendo assim, nosso diagrama ficou conforme mostrado na Figura 14. Observe
UNIDADE 5
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
Agora, verificaremos 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 existir. Vamos
fazer aquelas perguntinhas para verificar a multiplicidade:
■ Uma sala pode exibir quantos filmes?
■ Resposta: somente um.
■ Um filme pode ser exibido em quantas salas?
■ Resposta: em nenhuma ou em várias.
150
Vamos para a última associação entre filme e elenco. Nós sabemos que um ator
UNICESUMAR
pode atuar em vários filmes e que um filme pode ter vários atores. Podemos verifi-
car, então, que a multiplicidade para essa associação é de vários(n) para vários(n).
Quando temos uma multiplicidade “n” para “n”, obrigatoriamente, devemos criar
uma entidade associativa. Dessa forma, podemos conferir a versão final do nosso
diagrama de classes na Figura 16.
Elenco
- Elenco_id: int
- Nome: String
- Data de Nascimento: Date
- Nacionalidade: String
- Inserir( ): void
- Cancelar( ): void
151
5
DIAGRAMA
UNIDADE 5
DE SEQUÊNCIA
152
O próximo diagrama de se-
UNICESUMAR
Cinema
quência é para o caso de uso
Operador
1: Solicita Inserir ( ) “Cadastrar Cinema”. Nesse
2: Verifica entrada ( ) caso de uso, o operador solici-
ta a inserção de uma nova ins-
3: Salva Dados ( ) tância para a classe cinema, a
classe verifica se a entrada está
4: OK ( )
correta, salva os dados e retor-
na um ok para o operador.
Figura 18 - Diagrama de sequência para cadastrar
cinema / Fonte: os autores.
Operador
1: Solicita Inserir ( )
2: Verifica entrada ( )
3: Salva os dados ( )
4: Informa Filme ( )
5: Verifica Filme ( )
5.1: OK ( )
6: Salva os dados ( )
7: OK( )
8: OK( )
caso de uso, o operador solicita a inserção de uma nova instância para a classe
sala, a classe verifica se a entrada está correta, verifica se o cinema para aquela
sala existe, salva os dados e retorna um ok para o operador.
Sala Cinema
Operador
1: Solicita Inserir ( )
2: Verifica entrada ( )
3: Verifica Cinema ( )
3.1: OK ( )
4: Salva Dados ( )
5: OK ( )
154
O próximo diagrama de sequência é para o caso de uso “Exibir Filme”. Nesse caso
UNICESUMAR
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.
Sala Filme
Operador
1: Solicita Exibição ( )
2: Verifica entrada ( )
3.2: OK ( )
4: Solicita Horário ( )
5: Informa Horário ( )
6: Verifica Entrada ( )
7: Salva Dados ( )
8: OK ( )
155
O próximo diagrama de sequência é para o caso de uso “Suspender a Exibição
UNIDADE 5
Filme Sala
Operador
1: Solicita Suspensão ( )
2: Solicita Filme ( )
3: Altera Status ( )
4: Exclui Filme( )
5: Salva Dados ( )
6: OK ( )
7: OK ( )
156
6
DIAGRAMA
UNICESUMAR
DE ESTADO
157
O diagrama de estado da Figura 23 nos
UNIDADE 5
Status = “SUSPENSO”
marcado pela notação do círculo preenchi-
do, os estados possíveis são identificados Status = “EXIBINDO”
ma alteração.
Status = “SUSPENSO”
SUSPENSO
exit / gravar
158
7
DIAGRAMA
UNICESUMAR
DE COMUNICAÇÃO
2: Valida ( )
3: Salva ( )
1: Insere ( )( )
Filme
Operador
4: OK ( )
Figura 25 - Cadastrar filmes / Fonte: os autores.
159
A Figura 26 apresenta o diagrama de comunicação para cadastrar um novo cine-
UNIDADE 5
ma. O operador insere novos dados para o cinema, os dados são validados e salvos
pela classe e retorna uma mensagem de confirmação da operação para o operador.
2: Valida ( )
3: Salva ( )
1: Insere ( )( )
Cinema
Operador 4: OK ( )
3: Salva ( )
160
2: Verifica entrada ( )
UNICESUMAR
5: Salva ( )
Sala Cinema
Operador 6: OK ( ) 4: OK ( )
8: Verifica entrada ( )
Sala Cinema
Operador
6: Solicita Horário ( ) 5: OK ( )
7: Informa Horário ( )
Figura 29 - Diagrama de comunicação para exibição do filme / Fonte: os autores.
10: OK ( )
161
A Figura 30 apresenta um diagrama de comunicação para suspender a exibição
UNIDADE 5
de filme. O operador insere novos dados para a sala, os dados são validados pela
classe, que envia uma mensagem para a classe cinema, verificando a existência
do cinema, que retorna uma confirmação para a classe sala e solicita o horário ao
operador, que, por sua vez, informa o horário; em seguida, a entrada é verificada,
então os dados são salvos, e a operação é confirmada para o operador.
4: Altera Status ( ) 6: Salva ( )
Filme Sala
Operador
2: Solicita Filme ( ) 7: OK ( )
3: Informa Filme ( )
8: OK ( )
162
CONSIDERAÇÕES FINAIS
UNICESUMAR
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 o
primeiro diagrama que criamos para o estudo de caso, justamente para criarmos
um cenário do sistema; com ele, podemos verificar quais são os atores que inte-
ragem 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!
163
na prática
164
aprimore-se
165
aprimore-se
166
eu recomendo!
livro
conecte-se
167
167
conclusão geral
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.
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.
Para os(as) futuros(as) engenheiros(as) de software, fica a dica de leitura 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!
168
referências
BOOCH, G. Object-oriented Analysis and Design. San Francisco: Benjamin- Cummings, 1997.
JUNIOR, A. P. de A.; CAMPOS, R. de. Definição de requisitos de software baseada numa arquite-
tura de modelagem de negócios. Produção, São Paulo, v. 18, n. 1, 2008. Disponível em: https://
www.scielo.br/pdf/prod/v18n1/a03v18n1.pdf. Acesso em: 27 jul. 2020.
MARTIN, J.; ODELL, J. J. Análise e Projeto Orientados a Objeto. São Paulo: Makron Books, 1995.
MEDEIROS, E. S. de. Desenvolvendo software com UML 2.0: definitivo. São Paulo: Pearson
Makron Books, 2004.
SHLAER, S.; MELLOR, S. J. Análise de Sistemas Orientada a Objetos. São Paulo: Makron Books, 1990.
SILVEIRA, D. S.; SCHMITZ, E. A. Fast case: uma ferramenta case para o desenvolvimento visual
de sistemas orientados a objetos. 1999. 4 f. Tese (Mestrado) — Instituto de Matemática / Nú-
cleo de Computação Eletrônica, Universidade Federal do Rio de Janeiro, Rio de Janeiro, 1999.
SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.
RUMBAUGH, J. Object Oriented Modeling and Design. New Jersey: Prentice Hall, 1991.
REFERÊNCIAS ONLINE
1
Em: https://ampersandcommerce.com/news/agile-test-driven-development-our-way/. Aces-
so em: 27 jul. 2020.
2
Em: http://www.linhadecodigo.com.br/artigo/2958/como-fazer-um-plano-de-testes-basea-
do-em-casos-de-uso.aspx#ixzz3fJNU7NrE. Acesso em: 27 jul. 2020.
169
gabarito
170
gabarito
diversas propriedades do sistema e são 6. É uma classe que surge a partir da as-
classificados como: funcionais (definem sociação de duas outras classes, em que
as funções do sistema, ou seja, o que se a associação possui atributos próprios.
espera que o sistema realize) e não fun-
cionais (definem as características de
qualidade que o sistema deve possuir). UNIDADE 4
171
gabarito
UNIDADE 5
CINEMA
• Cinema_id: “1”
• Nome: “Cine XV” SALA
• Endereço: “Rua Flamingos, 381”
• Sala_id: “2”
• Lotação: “150”
• Horário: “14:00”
• Bairro: “Centro” 1 1... • Capacidade: 75
• Cidade: “Apucarana”
• UF: “PR”
• CEP: “86800-00”
<<MySQL>>
<<SSL>>
Servidor Web
XAMPP
<<HTTP>>
Operador
Browser
172
gabarito
3. Diagrama de componentes
Pesquisar Interface
4. Diagrama de atividades
OPERADOR SISTEMA
Solicita a Mostra
exibição interface
Altera o Validação
status
Informa Encerra
horário
173
anotações
anotações
anotações