Você está na página 1de 92

Processo de Software

(RUP, Ágeis)

A politecnica
Eng Informatica de telecomunicacoes Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

LIDANDO COM MUDANÇAS.


 A mudança é inevitável em todos os grandes projetos de software.

 Os requisitos do sistema mudam ao mesmo tempo que o negócio que adquiriu o sistema
responde a pressões externas e mudam as prioridades de gerenciamento.

 Com a disponibilidade de novas tecnologias, emergem novos projetos e possibilidades de


implementação.

Portanto mudancas causam custos

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

LIDANDO COM MUDANÇAS.


 Portanto, qualquer que seja o modelo do software de processo, é essencial que
possa acomodar mudanças no software em desenvolvimento.

 Possíveis soluções
 Prototípacao
 Desenvolvimento Inremental

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

LIDANDO COM MUDANÇAS.


 Possíveis soluções (Prototípacao )

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

LIDANDO COM MUDANÇAS.


 Possíveis soluções (Desenvolvimento Inremental )

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)


 Foi criado por três importantes luzes da orientação a objectos dos anos 90
(Jacobson,Booch & Rumbaugh, 1999), sendo o resultado de mais de 30 anos de
experiência acumulada em projectos notações e processos.

 É o primeiro modelo de processo inteiramente adaptado ao uso com a UML


(Unified Modelling Language), desenvolvida pelo mesmo grupo

 Processo Unificado é uma tentativa de aproveitar os melhores recursos e


características dos modelos tradicionais de processo de software;

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO 2003)

CARACTERÍSTICAS
Modelo de processo Híbrido
É dirigido por casos de uso.
É centrado na arquitectura.
É iterativo e incremental.
É focado em riscos;

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

UP É normalmente descrito em três perspectivas:


Uma perspectiva dinâmica, que mostra as fases do modelo ao
longo do tempo.

Uma perspectiva estática, que mostra as atividades relizadas no


processo.
Uma perspectiva prática, que sugere boas práticas a serem usadas
durante o processo

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

Fases do processo unificado


 No inicio foram apresentadas cinco actividades metodológicas
genéricas e argumentos afirmando que elas poderiam ser usadas
para descrever qualquer modelo de processo de software. O
Processo unificado não é nenhuma excepção.

 A Figura A seguir descreve as '"fases" do PU e as relaciona com as


actividades genéricas que foram estudadas anteriormente

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

Fases do processo unificado

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

Fases do processo unificado(concepcao )


Entrada : Necessidades e documentos da empresa;
Objetivos : Entendimento dos requisito s e a definição d o escopo do projeto .
Envolvidos: Analista do processo de negócio ,Designer de negócio,Analista de sis
temas
Saída. Como saída podemos citar os documentos de: Visão; Regras de negócio;
Avaliação dos processos da instituição alvo; Caso de Uso de negócio; Glossário;

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

Fases do processo unificado(Elaboracao )


Entrada : Os artefatos produzidos na fase de Iniciação.
Objetivos : Requisitos transformados em casos de uso; Estabelecimento da arquitetura
do sistema; Levantamento dos principais riscos e es tratégias para solucioná-los.
Envolvidos : Analista de sis temas ; Arquiteto de software; Designer de banco de
dados;
Saída : Documento de arquitetura de software; Modelo de dados; Modelo de análise;
Modelo de design; Lista de ris cos; Casos de uso

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

Fases do processo unificado(Construcao )


Entrada: Artefatos da fase anterior.
Objetivos: Esclarecimento de requisitos pendentes; As partes do sistema são
desenvolvidas paralelamente, e as partes são integradas.
Envolvidos: Desenvolvedor; Integrador; Arquiteto d e Software;
Saída: Versão es tável do software; Compo nente

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

Fases do processo unificado(implaacao )


Entrada: Artefatos gerados na fase anterior.
Objetivos: Testes e pequenos ajustes;
Envolvidos: Redator técnico ; Implementador; Gerente de impla ntação;
Saída: Plano de implantação(Tarefas para instala r e testar o pro duto ); Notas de
release; Material de treinamento; Produto ; Material de suporte para o usuário;

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)


Actividade Descrição
Modelagem de negócios Os processos de negócio são modelados por meio de casos de uso de negócios
Requisitos Atores que interagem com o sistema são identificados e casos de uso são
desenvolvidos para modelar os requisitos do sistema.

Análise e projeto Um modelo de projeto é criado e documentado com modelos de arquitetura,


modelos de componentes, modelos de objetos e modelos de sequência.

Implementação Os componentes do sistema são implementados e estruturados em subsistemas de


