Você está na página 1de 14

RESUMO ENG.

DE SOFTWARE Ian
Sommerville
Autor: Paulo Norberto

CAPITULO 1

INTRODUO

Os sistemas de software so abstratos e intangveis. Eles no so restringidos pelas


propriedades dos materiais, nem governados pelas leis da fsica ou pelos processos de
manufatura. Isso simplifica a engenharia de software, porque no h limites naturais para o
potencial do software. No entanto, devido a essa falta de restrio fsica, os sistemas de
software podem se tornar extremamente complexos de modo muito rpido, difceis de
entender e caros para alterar.
Existem vrios tipos de sistemas de software, desde os simples at os complexos. No
faz sentido que se busque notaes, mtodos ou tcnicas universais para a engenharia de
software, pois diferentes tipos de software exigem abordagens diferentes.
A seguir algumas causas das falhas de software:
1. Aumento de demanda: O aumento da demanda de softwares os sistemas tem que ser
construdos mais rapidamente, serem maiores e mais complexos, devem ter
capacidades que antes eram consideradas impossveis. Como os mtodos e as tcnicas
de engenharia de software existentes no conseguem lidar com isso, novas tcnicas de
engenharia de software precisam ser desenvolvidas para atender a essas novas
demandas.
2. Expectativas baixas: Por ser fcil escrever programas de computador sem usar
tcnicas e mtodos de engenharia de software, isso forou a muitas empresas a
desenvolver softwares medida que seus produtos e servios evoluram. Como
consequncia, e por no utilizar mtodos de engenharia de software no dia-a-dia, seus
softwares so mais caros e menos confiveis do que deveriam ser.
Vrias pessoas desenvolvem softwares hoje em dia, para os mais diferentes
meios (cientfico, hobby, empresariais), no entanto a maior parte dos softwares
desenvolvido para um propsito especfico de negcio. O software profissional, que

usado por algum alm do seu desenvolvedor, normalmente criado por equipes, em
vez de indivduos. Ele mantido e alterado durante sua vida. A engenharia de software
inclui tcnicas que apoiam especificao, projeto e evoluo de programas.
Falar em engenharia de software no apenas criar programas de
computador, mas tambm engloba toda a documentao associada e dados de
configurao necessrios para fazer esse programa operar corretamente. Um sistema
de software desenvolvido profissionalmente mais que apenas um programa; ele
normalmente uma srie de programas separados e arquivos de configurao usados
para configurar esses programas. Isso inclui documentao do sistema (descreve a sua
estrutura), documentao do usurio (explica como usar o sistema), e sites para o
usurio baixar informaes recentes do produto.
Engenheiros de software preocupam-se em desenvolver produtos de softwares
(softwares que podem ser vendidos). Existem dois tipos de produtos de software:
1. Produtos genricos: So os sistemas chamados stand-alone, que so os que so
vendidos para qualquer cliente que esteja interessado em compra-los. Exemplos:
ferramentas de banco de dados, processadores de texto, pacotes grficos, etc. E
tambm as aplicaes verticais, tais como, sistemas de biblioteca, contabilidade, e
manuteno de registros de alguma empresa.
2. Produtos sob encomenda: So criados para atender um fim especfico e um cliente
particular. desenvolvido especificamente para esse cliente. Exemplo: sistema de
controle de trfego areo.
O que software?

R: Softwares so programas de computador e documentao


associada.
Quais os atributos de um R: Prover a funcionalidade e o desempenho requerido pelo
bom software?
usurio; deve ser confivel, fcil de manter e usar.
Quais
as
principais R: Especificao de software, desenvolvimento de software,
atividades da engenharia de validao de software e evoluo de software.
software?
Quais os principais desafios R: Lidar com o aumento de diversidade, demandas pela
da engenharia de software? diminuio do tempo para a entrega e desenvolvimento de
software confivel.
Quais sos os custos da R: 60% de desenvolvimento e 40% de testes.
engenharia de software?
Sobre a qualidade dos softwares profissionais, devemos lembrar que o software
alterado pelas pessoas, alm dos seus desenvolvedores. A qualidade no apenas o

