A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução aos Processos de Desenvolvimento de Software Prof. Pedro A. Oliveira PUC Minas.

Apresentações semelhantes


Apresentação em tema: "Introdução aos Processos de Desenvolvimento de Software Prof. Pedro A. Oliveira PUC Minas."— Transcrição da apresentação:

1 Introdução aos Processos de Desenvolvimento de Software Prof. Pedro A. Oliveira PUC Minas

2 Processos2 Sistema HardwareRedes de comunicação Bases de dadosSoftware Sistema X Software Características de Software Fonte: adaptado de Paula Filha, 2002 O que falta nesta figura?

3 Processos3 Características de Software Invisível: Intangível, incolor, inodoro e insípido. Não é manufaturado, como o hardware, sendo desenvolvido por um PROCESSO de engenharia. Fabricado um a um: PROJETO. Não se desgasta; se deteriora. Não há peças sobressalentes. Construído, em geral, sob encomenda, apesar das tentativas de componentizar. Complexidade intrínseca: multidisciplinaridade.

4 Processos4 Como Estimar Tamanho, Esforço Tempo e Qualidade? Neste caso, como seria avaliada a qualidade?

5 Processos5 E neste caso, como seria avaliada a qualidade? Bugs? Conformidade com os requisitos? Desempenho? Indicadores de qualidade? Como Estimar Tamanho, Esforço Tempo e Qualidade?

6 Processos6 Especificidades do Desenvolvimento de Software Grande número de stakeholders (envolvidos). Interesses e necessidades diversificados. Comunicação truncada e difícil. Amplas opções de soluções tecnológicas. Mudança é o único componente imutável. Aplicações corporativas podem ser de larga escala. Software é diferente... MAS POR QUE?

7 Processos7 Todos reconhecem a importância do trabalho com qualidade, motivação e tecnologia de ponta. Entretanto, mesmo as melhores pessoas não são capazes de fazer o melhor quando o processo não é entendido ou executado da melhor forma. Trabalho Organizacional e TI Se tivesse seis horas para derrubar uma árvore, passaria as primeiras quatro horas afiando o machado – Abraham Lincoln

8 Processos8 Processo de Desenvolvimento de Software Processo de Desenvolvimento de Software, de agora em diante, será referenciado neste curso simplesmente como PROCESSO. Definido por Sommerville (2006) como: "um conjunto de atividades e resultados associados, que produzem um produto de software".

9 Processos9 O Que é Processo? Conjunto de atividades parcialmente ordenadas, planejadas, executadas e controladas para transformar requisitos de cliente em sistema. (adaptado de Scott Ambler) Antigamente processo era chamado de metodologia. Qualquer semelhança NÃO É mera coincidência!

10 Processos10 Processo Processo é a liga ou base para a interligação entre diversos componentes: entradas, saídas, atividades, ferramentas, técnicas, paradigmas, conceitos, pessoas, vontade... O Que é Processo?

11 Processos11 O Que Processo Não É? Detalhamento completo de TUDO que deve ser feito a TODO instante durante TODO o trabalho. Algoritmo de fazer doido!. Panacéia para todos problemas (bala de prata ou Personal Process Tabajara- PPT). CENSURADO!

12 Processos12 Alguns Mitos sobre Processo Processo só serve para burocratizar o trabalho. Esse negócio é muito complicado. Prefiro trabalhar do meu jeito. Nasci em Não preciso de processo. Esse trem de processo tira a minha criatividade. Pra ter um processo 'bão' só precisa ter a ferramenta XPTO. Processo se resume a preencher um tanto de documentos sem sentido.

13 Processos13 Desmitificando Processo Processo organiza e padroniza. Arruma a casa. Processo não é complicado, desde que seja adequado. A ferramenta certa, na hora e no lugar certo. Ninguém é melhor do que ninguém em tudo. Processo se baseia em boas práticas. Processo não deve inibir a criatividade da equipe. Ferramentas não implementam processo. Documentos não são o processo.

14 © 2002 Wilson de Pádua Paula Filho Definição de processos Processo definido tem documentação que detalha: o que é feito (produto); quando (passos); por quem (agentes); as coisas que usa (insumos); as coisas que produz (resultados).

15 © 2002 Wilson de Pádua Paula Filho Definição de processos Passos de um processo.

16 Processos16 Ciclo de Vida Ciclo de vida define as fases que conectam o início de um projeto a seu fim. A organização em fases é um mecanismo que permite um maior controle gerencial. A transição de uma fase para outra normalmente é marcada por alguma entrega e/ou revisão. Assim como um projeto, um processo demanda um ciclo de vida para organizar suas atividades.

17 Processos17 Ciclo de Vida

18 Processos18 Ciclo de Vida Exemplo de ciclo de vida de PROCESSO:

