Prévia do material em texto
Modelos de Processo de software Um processo de software, também conhecido como processo de desenvolvimento de software, é um conjunto de atividades e de tarefas usadas para desenvolver produtos de software. Abrange todas as etapas envolvidas no desenvolvimento de software, desde a coleta e análise dos requisitos iniciais até a implantação e manutenção. O processo de software pode ser dividido em várias fases: Planejamento identificar os requisitos definir o escopo do projeto criar um plano do projeto cronogramas, orçamento e alocação de recursos Projeto elaborar a arquitetura do software especificações e projetos detalhados Codificação programação Teste deve atender requisitos e especificações testes de unidade, integração, sistema e aceitação. Manutenção software mantido e atualizado conforme o necessário. garantir que continue atendendo aos requisitos e às especificações. Modelos de Processo de software 1 A natureza do software Um processo de software é definido como uma estrutura para ações, deveres e atividades necessárias para criar software de alta qualidade. Um framework de processo genérico para engenharia de software define cinco atividades de estrutura: comunicação pode envolver várias etapas (em projetos mais complexos): concepção, elicitação, elaboração, negociação, especificação e validação. planejamento modelagem construção implantação. Além disso, um conjunto de atividades guarda-chuva são aplicados ao longo do processo: rastreamento e controle de projetos gerenciamento de riscos garantia de qualidade gerenciamento de configuração revisões técnicas e outros Podemos ter um modelo sequencial, também chamado de cascata onde uma atividade é feita uma depois da outra. Também temos uma variação do modelo sequencial, sendo que algumas atividades são revisitadas para melhorias. Outra opção é o modelo de processo evolucionário, no qual, a cada novo ciclo, uma nova versão do software é liberada. Modelos de Processo de software 2 Ainda, um fluxo de processo paralelo executa uma ou mais tarefas simultaneamente com outras. Por exemplo, a modelagem de um componente de software pode ser realizada enquanto outro componente está sendo construído. Modelos de processos prescritivos Uma coleção predefinida de elementos de processo e um fluxo de trabalho de processo previsível são definidos por modelos de processo prescritivos. Visam consistência e organização na criação do software. Modelo em Cascata Sequência linear Método sequencial estruturado. Modelos de Processo de software 3 Cada atividade é executada sequencialmente sem retorno aos passos anteriores. Antigo mas ainda usado. Primeiro paradigma da engenharia de Software. Problemas: Projetos reais raramente seguem um fluxo sequencia. Muitas vezes, é difícil para o cliente declarar todos os requisitos explicitamente no começo do projeto. Cliente deve ter paciência, pois deve aguardar até o final do projeto para ter versão funcional. Grandes erros podem demorar para ser detectados. Inadequado para projetos de hoje que são rápidos e em constante mudança. Neste caso, pode ser melhor utilizar um paradigma de prototipagem, , onde a ideia é partir de um exemplo de como o software vai ficar, e depois realizar algumas implementações para ter uma primeira versão o quando antes. Após, vamos incrementando aos poucos as novas funções. Como todos os processos complexos, o software se desenvolve ao longo do tempo. Um caminho direto para um produto não é realista porque os requisitos de Modelos de Processo de software 4 negócios e produtos mudam frequentemente à medida que o desenvolvimento avança. Um produto de software completo pode ser impossível de ser concluído devido a restrições restritas de mercado. Para satisfazer a pressão comercial ou competitiva, pode ser viável desenvolver uma versão limitada de um produto. Mais tarde, uma vez que todos os recursos do sistema fossem mais bem compreendidos, uma versão refinada do produto seria lançada. Modelo Espiral Modelo de processo de software evolutivo. Combina elementos controlados e metódicos do modelo em cascata (sequencial) com a natureza iterativa da prototipagem. Permite o software ser desenvolvido rapidamente e ser complementado a cada iteração. Software criado por uma sucessão de lançamentos evolutivos. Inicialmente podemos ter um modelo ou protótipo. Iterações resultam em um sistema cada vez mais acabado. Adequado quando o gerenciamento de risco é fundamental. Base de vários modelos como Scrum, XP, Lean, Kanban, FDD e etc. Modelos de Processo de software 5 Conceito iterativo e incremental. Cada atividade da estrutura corresponde a uma seção da rota em espiral mostrada na figura anterior. A equipe de software realiza atividades sugeridas por um circuito em torno da espiral no sentido horário, começando pelo centro, à medida que esse processo evolutivo avança. A cada mudança o risco é levado em consideração. Para cada passagem evolutiva, marcos de ponto de ancoragem – uma coleção de saídas de trabalho e condições alcançadas ao longo do caminho da espiral – são anotados. Modelos de Processo de software 6