·
Análise e Desenvolvimento de Sistemas ·
Qualidade de Software
Send your question to AI and receive an answer instantly
Recommended for you
11
Aula 04 - Principais Conceitos do Processo de Teste de Software
Qualidade de Software
UNOPAR
11
Aula 03 - Qualidade de Teste de Software
Qualidade de Software
UNOPAR
4
00 - Apresentação - Qualidade e Testes de Software
Qualidade de Software
UNOPAR
11
Aula 05 - Ciclo de Vida do Processo de Testes de Software
Qualidade de Software
UNOPAR
11
Aula 01 - o que É Engenharia de Software
Qualidade de Software
UNOPAR
2
Aula 01 - o que É Engenharia de Software anexo 1
Qualidade de Software
UNOPAR
3
Qualidade e Testes de Software
Qualidade de Software
UMG
5
Eps_ Alunos10
Qualidade de Software
UMG
7
Prova N2 - Qualidade e Teste de Software
Qualidade de Software
FMU
8
Avaliação On-line 5 aol 5 - Teste de Software
Qualidade de Software
UMG
Preview text
Qualidade e teste de software\nAula 2: Modelos de Ciclo de Vida de Software\n\nI Apresentação\nEsta aula tem como tema central apresentar a você uma visão geral sobre medição e modelos de qualidade de software, usando boas práticas na implantação de programas de medição nas organizações.\n\nA nossa motivação se baseia na preocupação em aumentar a qualidade, desempenho e produtividade, atributos fundamentais para toda organização desenvolvedora de software. Nesta abordagem, concluímos que as métricas estão diretamente ligadas ao controle dos processos de melhoria de software.\n\nPesquisas realizadas em empresas de softwares indicam que mais da metade de grandes projetos se depara com algum tipo de atraso, excesso de custo ou prazo ou fracasso na implantação. Isto se deve, principalmente, pela falta de controle nos projetos de software.\n\nII Objetivos\n- Definir o ciclo de vida de software;\n- Listar modelos de ciclo de vida de software: cascata, evolutivo, iterativo e incremental;\n- Discutir os modelos RAD, prototipação, espiral e RUP.\n\nIII Contextualização\nO mundo moderno exige cada vez mais tecnologia e novas plataformas de gestão da informação e comunicação.\n\nO software hoje está voltado não só para a web, mas também para diversos segmentos como indústria, comércio, saúde, segurança e muito mais. Além disso, atua na inteligência artificial, estando presente nos eletrodomésticos como TV, geladeiras, lavadoras, micro-ondas, sistema elétrico residencial e muitos outros. Estudado dentro da área de Engenharia de Software, é considerado um fator fundamental para a obtenção de softwares de qualidade.\n\nO processo de desenvolvimento de software está relacionado a pessoas, plataformas de gestão de qualidade e estruturas organizacionais, regidos por normas e procedimentos com o objetivo produzir softwares em conformidade com as exigências contratuais, limitados a aspectos como restrições, recursos, padrões etc.\n\nPor que é importante utilizar um modelo de ciclo de vida para desenvolver softwares?\n\nA resposta é simples: o modelo de ciclo de vida é a primeira escolha a ser feita no processo de software, que abrange a vida do sistema, desde a definição de requisitos até a conclusão do projeto e entrega do produto.\n\nSaiba mais\nEsse ciclo de vida está agrupado em fases, como: definição de requisitos, análise, projeto, desenvolvimento, teste e implantação. Em cada fase são definidas, além das atividades, as funções e responsabilidades de cada membro da equipe do projeto.\n\nÉ necessário conhecer as características do projeto a ser desenvolvido para escolhermos o melhor ciclo de vida e os recursos humanos empregados no projeto.\n\nEsses devem ser reconhecimentados capazes de enfrentar os desafios que se apresentam diante das dificuldades inerentes do todo e qualidade do software. Principais modelos de ciclo de vida de software:\n- Cascata;\n- Modelo em V;\n- Modelo incremental;\n- Evolutivo;\n- Iterativo e incremental;\n- RAD;\n- Prototipagem;\n- Espiral;\n- Modelo de ciclo de vida associado ao RUP.\n\nVamos ver esses modelos mais detalhadamente a seguir.\n\nAtenção! Aqui existe uma videoaula, acesse pelo conteúdo online.\n\nI Cascata\nO modelo cascata, ou sequencial linear, é considerado o mais antigo e o mais usado na engenharia de software em todo o mundo. Este é o grande mérito deste modelo.\n\nSeu nome foi atribuído devido à sequência com que cada fase do desenvolvimento dependia do término da fase anterior, ou seja, o resultado de uma fase era utilizado com a entrada para a fase seguinte.\n\nNesse modelo, a ênfase maior ficava por conta das fases de análise e projeto antes de iniciar a implementação (codificação).\n\n[imagem de gráfico sobre o modelo cascata] É possível retornar a uma etapa anterior; entretanto deve-se analisar muito bem em relação às áreas técnica e financeira, sem prejuízo das partes envolvidas.\n\nVantagens do modelo cascata:\n• A fase de análise de requisitos (única) leva ao projeto do sistema e, por sua vez, antes da fase de codificação;\n• Ao final de cada fase e antes de iniciar a seguinte, devem ser feitas revisões com a participação do usuário;\n• Cada etapa (fase) deve passar por aprovação e documentação, visando o passo seguinte.\n\nDesvantagens do modelo cascata:\n• O fluxo sequencial proposto pelo modelo geralmente não é seguro;\n• O modelo cascata exige que os requisitos sejam claramente definidos e completos, pois são estabelecidos na fase inicial do projeto;\n• O módulo executável para testes somente fica disponível ao final do projeto, isto é, na etapa avançada do desenvolvimento, exigindo um grande esforço.\n\nI Modelo em V\n\nEste modelo é uma variação do cascata, ajustando as atividades de testes com as fases de análise e projeto.\n\nDa mesma forma que no cascata, o modelo em V é sequencial, o que significa que cada fase necessita ser concluída antes do início da fase seguinte.\n\nComo podemos observar, no modelo em V os procedimentos de testes são planejados em praticamente todas as fases do desenvolvimento, diferente do que ocorre no modelo em cascata.\n\nVantagens do modelo em V:\n• Maior chance de sucesso quando comparado com o modelo cascata, devido ao desenvolvimento de planos de teste desde as fases iniciais;\n• Funciona bem para projetos pequenos, nos quais os requisitos são facilmente entendidos.\n\nDesvantagens do modelo em V:\n• Tão rígido quanto o modelo cascata;\n• Requisitos devem ser estabelecidos corretamente e de forma clara no início do projeto.\n\nAtenção! Aqui existe uma videoaula, acesso pelo conteúdo online. Incremental\n\nNo modelo incremental, as novas funcionalidades ou necessidades do usuário são integradas de forma segmentada e em série até a conclusão do produto final.\n\nEste modelo se propõe a aumentar pouco a pouco o software, conforme as necessidades surgem.\n\nO modelo incremental deve ser adotado quando os requisitos são claramente conhecidos na fase inicial do desenvolvimento e há a necessidade de entrega de um módulo ou funcionalidade do software em curto espaço de tempo.\n\nAtenção\n\nÉ importante notar que, a cada incremento, uma nova versão do software é produzida.\n\nVantagens do modelo incremental:\n• A entrega da primeira versão apresenta um menor custo e menos tempo se comparado com os modelos em cascata e em V;\n• Poucos riscos associados ao desenvolvimento dos incrementos devido ao seu tamanho reduzido.\n\nDesvantagens do modelo incremental:\n• No caso de requisitos mal definidos ou incompletos, alguns incrementos podem ser retrabalhados, o que gera custos e atrasos. Modelo evolutivo\n\nO modelo evolutivo obedece a um processo que visa o desenvolvimento do software a partir de requisitos de protótipos iniciais.\n\nNeste modelo, as versões parciais são desenvolvidas para atender aos requisitos levantados inicialmente. Assim, a primeira versão é usada para refinar os requisitos visando uma segunda versão e, a partir do conhecimento obtido com o uso, o desenvolvimento prossegue, evoluindo, então, o produto.\n\nVantagens do modelo evolutivo:\n• É usado quando os requisitos se apresentam incompletos no início do desenvolvimento;\n• Com o uso do sistema, o conhecimento sobre o produto vai aumentando e, consequentemente, melhorando os requisitos.\n\nDesvantagens do modelo evolutivo:\n• É necessário um rígido controle sobre os custos, grande preocupação com o cronograma e com a configuração do software;\n• Usuários precisam estar preparados quanto aos resultados iniciais, que podem parecer insatisfatórios.\n\nAtenção! Aqui existe uma videoaula, acesso pelo conteúdo online.\n\nIterativo e incremental\n\nO processo de desenvolvimento em cascata apresenta uma série de vantagens, porém tem também alguns pontos fracos. Para solucionar este impasse, estudiosos de TI criaram o modelo de desenvolvimento iterativo e incremental.\n\nEsse modelo trouxe bastante agilidade e flexibilidade nos processos de desenvolvimento de software, o que permitiu uma maior capacidade de lidar com as demandas do mercado e, assim, atingir melhores resultados em médio e longo prazo.\n\nBasicamente, este modelo divide o desenvolvimento de software em pequenos ciclos ou novas funcionalidades. Cada funcionalidade deve corresponder a uma necessidade do usuário e à necessidade para sua construção.\n\nPara o desenvolvimento de cada funcionalidade, é utilizado um pequeno modelo em cascata, objetivando, assim, atender às necessidades sempre que se fizer necessário.\n\nPrecisamos, então, identificar as necessidades dos usuários e definir uma escala de prioridades para cada uma dessas funcionalidades. RAD (Rapid Application Development)\n\nO modelo RAD é um modelo de desenvolvimento de software incremental que enfatiza um ciclo de desenvolvimento curto e se apresenta de forma sequencial linear.\n\nA rapidez ou velocidade com que o software é desenvolvido se deve pelo fato de várias equipes trabalharem em paralelo, quando o produto pode ser dividido em módulos. Um projeto de software que utiliza o RAD consome em média de 60 a 90 dias.\n\nO uso deste modelo exige requisitos bem definidos e estabilizados, além de escopo restrito e com possibilidade de ser dividido em módulos. Vantagens do modelo RAD:\n• O ciclo de desenvolvimento é extremamente curto se comparado com os demais modelos;\n• Distribuição de tarefas é facilitada entre as equipes de desenvolvimento.\n\nDesvantagens do modelo RAD:\n• Requer equipes de desenvolvimento adequadas para atender à demanda de projetos grandes e escaláveis;\n• Não é apropriado quando os riscos são grandes;\n• Não é apropriado quando o sistema precisa interagir com outros sistemas.\n\nProtótipo\n\nO modelo prototipagem é utilizado quando é definido um conjunto de objetivos gerais para o software, mas os detalhes não estão claramente definidos como requisitos de entrada, processamento ou saída.\n\nO ciclo do modelo prototipagem começa com a comunicação entre o engenheiro de software e o cliente, quando são definidos os objetivos gerais do software, identificando as necessidades conhecidas e são verificadas as áreas que necessitam de mais definição.\n\nOs usuários podem fazer simulações com o protótipo, identificando mais detalhadamente funcionalidades que deverão ser disponibilizadas futuramente. A versão inicial do software ajuda a determinar a viabilidade técnica, custe e prazo do projeto.\n\nÉ importante haver uma forte interação com o usuário para que rapidamente o protótipo seja implementado de acordo com as etapas: Vantagens do modelo prototipagem:\n• O protótipo deve ser avaliado pelo usuário;\n• A interação do usuário com o protótipo é fundamental para ajustar as necessidades funcionais.\n\nDesvantagens do modelo prototipagem:\n• O usuário pode pensar que a maior parte do software está pronta;\n• O protótipo pode crescer de maneira não planejada, com risco de se tornar um incremento funcional;\n• O protótipo pode confundir o usuário lido por um desempenho melhor do que um incremento funcional;\n• O fato de o protótipo não implementar toda a funcionalidade pode causar frustração para o usuário quando o sistema completo é entregue.\n\nModelo espiral:\n\nO modelo espiral se divide em duas etapas principais: análise de riscos e prototipagem. A cada novo ciclo, esse modelo testa constantemente erros que podem vir a acontecer.\n\nA cada iteração, a volta da análise pode ser baseada em um modelo diferente e pode ter diferentes atividades. Ou seja, a cada revisão se reflete a análise de prototipação que não existem grandes riscos no desenvolvimento.\n\nNo modelo espiral, em cada repetição do ciclo devem ocorrer no projeto:\n• Determinação de objetivos.\n• Avaliação e redução de riscos.\n• Desenvolvimento e validação.\n• Planejamento da próxima iteração.\n\nOs riscos são considerados à medida que cada evolução é realizada.\n\nA primeira atividade se dá com o desenvolvimento de uma especificidade de produto, as próximas passagens podem ser usadas para desenvolver um protótipo e assim sucessivamente. Na imagem, cada loop representa uma fase de desenvolvimento do software.\n\nVantagens do modelo espiral:\n• Muita análise de riscos;\n• Bom para projetos grandes e críticos;\n• Software é produzido cedo no ciclo de vida.\n\nDesvantagens do modelo prototipagem:\n• Pode ser custoso;\n• Análise de riscos requer experiência;\n• Não se aplica bem a projetos menores.\n\nRUP (Rational Unified Process)\n\nO RUP foi desenvolvido em 1999 por Jacobson, Booch e Rumbaugh depois de terem definido a UML. É um processo que integra ciclos, fases e disciplinas, visando a qualidade no gerenciamento de projetos.\nO ciclo de vida do desenvolvimento do software é dividido nas seguintes fases:\n\nConcepção\n• Define o escopo do projeto.\n\nElaboração\n• Planeja o projeto, define e valida a arquitetura.\n\nConstrução\n• Construção do software.\n\nTransição\n• Implantação do software.\n\nAs disciplinas requisitos, análise, projeto, implementação, testes e implantação vão estar presentes em cada uma dessas fases, com maior ou menor ênfase, conforme mostra a figura:\n\nREQUISITOS\nANÁLISE\nPROJETO\nIMPLEMENTAÇÃO\nTESTES\nIMPLANTADA\n\n\nFigura 3: Disciplinas do modelo RUP.
Send your question to AI and receive an answer instantly
Recommended for you
11
Aula 04 - Principais Conceitos do Processo de Teste de Software
Qualidade de Software
UNOPAR
11
Aula 03 - Qualidade de Teste de Software
Qualidade de Software
UNOPAR
4
00 - Apresentação - Qualidade e Testes de Software
Qualidade de Software
UNOPAR
11
Aula 05 - Ciclo de Vida do Processo de Testes de Software
Qualidade de Software
UNOPAR
11
Aula 01 - o que É Engenharia de Software
Qualidade de Software
UNOPAR
2
Aula 01 - o que É Engenharia de Software anexo 1
Qualidade de Software
UNOPAR
3
Qualidade e Testes de Software
Qualidade de Software
UMG
5
Eps_ Alunos10
Qualidade de Software
UMG
7
Prova N2 - Qualidade e Teste de Software
Qualidade de Software
FMU
8
Avaliação On-line 5 aol 5 - Teste de Software
Qualidade de Software
UMG
Preview text
Qualidade e teste de software\nAula 2: Modelos de Ciclo de Vida de Software\n\nI Apresentação\nEsta aula tem como tema central apresentar a você uma visão geral sobre medição e modelos de qualidade de software, usando boas práticas na implantação de programas de medição nas organizações.\n\nA nossa motivação se baseia na preocupação em aumentar a qualidade, desempenho e produtividade, atributos fundamentais para toda organização desenvolvedora de software. Nesta abordagem, concluímos que as métricas estão diretamente ligadas ao controle dos processos de melhoria de software.\n\nPesquisas realizadas em empresas de softwares indicam que mais da metade de grandes projetos se depara com algum tipo de atraso, excesso de custo ou prazo ou fracasso na implantação. Isto se deve, principalmente, pela falta de controle nos projetos de software.\n\nII Objetivos\n- Definir o ciclo de vida de software;\n- Listar modelos de ciclo de vida de software: cascata, evolutivo, iterativo e incremental;\n- Discutir os modelos RAD, prototipação, espiral e RUP.\n\nIII Contextualização\nO mundo moderno exige cada vez mais tecnologia e novas plataformas de gestão da informação e comunicação.\n\nO software hoje está voltado não só para a web, mas também para diversos segmentos como indústria, comércio, saúde, segurança e muito mais. Além disso, atua na inteligência artificial, estando presente nos eletrodomésticos como TV, geladeiras, lavadoras, micro-ondas, sistema elétrico residencial e muitos outros. Estudado dentro da área de Engenharia de Software, é considerado um fator fundamental para a obtenção de softwares de qualidade.\n\nO processo de desenvolvimento de software está relacionado a pessoas, plataformas de gestão de qualidade e estruturas organizacionais, regidos por normas e procedimentos com o objetivo produzir softwares em conformidade com as exigências contratuais, limitados a aspectos como restrições, recursos, padrões etc.\n\nPor que é importante utilizar um modelo de ciclo de vida para desenvolver softwares?\n\nA resposta é simples: o modelo de ciclo de vida é a primeira escolha a ser feita no processo de software, que abrange a vida do sistema, desde a definição de requisitos até a conclusão do projeto e entrega do produto.\n\nSaiba mais\nEsse ciclo de vida está agrupado em fases, como: definição de requisitos, análise, projeto, desenvolvimento, teste e implantação. Em cada fase são definidas, além das atividades, as funções e responsabilidades de cada membro da equipe do projeto.\n\nÉ necessário conhecer as características do projeto a ser desenvolvido para escolhermos o melhor ciclo de vida e os recursos humanos empregados no projeto.\n\nEsses devem ser reconhecimentados capazes de enfrentar os desafios que se apresentam diante das dificuldades inerentes do todo e qualidade do software. Principais modelos de ciclo de vida de software:\n- Cascata;\n- Modelo em V;\n- Modelo incremental;\n- Evolutivo;\n- Iterativo e incremental;\n- RAD;\n- Prototipagem;\n- Espiral;\n- Modelo de ciclo de vida associado ao RUP.\n\nVamos ver esses modelos mais detalhadamente a seguir.\n\nAtenção! Aqui existe uma videoaula, acesse pelo conteúdo online.\n\nI Cascata\nO modelo cascata, ou sequencial linear, é considerado o mais antigo e o mais usado na engenharia de software em todo o mundo. Este é o grande mérito deste modelo.\n\nSeu nome foi atribuído devido à sequência com que cada fase do desenvolvimento dependia do término da fase anterior, ou seja, o resultado de uma fase era utilizado com a entrada para a fase seguinte.\n\nNesse modelo, a ênfase maior ficava por conta das fases de análise e projeto antes de iniciar a implementação (codificação).\n\n[imagem de gráfico sobre o modelo cascata] É possível retornar a uma etapa anterior; entretanto deve-se analisar muito bem em relação às áreas técnica e financeira, sem prejuízo das partes envolvidas.\n\nVantagens do modelo cascata:\n• A fase de análise de requisitos (única) leva ao projeto do sistema e, por sua vez, antes da fase de codificação;\n• Ao final de cada fase e antes de iniciar a seguinte, devem ser feitas revisões com a participação do usuário;\n• Cada etapa (fase) deve passar por aprovação e documentação, visando o passo seguinte.\n\nDesvantagens do modelo cascata:\n• O fluxo sequencial proposto pelo modelo geralmente não é seguro;\n• O modelo cascata exige que os requisitos sejam claramente definidos e completos, pois são estabelecidos na fase inicial do projeto;\n• O módulo executável para testes somente fica disponível ao final do projeto, isto é, na etapa avançada do desenvolvimento, exigindo um grande esforço.\n\nI Modelo em V\n\nEste modelo é uma variação do cascata, ajustando as atividades de testes com as fases de análise e projeto.\n\nDa mesma forma que no cascata, o modelo em V é sequencial, o que significa que cada fase necessita ser concluída antes do início da fase seguinte.\n\nComo podemos observar, no modelo em V os procedimentos de testes são planejados em praticamente todas as fases do desenvolvimento, diferente do que ocorre no modelo em cascata.\n\nVantagens do modelo em V:\n• Maior chance de sucesso quando comparado com o modelo cascata, devido ao desenvolvimento de planos de teste desde as fases iniciais;\n• Funciona bem para projetos pequenos, nos quais os requisitos são facilmente entendidos.\n\nDesvantagens do modelo em V:\n• Tão rígido quanto o modelo cascata;\n• Requisitos devem ser estabelecidos corretamente e de forma clara no início do projeto.\n\nAtenção! Aqui existe uma videoaula, acesso pelo conteúdo online. Incremental\n\nNo modelo incremental, as novas funcionalidades ou necessidades do usuário são integradas de forma segmentada e em série até a conclusão do produto final.\n\nEste modelo se propõe a aumentar pouco a pouco o software, conforme as necessidades surgem.\n\nO modelo incremental deve ser adotado quando os requisitos são claramente conhecidos na fase inicial do desenvolvimento e há a necessidade de entrega de um módulo ou funcionalidade do software em curto espaço de tempo.\n\nAtenção\n\nÉ importante notar que, a cada incremento, uma nova versão do software é produzida.\n\nVantagens do modelo incremental:\n• A entrega da primeira versão apresenta um menor custo e menos tempo se comparado com os modelos em cascata e em V;\n• Poucos riscos associados ao desenvolvimento dos incrementos devido ao seu tamanho reduzido.\n\nDesvantagens do modelo incremental:\n• No caso de requisitos mal definidos ou incompletos, alguns incrementos podem ser retrabalhados, o que gera custos e atrasos. Modelo evolutivo\n\nO modelo evolutivo obedece a um processo que visa o desenvolvimento do software a partir de requisitos de protótipos iniciais.\n\nNeste modelo, as versões parciais são desenvolvidas para atender aos requisitos levantados inicialmente. Assim, a primeira versão é usada para refinar os requisitos visando uma segunda versão e, a partir do conhecimento obtido com o uso, o desenvolvimento prossegue, evoluindo, então, o produto.\n\nVantagens do modelo evolutivo:\n• É usado quando os requisitos se apresentam incompletos no início do desenvolvimento;\n• Com o uso do sistema, o conhecimento sobre o produto vai aumentando e, consequentemente, melhorando os requisitos.\n\nDesvantagens do modelo evolutivo:\n• É necessário um rígido controle sobre os custos, grande preocupação com o cronograma e com a configuração do software;\n• Usuários precisam estar preparados quanto aos resultados iniciais, que podem parecer insatisfatórios.\n\nAtenção! Aqui existe uma videoaula, acesso pelo conteúdo online.\n\nIterativo e incremental\n\nO processo de desenvolvimento em cascata apresenta uma série de vantagens, porém tem também alguns pontos fracos. Para solucionar este impasse, estudiosos de TI criaram o modelo de desenvolvimento iterativo e incremental.\n\nEsse modelo trouxe bastante agilidade e flexibilidade nos processos de desenvolvimento de software, o que permitiu uma maior capacidade de lidar com as demandas do mercado e, assim, atingir melhores resultados em médio e longo prazo.\n\nBasicamente, este modelo divide o desenvolvimento de software em pequenos ciclos ou novas funcionalidades. Cada funcionalidade deve corresponder a uma necessidade do usuário e à necessidade para sua construção.\n\nPara o desenvolvimento de cada funcionalidade, é utilizado um pequeno modelo em cascata, objetivando, assim, atender às necessidades sempre que se fizer necessário.\n\nPrecisamos, então, identificar as necessidades dos usuários e definir uma escala de prioridades para cada uma dessas funcionalidades. RAD (Rapid Application Development)\n\nO modelo RAD é um modelo de desenvolvimento de software incremental que enfatiza um ciclo de desenvolvimento curto e se apresenta de forma sequencial linear.\n\nA rapidez ou velocidade com que o software é desenvolvido se deve pelo fato de várias equipes trabalharem em paralelo, quando o produto pode ser dividido em módulos. Um projeto de software que utiliza o RAD consome em média de 60 a 90 dias.\n\nO uso deste modelo exige requisitos bem definidos e estabilizados, além de escopo restrito e com possibilidade de ser dividido em módulos. Vantagens do modelo RAD:\n• O ciclo de desenvolvimento é extremamente curto se comparado com os demais modelos;\n• Distribuição de tarefas é facilitada entre as equipes de desenvolvimento.\n\nDesvantagens do modelo RAD:\n• Requer equipes de desenvolvimento adequadas para atender à demanda de projetos grandes e escaláveis;\n• Não é apropriado quando os riscos são grandes;\n• Não é apropriado quando o sistema precisa interagir com outros sistemas.\n\nProtótipo\n\nO modelo prototipagem é utilizado quando é definido um conjunto de objetivos gerais para o software, mas os detalhes não estão claramente definidos como requisitos de entrada, processamento ou saída.\n\nO ciclo do modelo prototipagem começa com a comunicação entre o engenheiro de software e o cliente, quando são definidos os objetivos gerais do software, identificando as necessidades conhecidas e são verificadas as áreas que necessitam de mais definição.\n\nOs usuários podem fazer simulações com o protótipo, identificando mais detalhadamente funcionalidades que deverão ser disponibilizadas futuramente. A versão inicial do software ajuda a determinar a viabilidade técnica, custe e prazo do projeto.\n\nÉ importante haver uma forte interação com o usuário para que rapidamente o protótipo seja implementado de acordo com as etapas: Vantagens do modelo prototipagem:\n• O protótipo deve ser avaliado pelo usuário;\n• A interação do usuário com o protótipo é fundamental para ajustar as necessidades funcionais.\n\nDesvantagens do modelo prototipagem:\n• O usuário pode pensar que a maior parte do software está pronta;\n• O protótipo pode crescer de maneira não planejada, com risco de se tornar um incremento funcional;\n• O protótipo pode confundir o usuário lido por um desempenho melhor do que um incremento funcional;\n• O fato de o protótipo não implementar toda a funcionalidade pode causar frustração para o usuário quando o sistema completo é entregue.\n\nModelo espiral:\n\nO modelo espiral se divide em duas etapas principais: análise de riscos e prototipagem. A cada novo ciclo, esse modelo testa constantemente erros que podem vir a acontecer.\n\nA cada iteração, a volta da análise pode ser baseada em um modelo diferente e pode ter diferentes atividades. Ou seja, a cada revisão se reflete a análise de prototipação que não existem grandes riscos no desenvolvimento.\n\nNo modelo espiral, em cada repetição do ciclo devem ocorrer no projeto:\n• Determinação de objetivos.\n• Avaliação e redução de riscos.\n• Desenvolvimento e validação.\n• Planejamento da próxima iteração.\n\nOs riscos são considerados à medida que cada evolução é realizada.\n\nA primeira atividade se dá com o desenvolvimento de uma especificidade de produto, as próximas passagens podem ser usadas para desenvolver um protótipo e assim sucessivamente. Na imagem, cada loop representa uma fase de desenvolvimento do software.\n\nVantagens do modelo espiral:\n• Muita análise de riscos;\n• Bom para projetos grandes e críticos;\n• Software é produzido cedo no ciclo de vida.\n\nDesvantagens do modelo prototipagem:\n• Pode ser custoso;\n• Análise de riscos requer experiência;\n• Não se aplica bem a projetos menores.\n\nRUP (Rational Unified Process)\n\nO RUP foi desenvolvido em 1999 por Jacobson, Booch e Rumbaugh depois de terem definido a UML. É um processo que integra ciclos, fases e disciplinas, visando a qualidade no gerenciamento de projetos.\nO ciclo de vida do desenvolvimento do software é dividido nas seguintes fases:\n\nConcepção\n• Define o escopo do projeto.\n\nElaboração\n• Planeja o projeto, define e valida a arquitetura.\n\nConstrução\n• Construção do software.\n\nTransição\n• Implantação do software.\n\nAs disciplinas requisitos, análise, projeto, implementação, testes e implantação vão estar presentes em cada uma dessas fases, com maior ou menor ênfase, conforme mostra a figura:\n\nREQUISITOS\nANÁLISE\nPROJETO\nIMPLEMENTAÇÃO\nTESTES\nIMPLANTADA\n\n\nFigura 3: Disciplinas do modelo RUP.