implementação. Ageração automática de código a partir de modelos de projeto
ajuda a acelerar esse processo.
Teste O teste é um processo iterativo que é feito em conjunto com a implementação. O
teste do sistema segue a conclusão da implementação.

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)


Actividade Descrição
Teste O teste é um processo iterativo que é feito em conjunto com a implementação.
O teste do sistema segue a conclusão da implementação.
Implantação Um release do produto é criado, distribuído aos usuários e instalado em seu
local de trabalho.
Gerenciamento de configuração e Esse workflow de apoio gerencia as mudanças do sistema
mudanças

Gerenciamento de projeto Esse workflow de apoio gerencia o desenvolvimento do sistema


Meio ambiente Esse workflow está relacionado com a disponibilização de ferramentas
apropriadas para a equipe dedesenvolvimento de software

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

UNIFIED PROCESS (PROCESSO UNIFICADO)


Exemplo e boas praticas
Comprender as necessiades dos envolvidos
Entrevista
Workshop de Requisitos
Brainstorming e filtro de ideias
Workshop de casos de uso
Encenacao
Intrepretacao de papeis
Analise de requisitos Existentes

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

 A insatisfação com abordagens pesadas dos Modelos de Processo Prescritivo da


Modelos Ágeis
 engenharia de software levou um grande número de desenvolvedores de software a
proporem, na década de 1990, novos ‘modelos ágeis’.

 Estes permitiram que a equipe de desenvolvimento focasse no software em si, e


não em sua concepção e documentação.

 Métodos ágeis, universalmente, baseiam-se em uma abordagem incremental para a


especificação, o desenvolvimento e a entrega do software.

A politécnica Métodos Ágeis 21


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

OBJECTIVO
 Reduzir a burocracia do processo, evitando qualquer trabalho de valor
duvidoso de longo prazo e qualquer documentação que provavelmente
nunca será usada.

A politécnica Métodos Ágeis 22


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

V
Modelos Ágeis

VALORIZAM MAIS:
 Indivíduos e interacções do que processos e ferramentas;
 Software em funcionamento do que documentação abrangente;
 Colaboração do cliente do que negociação de contrato;
 Respostas a mudanças do que seguir um plano.

A politécnica Métodos Ágeis 23


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis
TIPOS:
 Extreme Programming;
 Scrum;
 Crystal;
 Desenvolvimento de Software Adaptativo (Adaptative Software Development);
 Desenvolvimento Dirigido a Características (Feature Driven Development).

A politécnica Métodos Ágeis 24


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis
PRINCÍPIOS EM COMUM:
 Envolvimento do cliente;
 Entrega incremental;
 Aceitar as mudanças;
 Manter a simplicidade.

A politécnica Métodos Ágeis 25


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis
DESENVOLVIMENTO ÁGIL E DIRIGIDO A PLANOS;
 Abordagens ágeis de desenvolvimento de software consideram o projecto e a
implementação como actividades centrais no processo de software. Eles
incorporam outras actividades, como eliciação de requisitos e testes no projecto
e na implementação.

 Em contrapartida, uma abordagem de engenharia de software dirigida a planos


identifica estágios distintos do processo de software com saídas associadas a
cada estágio. As saídas de um estágio são usadas como base para o planeamento
da actividade do processo a seguir.
A politécnica Métodos Ágeis 26
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
 É um modelo ágil inicialmente adequado a equipes pequenas e médias que é
baseado em uma série de valores, princípios e regras.
 XP surgiu no final da década de 1990, nos Estados Unidos

A politécnica Métodos Ágeis 27


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING(VALORES)
 Simplicidade XP sugere como valor a simplicidade, ou seja, a equipe deve se
concentrar nas funcionalidades efectivamente necessárias e não naquelas que
poderiam talvez ser necessárias, mas que ainda não se tem evidência de que são
essenciais.

 RESPEITO entre os membros da equipe e entre a equipe e o cliente é um valor


dos mais básicos, que dá sustentação a todos os outros. Sem respeito a
comunicação é falha e o projecto afunda.
A politécnica Métodos Ágeis 28
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING(VALORES)
 Comunicação XP preconiza comunicação de boa qualidade, preferindo
encontros presenciais ao invés de preferindo encontros presenciais ao invés de
videoconferências, videoconferências, ao invés de telefonemas, telefonemas ao
invés de emails e assim por diante. Ou seja, quanto mais pessoal e expressiva a
forma de comunicação melhor.

A politécnica Métodos Ágeis 29


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING(VALORES)
FEEDBACK
 O projecto de software é reconhecidamente um empreendimento de alto risco.