que o software faz, mas tambm como ele se comporta quando est sendo executado,
bem como a estrutura e a organizao dos programas do sistema e a documentao
associada. Isso reflete nos atributos de software, que so chamados de no funcionais
ou de qualidade. Exemplos desses atributos: Tempo de resposta a uma consulta
realizada pelo usurio e a compreenso do cdigo do programa. A seguir uma tabela
com as caractersticas essenciais de um sistema profissional de software:
Manutenibilidade O software deve ser escrito de forma que possa evoluir para
atender s necessidades do cliente. Esse um atributo crtico,
porque a mudana de software um requisito inevitvel de um
ambiente de negcios em mudana.
Confiana
e Inclui uma srie de caractersticas como: confiabilidade, proteo
proteo
e segurana. O software no pode causar prejuzos fsicos ou
financeiros no caso de falha no sistema e usurios maliciosos no
devem ser capazes de acessar ou prejudicar o sistema.
Eficincia
O software no deve desperdiar os recursos de sistema, como
memria e ciclos do processador. Deve ser eficiente na
capacidade de resposta, tempo de processamento, uso de
memria, etc.
Aceitabilidade
O software deve ser aceitvel para o tipo de usurio para o qual
foi projetado. Isso significa que ele deve ser compreensvel,
usvel e compatvel com outros sistemas usados por ele.
A engenharia de software no se preocupa apenas com os processos tcnicos
do desenvolvimento de software. Ela tambm inclui atividades como gerenciamento
de projeto de software e desenvolvimento de ferramentas, mtodos e teorias para
apoiar a produo de software. Engenharia tem haver com obter resultados de
qualidades requeridos dentro do cronograma e do oramento.
A abordagem sistemtica usada na engenharia de software , s vezes,
chamada processo de software. Um processo de software uma sequncia de
atividades que leva produo de um produto de software. Existem quatro atividades
fundamentais comuns a todos os processos de software. So elas:
1. Especificao de software: Clientes e engenheiros definem o que ser
produzido e as suas restries de operao.
2. Desenvolvimento de software: projeto e programao
3. Validao de software: O software verificado para garantir que est de
acordo com o que o cliente quer.
4. Evoluo de software: O software modificado para atender a mudana de
requisitos do cliente e do mercado.

Alm das quatro atividades fundamentais tambm existem trs aspectos


gerais que afetam vrios tipos diferentes de software:
1. Heterogeneidade: O sistema deve rodar em diferentes tipos de computadores e
dispositivos mveis. Integrao entre sistemas novos e antigos e escritos em
linguagens de programao diferentes. Desenvolver um software confivel que
seja flexvel o suficiente para lidar com essa heterogeneidade.
2. Mudana de negcio e social: As tcnicas de desenvolvimento devem evoluir
junto com a sociedade e o surgimento de novas tecnologias para que o tempo
requerido para o software da retorno a seus clientes seja reduzido tambm.
3. Segurana e confiana: Precisamos ter certeza de que os usurios maliciosos
no possam atacar nosso software e de que a proteo da informao seja
mantida.
Engenharia de software uma abordagem sistemtica para a produo de software; ela
analisa questes prticas de custo, prazo e confiana, assim como as necessidades dos clientes
e produtores do software. A forma como ela realmente implementada varia de acordo com a
organizao que est desenvolvendo, o tipo de software e as pessoas envolvidas no processo
de desenvolvimento. No existe um mtodo global de desenvolvimento, mas um conjunto
diverso de mtodos e ferramentas. Talvez o fator mais significante em determinar quais
tcnicas e mtodos de engenharia de software so mais importantes seja o tipo de aplicao a
ser desenvolvida. Vejam alguns tipos diferentes de aplicaes:
1. Aplicaes stand-alone: Aplicaes executadas em computador local, no precisam
estar conectadas a uma rede.
2. Aplicaes interativas baseadas em transaes;
3. Sistemas de controle embutido;
4. Sistemas de processamento de lote;
5. Sistemas de entretenimento;
6. Sistemas para modelagem e simulao;
7. Sistemas de coleta de dados;
8. Sistemas de Sistemas.
Alm disso, existem fundamentos de engenharia de software que se aplicam a todos os
tipos de sistemas de software:
1. Eles devem ser desenvolvidos em um processo gerenciado e compreendido;

