Análise e Projeto de Sistemas Aula 3 Professor: Italo Rodrigues Castro Fases do processo de desenvolvimento de Software (RUP) Objetivo do RUP é: - Garantir a produção de software de alta qualidade, de acordo com as necessidades de seus usuários e dentro de cronogramas e orçamentos previsíveis. Fases do processo de desenvolvimento de Software (RUP) A fase de concepção incorpora o estudo de viabilidade e uma parte da análise de requisitos; A fase de elaboração incorpora a maior parte da análise de requisitos, a análise de domínio e o projeto; Fases do processo de desenvolvimento de Software (RUP) A fase de construção corresponde construção do software e testes; à A fase de transição consiste na instalação e manutenção do sistema; Fases do processo de desenvolvimento de Software (RUP) Ciclo de Vida de um Software Conjunto da história de um software desde a percepção de sua necessidade até sua retirada de operação. Determina o caráter temporal do software. Começa antes de seu projeto de desenvolvimento e terminando após o esgotamento de seu uso. Ciclo de Vida de um Software Ciclo de Vida de um Software Codifica - Remenda Cascata Cascata com realimentação Espiral Prototipagem evolutiva Entrega evolutiva Ciclo de Vida “Codifica-Remenda” Também conhecido como build-and-fix. Constrói e a medida que vai encontrando erros vai consertando. Ciclo de Vida de um Software Provavelmente o mais usado. Não exige sofisticação técnica ou gerencial. Alto risco. Impossível de gerir. Não permite assumir compromissos confiáveis. Ciclo de Vida Em Cascata Ciclo de Vida Em Cascata Subprocessos executados em estrita seqüência. Pontos de controle bem definidos. Facilitam gestão. Teoricamente, confiável e utilizável em projetos de qualquer escala. Interpretado literalmente. É rígido e burocrático. Ciclo de Vida Em Cascata Exige requisitos “congelados”. Exige perfeccionismo na execução dos subprocessos. Não são permitidos erros. Baixa visibilidade para o cliente que só recebe o resultado final do projeto. Em Cascata com Realimentação Em Cascata com Realimentação Expansão do modelo em cascata. É sempre necessário permitir que, em subprocessos posteriores haja revisão e alteração dos subprocessos anteriores. Subprocessos executados em seqüência. Em Cascata com Realimentação Permite que o material de um subprocesso anterior seja revisto ou alterado. Pontos de controle bem definidos, como no Cascata. Facilitam a gestão (como no cascata). Em Espiral Em Espiral O produto é desenvolvido em iterações. Cada nova iteração corresponde a uma volta no espiral. Os problemas identificados em uma iteração são utilizados para alimentar a próxima. Em Espiral Permite construir produtos em prazos curtos. Novas características são adicionadas à medida que o problema é entendido. Favorece para que as verdadeiras necessidades apareçam. É um modelo complexo. Requer gestão sofisticada para ser previsível e confiável. Requer desenho robusto para evitar que a estrutura do produto se degrade. Prototipagem Evolutiva Prototipagem Evolutiva Ao invés de desenvolver o produto completo, desenvolve-se versões provisórias chamadas de protótipos. Os protótipos cobrem cada vez mais requisitos até atingir o produto desejado. Funciona bem em projetos com alta volatilidade de requisitos. Funciona bem em projetos onde o cliente é relutante em se comprometer com os requisitos. Prototipagem Evolutiva Permite que requisitos sejam definidos progressivamente evitando a construção com requisitos mal-levantados. Alta flexibilidade e visibilidade para os clientes. Não se é possível saber de antemão quando um produto aceitável estará pronto. Requer gestão sofisticada para ser previsível e confiável. Entrega Evolutiva Entrega Evolutiva Em pontos bem definidos usuários podem avaliar partes do produto. São fornecidos realimentações quanto às decisões tomadas. Funciona bem em projetos em que o núcleo de requisitos não varia a partir do feedback do usuário. Facilita o acompanhamento dos projetos por parte de gerentes e de clientes. Entrega Evolutiva A arquitetura do sistema é a parte mais importante. Arquitetura deve ser robusta. Arquitetura deve permanecer íntegra ao longo das liberações. Entrega Evolutiva Qual a diferença da prototipagem evolutiva para o ciclo de vida de entrega evolutiva? - Prototipagem evolutiva enfatiza aspectos visuais do sistema. - Entrega evolutiva enfatiza as funcionalidades centrais do sistema que são improváveis de serem alteradas pelo feedback do usuário. Obrigado! ?