Cientes disso, os desenvolvedores devem buscar obter feedback o quanto antes
para que eventuais falhas de comunicação sejam corrigidas o mais rapidamente
possível antes que os danos se alastrem e o custo da correcção seja alto.

A politécnica Métodos Ágeis 30


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING(VALORES)

CORAGEM
 Pode-se dizer que a única coisa constante no projecto de um software é a
necessidade de mudança. Para os desenvolvedores XP é necessário confiar nos
mecanismos de gerenciamento da mudança para ter a coragem de abraçar as
inevitáveis modificações ao invés de simplesmente ignorá-las, por estarem
eventualmente fora do contrato formal, ou por serem muito difíceis de
acomodar.
A politécnica Métodos Ágeis 31
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING(VALORES)

PRÁTICAS  Refatoração
 Jogo de planejamento  Integração contínua
 Metáfora  Projecto simples
 Equipe coesa  Versões pequenas
 Reuniões em pé  Ritmo sustentável
 Projecto simples  Posse colectiva
 Desenvolvimento orientado a testes  Programação em pares
 Padrões de codificação
 Testes de aceitação
A politécnica Métodos Ágeis 32
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

JOGO DE PLANEJAMENTO (PLANNING GAME)


Semanalmente a equipe deve se reunir com o cliente para priorizar as funcionalidades a serem desenvolvidas.

Cabe ao cliente identificar as principais necessidades e à equipe de desenvolvimento estimar quais podem ser
implementadas no ciclo semanal que se inicia.

Ao final da semana essas funcionalidades são entregues ao cliente.


Esse tipo de modelo de relacionamento com o cliente é adaptativo, em oposição aos contractos rígidos
usualmente estabelecidos.

A politécnica Métodos Ágeis 33


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
METÁFORA (METAPHOR)
 É preciso conhecer a linguagem do cliente e seus significados.
A equipe deve aprender a se comunicar com o cliente na linguagem que ele compreende.

EQUIPE COESA (WHOLE TEAM)


O cliente faz parte da equipe de desenvolvimento

REUNIÕES EM PÉ (STAND-UP MEETING).


reuniões em pé tendem a serem mais objectivas.

A politécnica Métodos Ágeis 34


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

PROJETO SIMPLES (SIMPLE DESIGN)


Isso implica em atender a funcionalidade solicitada pelo cliente sem sofisticar
desnecessariamente.

Deve-se fazer o que o cliente precisa, não o que o desenvolvedor gostaria que ele precisasse.

Por vezes, projecto simples pode ser confundido com projecto fácil.

A politécnica Métodos Ágeis 35


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

PROJETO SIMPLES (SIMPLE DESIGN)


Nem sempre o projecto simples é o mais fácil de implementar.

 O projecto fácil pode não atender às necessidades, ou pode gerar


problemas de arquitectura
A politécnica Métodos Ágeis 36
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

VERSÕES PEQUENAS (SMALL RELEASES)

A liberação de versões pequenas do sistema pode ajudar o cliente a testar


as funcionalidades de forma contínua.

XP leva ao extremo este princípio, sugerindo versões ainda menores.


A politécnica Métodos Ágeis 37
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
RITMO SUSTENTÁVEL (SUSTAINABLEPACE).

Trabalhar com qualidade um número razoável de horas por dia (não mais do que
8).

Horas extras só são recomendadas quando efectivamente trouxerem um aumento


de produtividade, mas não podem ser rotina.
A politécnica Métodos Ágeis 38
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

POSSE COLETIVA (COLLECTIVE OWNERSHIP)

O código não tem dono e não é necessário pedir


permissão a ninguém para modificá-lo.

A politécnica Métodos Ágeis 39


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
PROGRAMAÇÃO EM PARES (PAIR PROGRAMMING)

A programação é sempre feita por duas pessoas em cada computador.


Usualmente trata-se de um programador mais experiente e um aprendiz.
O aprendiz deve usar a máquina enquanto o mais experiente o ajuda a evoluir em suas
capacidades.
Com isso, o código gerado terá sempre sido verificado por pelo menos duas pessoas,
reduzindo drasticamente a possibilidade de erros.

A politécnica Métodos Ágeis 40


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
PADRÕES DE CODIFICAÇÃO (CODINGSTANDARDS)
 A equipe deve estabelecer e seguir padrões de codificação, de forma que
parecerá que o código foi todo desenvolvido pela mesma pessoa, mesmo
que tenham sido dezenas