2. Confiana e desempenho so importantes para todos os tipos de sistema;


3. importante entender e gerenciar as especificaes e os requisitos de software (o
que o software deve fazer);
4. Voc deve fazer o melhor uso possvel dos recursos existentes.
Pontos importantes:
Software no apenas um programa ou programas; ele inclui tambm a
documentao. Os atributos principais de um produto de software so
manutenibilidade, confiana, proteo, eficincia e aceitabilidade.
O processo de software inclui todas as atividades envolvidas no desenvolvimento
do software. Atividades de alto nvel de especificao, desenvolvimento, validao
e evoluo parte de todos os processos de software.
As ideias fundamentais da engenharia de software so universalmente aplicveis
para todos os tipos de desenvolvimento de sistemas. Esses fundamentos incluem
processos de software, confiana, proteo, requisitos e reuso.
Existem vrios tipos diferentes de sistemas, e cada um requer ferramentas e
tcnicas de engenharia de software adequadas a seu desenvolvimento. Existem
poucas, se houver alguma, tcnicas especficas de projeto e implementao
aplicveis a todos os tipos de sistemas.
As ideias bsicas da engenharia de software so aplicveis a todos os tipos de
sistemas de software. Esses fundamentos incluem processos de software
gerenciados, confiana e proteo de software, engenharia de requisitos e reuso
de software.

CAPITULO 2
Um processo de software um conjunto de atividades relacionadas que levam
produo de um produto de software. Existem muitos processos de softwares diferentes, mas
todos devem incluir quatro atividades fundamentais para a engenharia de software:
1. Especificaes de software
2. Projeto e implementao de software
3. Validao de software
4. Evoluo de software

Os processos de software, s vezes, so categorizados como dirigidos a planos


ou a processos geis. Processos dirigidos a planos so aqueles em que todas as
atividades so planejadas com antecedncia, e o progresso avaliado por comparao
com o projeto inicial. Em processos geis o planejamento gradativo, e mais fcil
alterar o processo de maneira a refletir as necessidades de mudana dos clientes.
Geralmente, necessrio encontrar um equilbrio entre os processos geis e os
processos dirigidos a planos.
A seguir alguns modelos de processos utilizados na engenharia de software:
Modelo em cascata:

1. Anlise e definio de requisitos: Os servios, restries, e metas do


sistema so estabelecidos por meio de consulta ao usurio. Em seguida, so
definidos em detalhes e funcionam como uma especificao do sistema.
2. Projeto de sistema e software: O processo de projeto de sistemas aloca os
requisitos tanto para sistemas de hardware como para os sistemas de
software, por meio da definio de uma arquitetura geral do sistema. O
projeto de software envolve identificao e descrio das abstraes
fundamentais do sistema de software e seus relacionamentos.
3. Implementao e teste unitrio: Durante esse estgio, o projeto de
software desenvolvido como um conjunto de programas ou unidades de
programas. O teste unitrio envolve a verificao de que cada unidade
atenda a sua especificao.

4. Integrao e teste de sistema: As unidades individuais do programa ou


programas so integradas e testadas como um sistema completo para
assegurar que os requisitos do software tenham sido atendidos. Aps o
teste, o software entregue ao cliente.
5. Operao e manuteno: A manuteno envolve a correo de erros que
no foram descobertos em estgios iniciais.
Nesse modelo, o estgio seguinte no deve ser iniciado at que a fase anterior seja
concluda. Por causa dos custos de produo e aprovao de documentos, as iteraes podem
ser dispendiosas e envolver significativos retrabalho.
Desenvolvimento incremental

