Você está na página 1de 3

Engenharia de Software

Na engenharia de software feito um estudo de modos para criar programas para computadores, envolvendo geralmente mais de um programador. A engenharia de software preocupa-se com o ciclo de vida de um projeto de software, que inclui especificao, projeto, verificao, codificao, teste, produo e manuteno. Mtodos e atitudes geis! Mtodos de desenvolvimento gil tendem a fa"er um desenvolvimento iterativo e evolutivo de tempo r pido, usando planejamento adaptativo, promovem entrega incremental e incluem outros valores e pr ticas que encorajam agilidade # resposta r pida e fle$%vel & modificao. 'tera(es curtas de tempo limitado com refinamento evolutivo de planos, requisitos e projetos uma pratica ) sica que os mtodos compartilham. *les promovem pr ticas e princ%pios que refletem uma sensi)ilidade gil de simplicidade, leve"a, comunicao, equipes auto organi"adas, entre outras. +onhecido como um mtodo gil de menor ,nfase em modelagem. *$emplos de pr ticas do mtodo *$treme -rogramming ./-0 incluem programao em pares e desenvolvimento guiados por teste. Manifesto 1gil! Indivduos e iteraes vem antes de processo e ferramentas. Software funcionando vem antes de documentao abrangente. Colaborao do cliente vem antes de negociao de contrato. Resposta modificao vem antes de um plano em andamento. 2 modelo de engenharia de software que ser adotado nesse projeto *$treme -rograma # /- .-rogramao *$trema0, que a a)ordagem mais amplamente utili"ada para desenvolver software gil. 2 /- tem cinco valores )ases para ideali"ao do processo /- # +omunicao, simplicidade, feed)ac3 .realimentao ou retorno0, coragem e respeito.
Comunicao: colaborao estreita embora informal !verbal" entre cliente e desenvolvedor feedbac# !realimentao" continuo e evitar documentao volumosa como meio de comunicao.

Simplicidade: pro$etar apenas para a necessidade imediatas em ve% de considerarem as necessidades futuras. & ob$etivo ' fa%er um pro$eto simples (ue possa facilitar na )ora de produ%ir o c*digo. Se o pro$eto tiver de ser mel)orado ele poder+ ser refabricado, mais tarde.
, - refabricao permite aperfeioar a estrutura interna de um pro$eto !ou c*digo. fonte" sem alterar sua funcionalidade ou comportamento e/ternos. &u se$a mel)ora a efici0ncia a legibilidade ou o desempen)o de um pro$eto ou o c*digo (ue implementa um pro$eto.

2eedbac#: tem tr0s fontes o software implementado o cliente e desenvolvedor. - 34 fa% uso do teste de unidades como t+ticas de testes primaria e atrav's desse testes ' (ue ' feito o feedbac# para o desenvolvedor. medida (ue cada classe ' criada ' desenvolvido um teste de unidades para e/ercitar de acordo com a funcionalidade especificada. - medida (ue um incremento ' entregue ao cliente os casos de uso implementados pelo incremento so usados como base para teste de aceitao. 5 conforme novas necessidades surgem como parte do processo interativo o desenvolvedor d+ ao cliente um r+pido feedbac# referente ao impacto nos custos e no cronograma. Coragem: 6o sentido de (uer.se adotar somente certas pr+ticas da 34. & (ue denota disciplina visto )aver certas ve%es presso para elaborao do pro$eto para pensando em futuros re(uisitos. &u se$a o desenvolvedor deve ter disciplina !coragem" para pro$etar para )o$e em ve% de aman) pensando em poupar tempo e esforo no longo pra%o. 7isto (ue a as necessidades futuras podem mudar drasticamente e/igindo conse(uentemente substancial retrabal)o em relao ao pro$eto e ao c*digo implementado. Respeito: 6o sentido de respeitar cada um dos membros entre outros envolvidos e indiretamente para o pr*prio software.

A *$treme -rogramming .programao e$trema0 emprega uma a)ordagem orientada a o)jetos como seu paradigma de desenvolvimento preferido e envolve um conjunto de regras e pr ticas constantes no conte$to de quatro atividades metodol4gicas! planejamento, projeto, codificao e teste. As fases do ciclo de vida so! -lanejamento! 'nicia-se com o ouvir # uma atividade de levantamento de requisitos que capacita o desenvolvedor a /- a entender o am)iente de neg4cios do software e possi)ilita que se consiga ter uma percepo ampla so)re os resultados solicitados, fatores principais e funcionalidade. -rojeto! No projeto segue-se rigorosamente o princ%pio do 5'6 .3eep it simple, ou seja, preserve a simplicidade0. 7 importante ter um projeto simples do que uma representao mais comple$a. 8sar cart(es +9+ .classe-responsa)ilidade-cola)orador0 como um mecanismo efica" para pensar so)re o software em um conte$to orientado a o)jetos. * o uso da refa)ricao ou seja ao se refa)ricar, se est aperfeioando o projeto de codificao depois de este ter sido feito. +odificao! 7 desenvolvido uma srie de testes de unidades : que e$ercitaro uma das hist4rias a ser inclu%das na verso corrente. ;epois de criado o desenvolvedor poder focarse no que deve ser implementado para ser aprovado no teste.

8 & teste de unidades concentra.se em um componente de software individual e/ercitando a interface a estrutura de dados e a funcionalidade do componente em uma tentativa de (ue se revelem erros pertinentes ao componente.

<este!

2s testes de unidade criados devem ser implementados usando-se uma metodologia que os capacite a ser automati"ados .assim, podero ser e$ecutados f cil e repetidamente0. 'sso encoraja uma estratgia de testes de regresso, toda ve" em que o c4digo for modificado .o que frequente, dada a filosofia de refa)ricao /-0.

2 ponto chave de se escolher esse processo a reduo do custo das altera(es visto que o software entregue .li)erado0 de forma incremental e as altera(es podem ser mais )em controlada dentro de incrementais.