A politécnica Métodos Ágeis 41


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
PADRÕES DE CODIFICAÇÃO (CODINGSTANDARDS)

 A equipe deve estabelecer e seguir padrões de codificação, de forma que parecerá que o código
foi todo desenvolvido pela mesma pessoa, mesmo que tenham sido dezenas.

TESTES DE ACEITAÇÃO (CUSTOMER TESTS)


 São testes planejados e conduzidos pela equipe em conjunto com o cliente para verificar se
determinados requisitos foram atendidos

A politécnica Métodos Ágeis 42


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
DESENVOLVIMENTO ORIENTADO A TESTES(TEST DRIVEN DEVELOPMENT)

 Antes de programar uma unidade deve-se estabelecer os testes pelos quais ela deverá passar.

REFATORAÇÃO (REFACTORING)

 Não se deve fugir da refatoração quando necessária.


 Ela permite manter a complexidade do código em um nível gerenciável.
 É um investimento que traz benefícios a médio e longo prazo.

A politécnica Métodos Ágeis 43


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
INTEGRAÇÃO CONTÍNUA(CONTINUOUSINTEGRATION)

 Nunca esperar até ao final do ciclo para integrar uma nova funcionalidade.

 Assim que estiver viável ela deve ser integrada ao sistema para evitar
surpresa

A politécnica Métodos Ágeis 44


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
PROCESSO DE XP;
Emprega programação orientado ao objecto como o paradigma de desenvolvimento preferido e envolve um
conjunto de regras e praticas constantes no contexto de quatro actividades metodológicas.
Wells (2009) vai mais além das práticas XP apontando um conjunto sucinto e bastante objectivo de regras para
XP. Ele divide as regras em 5 grandes grupos:
Planejamento
Gerência
Projecto
Codificação
Teste

A politécnica Métodos Ágeis 45


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

REGRAS XP DE PLANEJAMENTO
 Escrever histórias de usuário;
 O planejamento de entregas cria o cronograma de entregas;
 Faça entregas pequenas frequentes;
 O projecto é dividido em iterações;
 O planejamento da iteração inicia cada iteração.
A politécnica Métodos Ágeis 46
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
ESCREVER HISTÓRIAS DE USUÁRIO
 Servem ao mesmo propósito de casos de uso, mas não são a mesma coisa.
 São usadas no lugar do documento de requisitos.
 Devem ser escritas pelos usuários como sendo as coisas que eles precisam que
o sistema faça para
 eles.
 Podem ser usadas para definir os testes de aceitação.
A politécnica Métodos Ágeis 47
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
ESCREVER HISTÓRIAS DE USUÁRIO
A equipe deve estimar se a história pode ser implementada em uma, duas ou três semanas.
Tempos maiores do que este significam que a história deve ser subdividida em duas ou mais
histórias.
Menos de uma semana significa que a história está em um nível de detalhe muito alto e
precisa ser combinada com outras.
Como as histórias são escritas pelo cliente, espera-se que não sejam contaminadas com
aspectos técnicos e de interfaces

A politécnica Métodos Ágeis 48


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O PLANEJAMENTO DE ENTREGAS CRIA O CRONOGRAMA DE ENTREGAS

É feito um encontro de planejamento de entregas para delinear o projecto como um todo.

É importante que os técnicos tomem as decisões técnicas e os administradores as decisões de negócio.

unicamente em um projecto, dedicando-se apenas a ele.

A politécnica Métodos Ágeis 49


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

O PLANEJAMENTO DE ENTREGAS CRIA O CRONOGRAMA DE ENTREGAS

 Deve-se estimar o tempo de cada história de usuário em termos de semanas de


programação ideais e priorizar as histórias mais importantes do ponto de vista do
cliente.
 Uma semana de programação ideal é aquela em que uma pessoa trabalha todas as horas
da semana.

A politécnica Métodos Ágeis 50


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

O PLANEJAMENTO DE ENTREGAS CRIA O CRONOGRAMA DE


ENTREGAS

 As histórias são agrupadas em iterações, que só são planejadas pouco antes de


iniciarem.
 Essa priorização pode ser feita com histórias impressas em cartões que são movidos
na mesa ou num quadro para indicar prioridades.
A politécnica Métodos Ágeis 51
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

FAÇA ENTREGAS PEQUENAS FREQÜENTES


Algumas equipes entregam software diariamente, mas no pior
caso, deveria acontecer a cada uma ou duas semanas.
 A decisão de colocar a entrega em operação ou não é do
cliente.

