• Nenhum resultado encontrado

PDS2

N/A
N/A
Protected

Academic year: 2021

Share "PDS2"

Copied!
237
0
0

Texto

(1)

Processo de Desenvolvimento de

Software

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL Curso de Sistemas de Informação

(2)

Ementa

• Introdução

• Fases do desenvolvimento de software: • Análise • Projeto • Implementação • Testes • Implantação • Manutenção

• Modelos de Desenvolvimento de Software • Metodologias ágeis: SCRUM e XP

• Conceitos introdutórios de O.O. • Modelagem de Sistemas

• DFD

• UML: Diagramas de classe, objeto, atividades,

sequências, estados, casos de uso.

• Testes de Software

(3)

Bibliografia

- SOMMERVILLE, Engenharia de Software, 8. ed. São Paulo: Pearson, 2007.

- PRESSMAN, R. Engenharia de Software. São Paulo: Makron

Books, 1995.

- YOURDON, E. Análise Estruturada Moderna. Rio de Janeiro: Ed.

Campus, 1988

Bibliografia Complementar:

(4)

Metodologias Ágeis – SCRUM e

XP

(5)
(6)

Metodologias Ágeis – SCRUM

Definição informal:

• Estratégia em um jogo de rugby onde jogadores

colocam uma bola quase perdida novamente em jogo através de trabalho em equipe.

(7)

SCRUM - Conceitos

• Uma alternativa de utilizar métodos ágeis na gerência de

projetos;

• Pode ser aplicável a qualquer tipo de projeto; • É simples:

• Processo, artefatos e regras são poucos e fáceis de

(8)

SCRUM - Conceitos

• Não é um método prescritivo

• Não define previamente o que deve ser feito em cada

situação;

• Projetos complexos não permitem prever todos os eventos.

Define um framework e um conjunto de práticas; • Aplica o senso comum

• Combinação de experiência, treinamento, confiança e inteligência de

toda a equipe;

• Senso comum em vez do senso de uma única pessoa é uma das

razões do sucesso do Scrum.

(9)
(10)

SCRUM - Ênfase

• Comunicação;

• Trabalho em equipe; • Flexibilidade;

Fornecer software funcionando:

• Incrementalmente.

(11)
(12)

SCRUM – Principais Padrões

Backlog; • Equipes; • Sprints; • Encontros Scrum; • Revisões Scrum/Demos. 12

(13)

SCRUM – Principais Padrões

Backlog; • Equipes; • Sprints; • Encontros Scrum; • Revisões Scrum/Demos.

(14)

SCRUM – Backlog

• Lista de todas as funcionalidades desejadas; • É gerada incrementalmente:

• Começa pelo básico, o extra aparece com o tempo

• Pode conter:

• Tarefas diretas, casos de uso e histórias.

• A lista é priorizada pelo dono do projeto:

Cliente, departamento de marketing, etc.

(15)

SCRUM – Backlog Inicial

• Deve conter características que agreguem algum valor de

negócio ao produto;

• Novos requisitos aparecem quando o cliente vê o

produto;

• A arquitetura do sistema surge enquanto o projeto surge e

(16)

SCRUM – Principais Padrões

Backlog; • Equipes; • Sprints; • Encontros Scrum; • Revisões Scrum/Demos. 16

(17)

SCRUM – Equipes

• Sem nível hierárquico nem papéis:

• Mas com várias especialidades.

• Estão todos no mesmo barco;

• Geralmente equipes pequenas (até 10)

• Existem casos com equipes maiores (800); • Usa-se também Scrum hierárquico.

(18)

SCRUM – Equipes

(19)

SCRUM – Principais Padrões

Backlog; • Equipes; • Sprints; • Encontros Scrum; • Revisões Scrum/Demos.

(20)

SCRUM – Sprint

• Unidades básicas de tempo (até 30 dias); • Começa com um encontro Sprint

Tarefas do Backlog são priorizadas;

• A equipe seleciona tarefas que podem ser completadas

durante o próximo Sprint;

As mesmas podem ser quebradas para o Backlog do Sprint; • Cada tarefa recebe um responsável na equipe;

Não há mudança nas tarefas durante o Sprint .

(21)

SCRUM – Principais Padrões

Backlog; • Equipes; • Sprints; • Encontros Scrum; • Revisões Scrum/Demos.

(22)

SCRUM – Encontro Scrum 1/2

• Pequenos encontros diários da equipe:

• geralmente pela manhã;

• todos da equipe devem participar e falar.

