22
Engenharia de Software

Processos de Software - 101

Embed Size (px)

Citation preview

Page 1: Processos  de Software - 101

Engenharia de Software

Page 2: Processos  de Software - 101

OBJETIVOS (DA AULA)

• Revisão de Engenharia de Software• Revisão de Qualidade de Software• Processos de Desenvolvimento de Software• Modelos de Processos

• Modelos Tradicionais• Modelos Ágeis

• Manifesto Ágil e o Scrum

Page 3: Processos  de Software - 101

Princípios da Engenharia de Software

Engenharia de SoftwareDisciplina da engenharia que se ocupa de todos os

aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação (Sommerville, 2003)

Estudo e aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software.(ISSO/IEC/IEEE – SWEBOK 3.0)

Page 4: Processos  de Software - 101

Princípios da Engenharia de Software

E.S. possui 3 elementos fundamentais: MetodologiasFerramentasProcessos

Page 5: Processos  de Software - 101

Princípios da Engenharia de Software

Fonte: Wikipedia

Page 6: Processos  de Software - 101

Processos de Desenvolvimento de Software - PDSUm processo de desenvolvimento de software (PDS) é um

conjunto de atividades, disciplinas e papéis que prescreve práticas para se conceber, gerenciar, desenvolver, testar e implantar um software

Conjunto ordenado de atividades e resultados associados que tem como objetivo o desenvolvimento de um produto de software (Sommerville 2003)

Visam abranger atividades de:Especificação de SoftwareDesenvolvimento de SoftwareValidação de SoftwareEvolução de Software

Page 7: Processos  de Software - 101

Modelo Waterfall - Cascata

Page 8: Processos  de Software - 101

Modelo Waterfall - CascataAs atividades são executadas uma após as outrasExige alto domínio da aplicação a ser desenvolvidaErros de qualquer origem só são encontrados nas

fases finaisSistema é entregue no final do Projeto... E se estiver

tudo errado?

Page 9: Processos  de Software - 101

Modelo Iterativo incremental

Page 10: Processos  de Software - 101

Modelo Evolucionário - PrototipaçãoDesenvolvimento Exploratório

Desenvolver sistema a partir de um protótipoExplorar requisitos desconhecidosCliente próximo

Prototipação descartávelProtótipos a fim de compreender melhor o sistemaObjetivo de fazer experimentos

Não há um processo regularSistemas crescem desordenadamenteFerramentas e técnicas especiais

Page 11: Processos  de Software - 101

Outros ModelosEspiral

PDCACada camada é uma iteração

Orientado a ReusoBibliotecas,Componentes

FormalDefinições formais + Transformações

Page 12: Processos  de Software - 101

Modelos Ágeis

2001

Page 13: Processos  de Software - 101

Signatários do Manifesto

Page 14: Processos  de Software - 101

Princípios Ágeis Nossa maior prioridade é satisfazer o cliente, através da entrega

adiantada e contínua de software de valor. Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento.

Processos ágeis se adequam a mudanças, para que o cliente possa tirar vantagens competitivas.

Entregar software funcionando com freqüencia, na escala de semanas até meses, com preferência aos períodos mais curtos.

Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diáriamente, durante todo o curso do projeto.

Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.

Page 15: Processos  de Software - 101

Princípios Ágeis O Método mais eficiente e eficaz de transmitir informações para, e por

dentro de um time de desenvolvimento, é através de uma conversa cara a cara.

Software funcional é a medida primária de progresso. Processos ágeis promovem um ambiente sustentável. Os

patrocinadores, desenvolvedores e usuários, devem ser capazes de manter indefinidamente, passos constantes.

Contínua atenção à excelência técnica e bom design, aumenta a agilidade.

Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.

As melhores arquiteturas, requisitos e designs emergem de times auto-organizáveis.

Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo

Page 16: Processos  de Software - 101

Scrum

http://www.desenvolvimentoagil.com.br/scrum

Page 17: Processos  de Software - 101

ScrumÉ...

Framework de Gerência de Projetos Ágil Princípios e crenças Ágeis (Jim Highsmith - Signatário)

Processo de Desenvolvimento de Software atividades, disciplinas e papéis que prescreve práticas para se

conceber, gerenciar, desenvolver, testar e implantar um software (sem ser prescritivo)

Não é...A solução para seus problemasReceita do sucessoBala de Prata

Page 18: Processos  de Software - 101

Scrum - ProdutoTemasÉpicosFeatures ou Histórias de Usuários (User Stories)

Eu como ... Desejo ser capaz de ... A fim de que ...Backlog

Lista Features ou US

ProdutoSprint

Page 19: Processos  de Software - 101

Scrum - PapéisProduct Owner: Conhece o negócio, define históriasScrum Master: Lidera o time, protege de influências e

impedimentosTime de Desenvolvimento: Estima, Projeta, Desenvolve –

Auto gerenciável/Multidisciplinar

Page 20: Processos  de Software - 101

Scrum - Papéis

A Gerência de Projeto é muito complexa pra ser feita por uma pessoa

Cinco motivos para você não adotar metodologias ágeis - Rafael Prikladnicki

Page 21: Processos  de Software - 101

Cerimônias e Time boxesSprint – Iteração de tempo fixo – 2 a 4 semanasSprint Planning - Planejamento - 1h/semanaDaily Scrum – Acompanhamento - 15 minSprint Review – Entrega da Sprint – 1h/semanaSprint Retrospective – Realinhamento – 1h/semana

Page 22: Processos  de Software - 101

Saiba mais...http://www.agilemanifesto.org/iso/ptbr/http://www.infoq.com/br/agile/http://pt.slideshare.net/flaviosteffens/cinco-motivos-

para-voc-no-adotar-metodologias-geis-rafael-prikladnicki-flvio-steffens-de-castro

http://www.desenvolvimentoagil.com.br/scrum/