Essa abordagem intercala as atividades de especificao, desenvolvimento e


validao. O sistema desenvolvido como uma srie de verses (incrementos), de
maneira que cada verso adiciona funcionalidade anterior. As atividades de
especificao, desenvolvimento e validao so intercaladas, e no separadas, com
rpido feedback entre todas as atividades.
Engenharia de software orientada a reuso
Na maioria dos projetos de software, h algum reuso de software. Isso acontece
muitas vezes informalmente, quando as pessoas envolvidas no projeto sabem de
projetos ou cdigos semelhantes ao que exigido. Elas o buscam, fazem as
modificaes necessrias e incorporam-nos a seus sistemas.

Apesar do modelo de reuso ter estgios comparveis com outros processos de


software, ele difere nos estgios intermedirios. Vejam quais so eles:
1. Anlise de componentes: Dada a especificao de requisitos, feita uma busca
de componentes para implementar essa especificao. Os componentes que
podem ser usados podem apenas fornecer alguma funcionalidade necessria.
2. Modificao de requisitos: Durante esse estgio, os requisitos so analisados
usando-se informaes sobre os componentes que foram descobertos. Em
seguida, estes sero modificados para refletir os componentes disponveis.
3. Projeto do sistema com reuso: Durante este estgio, o framework do sistema
projetado ou algo existente reusado. Os projetistas tm em mente os
componentes que sero reusados e organizam o framework para reuso.
4. Desenvolvimento e integrao: Softwares que no podem ser adquiridos
externamente so desenvolvidos, e os componentes e sistemas so integrados
para criar o novo sistema. A integrao de sistemas, nesse modelo, pode ser
parte do processo de desenvolvimento, em vez de uma atividade separada.
Engenharia de software orientada a reuso tem a vantagem bvia de reduzir a
quantidade de software a ser desenvolvido, e, assim, reduzir custos e riscos. Geralmente,
tambm proporciona a entrega mais rpida do software.
Especificao de software ou engenharia de requisitos o processo de compreenso e
definio dos servios requisitados do sistema e identificao de restries relativas
operao e ao desenvolvimento do sistema. Essa uma parte crtica do processo de software,
pois erros nessa fase inevitavelmente geram problemas no projeto e na implementao do
sistema.
O processo de engenharia de requisitos tem como objetivo produzir um documento de
requisitos acordados que especifica um sistema que satisfaz os stakeholders. Existem quatro
atividades principais do processo de engenharia de requisito:
1. Estudo de viabilidade
2. Elicitao e anlise de requisitos
3. Especificao de requisitos
4. Avaliao de requisitos.
As atividades no processo de requisitos no so feitas em apenas uma sequencia. A
anlise de requisitos continua durante a definio e especificao, e novos requisitos emergem

durante o processo. Por tanto, as atividades de anlise, definio e especificao so


intercaladas.
O estgio de implementao do desenvolvimento de software o processo de
converso do sistema em um sistema executvel. Um projeto de software uma descrio da
estrutura do software a ser implementado, dos modelos e estruturas de dados usados pelo
sistema, das interfaces entre os componentes do sistema e, s vezes, dos algoritmos usados.
Os projetistas no chegam a um projeto final imediatamente, mas desenvolvem-no de forma
iterativa. Eles acrescentam formalidade e detalhes, enquanto desenvolvem seu projeto por
meio de revises constantes para correo de projetos anteriores.
A validao de software tem a inteno de mostrar que um software se adequa a suas
especificaes ao mesmo tempo em que satisfaz as especificaes do cliente do sistema. O
teste do programa a principal tcnica de validao. A validao tambm pode envolver
processos de verificao, como inspees e revises, em cada estgio do processo de
software, desde a definio dos requisitos de usurios at o desenvolvimento do programa.
Erros em componentes de programa podem vir luz durante os testes de sistema. O
processo , portanto, iterativo, com informaes realimentadas de estgios posteriores para
partes anteriores do processo. Os estgios do processo de teste so:
1. Testes de desenvolvimento
2. Teste de sistema
3. Teste de aceitao
Se uma abordagem incremental usada para o desenvolvimento, cada incremento deve ser
testado enquanto desenvolvido.