• Questões que aparecem devem ser resolvidas durante o

dia e não na reunião;

• Os encontros iniciais são geralmente mais longos.

(23)

SCRUM – Encontro Scrum 2/2

• Questões que devem ser respondidas por cada

membro da equipe:

• 1) O quê você fez ontem? • 2) O quê você vai fazer hoje?

• 3) Quais os problemas encontrados?

• Ajuda a manter as promessas;

(24)

SCRUM – Local de Encontro

• Sempre o mesmo local e

hora;

• Pode ser o local de

desenvolvimento;

• Pessoas sentadas ao

redor de uma mesa;

• A sala já deve estar

arrumada antes;

• Punições (atrasos/faltas); • Todos devem participar; • Pode ser em pé;

• Sala bem equipada,

quadro branco, etc.

(25)

SCRUM – Principais Padrões

Backlog; • Equipes; • Sprints; • Encontros Scrum; • Revisões Scrum/Demos.

(26)

SCRUM – Revisão do Sprint

No final de cada Sprint é feita uma reunião com todos os

interessados;

• Geralmente:

• Na forma de demonstração;

• Informal (preparação rápida, sem projetor,..); • Deve ser o resultado natural de um Sprint.

O projeto é comparado com os objetivos iniciais do Sprint.

(27)

SCRUM – Fases

• Planejamento; • Sprints: • Reuniões Diárias; • Revisão; • Retrospectivas. • Encerramento.

(28)

SCRUM – Fases

• Planejamento; • Sprints: • Reuniões Diárias; • Revisão; • Retrospectivas. • Encerramento. 28

(29)

SCRUM – Planejamento

• Relativamente curto;

• Projeto da arquitetura do sistema; • Estimativas de datas e custos; • Criação do backlog:

• Participação de clientes e outros departamentos;

• Levantamento dos requisitos e atribuição de

(30)

SCRUM – Fases

• Planejamento; • Sprints: • Reuniões Diárias; • Revisão; • Retrospectivas. • Encerramento. 30

(31)

SCRUM – Sprint

O equipe recebe uma parte do backlog para

desenvolvimento:

O backlog não sofrerá modificações durante o Sprint;

• Duração de 1 a 4 semanas;

(32)

SCRUM – Fases

• Planejamento; • Sprints: • Reuniões Diárias; • Revisão; • Retrospectivas. • Encerramento. 32

(33)

SCRUM – Sprint - Reuniões Diárias

• Cerca de 15 minutos de duração; • Todos respondem às perguntas:

• O que você realizou desde a última reunião? • Quais problemas você enfrentou?

• Em que você trabalhará até a próxima reunião? • Benefícios:

(34)

SCRUM – Fases

• Planejamento; • Sprints: • Reuniões Diárias; • Revisão; • Retrospectivas. • Encerramento. 34

(35)

SCRUM – Sprint - Revisão

• Deve obedecer à data de entrega:

• Permitida a diminuição de funcionalidades. • Apresentação do produto ao cliente:

Sugestões de mudanças são incorporadas ao backlog. • Benefícios:

• Apresentar resultados concretos ao cliente;

Nova

(36)

SCRUM – Fases

• Planejamento; • Sprints: • Reuniões Diárias; • Revisão; • Retrospectivas. • Encerramento. 36

(37)

SCRUM – Encerramento

• Finalização do projeto; • Atividades: • Testes de integração; • Testes de sistema; • Documentação do usuário;

• Preparação de material de treinamento; • Preparação de material de marketing.

(38)

Papéis no Scrum

(39)
(40)

SCRUM – Papéis no Scrum

• Todas as responsabilidades de gerenciamento são

divididas entre três papéis:Product Owner;

Scrum Master;Team (equipe).

• Para o bom funcionamento do Scrum as pessoas

responsáveis pelo projeto devem ter autoridade para fazer o que for necessário pelo seu sucesso;

• Pessoas não responsáveis não podem interferir no

projeto:

• Gera diminuição de produtividade;

• Evita situações constrangedoras para os envolvidos.

(41)

SCRUM – Papéis no Scrum

Product OwnerScrum MasterTeam (equipe)

(42)

SCRUM – Papéis – Product Owner

• Responsável por apresentar os interesses de todos os

stakeholders;

• Define fundamentos iniciais do projeto, objetivos e planos de

release;

Responsável pela lista de requisitos (Product Backlog);

• Certifica se as atividades com maior valor para o negócio são

desenvolvidas primeiro:

• Priorização frequente das funcionalidades

antes de cada iteração.