A politécnica Métodos Ágeis 52


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O PROJETO É DIVIDIDO EM ITERAÇÕES
 Prefira iterações de uma a duas semanas.
 Não planeje as actividades com muita antecedência.
 Deixe para planejar a iteração pouco antes de ela iniciar.
 Planejamento just-in-time é uma forma de estar sempre sintonizado com as mudanças de
requisitos e arquitectura.
 Não tente implementar coisas que virão depois.
 Leve os prazos a sério.

A politécnica Métodos Ágeis 53


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O PROJETO É DIVIDIDO EM ITERAÇÕES
 Acompanhe a produtividade.
 Se perceber que não vai vencer o cronograma, convoque uma nova reunião de
planejamento de entregas e repasse algumas entregas para outros ciclos.
 Concentre-se em completar as tarefas, e não em deixar várias coisas inacabadas
.

A politécnica Métodos Ágeis 54


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O PLANEJAMENTO DA ITERAÇÃO INICIACADA ITERAÇÃO
 No planejamento, que inicia cada iteração selecciona-se as histórias de usuário
mais importantes a serem desenvolvidas e partes de sistema que falharam em
testes de aceitação, os quais são quebrados em tarefas de programação.
 As tarefas serão escritas em cartões, assim como as histórias de usuário.
 Enquanto as histórias de usuário estão na linguagem do cliente, as tarefas de
programação estão na linguagem dos desenvolvedores

A politécnica Métodos Ágeis 55


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O PLANEJAMENTO DA ITERAÇÃO INICIA CADA ITERAÇÃO

 Cada desenvolvedor que selecciona uma tarefa estima quanto tempo ela levará
para ser concluída.
 Tarefas devem ser estimadas em um, dois ou três dias ideais de programação.
 Um dia ideal de programação é uma jornada de trabalho normal em que uma
pessoa dedique-se unicamente ao projecto
A politécnica Métodos Ágeis 56
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
REGRAS XP DE GERENCIAMENTO
 Dê à equipe um espaço de trabalho aberto e dedicado;
 Defina uma jornada sustentável ;
 Inicie cada dia com uma reunião em pé ;
 A velocidade do projecto é medida ;
 Mova as pessoas ;
 Conserte XP quando for inadequado.

A politécnica Métodos Ágeis 57


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
DÊ À EQUIPE UM ESPAÇO DE TRABALHO ABERTO E DEDICADO
 É importante eliminar barreiras físicas entre os membros da equipe para melhorar a
comunicação.
 Sugere-se colocar os computadores em um espaço central para a programação em pares
e mesas nas laterais da sala para que pessoas que precisem trabalhar a sós não se
desconectem do ambiente.
Inclua uma área para as reuniões em pé com um quadro branco e uma mesa de reuniões

A politécnica Métodos Ágeis 58


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
DEFINA UMA JORNADA SUSTENTÁVEL
 Trabalhar além da jornada normal é desgastante e desmoralizante.
 Se o projecto atrasa é melhor reprogramar as tarefas em uma release planning
meeting.
 Descubra a velocidade ideal para sua equipe e atenha-se a ela.
 Não tente fazer uma equipe trabalhar na velocidade de outra.
 Faça planos realistas
A politécnica Métodos Ágeis 59
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
INICIE CADA DIA COM UMA REUNIÃO EM PÉ

 Em uma reunião típica nem sempre todos contribuem, mas pelo menos ouvem.
 Mantenha o mínimo de pessoas o mínimo de tempo em reuniões.
 As reuniões em pé não são perda de tempo, mas uma forma rápida de manter a
equipe sincronizada, pois cada um dirá o que fez ontem, o que vai fazer hoje e o
que o impede de prosseguir.
A politécnica Métodos Ágeis 60
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
A VELOCIDADE DO PROJETO É MEDIDA
 Conta-se ou estima-se quantas histórias de usuário e tarefas de programação são desenvolvidas
em cada iteração.
 A cada encontro de planejamento de iteração os clientes podem seleccionar um número de
histórias de usuário igual à estimativa de velocidade do projecto.
 O mesmo vale para os programadores em relação às tarefas de programação.
 Isso permite que a equipe se recupere de eventuais iterações difíceis.
 Aumentos e diminuições de velocidade são esperadas.

A politécnica Métodos Ágeis 61


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
MOVA AS PESSOAS
 Mobilidade de pessoas em projectos é importante para evitar perda de
conhecimento e gargalos de programação.
 Ficar na dependência de um único funcionário é perigoso.
 Deve-se evitar criar ilhas de conhecimento porque elas são susceptíveis a perda.
 Se precisar de conhecimento especializado, contrate um consultor por prazo