19 Processos19 Ciclo de Vida Atividades típicas do processo de software, segundo uma combinação das classificações de Schwartz, Pressman e Sommerville: Especificação: Engenharia de Sistema: proposta de uma solução geral para o problema, envolvendo questões extra-software. Análise de Requisitos: levantamento das necessidades do cliente para o software a ser implementado. Tem como objetivo produzir uma especificação de requisitos. Especificação de Sistema: descrição funcional do sistema. Pode incluir um plano de testes para verificar sua adequação às necessidades. Projeto: Projeto Arquitetural (arquitetura): é desenvolvido um modelo conceitual para o sistema, composto de partes (módulos) mais ou menos independentes. Projeto de Interface: cada módulo tem sua interface de comunicação estudada e definida. Projeto Detalhado: os módulos são definidos internamente, podendo ser traduzidos para pseudo-código. Fonte: adaptado de

20 Processos20 Ciclo de Vida Implementação Codificação: a implementação em si do sistema em uma linguagem de computador. Validação Teste de Unidade e Módulo: a realização de testes para verificar a presença de erros e comportamento adequado a nível das funções e módulos básicos do sistema. Integração: a reunião dos diferentes módulos em um produto de software homogêneo, e a verificação da interação entre estes quando operando em conjunto. Manutenção e Evolução Nesta fase, o software em geral entra em um ciclo iterativo que abrange todas as fases anteriores. Fonte: adaptado de

21 © 2002 Wilson de Pádua Paula Filho Especificação (???) Produto Ciclos de vida Codifica-remenda:

22 © 2002 Wilson de Pádua Paula Filho Ciclos de vida Codifica-remenda: provavelmente o mais usado; não exige sofisticação técnica ou gerencial; alto risco; impossível de gerir; não permite assumir compromissos confiáveis.

23 © 2002 Wilson de Pádua Paula Filho Processos de software A cascata:

24 © 2002 Wilson de Pádua Paula Filho Processos de software A cascata: subprocessos executados em estrita seqüência: pontos de controle bem definidos facilitam gestão; teoricamente, confiável e utilizável; em projetos de qualquer escala; interpretado literalmente: é rígido e burocrático;

25 © 2002 Wilson de Pádua Paula Filho Processos de software A cascata: requisitos, análise e desenho: têm de ser muito bem dominados: não são permitidos erros; de baixa visibilidade para o cliente: só recebe o resultado final do projeto.

26 © 2002 Wilson de Pádua Paula Filho Processos de software A cascata com realimentação:

27 © 2002 Wilson de Pádua Paula Filho Processos de software A espiral: AtivaçãoAnálise DesenvolvimentoOperação

28 © 2002 Wilson de Pádua Paula Filho Processos de software A prototipagem evolutiva:

29 © 2002 Wilson de Pádua Paula Filho Processos de software A prototipagem evolutiva: espiral é usada para versões provisórias; chamadas de protótipos; cobrem cada vez mais requisitos; até que se atinja o produto desejado; permite que requisitos sejam definidos progressivamente; alta flexibilidade e visibilidade para os clientes;

30 © 2002 Wilson de Pádua Paula Filho Processos de software A prototipagem evolutiva: requer gestão sofisticada; desenho deve ser muito robusto; requer equipe muito disciplinada e experiente; aplicada em processos ágeis.

31 © 2002 Wilson de Pádua Paula Filho Processos de software A entrega evolutiva:

32 © 2002 Wilson de Pádua Paula Filho Processos de software A entrega evolutiva: em pontos bem definidos: usuários podem avaliar partes do produto: fornecendo realimentação quanto às decisões tomadas; facilita acompanhamento dos projetos: por parte de gerentes e de clientes;

33 © 2002 Wilson de Pádua Paula Filho Processos de software A entrega evolutiva: a arquitetura é chave: deve ser robusta; deve permanecer íntegra; ao longo das liberações.

34 RUPProcesso de software PBH/Prodabel34 Organização estrutural do RUP

35 ProcessosProcesso de software da PBH/Prodabel35

36 Processos36 Referências bibliográficas PRESSMAN, R. S., Engenharia de Software, São Paulo, Makron Books, 6a Ed., SEI, Capability Maturity Model® Integration (CMMI-DEV), Version 1.2, IEEE, Software Engineering Body of Knowledge, SWEBOK, 2004, PAULA FILHO, Wilson de Pádua. Engenharia de software: fundamentos, métodos e padrões. 2. ed. Rio de Janeiro: LTC - Livros Técnicos e Científicos, p. ISBN


Carregar ppt "Introdução aos Processos de Desenvolvimento de Software Prof. Pedro A. Oliveira PUC Minas."

Apresentações semelhantes


Anúncios Google