(43)

SCRUM – Papéis no Scrum

Product OwnerScrum MasterTeam (equipe)

(44)

SCRUM – Papéis – Scrum Master

• Responsável pelo sucesso do Scrum;

• Ensina o Scrum para os envolvidos com o projeto;

• Implementa o Scrum na empresa de forma adaptada a sua

cultura, para continuamente gerar benefícios;

• Certifica se cada pessoa envolvida está seguindo seus papéis

e as regras do Scrum;

• Certifica que pessoas não responsáveis

não interfiram no processo.

(45)

SCRUM – Papéis no Scrum

Product OwnerScrum MasterTeam (equipe)

(46)

SCRUM – Papéis – Team

• Responsável por escolher as funcionalidades a serem

desenvolvidas em cada interação e desenvolvê-las;

• A equipe se auto gerencia, se auto organiza;

• Todos os membros da equipe são coletivamente

responsáveis pelo sucesso de cada iteração.

(47)
(48)

SCRUM – Regras no Scrum

O ScrumMaster deve se certificar de que cada envolvido

no projeto siga suas regras;

• As regras permitem a execução correta do Scrum;

Mudanças das regras devem se originar do team

(equipe):

O ScrumMaster deve ser convencido de que todos envolvidos

entenderam suficientemente as regras do Scrum para o correto discernimento;

• Discussões desnecessárias são perda de tempo de produção da

equipe.

(49)

SCRUM – Sprint Planning Meeting

A reunião de planejamento do Sprint deve ocorrer dentro

de 8 horas com duas partes de 4 horas;

• Primeiro seguimento:

Product Owner deve preparar o Product Backlog antes da reunião;

Seleção dos itens do Product Backlog que a equipe se compromete

em torná-los incrementos potencialmente implementáveis;

(50)

SCRUM – Sprint Planning Meeting

(51)

SCRUM – Daily Meeting

• Reunião de no máximo 15 minutos, a menos que a equipe seja

grande o suficiente para precisar de mais tempo;

• Deve ser feita no mesmo lugar onde a equipe trabalha;

• Resulta em melhores resultados se realizada no inicio do dia

de trabalho;

(52)

SCRUM – Daily Meeting

ScrumMaster faz as seguintes perguntas para cada

membro do time:

• O que você fez desde a última reunião diária do Scrum relacionada a

este projeto?

• O que você irá fazer desde agora até a próxima reunião diária do

Scrum relacionada a este projeto?

• O que está impedindo você de realizar o seu trabalho o mais

efetivamente possível?

• Os membros devem responder apenas a estas perguntas

para não estender a reunião.

(53)
(54)

SCRUM – Sprint

• Não deve ser maior do que 30 dias consecutivos;

• Sem considerar outros fatores, este é o tempo necessário

para produzir algo de interesse para o Product Owner e os stakeholders;

A equipe se compromete com o Product Backlog:

• Não são permitidas modificações nele durante o Sprint.

(55)

SCRUM – Sprint

Responsabilidades da equipe durante o Sprint:

• Participar das reuniões diárias do Scrum;

Manter o Sprint Backlog atualizado;

Disponibilizar o Sprint Backlog publicamente.

• A equipe tem o compromisso de implementar todos os

(56)

SCRUM – Sprint

(57)

SCRUM – Reunião de Revisão do Sprint

• Reunião de no máximo 4 horas sob responsabilidade

do ScrumMaster;

• A equipe não deve gastar mais de 1 hora na

preparação desta reunião;

(58)

SCRUM – Reunião de Revisão do Sprint

• No final da reunião:

Cada stakeholder fala suas impressões e sugere mudanças com suas

respectivas prioridades;

Possíveis modificações no Product Backlog são discutidas entre o

Product Owner e o team;

ScrumMaster anuncia a data e o local da próxima reunião de revisão

do Sprint ao Product Owner e a todos stakeholders.

(59)
(60)

SCRUM – Reunião de Retrospectiva do Sprint

• Não deve ser maior do que 3 horas; • Participam desta reunião:

Equipe, ScrumMaster e, opcionalmente, Product Owner.

• Os membros da equipe (team) devem responder a duas

questões:

O que aconteceu de bom durante o último Sprint?O que pode ser melhorado para o próximo Sprint?

(61)

SCRUM – Reunião de Retrospectiva do Sprint

ScrumMaster escreve as respostas e prioriza na ordem

que deseja discutir as potenciais melhorias;

(62)

SCRUM – Reunião de Retrospectiva do Sprint

