Modelo Cascata Alunos: Bruno Nocera Zanette Pedro Taques
Principais Características Gerenciamento Simples das etapas Também conhecido como "Ciclo de Vida Clássico", sugere uma abordagem sistemática e sequencial para o desenvolvimento de Software Na primeira vez que uma fase de desenvolvimento é completada, o desenvolvimento prossegue para a próxima fase e não há retorno. Cada fase de desenvolvimento prossegue em uma ordem estrita, sem qualquer sobreposição ou passos iterativos. Paradigma mais antigo da Engenharia de Software, com aceitação geral até meados da década de 1980
Modelo Gráfico Comunicação Planejamento * Iniciação do projeto * Levantamento de requistos * Estimativas * Cronogramação * Monitoração Modelagem * Análise * Projeto Construção * Codificação Implantação * Testes * Entrega * Manutenção * Feedback * Imagem copiada de: Seção 3.2, Figura 3.1, Pressman, 6º edição
Detalhamento das etapas: Comunicação e Planejamento Primeiramente é feita uma avaliação de viabilidade de desenvolvimento, focando-se três aspectos: Técnico: Dizem respeito a recursos de hardware e software disponíveis que serão necessários Econômico: Estimativa de custo do desenvolvimento considerando os valores de todos os recursos necessários. Operacional: Análise de mudanças de procedimentos e impactos que a criação do software pode trazer ou exigir da organização. Caso tenha se optado por desenvolver o software, inicia-se um minucioso Levantamento de Requisitos para que se possam levantar as funcionalidades que deverão estar presentes no software, de maneira que venha a atender às necessidades dos usuários. Esta fase deve gerar uma documentação formal resultante da abstração e entendimento da realidade.
Detalhamento das etapas: Modelagem Tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie, e se concentra em 4 atributos do programa: Estrutura de Dados Arquitetura de Software Detalhes Procedimentais Caracterização de Interfaces Faz-se uma especificação técnica do software, utilizando-se formalismos de algum método (ex: estruturado, essencial, orientação a objetos). Esta especificação deve ser detalhada passando a considerar questões de interface com o usuário e armazenamento de dados, chegando-se à documentação dos programas de computador que devem ser desenvolvidos.
Detalhamento das etapas: Construção Fase em que os programas são codificados em alguma linguagem de programação. Concluída a codificação dos programas, estes deverão ser submetidos a testes e simulações. Primeiramente realizam-se os testes individuais dos programas e, detectando-se qualquer problema, procede-se à correção. Os testes concentram-se: Nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas Nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados. Além disso, deve-se checar se há necessidade de alguma integração com outros sistemas e providenciar tal teste e ajustes.
Detalhamento das etapas: Implantação A fase de implantação refere-se à liberação dos programas (ou sistema) para utilização. Coloca-se o sistema em produção. Esta fase deve iniciar com um treinamento dos usuários envolvidos, para que adquiram a cultura e entendam a funcionalidade do sistema que irão manipular. O software deverá sofrer mudanças depois que for entregue ao cliente. Causas das mudanças: Erros Adaptação do software para acomodar mudanças em seu ambiente externo Exigência do cliente para acréscimos funcionais e de desempenho Durante
Resumo Atividades típicas de cada fase Comunicação e Planejamento Objetivos, funções e restrições são definidos, com ajuda de clientes e usuários, e servem como uma especificação do sistema, indicando o que deve ser implementado. Modelagem Envolve a descrição do sistema e do software em termos de unidades abstratas e de suas relações, indicando como o software deve ser implementado. Construção As unidades do software devem ser codificadas e testadas individualmente. As unidades são integradas e testadas Implantação O sistema é instalado e colocado em operação. A manutenção envolve a correção de erros e evolução do sistema para atender a novos requisitos.
Vantagens Permite controle departamental e gerencial. Oferece maior previsibilidade de prazos e custo: melhor planejamento e gerenciamento. Ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software É adequado quando os requisitos são bem entendidos, como em aperfeiçoamentos de um sistema existente.
Desvantagens Os projetos reais raramente seguem o fluxo sequencial que o modelo propõe. Muitas vezes é difícil para o cliente declarar todas as exigências explicitamente. O ciclo de vida clássico exige isso e tem dificuldade de acomodar a incerteza natural que existe no começo de muitos projetos. Dificuldade em realizar mudanças com o processo em andamento requisitos sempre mudam. O cliente deve ter paciência. Uma versão de trabalho dos programas não estará disponível até um ponto tardio do cronograma do projeto. Um erro crasso, se não for detectado até que o programa de trabalho seja revisto, pode ser desastroso. Estados de bloqueio: membros da equipe ficam esperando outros membros terminarem a sua parte.
Referências R S Pressman. Engenharia de Software, McGraw-Hill, 6a. ed., 2006. Link na biblioteca UFPR: http://200.17.203.155/index.php?codigo_sophia=223637 Rafael O. Lessa, Edson O. Lessa Junior, Modelos de Processos de Engenharia de Software, Link para o PDF: http://xps-project.googlecode.com/svn-history/r43/trunk/outros/02_artigo.pdf Bianca Zadrozny, Slides da aula 23 da matéria "Informática 1", 1º semestre de 2006, Link para o PDF: http://www.ic.uff.br/~bianca/informatica1-20061/index_arquivos/aula23-infi.pdf Inês A. G. Boaventura, Slides da Aula 02 da matéria "Engenharia de Software", 2º semestre de 2006, Link para o PDF: http://www.dcce.ibilce.unesp.br/~ines/cursos/eng_soft/2006/aula02.pdf Jair C. Leite, slides de aula, 2008, Link para o PDF: http://www.dimap.ufrn. br/~jair/es/slides/modelosdeprocesso.pdf Francisco Gerson A. de Meneses, slides de aula, "Unidade III Processos / Ciclos de Vida de Desenvolvimento de Software", Atualizado em 13/03/2009, Link para o PDF: http://www. ifpiparnaiba.edu.br/index.php?option=com_docman&task=doc_details&gid=171&itemid=79