determinado.

A politécnica Métodos Ágeis 62


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

CONSERTE XP QUANDO FOR INADEQUADO


 Não hesite em mudar aquilo que não funciona em XP.
 Isso não significa que se pode fazer qualquer coisa.
 Segue-se as regras até que se perceba que elas precisam ser mudadas.
 Todos os desenvolvedores devem saber o que se espera deles e o que eles esperam dos
outros.
 A existência de regras é a melhor forma de garantir isso.

A politécnica Métodos Ágeis 63


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

REGRAS XP DE PROJETO (DESGIN)


 Simplicidade;
 Escolha uma metáfora de sistema;
 Use Cartões CRC durante reuniões de projecto;
 Crie soluções afiadas para reduzir risco;
 Nenhuma funcionalidade é adicionada cedo;
 Use refatoração sempre e onde for possível;

A politécnica Métodos Ágeis 64


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
SIMPLICIDADE
 Um projecto simples sempre é executado mais rápido do que um projecto
complexo.
 Porém, simplicidade é subjectiva e difícil de ser medida.
 Então a equipe é que deve decidir o que é simples.
 Uma das melhores formas de obter simplicidade em um projeto é levar a sério
o Design Pattern“Alta Coesão” (Wazlawick, 2004).
A politécnica Métodos Ágeis 65
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
QUALIDADES PARA OBTER SIMPLICIDADE
 Testabilidade;
 Browseabilidade;
 Compreensibilidade e Explicabilidade;

A politécnica Métodos Ágeis 66


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
TESTABILIDADE
 Pode-se escrever testes de unidade para verificar se o código está correto.
 O sistema deve ser quebrado em unidades testáveis.
BROWSEABILIDADE
 Pode-se encontrar os elementos quando se precisa deles.
 Bons nomes e uso de boas disciplinas como polimorfismo, herança e delegação
ajudam nisso
A politécnica Métodos Ágeis 67
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
COMPREENSIBILIDADE EEXPLICABILIDADE
 Compreensibilidade é uma qualidade subjectiva porque um sistema pode
ser bastante compreensível para quem está trabalhando nele, mas difícil
para quem está de fora.
 Então essa propriedade pode ser definida em termos de quão fácil é
explicar o sistema para quem não participou do desenvolvimento.

A politécnica Métodos Ágeis 68


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

ESCOLHA UMA METÁFORA DE SISTEMA


 Uma boa metáfora de sistema ajuda a explicar seu funcionamento a alguém de fora
do projecto.
 Deve-se evitar que a compreensão sobre o sistema resida em pilhas de documentos.
 Nomes significativos e padrões de nomeação de elementos de programa devem ser
cuidadosamente escolhidos e seguidos para que fragmentos de código sejam
efectivamente reusáveis.
A politécnica Métodos Ágeis 69
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
USE CARTÕES CRC DURANTE REUNIÕESDE PROJETO
 Trata-se de uma técnica para encontrar responsabilidades e colaborações entre objectos.
 A equipe se reúne em torno de uma mesa e cada membro recebe um ou mais cartões
representando instâncias de diferentes classes.
 Uma actividade (operação ou consulta) é simulada e a medida que ela ocorre os detentores
dos cartões anotam responsabilidades do objecto no lado esquerdo do cartão e colaborações
do objecto no lado direito.
 A documentação dos processos pode ser feita com diagramas de sequência ou de
comunicação da UML.

A politécnica Métodos Ágeis 70


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
CRIE SOLUÇÕES AFIADAS PARA REDUZIR RISCO
 Em face de riscos importantes de projecto deve-se explorar o risco de forma definitiva e exclusiva,
ou seja, uma solução afiada ou spike para o problema identificado.
 Um spike é então um desenvolvimento ou teste projectado especificamente para analisar e
possivelmente resolver um risco.
 Caso o risco se mantenha, deve-se colocar um par de programadores durante uma ou duas semanas
exclusivamente trabalhando para examinar e mitigar este risco.
 A maioria dos spikes não serão aproveitados no projecto, podendo ser classificados como uma das
formas de prototípico (throw-away)

A politécnica Métodos Ágeis 71


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
NENHUMA FUNCIONALIDADE É ADICIONADA CEDO
 Deve-se evitar a tentação de adicionar funcionalidade desnecessária só porque seria fácil fazer isso
agora e deixaria o sistema melhor.
 Apenas o necessário é feito no sistema.
 Desenvolver o que não é necessário é jogar tempo fora.
 Manter o código aberto a possíveis mudanças futuras tem a ver com simplicidade de projecto, mas
