Aula2 processos sw

308 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
308
No SlideShare
0
A partir de incorporações
0
Número de incorporações
40
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula2 processos sw

  1. 1. Engenharia de Software Aula 2 – Processos de Software Profa. Dra. Judith Pavón Universidade Salvador – UNIFACS 2012
  2. 2. Conteúdo Objetivo da aula Leitura recomendada Processos Modelos de Processos de Desenvolvimento de Software Processo de Software (genêrico) Modelos do Ciclo de Vida de Software Linguagem Método Ferramenta CASE Metodologia Pontos Principais 2
  3. 3. Objetivo da aulaO objetivo desta aula é apresentar osconceitos de processo de software e ascaracterísticas dos processos tradicionaisde desenvolvimento de software. 3
  4. 4. Processos• Conjunto de atividades pré-definidas que levam a umresultado de boa qualidade, nas condições desejadas doprojeto (tempo e custo).• Os processos devem ser adequados aos diferentes tiposde sistema a construir.Os modelos de processos de desenvolvimento de softwareforam originalmente propostos para colocar ordem no caosdo desenvolvimento de software.Maturidade do processo- Medida da eficiência global da empresa desoftware em relação ao processo dedesenvolvimento (Ex. CMMI) 4
  5. 5. Processo Conjunto de atividades  bem definidas  com responsáveis  com artefatos de entrada e saída  com dependências entre as mesmas e ordem de execução  com modelo de ciclo de vida
  6. 6. Modelos de Processo deDesenvolvimento de Software• Os modelos de processos de desenvolvimento de softwaretêm trazido uma certa dose de estrutura útil para o trabalhode engenharia de software e têm fornecido um roteirorazoavelmente efetivo para as equipes de software.• Quem decide o modelo de processo de desenvolvimento aser utilizado?Os líderes de equipe ou gerentes adaptam um modelo deprocesso a suas necessidades e depois o seguem. 6
  7. 7. Modelos de Processo de Desenvolvimento de Software• Por que é importante?Porque fornece estabilidade, controle e organização a uma atividade que pode,se deixada sem controle, tornar-se caótica.• Quais são os passos?O processo dirige uma equipe de software por meio de um arcabouço deatividades guarda-chuva que são organizadas em um fluxo de processo quepode ser linear, incremental ou evolutivo.• Qual é o produto do trabalho?Do ponto de vista de um engenheiro de software, os produtos do trabalho sãotodos os artefatos que conformam um software.• Como tenho certeza que fiz corretamente?Existem diversos mecanismos de avaliação de processo de software quepermitem às organizações determinar a “maturidade” do seu processo. 7
  8. 8. Processo de Software(genêrico) um framework para as tarefas necessárias para construir software de qualidade Três fases genéricas:  Definição  Desenvolvimento  Manutenção
  9. 9.  Fase de Definição  Foco: o que  Atividades:  Análise de viabilidade  planejamento do projeto  análise e especificação de requisitos
  10. 10.  Fase de Desenvolvimento  Foco: como  Atividades:  projeto do software  geração de código  teste do software
  11. 11.  Fase de Manutenção  Foco: mudanças no produto associadas a:  correção de erros  adaptação por mudanças no ambiente  evolução por mudanças nos requisitos do usuário
  12. 12. Atividades de Apoio  acompanhamento e controle do projeto  revisões técnicas  garantia da qualidade de software  gerência de configuração  preparação e produção de documentos  gerência de reuso  medições  gerência de risco
  13. 13. Atividade 3 (entregar na próxima aula) Trabalho em duplas 1. Identificar e listar os principais processos de desenvolvimento de software 2. Fazer um breve resumo das principais características de cada processo listado no item anterior, comentar as fases desse processo e quando é recomendado usar. 3. Escolha um sistema a ser desenvolvido. 4. Defina o processo de desenvolvimento a ser seguido. 13
  14. 14. Modelos do Ciclo de Vida deSoftware Cascata Modelos Iterativos  Espiral  Incremental (ex: do RUP) ...
  15. 15. Modelo Cascata
  16. 16. Modelo Cascata
  17. 17. Modelo Cascata A metodologia de desenvolvimento em cascata foi desenvolvida pela marinha norte-americana nos anos 60 para permitir o desenvolvimento de software militares. Propõe uma sequência de fases rígidas. Ao final de cada fase, a equipe de projeto finaliza com uma revisão. Somente pode ir para a próxima fase, se finalizar a anterior para o sistema como um todo.
  18. 18. Modelo Cascata – Quandousar  A Metodologia em Cascata funciona bem quando os requisitos do usuário são rígidos e podem ser conhecidos com antecedência.  A metodologia de Desenvolvimento em Cascata pode funcionar bem em ambientes rígidos e fortemente controlados.  No cenário comercial, somente recomenda-se usar este modelo para sistemas pequenos e simples, pois se for um sistema complexo vai demorar muito tempo até mostrar o funcionamento do sistema.
  19. 19. Prototipação O modelo de Prototipagem é uma abordagem que visualiza o desenvolvimento de concepções do sistema conforme o andamento do projeto. Esta metodologia baseia-se na utilização de prototipagem visual ou modelos do sistema final. Estes modelos podem ser simples desenhos, imagens gráficas ou simulações de aplicações. Esta metodologia é até certo ponto bastante flexível a respeito de mudanças de requisitos; contudo, este processo precisa de muito controle.
  20. 20. Prototipação
  21. 21. Modelos Iterativos Requisitos de sistema SEMPRE evoluem durante o decorrer de um projeto. Assim a iteração do processo sempre faz parte do desenvolvimento. Iterações podem ser aplicadas a quaisquer dos processos de software. Duas abordagens (relacionadas)  Desenvolvimento espiral  Desenvolvimento incremental
  22. 22. Desenvolvimento Espiral Guia o processo de desenvolvimento com base em análise de riscos e planejamento que é realizado durante toda a evolução do desenvolvimento. Exemplos de riscos: pessoas que abandonam a equipe de desenvolvimento, ferramentas que não podem ser utilizadas, falha em equipamentos usados no desenvolvimento ou que serão utilizados no produto final, etc. A identificação e o gerenciamento de riscos é hoje uma atividade importantíssima no desenvolvimento de software devido à imaturidade da área e à falta de conhecimento, técnicas e ferramentas adequadas.
  23. 23. Desenvolvimento Espiral Guia o processo de desenvolvimento com base em análise de riscos e planejamento que é realizado durante toda a evolução do desenvolvimento. Exemplos de riscos: pessoas que abandonam a equipe de desenvolvimento, ferramentas que não podem ser utilizadas, falha em equipamentos usados no desenvolvimento ou que serão utilizados no produto final, etc. A identificação e o gerenciamento de riscos é hoje uma atividade importantíssima no desenvolvimento de software devido à imaturidade da área e à falta de conhecimento, técnicas e ferramentas adequadas.
  24. 24. Desenvolvimento Espiral
  25. 25. Desenvolvimento Espiral
  26. 26. Desenvolvimento Incremental  Em vez de entregar o sistema como um todo, o desenvolvimento e a entrega são divididos em incrementos, com cada incremento entregando parte da funcionalidade requerida  Requisitos dos usuários são priorizados e os requisitos de mais alta prioridade são incluídos nas iterações iniciais  Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são "congelados". Embora os requisitos possam continuar a evoluir para incrementos posteriores.
  27. 27. RUP (Rational Unified Process) A metodologia RUP (Rational Unified Process) é um processo que fornece uma metodologia disciplinada de desenvolvimento utilizando um conjunto de ferramentas, modelos e entregáveis. Nesse modelo, considera-se o desenvolvimento do software em ciclos iterativos onde uma pequena porção dos requisitos passa por todas as etapas de desenvolvimento como em um modelo cascata. Ao final de cada ciclo de iteração têm-se uma nova versão do software, a qual será incrementada a cada novo ciclo que ocorrer.
  28. 28. RUP (Rational Unified Process)O RUP é estruturado em duas dimensões: Eixo X -Tempo: divisão do ciclo de vida em fases e iterações, mostra os aspectos do ciclo de vida do processo à medida que se desenvolve. Eixo Y - Componentes de processo: produção de um conjunto específico de artefatos (produtos) com atividades bem definidas.
  29. 29. RUP (Rational Unified Process)
  30. 30. Linguagem Notação com sintaxe e semântica bem definidas  com representação gráfica ou textual Usada para descrever os artefatos gerados durante o desenvolvimento de software Exemplos: UML, BPMN
  31. 31. Método Descrição sistemática de como deve-se realizar uma determinada atividade ou tarefa A descrição é normalmente feita através de padrões e guias Exemplos: Método para descoberta das classes de análise no RUP.
  32. 32. Ferramenta CASE Provê suporte computacional a um determinado método ou linguagem Ambiente de desenvolvimento: conjunto de ferramentas integradas (CASE) Exemplos: Rational Rose, JBuilder
  33. 33. Metodologia Conjunto de métodos + processo
  34. 34. Pontos principais Engenharia de software é uma disciplina de engenharia que está envolvida com todos os aspectos da produção de software Produtos de software consistem de programas desenvolvidos e documentação associada. Alguns atributos de qualidade do produto são manutenibilidade, eficiência e usabilidade O processo de software consiste nas atividades que são envolvidas no desenvolvimento de produtos de software
  35. 35. Pontos principais  Métodos são formas organizadas de produzir software. Eles incluem sugestões para o processo a ser seguido, as notações a serem usadas, regras que governam as descrições do sistema que são produzidas e diretrizes de projeto  Ferramentas CASE são sistemas de software que são projetados para suportar as atividades rotineiras no processo de software, como edição de diagramas de projeto e verificação de consistência dos diagramas
  36. 36. Dúvidas 36

×