(63)
(64)

eXtreme Programming (XP)

(65)

O surgimento de XP

• Em meados de 1990, Kent Beck procurou formas

mais simples e eficientes de desenvolver software.

• Identificou o que tornava simples e o que

dificultava o desenvolvimento de software.

(66)

O que é eXtreme Programming?

• Metodologia ágil (leve) mais utilizada na

atualidade;

• Desenvolvida para:

• Equipes médias e pequenas (2 a 12 pessoas); • Requisitos vagos e em constante evolução.

• Possui um conjunto de valores e práticas para

nortear o desenvolvimento de software.

(67)

Estudo da palavra

(68)

Manifesto ágil

• Valorização de:

Indivíduos e interação MAIS QUE processos e

ferramentas;

Software em funcionamento MAIS QUE documentação

abrangente;

Colaboração com o cliente MAIS QUE negociação de

contratos;

Responder a mudanças MAIS QUE seguir um plano.

(69)

Manifesto ágil

• Principais preocupações:

• Entregar funcionalidades para o cliente de forma rápida; • Procuram usar o mínimo de documentação possível;

• Realizam projeto simples sem se preocupar em

(70)

Foco na satisfação do cliente

• Desenvolver o que o cliente precisa no momento que é necessário 70

(71)
(72)

eXtreme

Programming

Princípios básicos

Comunicação

Coragem

Simplicidade

Feedback

72

(73)

Princípios básicos

• Comunicação

• Os membros da equipe (clientes, gerentes,

programadores) devem interagir ao máximo pessoalmente.

• Devem trabalhar na mesma sala, conversar

(74)

Princípios básicos

• Simplicidade

• Projeto é simplificado continuamente;

• Processo adaptado, caso algo não esteja funcionando.

Simplicidade

(75)

Princípios básicos

• Feedback:

• Cliente está sempre participando do desenvolvimento

do sistema;

• Testes de unidade e de aceitação fornecem feedback

sobre o sistema;

(76)

Princípios básicos

• Coragem

• Indicar problemas no projeto, parar quando está

cansado, pedir ajuda quando necessário;

• Simplificar código que está funcionado, dizer ao cliente

que não será possível implementar um requisito no prazo estimado;

• Seguir o XP como deve ser.

Coragem

(77)
(78)

XP- Práticas e Regras

(79)

Práticas e Regras de XP: Planejamento

• Planejamento;

• Projeto;

(80)

Práticas e Regras de XP: Planejamento

• Estórias de uso

• Usadas como requisitos do sistema;

• Mesmo propósito dos casos de uso (de UML),

porém menores e mais simples;

• Escritos na linguagem do cliente com o mínimo

de detalhes para a estimativa de custos.

(81)

Práticas e Regras de XP: Planejamento

• Iterações:

• Desenvolvimento dividido em iterações; • Possuem duração entre 1 e 3 semanas;

(82)

Práticas e Regras de XP: Planejamento

• Medida da velocidade de projeto:

• Indica a produtividade da equipe no projeto;

• Razão entre o que foi produzido e o que foi

estimado a cada iteração;

• Pode ser medido durante uma iteração;

• Variações dramáticas em mais de uma iteração

sugerem renegociação de prazo e escopo das

(83)

Práticas e Regras de XP: Planejamento

• Jogo do planejamento:

• Planejamento de versões (Releases);

• No início do projeto especifica-se que estórias de uso

serão implementadas em cada versão;

• Define-se as datas de liberação das versões;

(84)

Práticas e Regras de XP: Planejamento

• Jogo do planejamento

• Planejamento das iterações:

• Feito no início de cada iteração

• Estórias de uso são escolhidas de acordo com a importância pro

cliente e o risco pro projeto;

• Estórias são divididas em tarefas de 1 a 3 dias;

• Tarefas são distribuídas entre programadores e estimadas pelos

próprios executores.

• Estimativa preferencialmente baseada no passado; • Leva-se em conta a programação em pares.

• Estórias são adicionadas ou removidas para completar

(85)

Práticas e Regras de XP: Planejamento

• Versões frequentes e pequenas:

• Funcionalidades implementadas são

rapidamente entregues ao cliente;

• Permite um feedback mais rápido do cliente

(86)

Práticas e Regras de XP: Planejamento

Reuniões rápidas (stand-up meeting):

• Faz a comunicação entre toda a equipe para

comunicar problemas, soluções, etc;

• Reunião feita em pé com poucos minutos de fala

para cada integrante.

(87)

