Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Documentos relacionados
INSTITUTO FEDERAL DE SÃO PAULO CAMPUS PRESIDENTE EPITÁCIO MODELO DOS PROCESSOS DE SOFTWARE

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Processo de Desenvolvimento. Edjandir Corrêa Costa

CICLO DE VIDA DO SOFTWARE. Nas empresas também é difícil adotar apenas um ciclo de vida, na maioria das vezes possui mais de um.

Escolhendo um Modelo de Ciclo de Vida

Engenharia de Software I

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno

Modelos de Processo de Software

Engenharia Software. Ení Berbert Camilo Contaiffer

Processos de Software

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Prof. Ms. Ronaldo Martins da Costa

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

MODELAGEM DE SISTEMAS Unidade 1 Conceitos Básicos de Modelagem. Luiz Leão

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Paradigmas da Engenharia de Software AULA PROF. ABRAHAO LOPES

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Engenharia de Software

Projeto de Desenvolvimento de Software

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Processos de Software

Definições e ciclo de vida

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Modelos de Processo de Software

Engenharia de Software

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

Processos de software

2. Processos em Engenharia de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Processos de Software

ENGENHARIA DE SOFTWARE

Princípios da Engenharia de Software aula 03

PROCESSO DE SOFTWARE

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO

Aula 2 Processo de Software

Prof. Dr. Thiago Jabur Bittar

Processos de Software

Engenharia de Software

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

ENGENHARIA DE SOFTWARE

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Engenharia de Software

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

14/11/2014. Engenharia de Software. Modelos de software. Modelo Clássico - Cascata

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

MODELOS DE PROCESSOS (PARTE 2)

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Ciclo de Vida de Sistemas de Informação

Modelos de Ciclo de Vida (Parte 1)

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Engenharia de Software Processo de Desenvolvimento de Software

14/11/2013. Capítulo 2. Processos de Software. Tópicos apresentados. Oprocessodesoftware. Modelos de processo de software. Atividades de processo.

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Disciplina que reúne metodologias, métodos e ferramentas a serem utilizados, desde a percepção do problema até o momento em que o sistema

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Processos de Software

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

PROCESSOS DE SOFTWARE

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

Modelos de Processo de Software. Profª Jocelma Rios

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

CICLO DE VIDA DE SOFTWARE

- Prototipação Iterativa - Observação Direta

Modelos de Ciclo de Vida

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Engenharia de Software II

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

RUP RATIONAL UNIFIED PROCESS CONCEITOS CHAVES. Prof. Fabiano Papaiz IFRN

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

CAPÍTULO 1 CONCEITOS BÁSICOS SOBRE ANÁLISE DE SISTEMAS Ciclo de vida de um software

Introdução a Teste de Software

Engenharia de Software I

ENGENHARIA DE SOFTWARE

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROF. MSC. EMILIANO MONTEIRO

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

CONCEITOS BÁSICOS E MODELO DE PROJETO

Reuso de Software Aula Maio 2012

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Engenharia de Software. Engenharia de Software

ISO/IEC Processo de ciclo de vida

ENGENHARIA DE SOFTWARE

Agenda da Aula. Melhoria do Processo de Software. Por que melhorar o processo? De onde veio a idéia? Qualidade do Produto. Qualidade de Software

02/10/2012. Referências. Processo visando a Usabilidade. Introdução. Engenharia de Usabilidade. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Rational Unified Process (RUP)

Transcrição:

Prof. Edson dos Santos Cordeiro 1 Tópico: Objetivo: Introdução a Ciclo de Vida do Software Conhecer os principais conceitos relacionados a ciclo de vida do software. Bibliog. Base: McCONNEL, Steve. Rapid development. Redmond, WA: Microsoft Press, 1996. Bibliog. Compl.: Internet: INTRODUÇÃO Engenharia de Software. Ian Summerville. Addison- Wesley, 2003. Engenharia de Software. Roger S. Pressman. Makron Books.» http://www.software-engineer.org (Engenharia de Software)» Software Engine Institute (Instituto de Engenharia de Software) Ciclos de vida do software descrevem como um software deve ser desenvolvido. Basicamente definem a ordem global das atividades envolvidas em um contexto de projeto de software e propõe uma estratégia de desenvolvimento que pode ser aplicada a um determinado contexto de projeto de software. Ciclos de vida normalmente são vagos nas descrições de detalhes das condições de início e término de uma atividade, recursos utilizados, artefatos consumidos ou produzidos, papéis desempenhados etc. Dentre os diversos ciclos de vida de software, pode-se citar: Code-and-Fix, Cascata, Espiral, Prototipação Evolutiva, Prototipação Incremental, Prototipação Descartável, Refinamento Iterativo, Ciclo de Vida Progressivo, Desenvolvimento Incremental, Sashimi. Diferenças entre modelos de ciclo de vida Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam: Modelo Cascata Puro Enfoque dado pelo modelo. Por exemplo, no Modelo Cascata o enfoque é dado na documentação e no Modelo Espiral o enfoque é dado nos riscos; Estratégia de desenvolvimento. Define a disposição das atividades que deverão ser executadas para atingir um objetivo em um contexto de projeto de desenvolvimento de software. A disposição das atividades pode ser, por exemplo, linear (uma atividade após a outra) como no ciclo de vida Cascata puro ou iterativa (um conjunto de atividades é repetida várias vezes até atingir o seu objetivo) como nos modelos incrementais. Outras estratégias podem envolver a disposição das atividades em paralelo, a prototipação ou reunir as características de modelos de ciclo de vida lineares e iterativos. A proposta do modelo Cascata Puro (Figura 1) consiste na execução das atividades de desenvolvimento de software em uma seqüência ordenada. Desta forma, a passagem para determinada atividade exige como critério a finalização da atividade imediatamente anterior. As principais atividades do modelo são: requisitos de sistema, requisitos de software, análise, projeto de programa, codificação, teste e operação. Requisitos de sistema Requisitos de software Análise Projeto do programa Implementação Teste Figura 1: Modelo de ciclo de vida Cascata Operação

Prof. Edson dos Santos Cordeiro 2 O modelo Cascata é recomendado para projetos nos quais há domínio dos requisitos do sistema que será desenvolvido e quando o pessoal envolvido no projeto é fraco tecnicamente devido a baixa complexidade do modelo. Além disso, pode ser empregado para situações nas quais há um bom conhecimento do domínio (por exemplo, um bom conhecimento sobre o tipo de software que será desenvolvido) e das tecnologias que serão utilizadas para desenvolver o software (por exemplo, métodos, técnicas e ferramentas). No entanto, o modelo apresenta algumas desvantagens: 1. Propõe uma seqüência entre etapas que não representa adequadamente um processo de desenvolvimento de software; 2. Não oferece suporte adequado para mudanças que são percebidas durante o processo e que requerem modificações em etapas anteriores (flexibilidade); 3. Não oferece facilidades para acomodar tecnologias recentes como prototipação rápida e, 4. Fornece poucos recursos para otimização de processo (detalhamento); Devido a essas desvantagens, a utilização do modelo depende do contexto e pode resultar nas seguintes conseqüências: Modelo Espiral 1. Pode não permitir a visão real do processo em andamento; 2. O modelo cascata, analogamente, cria dois universos, um universo se refere ao processo em andamento e o outro universo se refere às mudanças que deveriam ser aplicadas ao produto, mas não as são pelo fato do modelo não incorporar em sua dinâmica a revisão de etapas já concluídas durante o seu andamento; 3. Não é possível mensurar. O fato de normalmente não permitir uma visão real do processo também implica em uma visão irreal para a aplicação de métricas. Atividades não concluídas são rotuladas como concluídas. O modelo Espiral (Figura 2), proposto por Barry Boehm, reúne características dos modelos Cascata e Prototipação acrescentando ainda em sua base a análise de riscos. Cada giro na espiral (iniciando a partir do centro e avançando para fora) representa uma nova fase do processo. Esse processo evolutivo permite que novas versões possam ser construídas progressivamente. Tipicamente, o modelo pode ser dividido em 3 ou 6 regiões. PRESSMAN (vide referências) apresenta o modelo divido em 6 regiões: comunicação com o cliente, planejamento, análise de riscos, engenharia, construção e evolução e, avaliação do cliente. O número de tarefas por regiões pode variar conforme o tamanho e complexidade do projeto. Desta forma, o modelo pode ser adaptado conforme as características do projeto. Figura 2: Ciclo de Vida Espiral