Pontos importantes:

Os processos de software so as atividades envolvidas na produo de um sistema


de software. Modelos de processos de software so representaes abstratas
desses processos.
Modelos gerais de processo descrevem a organizao dos processos de software.
Exemplos desses modelos gerais incluem o modelo em cascata, o desenvolvimento
incremental e o desenvolvimento orientado a reuso.
Engenharia de requisitos o processo de desenvolvimento de uma especificao
de software. As especificaes destinam-se a comunicas as necessidades de
sistemas dos clientes para os desenvolvedores do sistema.

Processos de projeto e implementao esto relacionados com a transformao


das especificaes dos requisitos em um sistema de software executvel. Mtodos
sistemticos de projetos podem ser usados como parte dessa transformao.
Validao de software o processo de verificao de que o sistema est de acordo
com a sua especificao e satisfaz s necessidades reais do usurio do sistema.
Evoluo de software ocorre quando se alteram os atuais sistemas de software
para atender aos novos requisitos. As mudanas so continuas, e o software deve
evoluir para continuar til.
Processos devem incluir atividades para lidar com as mudanas. Podem envolver
uma fase de prototipao, que ajuda a evitar ms decises sobre os requisitos e
projetos. Processos podem ser estruturados para o desenvolvimento e a entrega
iterativos, de forma que mudanas possam ser feitas sem afetar o sistema como
um todo.
RUP um moderno modelo genrico de processo, organizado em fases
(concepo, elaborao, construo e transio), mas que separa as atividades
(requisitos, anlises, projetos, etc.) dessas fases.

CAPITULO 3

Os processos de desenvolvimento rpido de software so concebidos para produzir,


rapidamente, softwares teis. O software no desenvolvido como uma nica unidade, mas
como uma srie de incrementos cada incremento inclui uma nova funcionalidade do
sistema. Embora existam muitas abordagens para o desenvolvimento rpido de software, elas
compartilham algumas caractersticas fundamentais:
1. Os processos de especificao, projeto e implementao so intercalados.
2. O sistema desenvolvido em uma srie de verses.
3. Interfaces de usurio do sistema so geralmente desenvolvidas com um sistema
interativo de desenvolvimento que permite a criao rpida do projeto de
interface por meio de desenho e posicionamento de cones na interface.
Os mtodos geis so mtodos de desenvolvimento incremental em que os
incrementos so pequenos e, normalmente, as novas verses do sistema so criadas e
disponibilizadas aos clientes a cada duas ou trs semanas. Elas envolvem os clientes no

processo de desenvolvimento para obter feedback rpido sobre a evoluo dos requisitos.
Assim, minimiza-se a documentao, pois se utiliza mais a comunicao informal do que
reunies formais com documentos escritos.
Mtodos geis permitiram que a equipe de desenvolvimento focasse no software em
si, e no em sua concepo e documentao. Mtodos geis, universalmente, baseiam-se
em uma abordagem incremental para a especificao, o desenvolvimento e a entrega do
software. Destinam-se a entregar o software rapidamente aos clientes, em funcionamento,
e estes podem, em seguida, propor alteraes e novos requisitos a serem includos nas
iteraes posteriores do sistema. Tem como objetivo reduzir a burocracia do processo,
evitando qualquer trabalho de valor duvidoso de longo prazo e qualquer documentao
que provavelmente nunca ser usada.
Os princpios dos mtodos geis:
Envolvimento do cliente
Entrega incremental
Pessoas, no processos.

Aceitar as mudanas
Manter a simplicidade

Os clientes devem estar intimamente envolvidos no processo


