Prévia do material em texto
Fabiana Besse | Desenvolvimento Rápido de Aplicações em Python | resumos e exercícios Análise e Desenvolvimento de Sistemas 1 RAD (RAPID APPLICATIONS DEVELOPMENT) A metodologia de desenvolvimento rápido de (RAD) é uma abordagem de desenvolvimento de software que se concentra em fornecer resultados mais rápidos do que outras metodologias tradicionais, como o modelo cascata. O modelo RAD foi criado em 1991 por James Martin, como uma resposta à demanda crescente por novas aplicações de software no mercado competitivo. CONCEITOS O RAD é baseado em três conceitos principais: colaboração, iteração e prototipação. A colaboração é a chave para o sucesso do RAD, pois envolve a participação de todos os stakeholders (indivíduos, grupos ou organizações) do projeto, incluindo desenvolvedores, usuários, gerentes de projetos e analistas de negócios. A iteração envolve a repetição de um ciclo de desenvolvimento, onde as funcionalidades são implementadas, testadas e refinadas com base no feedback dos usuários e outras partes interessadas. A prototipação envolve a criação de protótipos (versão preliminar ou parcial do que está sendo desenvolvido) de software que podem ser usados para validar os requisitos do projeto. PRINCÍPIOS O RAD se baseia em quatro princípios principais: rapidez, flexibilidade, qualidade e baixo custo. A rapidez refere-se à capacidade de entregar software funcional em um período de tempo curto. A flexibilidade refere-se à capacidade de adaptar o software às mudanças nos requisitos do projeto. A qualidade refere-se à capacidade de produzir software de alta qualidade que atenda aos requisitos do usuário. O baixo custo refere-se à capacidade de produzir software com um custo reduzido em comparação com outras metodologias de desenvolvimento de software. A formação de equipes pequenas com poder de decisão. Essa abordagem ajuda a reduzir a burocracia e a hierarquia, incentivando a colaboração e a criatividade na solução de problemas. Além disso, permite que a equipe seja mais responsável pelo sucesso do projeto e pelo cumprimento dos prazos. A entrega frequente de produtos. Essa abordagem ajuda a minimizar riscos, manter a equipe motivada e envolver o usuário final no processo de desenvolvimento. No entanto, é importante garantir que cada incremento entregue esteja completamente testado e funcionando corretamente antes de ser enviado para o usuário final. O desenvolvimento iterativo e incremental é uma das principais características dessa metodologia. Essa abordagem ajuda a reduzir o tempo de desenvolvimento, permitindo a entrega frequente de produtos que atendam aos requisitos funcionais e aos feedbacks dos usuários. Além disso, ajuda a minimizar riscos e a detectar e corrigir problemas mais cedo. A abordagem top-down significa que o desenvolvimento deve ser guiado por um planejamento estratégico de cima para baixo, começando pelo planejamento de alto nível e descendo gradualmente aos detalhes. Isso permite que a equipe de desenvolvimento tenha uma visão ampla do projeto desde o início e evite problemas de última hora. Fabiana Besse | Desenvolvimento Rápido de Aplicações em Python | resumos e exercícios Análise e Desenvolvimento de Sistemas 2 A utilização de ferramentas de automação (CASE) permite que os desenvolvedores criem e modifiquem o código-fonte com maior eficiência e rapidez. As ferramentas CASE incluem editores de diagramas, geradores de código, depuradores, entre outras. O uso dessas ferramentas ajuda a automatizar tarefas repetitivas, aumentar a produtividade e reduzir erros. FERRAMENTAS E TÉCNICAS Principais categorias de ferramentas que dão suporte à RAD: Integração de dados: ferramentas que permitem a integração e a harmonização de diferentes fontes de dados, tais como bancos de dados, arquivos e sistemas legados. Ambientes de desenvolvimento: ferramentas que oferecem um ambiente integrado para o desenvolvimento de software, incluindo editores de código, depuradores e recursos de gerenciamento de projetos. Ferramentas de coleta de requisitos: ferramentas que auxiliam na coleta e na documentação dos requisitos do usuário, permitindo que sejam facilmente compartilhados e modificados. Ferramentas de modelagem de dados: ferramentas que permitem a criação de modelos de dados que definem a estrutura e o relacionamento entre os dados usados na aplicação. Ferramentas de geração de código: ferramentas que geram automaticamente o código-fonte a partir de modelos de dados e especificações de requisitos. Resumo de algumas das técnicas : Modelo CBD: CBD significa Component-Based Development, que é um método que permite a reutilização de componentes antigos em novos projetos de software. Isso permite a redução de custos e o aumento da eficiência no desenvolvimento de novos sistemas. RepoGuard: É um framework que integra ferramentas de desenvolvimento com repositórios de código-fonte, permitindo a monitoração contínua de integridade do repositório e detecção de problemas em tempo real. Adição dinâmica ágil: Técnicas usadas para integrar a abordagem ágil no desenvolvimento de software, tornando o projeto mais adaptável às mudanças de requisitos ao longo do tempo. Método baseado em camadas para desenvolvimento rápido de software: Essa técnica é baseada no Extreme Programming (XP) e utiliza uma abordagem de camadas para a implementação de sistemas de software, o que pode aumentar a eficiência e escalabilidade do desenvolvimento. Análise de projeto de sistema baseado em simulação: Desenvolvimento de ferramentas ágeis baseadas em simulação para ajudar na tomada de decisões de design e arquitetura de sistemas de software. Uso de Ajax no RAD: Permite a prototipagem rápida de aplicativos e ferramentas da Web usando tecnologia Ajax (Asynchronous JavaScript and XML), o que pode acelerar o desenvolvimento e melhorar a usabilidade das aplicações. Desenvolvimento de aplicativos multiusuário em ambiente distribuído rapidamente: O uso de middleware de comunicação para desenvolver aplicativos multiusuário em ambiente distribuído, com a finalidade de acelerar o processo de desenvolvimento. Programação extrema: Adição de práticas de reutilização de código e testes automatizados ao Extreme Programming (XP), tornando o processo de desenvolvimento mais rápido e eficiente. JAD (Joint Application Design): Técnica de colaboração utilizada na fase de coleta de requisitos do processo de desenvolvimento de software. Ela envolve a reunião de um grupo de pessoas com diferentes perspectivas e Fabiana Besse | Desenvolvimento Rápido de Aplicações em Python | resumos e exercícios Análise e Desenvolvimento de Sistemas 3 habilidades, incluindo clientes, usuários finais, desenvolvedores e gerentes de projeto, para trabalhar juntos na definição de requisitos para um sistema de software. FASES DA RAD O ciclo de vida da RAD a abordagem James Martin consiste em quatro fases: planejamento de requisitos, design do usuário, construção e transição. Na fase de planejamento de requisitos, as partes interessadas definem as necessidades de negócios e requisitos do sistema. Na fase de design do usuário, são desenvolvidos modelos e protótipos com a interação de usuários e desenvolvedores. Na fase de construção, os protótipos são desenvolvidos e a interação continua para ajustes e melhorias. Na fase de transição, são realizados processamentos de dados, testes, mudanças para o novo sistema e treinamento do usuário. A abordagem de James Kerr para a divisão das fases da RAD inclui cinco fases: Modelagem de Negócios, Modelagem de Dados, Modelagem de Processos, Geração da Aplicação Negócios e Teste e Modificação. Na Modelagem de negócios, são coletadas informaçõessobre os requisitos funcionais do sistema de várias fontes relacionadas aos negócios, para modelar o ciclo de vida dos dados. Na Modelagem de Dados, as informações coletadas são analisadas e agrupadas em conjuntos de objetos de dados essenciais para os negócios. Na Modelagem de Processos, os grupos de dados coletados são analisados sob o ponto de vista de processamento, para estabelecer o fluxo de informações de negócios necessário para atingir objetivos de negócios específicos. Na Geração da Aplicação, todas as informações coletadas são codificadas e é construído o sistema que será usado para criar o protótipo. Na fase de Teste e Modificação, os protótipos são testados independentemente durante cada iteração, com o objetivo de identificar e adaptar os componentes para criar o produto mais eficaz. QUANDO APLICAR RAD A metodologia RAD é adequada para projetos de pequena escala com equipes otimizadas de quatro a oito pessoas, em que a interatividade do front- end é uma característica importante. É necessário o envolvimento das partes interessadas, além do poder das equipes para tomar decisões. A metodologia funciona bem para sistemas que podem ser divididos em módulos, em que a interatividade com o usuário é importante, há profissionais qualificados e o cliente entende a importância da interatividade com os desenvolvedores. É esperado que a RAD funcione bem em projetos em que já se sabe que haverá mudanças durante o processo de desenvolvimento. QUANDO NÃO APLICAR RAD A RAD não é adequada para sistemas críticos em tempo real, sistemas de infraestrutura muito grandes e quando os requisitos funcionais precisam ser especificados detalhadamente no início do projeto. Também não é adequada quando o sistema deve interagir com outros sistemas já existentes. PYTHON E AS FERRAMENTAS (FRAMEWORK) PARA O DESENVOLVIMENTO RAD Python é uma linguagem de programação de alto nível, interpretada, orientada a objetos e com tipagem dinâmica, que tem sido amplamente utilizada em projetos de desenvolvimento rápido de software (RAD). Facilidade de uso: Python tem uma sintaxe simples e intuitiva, o que torna mais fácil para os desenvolvedores escreverem e lerem o código. Além disso, Python tem uma grande comunidade de usuários e muita documentação, o que torna mais fácil para os desenvolvedores encontrar ajuda e aprender a linguagem. Bibliotecas ricas: Python tem uma grande variedade de bibliotecas de software que podem Fabiana Besse | Desenvolvimento Rápido de Aplicações em Python | resumos e exercícios Análise e Desenvolvimento de Sistemas 4 ser usadas para uma variedade de tarefas, como desenvolvimento web, ciência de dados, inteligência artificial, processamento de imagem e som, entre outras. Essas bibliotecas ajudam a acelerar o desenvolvimento e tornam mais fácil para os desenvolvedores criar funcionalidades complexas com rapidez. Frameworks para desenvolvimento web: Python tem uma grande variedade de frameworks (pacotes de códigos) para desenvolvimento web, como o Django, Flask, Pyramid, entre outros. Esses frameworks fornecem uma estrutura para o desenvolvimento web, o que permite que os desenvolvedores criem aplicativos web com rapidez, facilidade e segurança. Produtividade: A combinação de facilidade de uso, bibliotecas ricas e frameworks de desenvolvimento web torna Python uma excelente escolha para o desenvolvimento RAD. Com Python e seus frameworks, os desenvolvedores podem criar sistemas funcionais rapidamente, permitindo que o projeto evolua iterativamente, baseado no feedback do usuário. EXERCÍCIOS RESOLVIDOS As fases da metodologia RAD estão interrelacionadas entre si no sentido que apenas quando uma fase estiver concluída, a próxima pode iniciar. Em relação às fases da metodologia de desenvolvimento RAD, É CORRETO DIZER QUE: A resposta correta é: O agrupamento dos dados em objetos de negócio é feito na fase de modelagem de dados; A metodologia do RAD possui diversas vantagens e desvantagens em relação às metodologias de desenvolvimento tradicionais. Nesse sentido, selecione a opção CORRETA sobre as características da metodologia RAD: A resposta correta é: Diferente de métodos tradicionais de desenvolvimento, a RAD demanda por intensa colaboração entre desenvolvedores e usuários; A Modelagem de Negócios é uma das fases da RAD. Nela, aspectos como necessidades do negócio e propósito do sistema são tratadas. Nesse sentido, selecione a opção CORRETA a respeito da Modelagem de Negócios: A resposta correta é: Identifica as informações relevantes sobre o negócio. A RAD é uma metodologia de desenvolvimento que se adequa bem a processos dinâmicos. Portanto é natural que a aplicação de metodologias tradicionais de engenharia de requisitos tenha restrições de aplicação para ela. Nesse sentido, selecione a opção CORRETA a respeito dessas restrições: A resposta correta é: Na RAD, o projeto vai incorporando sugestões dos usuários ao longo das iterações. A escolha da linguagem Python para um projeto RAD tem diversas justificativas, entre elas está a possibilidade de usar frameworks com diversas finalidades. Entre esses frameworks, está o Django. Nesse sentido, selecione a opção CORRETA sobre o framework Django: A resposta correta é: Possui licença de software livre e é aplicado para aplicações WEB. A metodologia RAD trabalha com iterações e incrementos ao longo do desenvolvimento do software para que seja entregue rapidamente e com a minimização de erros. Apesar das diversas vantagens, também possui desvantagens. Nesse sentido, selecione a opção CORRETA a respeito das vantagens da metodologia RAD: A resposta correta é: Podem ocorrer rápidas revisões iniciais; A Modelagem de Dados é uma das fases da RAD que por objetivo identificar entidades, detalhá-las, relacioná-las entre si e evoluir até o detalhe de como será implementada. Nesse sentido, selecione a opção CORRETA a respeito da Modelagem de Dados: Fabiana Besse | Desenvolvimento Rápido de Aplicações em Python | resumos e exercícios Análise e Desenvolvimento de Sistemas 5 A resposta correta é: O diagrama de entidade- relacionamento pode ser utilizado nessa fase. Um dos princípios do RAD é "Todas as mudanças durante o desenvolvimento são reversíveis". Nesse sentido, selecione a opção CORRETA: A resposta correta é: A versão atual do protótipo pode não corresponder à expectativa do cliente, portanto é adequado retornar a versão anterior que já está aprovada pelo cliente; A metodologia de desenvolvimento RAD possui diversas fases, cada uma com objetivos específicos de modo a desenvolver o sistema rápido e em conformidade com os requisitos de negócio. Nesse sentido, selecione a opção CORRETA as fases do RAD: A resposta correta é: A modelagem de negócios é obtida através das análises do fluxo e da distribuição de informações. A JAD (Joint Application Development) é a principal técnica aplicada para levantamento de requisitos em projetos que utilizam RAD. A respeito da JAD, selecione a opção CORRETA: Trata-se de oficinas de trabalho onde desenvolvedores e usuários discutem sobre o projeto e suas necessidades. REFERÊNCIAS BERGER, H.; BEYNON-DAVIES, P.: The utility of rapid application development in large- scale, complex projects. Information Systems Journal, 2009. 19 (6), 549– 570. Fitzgerald, B. A Preliminary Investigation of Rapid Application Development in Practice, Proceedings of 6th International Conference on Information Systems Methodologies, editors Wood-Harper AT, Jayarantna N., Wood J R G, pp. 77–87, 1998. Kerr, J.; Hunter, R. Inside RAD: How to Build Fully Functional Computer Systems in 90 Days or Less. New York: McGraw-Hill, 1994. Martin, J. Rapid Application Development,Macmillan, USA, 1991. NAZ, R.; KHAN, M. N. A. Rapid applications development techniques: A critical review, Int. J. Softw. Eng. its Appl., vol. 9, nº. 11, pp. 163–176, 2015.