PDS Aula 1.4 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br
2 Introdução Há alguns anos, o desenvolvimento de softwares era muito obsoleto; Existiam diversos problemas relacionados ao desenvolvimento:
3 Introdução Há alguns anos, o desenvolvimento de softwares era muito obsoleto; Existiam diversos problemas relacionados ao desenvolvimento:
4 Introdução Logo, surgiu a necessidade de se criar roteiros de desenvolvimento; Esses roteiros são chamados processos de software; Esses processos são baseados em ideias gerais, que podem ser adaptadas; Essas ideias, por sua vez, são chamadas de modelos de processos de software; Processos de software possuem atividades de análise e de projeto.
5 Introdução Análise e Projeto de software: Análise: o que Investigação do problema e dos requisitos; Projeto: como Descrição de uma solução lógica; Faça a coisa certa [análise] e faça certo a coisa [projeto] (Craig Larman)
6 Introdução Definição de software: É um conjunto de vários artefatos, e não apenas o código fonte (Sommerville) Artefato é um termo bastante utilizado na ES Pode ser visto como o resultado de uma atividade de desenvolvimento; Definição de Engenharia de Software: É uma abordagem sistemática e disciplinada para o desenvolvimento (Pressman)
7 Engenharia de Software A engenharia de software é um embrião da engenharia convencional Define métodos, procedimentos e ferramentas para de construir softwares; Métodos Definem como fazer; Procedimentos Unem ferramentas e métodos; É uma sequência de ações dentro dos métodos; Ferramentas O que é utilizado para realizar os procedimentos e métodos;
8 Engenharia de Software Métodos, procedimentos e ferramentas para produzir softwares fazem parte, portanto, da ES; Um processo de software é o termo utilizado para definir diferentes procedimentos de desenvolvimento de software; Processos de software visam assegurar o desenvolvimento: Com prazos e necessidades de recursos definidos; Com elevada produtividade (de forma econômica); Com qualidade assegurada.
Processo de Software Um conjunto coerente de atividades para produção de software 9
Processo de Software Processos permitem: Organizar; Instrumentar; Planejar; Acompanhar projetos; Treinar equipes. 10
Processo de Software Não existe um processo ideal Várias organizações desenvolveram abordagens diferentes para o desenvolvimento de software; Processos evoluem de acordo com capacidades das pessoas e características da organização; Organizações aprimoram processos conhecidos; O uso de um processo inadequado pode reduzir a qualidade/utilidade do produto e aumentar custos. 11
Processo de Software Sem o uso de processos: (1) Erros são cometidos repetidamente; (2) Dificuldade de prever cronogramas e orçamentos; (3) Alto índice de defeitos, retrabalho e desperdício; (4) Dificuldade de implementar boas práticas e lições aprendidas; (5) Dificuldade de realizar ações para prevenção de defeitos. 12
Processo de Software Efeito do processo sobre o custo: Fonte: http://www.les.inf.puc-rio.br/wiki/images/c/c7/prds2008-1_modulo2.pdf 13
Processo de Software Atividades comuns a todos os processos: Especificação do software Define-se funcionalidades e restrições do SW; Projeto e implementação do software Produção do SW; Validação do software SW é validado de acordo com o que cliente desejava; Evolução do software SW deve evoluir e atender as necessidades do cliente. 14
Processo de Software Conceitos Básicos de Processos: Artefato É um resultado de uma atividade Exemplos: Documento revisto e aceito; Módulo implementado, testado e aceito; Tela implementada, testada e aceita; Quando entregue ao cliente, o artefato é um produto. 15
Processo de Software Conceitos Básicos de Processos: Insumos Elemento necessário para a realização de uma tarefa ou atividade; Pode ser um elemento de saída de outras atividades ou tarefas; São os itens utilizados para realização de uma tarefa; Exemplo: Documento de requisitos é o insumo para criação do documento de UX (User experience); Para estimar o esforço do projeto, são necessários o escopo e o plano do mesmo; 16
Processo de Software Conceitos Básicos de Processos: Tarefa É uma ação desempenhada por alguma pessoa; Está relacionada ao desenvolvimento ou monitoramento do projeto; Consome recursos: Esforço de uma pessoa; Equipamento; Financeiro. 17
Processo de Software Conceitos Básicos de Processos: Atividade Conjunto de tarefas que levam a um ou mais artefatos de qualidade controlada Representa uma evidência de progresso no desenvolvimento; Atividades são como mini-projetos : Possuem início e fim definidos; Consomem um volume finito de recursos; Produzem artefatos definidos; Possuem critérios de conclusão estabelecidos. 18
Processo de Software Conceitos Básicos de Processos: Ferramentas e equipamentos: Auxiliam a execução das atividades e tarefas dos processos; Podem automatizar partes da execução das atividades e tarefas; Agilizam a execução dos processos; Papel Descreve como as pessoas se comportam no processo e quais são as responsabilidades que elas têm; Requer habilidades específicas necessárias; Papeis não são pessoas: Pessoas executam papéis. 19
Processo de Software Conceitos Básicos de Processos: Ferramentas e equipamentos: Auxiliam a execução das atividades e tarefas dos processos; Podem automatizar partes da execuco das atividades e tarefas; Agilizam a execução dos processos; Papel Descreve como as pessoas se comportam no processo e quais são as responsabilidades que elas têm; Requer habilidades específicas necessárias; Papeis não são pessoas: Pessoas executam papéis. 20
Modelo de Processo Um modelo de processo é também conhecido como Paradigma de Engenharia de Software ou Ciclo de Vida; É uma descrição simplificada, abstrata de um processo de software; Representa um processo sob determinada perspectiva, visão Fornece apenas informações parciais sobre o processo; Inclui atividades, produtos e papeis; Um modelo de processo define conjuntos de fases que devem ser executadas para o desenvolvimento de um software Determina a ordem e a interação entre as fases e atividades. 21
Modelo de Processo Diferentes modelos representam diferentes categorias de processos de software; Um processo de software pode implementar ideias de diferentes modelos; São frameworks de processos Podem ser adaptados ou ampliados para criar processos mais específicos. 22
Tipos de Modelos Modelo em Cascata; Prototipação; RAD; Modelo Incremental; Desenvolvimento Evolucionário; Desenvolvimento Espiral; Baseado em Componentes; 23
Tipos de Modelos Modelo em Cascata; Prototipação; RAD; Modelo Incremental; Desenvolvimento Evolucionário; Desenvolvimento Espiral; Baseado em Componentes; 24
Modelo em Cascata Também é conhecido como Modelo Sequencial Linear ou Ciclo de Vida Clássico ; Modelo mais antigo e o mais amplamente usado da Engenharia de Software Modelado baseado em técnicas da engenharia convencional; Requer uma abordagem sistemática, sequencial ao desenvolvimento do software. 25
Modelo em Cascata Principal problema: o produto da engenharia de software é muito diferente do produto da engenharia convencional. 26
Modelo em Cascata O modelo em cascata aborda a produção de software em cinco etapas: Definição de Requisitos; Projeto de Sistema e Software; Implementação e Teste de Unidade; Integração e Teste de Sistema; Operação e Manutenção. 27
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Cada estágio do modelo demonstra as atividades fundamentais de desenvolvimento Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 28
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Análise de alto nível: elicitação de requisitos do sistema. Tenta-se compreender o domínio da informação. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 29
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Serviços, restrições e objetivos do sistema são definidos por meio de consulta ao usuário. Baseado nesses conceitos, o sistema é especificado detalhadamente. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 30
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Organiza os requisitos: de hardware ou de software. Define uma arquitetura geral respeitando determinado nível de abstração. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 31
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software O projeto de software é como um conjunto de programas, ou unidades. O teste de unidade é realizado. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 32
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software As unidades individuais do programa são integradas e testadas como um programa completo Após os testes o sistema é liberado ao cliente Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 33
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Fase mais longa do ciclo de vida; O sistema é colocado em operação; A manutenção envolve a correção de erros detectados nos estágios anteriores e o aprimoramento e ampliação dos serviços Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 34
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software A fase seguinte não começa enquanto a fase anterior não tenha finalizado. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 35
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Entretanto, na PRÁTICA, esses estágios se sobrepõem e trocam informações entre si. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 36
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Essas iterações envolvem muito retrabalho. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 37
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Após um pequeno número de iterações, é normal suspender partes do desenvolvimento, como a especificação, e seguir com estágios a frente. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 38
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Assim, os problemas encontrados anteriormente são reprogramados ou ignorados Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 39
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Projeto de sistema e software Isso pode gerar problemas. Por exemplo, o congelamento prematuro de requisitos pode significar que o sistema não fará o que o usuário deseja. Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 40
Modelo em Cascata O desenvolvimento é feito em etapas: Definição de Requisitos Só quando o software é colocado em uso é que se descobre a maioria dos erros e omissões. Projeto de sistema e software O software deve evoluir para que permaneca útil Implementação e teste de unidade Integração e teste de sistema Operação e manutenção 41
Modelo em Cascata Vantagens Vasta documentação produzida em cada fase; Aderência a outros modelos de processo; Desvantagens Dificuldade em determinar todos os requisitos no início; Modelo muito rígido: divisão inflexível das fases; Demora para o cliente ver alguma funcionalidade; Parte da equipe fica ociosa durante as etapas que não estão sendo desenvolvidas; Portanto, esse modelo é mais apropriado quando os requisitos são bem compreendidos. 42