adicionar funcionalidade ou flexibilidade desnecessária, sempre deixa o projecto mais complexo.
 Requisitos futuros só devem ser considerados quando estritamente exigidos pelo cliente.

A politécnica Métodos Ágeis 72


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
USE REFATORAÇÃO SEMPRE E ONDE FOR POSSÍVEL
 Refatore sem pena.
 XP não recomenda que se continue usando design antigo e ruim só
porque ele funciona.
 Deve-se remover redundâncias, eliminar funcionalidades desnecessárias e
rejuvenescer designs antiquados

A politécnica Métodos Ágeis 73


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
REGRAS XP PARA CODIFICAÇÃO DEPROGRAMAS
O cliente está sempre disponível
 O código deve ser escrito de acordo com padrões aceitos
 Escreva o teste de unidade primeiro
Todo o código é produzido por pares
Só um par faz integração de código de cada vez
Integração deve ser frequente
Defina um computador exclusivo para integração
A posse do código deve ser colectiva

A politécnica Métodos Ágeis 74


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O CLIENTE ESTÁ SEMPRE DISPONÍVEL
 XP necessita que o cliente esteja disponível preferencialmente
pessoalmente ao longo de todo o processo de desenvolvimento.
 Entretanto, devido ao longo tempo de um projecto, a empresa cliente pode
ser tentada a associar um funcionário pouco experiente ou estagiário ao
projecto. Ele não serve. pouco experiente ou estagiário ao projecto. Ele não
serve.
A politécnica Métodos Ágeis 75
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O CLIENTE ESTÁ SEMPRE DISPONÍVEL
 Deve ser um especialista. Ele deverá escrever as histórias de usuário,
bem como priorizá-las e negociar sua inclusão em iterações.
 Pode parecer um investimento alto em tempo de funcionários, mas é
compensado por ser desnecessário um levantamento de requisitos
detalhado ao início, bem como pela não entrega de um sistema
inadequado.

A politécnica Métodos Ágeis 76


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
O CÓDIGO DEVE SER ESCRITO DE ACORDOCOM PADRÕES
ACEITOS
 Padrões de codificação mantêm o código compreensível e passível de
refatoração por toda a equipe.
 Além disso, código que se parece encoraja a posse colectiva do mesmo.

A politécnica Métodos Ágeis 77


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

ESCREVA O TESTE DE UNIDADE PRIMEIRO


 Usualmente, escrever o teste antes do código ajuda a escrever
o código melhor.
 O tempo para escrever o teste e código passa a ser o mesmo
que se gastaria para escrever apenas o código.

A politécnica Métodos Ágeis 78


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
TODO O CÓDIGO É PRODUZIDO POR PARES
 Embora pareça contra-sensual, duas pessoas trabalhando em um
computador produzem tanto código quanto duas pessoas trabalhando
separadamente, mas com mais qualidade.
 Embora seja recomendado que haja um Embora seja recomendado que
haja um programador mais experiente, a relação não deve ser de
professor/aluno, mas de iguais
A politécnica Métodos Ágeis 79
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
SÓ UM PAR FAZ INTEGRAÇÃO DE CÓDIGO DE CADA VEZ
 A integração em paralelo pode trazer problemas de compatibilidade imprevistos, pois duas
partes do sistema que nunca foram testadas juntas acabam sendo integradas sem serem testadas.
 Deve haver versões claramente definidas do Deve haver versões claramente definidas do
produto.
 Então, para que equipes trabalhando em paralelo não tenham problemas na hora de integrar seu
código ao produto, elas devem esperar a sua vez.
 Deve-se estabelecer turnos de integração que sejam obedecidos.

A politécnica Métodos Ágeis 80


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
INTEGRAÇÃO DEVE SER FREQÜENTE
 Desenvolvedores devem estar integrando código ao repositório
a cada poucas horas.
 Postergar integração pode agravar o problema de todos
estarem trabalhando em versões desactualizadas do sistema.

A politécnica Métodos Ágeis 81


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
DEFINA UM COMPUTADOR EXCLUSIVO PARA INTEGRAÇÃO
 Este computador funciona como uma ficha de exclusividade (token) para a
integração.
 A existência dele no ambiente de trabalho permite que toda a equipe veja quem está
integrando funcionalidade e qual a uncionalidade.
 O resultado da integração deve passar nos testes de unidade, de O resultado da
integração deve passar nos testes de unidade, de forma que se obtém estabilidade
em cada versão e localidade nas mudanças e possíveis erros.
A politécnica Métodos Ágeis 82
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
DEFINA UM COMPUTADOR EXCLUSIVO PARA
INTEGRAÇÃO
 Se os testes de unidade falharem, a unidade deve ser depurada. Se a
