03 Modelo de processo de software
Upcoming SlideShare
Loading in...5
×
 

03 Modelo de processo de software

on

  • 413 views

O que é e pra que serve um modelo de processo de software? Tópicos para discussão em aula.

O que é e pra que serve um modelo de processo de software? Tópicos para discussão em aula.

Statistics

Views

Total Views
413
Views on SlideShare
413
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    03 Modelo de processo de software 03 Modelo de processo de software Presentation Transcript

    • Modelos de Processo de Software Modelagem e Ciclo de Vida
    • Construindo um avião
    • Objetivos de hoje  Introduzir modelos de processo de software  Descrever uma variedade de modelos de processo e quando eles podem ser usados  Descrever esboços de modelos de processo para engenharia de requisitos, desenvolvimento de software, teste e evolução
    • O processo de software  Um conjunto estruturado de atividades requeridas para desenvolver um sistema de software  Especificação  Projeto  Validação  Evolução  Um modelo de processo de software é uma representação abstrata de um processo. Apresenta uma descrição de um processo de alguma perspectiva particular (visão)
    • O processo de software  Processo inclui:  Todas as principais atividades do processo  Recursos - está sujeito a um conjunto de restrições (como um cronograma)  Produtos intermediários e finais  Subprocessos, com hierarquia ou organizados de algum modo  Critérios de entrada e saída para cada atividade  Sequência de atividades, de modo que a ordem de execução de uma para outra seja clara  Conjunto de diretrizes que explicam os objetivos de cada atividade  Restrições e controles para cada atividade, recurso ou produto
    • Comunicação – do cliente ao produto
    • Razões para modelar um processo  Formar um entendimento comum  Encontrar inconsistências, redundâncias e omissões  Encontrar e avaliar atividades propostas mais adequadas aos objetivos  Fazer um processo geral para uma situação particular na qual ele será utilizado
    • O modelo de processo tradicional
    • Exemplos de modelos de processo de software  O modelo cascata  Desenvolvimento evolucionário  Desenvolvimento em fases (iterativo)  Iterativo incremental  Modelo em espiral
    • O modelo cascata (waterfall)
    • O modelo cascata – atividades em sequência Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance
    • O modelo cascata – atividades em sequência
    • Problemas do modelo cascata  Partição inflexível do projeto em diferentes estágios  Isto faz com que seja difícil responder aos requisitos mutáveis dos clientes  Portanto, este modelo só é apropriado quando os requisitos são bem entendidos
    • Desenvolvimento evolucionário  Desenvolvimento exploratório  O objetivo é trabalhar com clientes e evoluir o sistema final de um esboço de especificação inicial. Deve começar com os requisitos que estão bem entendidos  Preparação de protótipos descartáveis  Objetivo é entender os requisitos do sistema. Deve começar com requisitos pobremente entendidos
    • Desenvolvimento evolucionário Validation Final version Development Intermediate versions Specification Initial version Outline description Concurrent activities
    • Desenvolvimento evolucionário  Problemas  Falta de visibilidade do processo  Sistemas são, em geral, pobremente estruturados  Habilidades especiais (ex. em linguagens para rápida preparação de protótipos ) podem ser requeridas  Aplicabilidade  Para sistemas interativos pequenos ou médios  Para partes de sistemas grandes (ex. a interface de usuário, um relatório simples, etc.)  Para sistemas de curto-prazo
    • Desenvolvimento em fases (iterativo)  Requisitos do sistema sempre evoluem (mudam) no decorrer de um projeto  A iteração do processo, onde estágios anteriores são retrabalhados, é sempre parte de um processo para sistemas maiores  Iteração pode ser aplicada para qualquer modelo de processo  Duas abordagens (relacionadas)  Desenvolvimento incremental  Desenvolvimento espiral
    • Desenvolvimento iterativo e incremental  Ao invés de entregar o sistema de uma única vez, o desenvolvimento e a entrega é dividida em incrementos com cada incremento entregando parte da funcionalidade requerida  Os requisitos dos usuários são priorizados e os requisitos de maior prioridade são incluídos em incrementos iniciais  Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são congelados embora requisitos para incrementos posteriores possam continuar a evoluir
    • Desenvolvimento iterativo e incremental
    • Vantagens do desenvolvimento incremental  O valor agregado ao Cliente está na entrega em cada incremento de modo que a funcionalidade do sistema estará disponível mais cedo  Incrementos iniciais funcionam como protótipos para ajudar a evocar requisitos para incrementos posteriores  Menores riscos de falha no projeto em geral  Os serviços do sistema de alta prioridade tendem a receber a maioria dos testes
    • Desenvolvimento espiral  Processo é representado como uma espiral ao invés de uma seqüência de atividades com retorno  Cada volta na espiral representa uma fase (iteração) no processo  Não existe um número de fases fixas – as voltas na espiral são escolhidas de acordo com o que é requerido  Os riscos são explicitamente cotados e resolvidos durante todo o processo
    • Modelo espiral do processo de software