Prof. Edson dos Santos Cordeiro 3 A adoção do modelo Espiral proporciona algumas vantagens. Teoricamente, quanto mais tempo e recursos forem destinados, ou seja, quanto mais iterações na espiral, menor serão os riscos sobre o projeto. Outra vantagem em relação a modelos seqüenciais como o modelo Cascata, é a execução de atividades de verificação presentes ao final de cada iteração que permitem um melhor controle gerencial sobre o projeto. Uma desvantagem do modelo refere-se a situações em que o projeto é considerado simples e os riscos são modestos. Nesse contexto, muitos projetos não precisam da flexibilidade e gerenciamento de riscos proporcionados pelo modelo. Prototipação Organizações de desenvolvimento de software utilizam s na construção de software com diferentes propósitos: na construção de modelos, simulações, implementações parciais ou ainda para testar aspectos técnicos de um sistema. A prototipação pode ser adotada como uma abordagem que compreenda todo o ciclo de vida de desenvolvimento de um software ou como um processo incorporado a um ciclo de vida (por exemplo, Modelo Espiral). O processo de prototipação (Figura 3) consiste basicamente em diversos ciclos iterativos. Um é construído a partir de requisitos iniciais. É realizada uma avaliação crítica do a qual considera os requisitos iniciais e requisitos que não foram mencionados inicialmente. Caso o não atenda aos requisitos pretendidos, novas iterações são realizadas produzindo novos s. As iterações são finalizadas quando os requisitos forem atendidos. Protótipo inicial Revisão do Revisão/refinamento do Não Sim Objetivos Atendido? atendidos Figura 3: Processo de Prototipação Existem diversos modelos de processo de desenvolvimento de software que empregam a prototipação em seus processos: Incremental Iterativo, Prototipação Rápida Descartável, Prototipação Evolutiva e Espiral. Prototipação Incremental A Prototipação Incremental (Figura 4) também conhecida como Entrega por Estágio adota como estratégia o desenvolvimento por estágios. Normalmente os requisitos mais importantes são implementados primeiro e os demais são acrescentados em novas versões. O desenvolvimento ocorre gradualmente e, ao final de cada estágio, uma versão operável é produzida e incrementada nos demais estágios até a sua conclusão final. A Prototipação Incremental pode oferecer diversas vantagens: redução de riscos, maior visibilidade sobre o processo, problemas podem ser descobertos logo no início, auxilia na estimativa de tempo do projeto entre outras. No entanto, o emprego desse modelo exige grande esforço na atualização da documentação do usuário. Além disso, o desenvolvimento por estágio requer que as dependências entre os estágios sejam bem planejadas, pois um dos problemas comuns é descobrir que o estágio 2 depende de componentes do estágio 4, por exemplo.

Prof. Edson dos Santos Cordeiro 4 Concepção do software Análise de requisitos Projeto arquitetural Estágio 1: Projeto detalhado, implementação, depuração, teste e entrega Estágio 2: Projeto detalhado, implementação, depuração, teste e entrega Prototipação Evolutiva Estágio 3: Projeto detalhado, implementação, depuração, teste e entrega Figura 4: Modelo Prototipação Incremental A Prototipação Evolutiva (Figura 5) basicamente inicia com a concepção do sistema e emprega diversos ciclos de re-projeto, re-implementação e re-avaliação até a aceitação final do software. Cada novo confirma, refina ou adiciona novos requisitos até atingir a totalidade de requisitos do sistema. Concepção do software Projeto e implementação do inicial Refinamento do até sua aceitação Conclusão e entrega do Figura 5: Modelo Prototipação Evolutiva O modelo pode ser adotado em contextos nos quais os requisitos são instáveis ou desconhecidos ou, ainda, quando há a necessidade de se testar um algoritmo antes de sua adoção. Dentre as vantagens proporcionadas pelo modelo Prototipação Evolutiva, destaca-se menor taxa de defeitos pela melhor definição das especificações do sistema, promove maior participação do cliente, permite maior visibilidade do progresso de desenvolvimento e é possível verificar a aceitação do sistema nos primeiros estágios do desenvolvimento. Por outro lado, o modelo pode agregar algumas desvantagens: pobre manutenibilidade provocada pela rapidez no desenvolvimento e/ou constantes mudanças na estrutura do, acréscimo de novas funcionalidades devido ao constante contato do cliente com o e, uso ineficiente do tempo destinado à construção do. Diferentemente da Prototipação Incremental, o é entregue ao finalizar o desenvolvimento. Além disso, a Prototipação Incremental desenvolve partes do software que serão entregues à medida que são finalizadas, não ocorrendo mudanças nas especificações do projeto e, a maior parte dos requisitos deve ser conhecida logo no início do projeto. Prototipação Rápida Descartável O modelo Prototipação Rápida Descartável (Figura 6Figura ) difere dos modelos Incremental e Evolutivo pelo fato de descartar o. No entanto, assemelha-se em alguns aspectos quanto a sua estratégia. O modelo inicia com a especificação de requisitos os quais subsidiam a construção de um. O é avaliado pelo cliente e novas iterações ocorrem até sua aceitação. Antes de ser descartado, o aprovado é utilizado na especificação do sistema e alguns componentes podem ser utilizados na re-implementação da nova versão final. Após a validação, o software é entregue ao cliente.