actividade de integração levar mais do que cerca de dez minutos, é porque a
unidade ainda precisa de alguma depuração adicional antes de ser integrada.
Neste caso, a integração deve ser abortada, retornando o sistema à ultima
versão estável, e a depuração da unidade deve seguir sendo feita pelo par.

A politécnica Métodos Ágeis 83


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
A POSSE DO CÓDIGO DEVE SER COLETIVA
 Não devem ser criados gargalos pela existência de donos de código.
 Todos devem ter autorização para modificar, consertar ou refatorar partes do
sistema.
 Para isso funcionar os desenvolvedores devem Para isso funcionar os
desenvolvedores devem sempre desenvolver os testes de unidade juntamente
com o código, seja novo ou modificado.
A politécnica Métodos Ágeis 84
Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

A POSSE DO CÓDIGO DEVE SER COLETIVA


 Desta forma existe sempre uma garantia de que o software satisfaz as
condições de funcionamento.
 Não ter um dono de partes do sistema também diminui o impacto da
perda de membros da equipe

A politécnica Métodos Ágeis 85


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
REGRAS XP PARA TESTE DE SOFTWARE
 Todo código deve passar pelos testes de unidade antes de ser entregue
 Quando um erro de funcionalidade é encontrado, testes são criados
 Testes de aceitação são executados com frequência e os resultados são
publicados

A politécnica Métodos Ágeis 86


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
TODO O CÓDIGO DEVE TER TESTES DEUNIDADE
 Esta é uma das pedras fundamentais do XP.
 Inicialmente o desenvolvedor XP deve criar ou obter um framework de
teste de unidade.
 Depois ele deve testar todas as classes do sistema,ignorando usualmente
os métodos básicos triviais como getters e setters. getters e setters.

A politécnica Métodos Ágeis 87


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

TODO O CÓDIGO DEVE TER TESTES DE UNIDADE


 Testes de unidade favorecem a posse colectiva do código porque
protegem o código de ser acidentalmente danificado.

A politécnica Métodos Ágeis 88


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
TODO CÓDIGO DEVE PASSAR PELOS TESTES DE UNIDADE ANTES DE SER
ENTREGUE
 Exigir que o código passe por todos os testes de unidade antes de ser integrado ajuda a
garantir que sua funcionalidade está correctamente implementada.
 Os testes de unidade também favorecem a Os testes de unidade também favorecem a
refatoração, porque protegem o código de mudanças indesejadas de funcionalidade.
 A introdução de nova funcionalidade deverá provocar a adição e mais testes no teste de
unidade específico

A politécnica Métodos Ágeis 89


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING

QUANDO UM ERRO DE FUNCIONALIDADE É ENCONTRADO,


TESTES SÃO CRIADOS
 Um erro de funcionalidade identificado exige que estes de aceitação
sejam criados para proteger o sistema.
 Assim, os clientes explicam claramente aos desenvolvedores o que eles
esperam que seja modificado

A politécnica Métodos Ágeis 90


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Modelos Ágeis

XP – EXTREME PROGRAMMING
TESTES DE ACEITAÇÃO SÃO EXECUTADOS COM
FREQÜÊNCIA E OS RESULTADOS SÃO PUBLICADOS
 Testes de aceitação são criados a partir de histórias de usuário.
 Durante uma iteração, as histórias de usuário seleccionados serão traduzidas em testes de
aceitação.
 Estes testes são do tipo caixa preta e representam uma ou mais funcionalidades desejadas.
 Testes de aceitação devem ser automatizados, de forma que possam ser executados com
frequência.

A politécnica Métodos Ágeis 91


Eng Informática de telecomunicações Docente: Dimene L.Ernesto
PROCESSO DE SOFTWARE

Bibliografia
PRESSMAN, Roger S. Engenharia de Software. Mc Graw Hill, 7
ed
Porto Alegre, 2011.
SOMMERVILLE, Ian. Engenharia de Software. Pearson, 9 ed, São
Paulo, 2011.
Rezende, D. A. (2005). Engenahria de software e sistema de
informação (Vol. 3a ). (s. M. oliveira, Ed.) tijoca, Rio de Janeiro,
Brazil: Brasport.
eto, j. a., & Viliano, R. J. (s.d.). Fundamentos de Engenharia de
Software . Rio de Janeiro 

A politécnica
Eng Informática de telecomunicações Docente: Dimene L.Ernesto