de desenvolvimento. Seu papel fornecer e priorizar novos
requisitos do sistema e avaliar suas iteraes.
O software desenvolvido em incrementos com o cliente,
especificando os requisitos pra serem includos em cada um.
As habilidades da equipe de desenvolvimento devem ser
reconhecidas e exploradas. Membros da equipe devem
desenvolver suas prprias maneiras de trabalhar, sem
processos prescritivos.
Deve-se ter em mente que os requisitos do sistema vo
mudar. Por isso, projete o sistema de maneira a acomodar
essas mudanas.
Focalize a simplicidade, tanto do software a ser desenvolvido
quanto do processo de desenvolvimento. Sempre que
possvel, trabalhe ativamente para eliminar a complexidade
do sistema.

Abordagens geis de desenvolvimento de software consideram o projeto e a


implementao como atividades centrais no processo de software. Eles incorporam outras
atividades, como elicitao de requisitos e testes no projeto e na implementao. Em
contrapartida, uma abordagem de engenharia de software dirigida a planos identifica estgios
distintos do processo de software com sadas associadas a cada estgio. As sadas de um
estgio so usadas como base para o planejamento da atividade do processo a seguir.
Em uma abordagem dirigida a planos, ocorrem iteraes no mbito das atividades com
documentos formais, usados para estabelecer a comunicao entre os estgios do processo.
Por exemplo, os requisitos vo evoluir e, finalmente, ser produzida uma especificao de

requisitos. Em uma abordagem gil, iteraes ocorrem em todas as atividades. Por tanto, os
requisitos e o projeto so desenvolvidos em conjunto, e no separadamente.
Extreme Programming (XP) talvez o mais conhecido e mais utilizado dos mtodos
geis, pois a abordagem foi desenvolvida para impulsionar prticas reconhecidamente boas,
como o desenvolvimento iterativo, a nveis extremos. Por exemplo, em XP, vrias novas
verses de um sistema podem ser desenvolvidas, integradas e testadas em um nico dia por
programadores diferentes.
Em extreme Programming, os requisitos so expressos como cenrios (chamados de
estrias do usurio), que so implementados diretamente como uma srie de tarefas. Os
programadores trabalham em pares e desenvolvem testes para cada tarefa antes de escreverem
o cdigo. Quando o novo cdigo integrado ao sistema, todos os testes devem ser executados
com sucesso. H um curto intervalo entre os releases do sistema.
Extreme Programming envolve uma srie de prticas que refletem os princpios dos
mtodos geis:
1. O desenvolvimento incremental sustentado por meio de pequenos e frequentes
releases do sistema.
2. O envolvimento do cliente sustentando por meio do engajamento contnuo do
cliente com a equipe de desenvolvimento.
3. Pessoas no processos so sustentadas por meio de programao em pares,
propriedade coletiva do cdigo do sistema e um processo de desenvolvimento que
no envolve horas excessivas de trabalho.
4. As mudanas so aceitas por meio de releases contnuos para os clientes.
5. A manuteno da simplicidade feita por meio da refatorao constante que
melhora a qualidade do cdigo, bem como por meio de projetos simples que no
antecipam desnecessariamente futuras mudanas no sistema.
Em um processo XP, os clientes esto intimamente envolvidos na especificao e
priorizao dos requisitos do sistema. Os requisitos no esto especificados como uma lista de
funes requeridas do sistema. Pelo contrrio, o cliente do sistema parte da equipe de
desenvolvimento e discute cenrios com outros membros da equipe. Juntos, eles desenvolvem
um carto de estrias, englobando as necessidades do cliente.

A equipe de

desenvolvimento, ento, tenta implementar esse cenrio em um release futuro do software.


Os cartes de estria so as principais entradas para o processo de planejamento em XP ou
jogo de planejamento. Esse processo geralmente envolve discusses com o cliente para

refinamento dos requisitos. O cliente, ento, prioriza as estrias para implementao,


