1. Gerenciamento de Requisitos
Tecnologia em Análise e Desenvolvimento de Sistemas
Disciplina: Análise Orientada a Objetos
Prof.ª Ma. Tenilce Gabriela da Silva Alvarez
Porto Velho, 2023
2. Principais Etapas
●
Identificação de Requisitos;
●
Análise de Requisitos;
●
Documentação de Requisitos;
●
Priorização de Requisitos;
●
Rastreamentos de Requisitos;
●
Gestão de Mudanças de Requisitos;
3. Principais Etapas
●
Validação de Requisitos;
●
Comunicação com Stakeholders;
●
Gestão de Configuração de Requisitos;
●
Documentação de Rastreamento
6. Paradigma?
●
Um paradigma é uma forma de abordar um problema.
●
O paradigma da orientação a objetos surgiu no fim dos anos
60.
●
Hoje em dia, praticamente suplantou o paradigma anterior, o
paradigma estruturado...
7. O Paradigma a Orientação a Objetos
●
Alan Kay, um dos pais do paradigma da orientação a
objetos, formulou a chamada analogia biológica.
●
“Como seria um sistema de software que funcionasse como
um ser vivo?
8. Analogia Biológica
●
Cada “célula” interagiria com outras células através do
envio de mensagens para realizar um objetivo comum.
●
Adicionalmente, cada célula se comportaria como uma
unidade autônoma.
9. Analogia Biológica
●
De uma forma mais geral, Kay pensou em como construir
um sistema de software a partir de agentes autônomos que
interagem entre si.
●
Com isso, ele estabeleceu os princípios da orientação a
objetos.
10. Princípios da Orientação a Objetos
●
Qualquer coisa é um objeto.
●
Objetos realizam tarefas através da requisição de serviços a
outros objetos.
●
Cada objeto pertence a uma determinada classe. Uma classe
agrupa objetos similares.
●
A classe é um repositório para comportamento associado ao
objeto.
●
Classes são organizadas em hierarquias.
12. Orientação a Objetos
O paradigma da orientação a objetos visualiza
um sistema de software como uma coleção de
agentes interconectados chamados objetos.
Cada objeto é responsável por realizar tarefas
específicas. É através da interação entre objetos
que uma tarefa computacional é realizada.
13. Orientação a Objetos
Um sistema de software orientado a objetos
consiste de objetos em colaboração com o
objetivo de realizar as funcionalidades deste
sistema. Cada objeto é responsável por tarefas
específicas. É através da cooperação entre
objetos que a computação do sistema se
desenvolve.
14. Conceitos da Orientação a Objetos
●
Classes e objetos
●
Mensagens
●
Encapsulamento
●
Polimorfismo
●
Herança
15. Classes e Objetos
●
O mundo real é formado de coisas.
●
Na terminologia de orientação a objetos, estas coisas do
mundo real são denominadas objetos.
16. Classes e Objetos
●
Seres humanos costumam agrupar os objetos para entendê-
los.
●
A descrição de um grupo de objeto é denominada classe de
objetos, ou simplesmente de classe.
17. O que é uma Classe?
●
Uma classe é um molde para objetos. Diz-se que um objeto
é uma instância de uma classe.
18. Classes e Objetos
●
Importante: uma classe é uma abstração das características
relevantes de um grupo de coisas do mundo real.
●
Na maioria das vezes, um grupo de objetos do mundo real
é muito complexo para que todas suas características
sejam representadas em uma classe.
19. Objetos como abstrações
●
Uma abstração é uma representação das características
relevantes de um conceito do mundo real para um
determinado problema.
●
Carro (para uma transportadora de cargas)
●
Carro (para uma fábrica de automóveis)
●
Carro (para um colecionador)
●
Carro (para uma empresa de kart)
●
Carro (para um mecânico)
20. Classes x Objetos
●
Classes são definições estáticas, que possibilitam o
entendimento de um grupo de objetos.
●
Objetos são abstrações de entidades que existem no mundo
real.
●
CUIDADO: estes dois termos muitas vezes são usados
indistintamente.
21. Mensagens
●
Para que um objeto realize alguma tarefa, deve haver um
estímulo enviado a este objeto.
●
Pense em um objeto como uma entidade ativa que
representa uma abstração de algo do mundo real
●
Então faz sentido dizer que tal objeto pode responder a
estímulos a ele enviados
●
Assim como faz sentido dizer que seres vivos reagem a
estímulos que eles recebem.
22. Mensagens
●
Independentemente da origem do estímulo, quando ele
ocorre, diz-se que o objeto em questão está recebendo uma
mensagem.
●
Uma mensagem é uma requisição enviada de um objeto a
outro para que este último realize alguma operação.
23. Mensagens
●
Objetos de um sistema trocam mensagens
●
isto significa que estes objetos estão enviando mensagens uns
aos outros com o objetivo de realizar alguma tarefa dentro do
sistema no qual eles estão inseridos.
27. Abstração na Orientação a Objetos
●
A orientação a objetos faz uso intenso de abstrações.
●
Os princípios da orientação a objetos podem ser vistos
como aplicações do Princípio da Abstração.
●
Princípios:
●
Encapsulamento
●
Polimorfismo
●
Herança
30. Encapsulamento
●
O encapsulamento é uma forma de restringir o acesso ao
comportamento interno de um objeto.
●
Um objeto que precise da colaboração de outro objeto
para realizar alguma tarefa simplesmente envia uma
mensagem a este último.
●
O método (maneira de fazer) que o objeto requisitado usa
para realizar a tarefa não é conhecido dos objetos
requisitantes.
31. Encapsulamento
●
Na terminologia da orientação a objetos, diz-se que um
objeto possui uma interface.
●
A interface de um objeto é o que ele conhece e o que ele
sabe fazer, sem descrever como o objeto conhece ou faz.
●
A interface de um objeto define os serviços que ele pode
realizar e consequentemente as mensagens que ele recebe.
32. Encapsulamento
●
Uma interface pode ter
várias formas de
implementação.
●
Mas, pelo Princípio do
Encapsulamento, a
implementação de um
objeto requisitado não
importa para um objeto
requisitante.
33. Encapsulamento
●
O conceito de encapsulamento está intimamente ligado com
o conceito de abstração. Num dado objeto somente interessa
ao cliente as funções que ele executa e não a implementação
da mesma. Na parte de interface temos a descrição das
operações que o objeto executa, o que é acessível ao cliente,
a implementação de tais operações fica encapsulada e só é
visível ao próprio objeto.
34. Se precisarmos mudar o valor de alguma variável de instância
de um objeto, devemos enviar uma mensagem que recebe
um valor como argumento e faz a alteração. Não podemos
acessar variáveis de instância diretamente. Desta forma, os
campos estarão escondidos para nós, o que previne
alterações acidentais. Dizemos então que as variáveis de
instância e seus métodos estão encapsulados em uma única
entidade.
35. ●
As palavras encapsular e esconder são termos técnicos da
definição de linguagens orientadas a objeto.
●
Se alguma modificação ocorrer em variáveis de instância de um
certo objeto, sabemos exatamente quais métodos interagiram
com elas: são os métodos desse objeto. Nenhum outro método
pode acessar esses dados. Isso simplifica a escrita,
manutenção e alteração de programas.
36. ●
Um bom exemplo de encapsulamento seria um disco rígido.
A interface do disco rígido deixa acessível ao computador
(cliente) suas funções de leitura e escrita, os dispositivos
mecânicos e eletromagnéticos que o HD utiliza para
realizar tais operações não fica acessível ao seu cliente
estando assim encapsulados.
37. Polimorfismo
• É a habilidade de
objetos de classes
diferentes
responderem a mesma
mensagem de
diferentes maneiras.
Homem
Televisor (Jogo de futebol?!)
Mulher
38. Polimorfismo
● Em uma linguagem orientada a objetos, C++:
for(i = 0; i < poligonos.tamanho(); i++)
poligonos[i].desenhar();
39. Polimorfismo significa ter “muitas formas’”, que significa um único nome
representando um código diferente, selecionado por algum mecanismo
automático.
“Um nome, vários comportamentos”.
O Polimorfismo não é um pensamento novo para nós. Ele está contido em
nosso dia a dia, principalmente na linguagem. Veja os exemplos:
1. Ontem sai para dançar com uns amigos, mas acabamos não dançando
porque não conseguimos encontrar um lugar que nos agradasse.
2. José cantou a noite inteira no Karaoke e João cantou a noite inteira a
namorada de José.
3. O cachorro do João não foi passear ontem.
40. Pensando mais em objetos e funcionalidades, pense agora no
termo abrir, por exemplo. Você pode abrir uma porta, uma caixa,
uma janela e uma conta bancária. A palavra abrir pode ser
aplicada a muitos objetos do mundo real sendo que cada objeto
interpreta ‘abrir’ de sua própria maneira. Porém, você pode
simplesmente dizer ‘abrir’, para descrever a ação.
Uma linguagem polimórfica é a que suporta polimorfismo
( Actionscript, Java), já a linguagem monomórfica não suporta
polimorfismo (Pascal, ASP).
41. Herança
●
A herança pode ser vista como um nível de abstração
acima da encontrada entre classes e objetos.
●
Na herança, classes semelhantes são agrupadas em
hierarquias.
●
Cada nível de uma hierarquia pode ser visto como um
nível de abstração.
●
Cada classe em um nível da hierarquia herda as
características das classes nos níveis acima.
42. Herança
●
A herança facilita o
compartilhamento de
comportamento entre
classes semelhantes.
●
As diferenças ou
variações de uma classe
em particular podem
ser organizadas de
forma mais clara.
44. Necessidade de um padrão
●
Percebeu-se a necessidade de um padrão para a
modelagem de sistemas, que fosse aceito e utilizado
amplamente.
●
Alguns esforços nesse sentido de padronização, o
principal liderado pelo “três amigos”.
●
Surge a UML (Unified Modeling Language) em 1996
como a melhor candidata para ser linguagem
“unificadora” de notações.
45. Necessidade de um padrão
●
Percebeu-se a necessidade de um padrão para a
modelagem de sistemas, que fosse aceito e utilizado
amplamente.
●
Alguns esforços nesse sentido de padronização, o
principal liderado pelo “três amigos”.
46. Necessidade de um padrão
●
Percebeu-se a necessidade de um padrão para a
modelagem de sistemas, que fosse aceito e utilizado
amplamente.
●
Alguns esforços nesse sentido de padronização, o
principal liderado pelo “três amigos”.
47. Necessidade de um padrão
●
Surge a UML (Unified Modeling Language) em 1996
como a melhor candidata para ser linguagem
“unificadora” de notações.
●
Em 1997, a UML é aprovada como padrão pelo OMG.
●
Desde então, a UML tem tido grande aceitação pela
comunidade de desenvolvedores de sistemas.
●
É uma linguagem ainda em desenvolvimento.
●
Atualmente na versão 2.5.1.
48. Características de UML
●
UML é...
●
uma linguagem visual.
●
independente de linguagem de programação.
●
independente de processo de desenvolvimento.
●
UML não é...
●
uma linguagem programação.
●
uma técnica de modelagem.
49. Diagramas de UML
●
Um processo de desenvolvimento que utilize a UML
como linguagem de modelagem envolve a criação de
diversos documentos.
●
Estes documentos podem ser textuais ou gráficos.
●
Estes documentos são denominados artefatos de
software.
●
São os artefatos que compõem as visões do sistema.
●
Os artefatos gráficos produzidos durante o
desenvolvimento de um sistema de software são
definidos através da utilização dos diagramas da UML.
51. Diagramas de UML
●
Um processo de desenvolvimento que utilize a UML
como linguagem de modelagem envolve a criação de
diversos documentos.
●
Estes documentos podem ser textuais ou gráficos.
●
Estes documentos são denominados artefatos de
software.
●
São os artefatos que compõem as visões do sistema.
●
Os artefatos gráficos produzidos durante o
desenvolvimento de um sistema de software são
definidos através da utilização dos diagramas da UML.