Prof. Edson dos Santos Cordeiro 5 Especificação inicial Construção Avaliação do Especificação do sistema Componentes reutilizáveis Desenvolvimento do software Validação do sistema Entrega do software Figura 6: Modelo Prototipação Rápida Descartável Dentre os diversos domínios de software, o Modelo Prototipação Rápida Descartável pode ser aplicado em: domínios nos quais os requisitos de software são instáveis ou existe a necessidade de certificar um conjunto de requisitos ou, ainda, em domínios nos quais os riscos podem prejudicar ou inviabilizar o projeto. Redução de riscos, melhor compreensão dos requisitos do sistema e maior participação do cliente são algumas das vantagens que podem ser proporcionadas pelo modelo. Porém, existem alguns problemas que podem advir da utilização desse modelo: testes insuficientes em requisitos importantes (por exemplo, relacionados a segurança e robustez); não implementação de requisitos importantes devido à necessidade de implementar rapidamente um e, utilização do como versão final. Seleção de modelos de ciclo de vida A escolha de um modelo de ciclo de vida deve considerar as características do contexto de projeto ao qual será aplicado. Diferentes projetos de desenvolvimento possuem diferentes necessidades que devem orientar a seleção do ciclo de vida mais adequado. McCONNEL (1996, p. 154), considerando as diferenças entre projetos de desenvolvimento, apresenta diversas questões que devem ser respondidas ao selecionar um modelo de ciclo de vida: 1. Qual o nível de compreensão do usuário e desenvolvedores em relação aos requisitos no início do projeto? É provável que a compreensão mude significativamente durante o desenvolvimento do projeto? 2. Qual o nível de compreensão dos desenvolvedores em relação a arquitetura do sistema? É provável que mudanças na arquitetura do sistema ocorram no meio do caminho? 3. Qual nível de confiança é necessário? 4. O quanto é necessário planejar e projetar durante o projeto prevendo mudanças em versões futuras? 5. Qual o nível de riscos implícitos no projeto? 6. Pode ser limitado em um cronograma? 7. É necessário habilidade para realizar correções no meio do projeto? 8. É necessário mostrar ao cliente o progresso durante o projeto? 9. É necessário demonstrar ao usuário aspetos gerenciais durante o projeto? Para auxiliar na resposta a essas questões, McConnel apresenta uma tabela na qual são apresentadas as vantagens e desvantagens de diversos modelos de ciclo de vida em relação às questões apresentadas acima. Outras questões foram incluídas e possuem igual importância na escolha de um modelo de ciclo de vida para o projeto. O Quadro 1 apresentado nesse material não inclui todos os modelos de ciclo de vida abordados por McConnel. McConnel utiliza uma escala para classificar os modelos que varia entre deficiente, bom e excelente. Em alguns casos, o autor refina a classificação utilizando mais de um valor, por exemplo bom para excelente. Deve-se ressaltar ainda que, a seleção não se restringe somente pela consideração das vantagens oferecidas pelo modelo de ciclo de vida frente a um contexto de projeto de software, devem ser considerados outros aspectos como, por exemplo, a maneira como o ciclo de vida será aplicado.

Prof. Edson dos Santos Cordeiro 6 Quadro 1: Modelos de ciclo de vida (vantagens e desvantagens) Capacidade do modelo Cascata Puro Espiral Trabalha com a compreensão deficiente dos requisitos Trabalha com a compreensão deficiente da arquitetura Prototipação Evolutiva Prototipação Incremental Deficiente Excelente Excelente Deficiente Deficiente Excelente Deficiente para bom Deficiente Produz sistemas de alta confiança Excelente Excelente Bom Excelente É fácil modificar o sistema em versões futuras Excelente Excelente Excelente Excelente Gerencia riscos Deficiente Excelente Bom Bom Pode ser limitado em um cronograma predefinido Bom Deficiente Deficiente Bom Permite correções no meio do projeto Deficiente Bom Excelente Deficiente Possibilita ao cliente visibilidade do progresso Deficiente Excelente Excelente Bom Possibilita ao cliente visibilidade do progresso do gerenciamento Requer pouca gerência ou experiência para usálo Bom Excelente Bom Excelente Bom Bom Deficiente Bom