Práticas e Regras de XP: Planejamento

• Planejamento;

• Projeto;

(88)

Práticas e Regras de XP: Projeto

• Simplicidade:

• Projetos simples tomam menos tempo que os

complexos;

• Evitar generalizações e abstrações

desnecessárias no momento;

• Um bom projeto deve conter o menor número

possível de classes e métodos;

• É mais rápido e barato;

• Requisitos mudam frequentemente.

(89)

Práticas e Regras de XP: Projeto

• Metáfora:

• Tem a intenção de oferecer uma visão geral do

sistema, em um formato simples, que possa ser compartilhada por clientes e programadores;

• Faz-se uma analogia entre o sistema e um outro

(90)

Práticas e Regras de XP: Projeto

• Criar spike solutions para reduzir riscos

• Programas muito simples (protótipos) utilizados

para verificar o uso determinadas soluções e tecnologias;

• Utilizados para reduzir os riscos técnicos do

projeto ou validar as estimativas realizadas.

(91)

Práticas e Regras de XP: Projeto

• Não adicionar funcionalidades antecipadamente: • Requisitos mudam rapidamente;

• Mantém o código limpo de adivinhações sobre o

(92)

Práticas e Regras de XP: Projeto

• O cliente está sempre disponível:

• Não deve só ajudar a equipe de

desenvolvimento;

• Deve ser parte da equipe;

• Comunicação com o cliente é feita em todas as

fases de um projeto XP;

• Estórias de uso, planejamento de versões,

feedback do sistema, testes de aceitação, etc.

(93)

Práticas e Regras de XP: Planejamento

• Planejamento; • Projeto;

(94)

Práticas e Regras de XP: Codificação

• Programação em pares:

• Duas pessoas programando em um mesmo

computador pensam melhor que uma;

• Revezamento: um programa enquanto o outro

projeta e faz revisão on-line do código digitado.

(95)

Práticas e Regras de XP: Codificação

• Programação em pares:

• Ganho de qualidade compensa o uso de duplas; • Auxilia a difusão de conhecimento.

(96)

Práticas e Regras de XP: Codificação

• Rotação de pares de programadores

• Ajuda ainda mais a eliminar as pessoas

consideradas “ilhas de conhecimento”;

• Cada um da equipe passa a conhecer todas as

partes do sistema;

• Os pares devem sempre ser encorajados a

trabalhar em partes do sistema desconhecidas por eles.

(97)

Práticas e Regras de XP: Codificação

• Propriedade coletiva do código:

• Todos são responsáveis por todo código;

• Permite que pessoas forneçam ideias para toda

parte do sistema;

• Diminui o risco de possuir pessoas

(98)

Práticas e Regras de XP: Codificação

• Código tem sempre que seguir um padrão: • Mantém o código consistente e uniforme;

• Facilita a leitura e entendimento por outros

programadores.

(99)

Práticas e Regras de XP: Codificação

• 40 horas semanais:

• Não se deve trabalhar mais de 60 h por 2 ou

mais semanas consecutivas;

• Horas extras não remuneradas prejudicam

motivação da equipe;

• A insatisfação de se trabalhar horas extras pode

(100)

Práticas e Regras de XP: Codificação

• Integração contínua:

• Módulos do sistema são integrados diversas

vezes ao dia;

• Todos os testes de unidade definidos são

executados;

• Identificação rápida de bugs inseridos;

• Programador sabe que trechos de código foram

alterados nas últimas horas.

(101)

Práticas e Regras de XP: Codificação

Fazer refactoring sempre que possível

• Reestruturação sem acrescentar funcionalidade; • Remove redundâncias e melhora a qualidade do

projeto;

• Retira códigos não utilizados;

(102)

Práticas e Regras de XP: Planejamento

• Planejamento; • Projeto; • Codificação; • Testes. 102

(103)

Práticas e Regras de XP: Testes

• Testes unitários:

• Teste das menores unidades (classes, métodos,

etc) ;

• Identifica bugs no código;

• Protege o código de manutenções indevidas;

(104)

Práticas e Regras de XP: Testes

• Testes unitários são escritos para detectar bugs

identificados:

• Criação do teste unitário que identifique o bug

antes de corrigi-lo;

• Bugs têm tendência de ressurgir

posteriormente.

(105)

Práticas e Regras de XP: Testes

• Testes antes da codificação:

• Limita o escopo da solução a ser implementada; • Serve de especificação do código testado;

(106)

Práticas e Regras de XP: Testes

• Execução periódica de testes de aceitação (testes

funcionais):