escolhendo aquelas que podem ser usadas imediatamente para oferecer apoio aos negcios. A
inteno identificar funcionalidade til que possa ser implementada em cerca de duas
semanas, quando o prximo release do sistema disponibilizado para o cliente.
Claro que, como os requisitos mudam, as estrias no implementadas mudam ou podem
ser descartadas. Se houver necessidade de mudanas em um sistema que j tenha sido
entregue, novos cartes de estria so desenvolvidos e, mais uma vez, o cliente decide se
essas mudanas devem ter prioridade sobre a nova funcionalidade.
Para evitar alguns dos problemas de teste e validao do sistema, a abordagem XP
enfatiza a importncia dos testes do programa. Extreme Programming incluiu uma abordagem
de testes que reduz as chances de erros desconhecidos na verso atual do sistema.
As principais caractersticas dos testes em XP so:
1. Desenvolvimento test-first
2. Desenvolvimento de teste incremental a partir de cenrios
3. Envolvimentos dos usurios no desenvolvimento de testes e validao
4. Uso de frameworks de testes automatizados.
O desenvolvimento test-first uma das mais importantes inovaes no XP. Em vez de
escrever algum cdigo e, em seguida, escrever testes para esse cdigo, voc escreve os testes
antes do cdigo. Isso significa que voc pode executar o teste enquanto o cdigo est sendo
escrito e pode encontrar problemas durante o desenvolvimento.
No desenvolvimento test-first, os implementadores de tarefas precisam entender
completamente a especificao para que possam escrever testes para o sistema. Isso significa
que as ambiguidades e omisses da lista de especificaes devem ser esclarecidas antes do
inicio da implementao. Alm disso, tambm evita o problema de test-lag. Isso pode
acontecer quando o desenvolvedor do sistema trabalha em um ritmo mais rpido que o
testador. A implementao fica mais e mais frente dos testes e desenvolve-se uma tendncia
a ignorar os testes, a fim de que o cronograma de desenvolvimento possa ser mantido.
Outra prtica inovadora introduzida no XP que, para desenvolver o software, os
programadores trabalhem em pares. Na verdade, para desenvolver o software eles se sentam
juntos, na mesma estao de trabalho. No entanto, os mesmos pares nem sempre programam
juntos. Pelo contrario, os pares so criados de maneira dinmica, de modo que todos os
membros da equipe trabalhem uns com os outros durante o processo de desenvolvimento.
O uso da programao em pares tem uma srie de vantagens:

1. D suporte a ideia de propriedade e responsabilidade coletiva para o sistema.


2. Atua como um processo de reviso informal, porque cada linha de cdigo
observada por, pelo menos, duas pessoas.
3. D suporte refatorao, que um processo de melhoria de software.

PONTOS IMPORTANTES:

1. Mtodos geis so mtodos de desenvolvimento incremental que se concentram


em desenvolvimento rpido, releases frequentes do software, reduo de
overheads dos processos e produo de cdigos de alta qualidade. Eles envolvem o
cliente diretamente no processo de desenvolvimento.
2. A deciso de usar uma abordagem dirigida a planos para o desenvolvimento deve
depender do tipo de software a ser desenvolvido, das habilidades da equipe de
desenvolvimento e da cultura da empresa que desenvolve o sistema.
3. Extreme Programming um mtodo gil, bem conhecido, que integra um
conjunto de boas praticas de programao, como releases frequentes do software,
melhorias contnuas do software e participao do cliente na equipe de
desenvolvimento.
4. Um ponto forte da Extreme Programming o desenvolvimento de testes
automatizados antes da criao de um recurso do programa. Quando um
incremento integrado ao sistema, todos os testes devem ser executados com
sucesso.
5. O mtodo Scrum uma metodologia gil que fornece um framework de
gerenciamento de projetos. centralizado em torno de um conjunto de sprints,
que so perodos determinados de tempo, quando um incremento de sistema
desenvolvido. O planejamento baseado na priorizao de um backlog de
trabalho e na seleo das tarefas mais importantes para um sprint.
6. O escalamento de mtodos geis para sistemas de grande porte difcil. Tais
sistemas necessitam de projeto adiantado e alguma documentao. A integrao
continua praticamente impossvel quando existem varias equipes de
desenvolvimento separadas trabalhando em um projeto.

Você também pode gostar