• Procuram testar uma funcionalidade como um

todo (Ex: Venda);

• Criados a partir das estórias de uso a serem

implementadas na iteração;

• Clientes verificam a corretude dos testes

escritos;

• Devem ser automatizados e regressivos.

(107)
(108)

Ciclo de Vida em XP

• Um projeto XP passa por algumas fases durante

seu ciclo de vida:

Fase de exploração: Anterior à construção do

sistema. Visa verificar a viabilidade do sistema e experimentar possíveis soluções;

Fase de planejamento inicial: Visa definir as

estórias e fechar com cliente o escopo e data do primeiro Release.

(109)

Ciclo de Vida XP

Fase de iterações do release: Em uma iteração

algumas estórias são implementadas. Atividades de uma iteração: escrita dos casos de testes  projeto e refatoramento  codificação  realização dos testes  integração;

(110)

Ciclo de Vida XP

Fase de manutenção: XP considera que

manutenção faz parte da sua natureza e suas práticas consideram um ambiente onde alterações são constantes;

Fase de morte: Término de um projeto XP.

(111)
(112)

Papéis envolvidos em XP

Treinador: Preocupa-se com a execução técnica e

evolução do processo. Possui conhecimentos de XP e orienta a equipe;

Rastreador: Coleta dados sobre o andamento do

projeto e a sua conformidade com o planejamento feito para as iterações e release;

Programador: Escreve o código e os casos de teste

unitários sempre em pares. É responsável por estimar o tempo para a implementação das estórias.

(113)

Papéis envolvidos em XP

Cliente: Responsável por escrever as estórias junto com os

programadores e priorizá-las. Também ajuda na escrita dos casos de teste funcionais;

Testador: Ajuda o cliente na definição e escrita dos testes

funcionais. Ele não precisa ser uma pessoa com apenas essa função, pode desempenhar também o papel de

(114)

Quando não se deve usar XP

• Possíveis barreiras para o sucesso de um projeto

XP:

Cultura: Quando a empresa possui uma cultura

fortemente tradicional com ênfase em muita documentação, modelagem, etc;

Tamanho da equipe: Beck considera que a equipe deve

ser pequena (até 12 pessoas);

Espaço físico: O local de trabalho deve servir para

aproximar a equipe e facilitar a comunicação;

Cliente: Em XP o cliente ou alguém que o represente

deve trabalhar junto à equipe.

(115)
(116)

XP

(117)
(118)

Conteúdo da Aula

• Paradigma da Orientação a Objetos • Conceitos da OO • Classes • Atributos • Métodos • Objetos • Herança • Polimorfismo • Encapsulamento 118

(119)
(120)

Paradigma da Orientação a Objetos

Conjunto de regras que estabelecem fronteiras e

descrevem como resolver problemas dentro desta fronteira;

Ajuda-nos a organizar a e coordenar a maneira como

olhamos o mundo.

Paradigma OO: Paradigma para o desenvolvimento de software que baseia-se na utilização de componentes individuais (objetos) que colaboram para construir sistemas

(121)

Paradigma Estruturado x Orientação a Objetos

Função Função

Objeto

Dados

Objeto

Dados Aplicação Aplicação

(122)

Conceitos da Orientação a Objetos

• O paradigma de objetos baseia-se nos seguintes

conceitos: • Classes; • Objetos; • Herança; • Polimorfismo; • Encapsulamento. 122

(123)
(124)

Classe

• Definição

• Ao comparar diferentes objetos, notamos que eles

possuem atributos e comportamentos semelhantes, dependendo da finalidade para qual são observados.

Classe: é a definição dos atributos e das ações de um tipo de objeto; ela descreve um conjunto de objetos individuais em qualquer contexto. É obtida pela classificação de objetos com a mesma estrutura de dados e o mesmo comportamento.

(125)
(126)

Classe - Atributo

Características importantes como visibilidade, nome,

tipo de dado e valor inicial;

• As visibilidades podem ser:

Pública: é acessível (pode ser enxergado) por outras classes (+);

Privada: é acessível somente pela própria classe (-);

Protegida: é acessível somente pela sua classe e por suas

subclasses (#);

(127)

Classe - Métodos

Os métodos implementam as operações de uma determinada

(128)

Classes - Métodos

• Um método possui:

• Visibilidade (representada pelos mesmos símbolos

utilizados pelos atributos);

• Nome;

• Lista de Argumentos; • Tipo de Retorno.

(129)
(130)

Objeto

• Segundo o dicionário Michaellis:

Objeto: tudo que é aprendido pelo conhecimento; tudo que

é manipulável e/ou manufaturável; tudo que é perceptível por qualquer dos sentidos; coisa, peça, artigo de compra e venda; o que é conhecido, pensado ou representado.

(131)

Objeto

• Definição

Além de objetos animados, esta observação inclui

“São coisas do mundo real, como pessoas, animais, etc., que descobrimos estudando suas características (atributos), como altura, tamanho, cor e seu comportamento (ações), como falar, dormir, andar. “

(132)

Objeto

(133)

Objeto

Cor Sexo Miar Andar Comer Atributos Métodos

(134)

Objeto - Identidade

• Cada objeto deve ter uma identidade própria

(identificador único) que o distingue entre outros objetos mesmo que seu estado seja idêntico ao de outro objeto:

• Dado 2 objetos:

Marca: Ferrari Marca: Ferrari Modelo: F50 GT Modelo: F50 GT

Chassi: 001002003 Chassi: 009008007

(135)
(136)

Objeto - Atributos

• Definem as características de um objeto;

Atributos possuem valores que qualificam,

quantificam (ou identificam) um objeto;

Compõe a estrutura de dados que vai representar

a classe que o objeto pertence.

(137)

Objetos - Métodos

• Definem as habilidades (comportamento) de um

objeto;

• Representam as ações que um objeto pode

(138)

Objeto - Mensagens

É uma chamada a um objeto para invocar um de seus

métodos, ativando um comportamento específico de acordo com a especificação do próprio método;

• Uma mensagem é composta por 3 componentes básicos:

objeto, método e parâmetros (se existirem).

Objeto A

(Jogador) Mensagem Objeto B(Bola)

(139)
(140)

Herança

Entre diferentes classes podem existir diversas

semelhanças, ou seja, duas ou mais classes

poderão compartilhar os mesmos atributos e/ou os mesmos métodos.

Herança: É o ato de permitir uma classe de herdar o estado (atributos) e o comportamento (métodos) de outra classe.

(141)

Herança

Veículo de Transporte

(142)

Polimorfismo

(143)

Polimorfismo

Polimorfismo: É a capacidade de um objeto se

comportar de maneiras diferentes mediante à invocação de um mesmo método.

(144)

Polimorfismo

Carro

Trocar Marcha

(145)
(146)

Encapsulamento

• Isolamento de dados;

• Os atributos que estão encapsulados são envolvidos

por código de forma que só são visíveis no método em que foram criados.

Encapsulamento: Técnica que consiste em separar

aspectos externos dos internos da implementação de um objeto, isto é, determinados detalhes ficam ocultos aos demais .

(147)

Encapsulamento

(148)

Revisão

• O paradigma de objetos baseia-se nos seguintes

conceitos: • Classes; • Objetos; • Herança; • Polimorfismo; • Encapsulamento. 148

(149)

Relacionamentos entre

Objetos

(150)

Relacionamentos OO

• Qualquer programa geralmente é composto por diversos

objetos:

• Se relacionam entre si para executar o propósito do programa;

• Suponha que temos uma classe Livro e uma classe Biblioteca. As

classes Livro e Biblioteca relacionam-se entre si:

• Uma biblioteca possui um acervo de livros;

• De outra forma, uma biblioteca é composta por um conjunto de 0

(zero) ou mais livros.

(151)

Relacionamentos OO

• Como demonstrar os relacionamentos no diagrama de classes? • Tipos de relacionamento:

• Associação; • Agregação; • Composição; • Herança.

(152)

Associação

(153)

Relacionamentos OO

• Uma associação indica algum relacionamento significativo e de

interesse entre objetos;

• É representado por uma linha conectando os dois objetos:

• Pode existir uma seta no fim da linha, apontando para o objeto que

está sendo usado.

• A associação pode também receber um nome e uma

(154)

Relacionamentos OO

(155)
(156)

Relacionamentos OO

(157)
(158)

Relacionamentos OO

Agregação:

• A relação é de: “é parte de”:

• Relaciona um objeto (o todo) com sua(as) parte(s) . Parte só é

criada quando o todo é criado;

É representado por um losango vazio junto ao objeto

representando o todo.

(159)

Relacionamentos OO

(160)

Relacionamentos OO

Agregação:

(161)
(162)

Relacionamentos OO

Composição:

• A composição é uma agregação mais forte; • Um objeto “é parte essencial” de outro;

Na composição, o objeto composto não existe sem os seus

componentes

É representado por um losango preenchido em preto;

• Obs.: Em geral, na prática, é mais comum usar agregação mesmo

quando o relacionamento é mais forte.

(163)

Relacionamentos OO

(164)

Relacionamentos OO

Composição:

(165)
(166)

Relacionamentos OO

Herança:

• Relacionamento pelo qual uma classe, chamada de subclasse,

herda todos comportamentos e estados possíveis de outra classe, chamada de superclasse ou classe base. 

(167)

Relacionamentos OO

(168)

Relacionamentos OO

Herança:

(169)

Relacionamentos OO

(170)

Exercícios

(171)
(172)

Modelagens de Sistemas

(173)

Paradigma Estruturado x Orientação a Objetos

Função Função

Objeto

Dados

Objeto

Dados Função Função

(174)

Modelagem UML

(175)

UML

O que é UML?

• UML é um acrônimo para a expressão Unified Modeling

Language;

• UML é uma linguagem que define uma série de artefatos que

nos ajuda na tarefa de modelar e documentar os sistemas orientados a objetos que desenvolvemos.

(176)

UML

• UML é uma linguagem (notação com semântica associada) para:

• Visualizar; • especificar; • construir e

• Documentar os artefatos de um sistema

• UML não é uma metodologia;

• Não diz quem deve fazer o quê, quando e como;

• UML pode ser usado segundo diferentes metodologias, tais

como RUP (Rational Unified Process), FDD (Feature Driven Development), etc;

• UML não é uma linguagem de programação.

(177)
(178)

Diagramas da UML

Representações em pequena escala de um sistema sob um

ponto de vista particular;

• A UML possui diagramas divididos em dois grupos:

Diagramas Estruturais: descrevem elementos estruturais que

compõem o sistema, representando suas partes e seus relacionamentos;

Diagramas de Comportamento: descrevem o comportamento dos

elementos e suas interações.

(179)
(180)

Diagramas UML – Use Case

(181)

Diagramas UML – Use Case

Descreve a funcionalidade proposta para um sistema que será

projetado. Excelente ferramenta para o levantamento dos

(182)

Diagramas UML – Use Case

182

(183)
(184)

Diagramas UML – Use Case

184

(185)
(186)

Diagramas UML – Classes

Usado para visualizar as relações entre as classes que

envolvem o sistema, o que pode ser associativo, herança, uso e agregação.

186

(187)

Diagramas UML – Classes

(188)

Diagramas UML – Classes

• .

188

(189)
(190)

Diagramas UML

190

(191)
(192)

Cardinalidade

l Cardinalidade define o graus de relação entre duas classes ou

tabelas.

l Podemos ter os seguintes níveis de relacionamento: 0:1, 0: N,

1:N, N:N, 1:1 e N:1;

l Pode ser usado o * no lugar do N, exemplo: 0:1, 0: *,1:*, *:*,

1:1 e *:1

(193)
(194)

Cardinalidade

(195)
(196)

Cardinalidade

196

0.* 0.1

(197)
(198)

Exercícios Classes e Casos

de Uso

(199)
(200)

Exercícios - Classes

200 200

Referências

Documentos relacionados

Em função dos benefícios do uso de um método formal e da necessidade do uso de assistentes inteligentes no processo de desenvolvimento de software, o objetivo deste trabalho foi

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

Fica estabelecido que no caso de não ser efetuado pela empresa o pagamento dos salários até o quinto dia útil do mês subseqüente ao vencido, bem como do 13º salário e

08 LINHA NEW ACTIVE 10 LINHA VITA TEMPO 11 LINHA SUN VITA 12 LINHA CLEANSER 13 LINHA TECH PEEL 14 LINHA ACNE CONTROL 15 LINHA FILLER FACIAL 5D FACIAL.. 16 LINHA VITA TEMPO

a) Determine a diferença entre os pesos moleculares desses dois hidrocarbonetos. Possui três ramificações diferentes entre si, ligadas à cadeia principal.. d)

Em relação às substâncias benzeno e benzopireno, assinale a única alternativa CORRETA. d) Ambos são hidrocarbonetos que apresentam apenas carbonos secundários. Como

SSH para controlar o plano do nó do cálculo com calor-admin: endereço IP de Um ou Mais Servidores Cisco ICM NT do heat-admin@< do ssh >.. Mude à raiz:

Este comando permite que o SGSN associe um molde RLF qualquer um a nível global, que limita as mensagens da paginação que são iniciadas através do 2G (NSE-nível) e (RNC-nível)