Definição de Desenvolvimento de Aplicativos
Quantas vezes você já ouviu isso? » Existe um aplicativo para isso. » A sugestão útil oferecida por um amigo que acabou de ouvir você reclamar de alguma tarefa mundana que você prefere não ter de gastar seu precioso tempo livre a fim de conseguir fazer lista.
Um aplicativo é a gíria comum para um aplicativo ou programa de software que pode ser executado em um dispositivo de computador para realizar uma tarefa; ou seja, realizá-lo com mais facilidade e eficiência do que poderíamos fazer por nós mesmos como meros mortais. Se você tem um smartphone ou tablet, provavelmente já usou alguns aplicativos de jogos, aplicativos de notícias ou mesmo aplicativos de mapas para ajudá-lo a encontrar a cafeteria local. Desenvolvimento de aplicativos é o nome da profissão que emprega pessoas que projetam, desenvolvem e implantam esses aplicativos de computador.
Os desenvolvedores de aplicativos têm experiência em programação de computadores. Como você pode imaginar, o motivo pelo qual é chamado de desenvolvimento de aplicativo em vez de apenas programação de computador é porque há muito mais etapas envolvidas antes e depois da escrita real do programa de computador. Todas essas etapas são muito típicas e são chamadas coletivamente de ciclo de vida de desenvolvimento de sistemas .
Ciclo de Vida de Desenvolvimento de Sistemas
As etapas incluídas em um ciclo de vida de sistemas para desenvolver um aplicativo de computador são:
- Planejamento , que envolve a identificação de uma necessidade, a consideração de opções de solução e, possivelmente, a consideração dos recursos de aplicativos concorrentes.
- Análise , que envolve a documentação dos requisitos funcionais do aplicativo e a previsão de possíveis problemas que podem ser encontrados.
- Design , que envolve definir como o aplicativo funcionará e quais recursos e componentes ele terá.
- Construção , que é onde a programação real ocorre usando os requisitos e o projeto como uma diretriz.
- Teste , que envolve experimentar o aplicativo em busca de erros e confirmar se os requisitos documentados foram atendidos.
- Implementação , que envolve a disponibilização do aplicativo para uso das pessoas.
- Suporte , que envolve o monitoramento da experiência do usuário. Às vezes surgem recomendações para revisões. Se essas recomendações forem seguidas, também passarão pelo ciclo de vida.
Embora as etapas que devem ser executadas no design do aplicativo sejam sempre as mesmas, os métodos usados para executá-las podem ser diferentes. Os três tipos mais comuns de metodologias de desenvolvimento de aplicativos são: desenvolvimento em cascata, desenvolvimento ágil e desenvolvimento rápido de aplicativos (RAD).
Desenvolvimento de aplicativos em cascata
Em um projeto tipo cascata típico , cada fase do projeto SDLC é concluída sequencialmente em sua totalidade antes que a próxima fase seja iniciada. Depois que uma fase é concluída, normalmente a equipe não volta para ela. Este método depende muito da disponibilidade dos requisitos do projeto e de uma visão clara do resultado final. A equipe do projeto trabalha em cada fase do SDLC em conjunto e, em seguida, prossegue quando marcos específicos para cada fase são concluídos.
Um projeto em cascata não é a melhor escolha para uma situação em que se espera que o escopo do projeto mude no meio do caminho. Nem é uma alternativa apropriada para um projeto que pretende desenvolver partes do aplicativo ao longo do caminho com a intenção de potencialmente voltar e modificá-los após o feedback ter sido recebido.
Desenvolvimento Ágil de Aplicativos
O desenvolvimento ágil é uma metodologia que usa uma abordagem de desenvolvimento iterativa. É útil em situações em que se espera que haja mudanças de requisitos ou escopo. Cada iteração de desenvolvimento é chamada de sprint e durará um período específico de tempo. Por exemplo, um projeto pode ser composto de muitos sprints de seis semanas. Cada sprint passará por todas as fases do SDLC. No entanto, como um sprint ágil é muito mais curto do que um projeto em cascata típico, cada fase é concluída muito mais rápido e, às vezes, várias fases SDLC podem ser concluídas simultaneamente.
Este é um bom método a ser usado quando se espera que requisitos adicionais sejam adicionados em algum momento no futuro. Os requisitos preliminares podem ser implementados no primeiro sprint com recursos adicionais do produto adicionados nos sprints subsequentes. Como apenas um subconjunto de todos os requisitos é tratado em cada sprint, o risco associado a garantir que todos os requisitos do produto sejam entregues com precisão depois de eliminada apenas uma iteração do ciclo de vida. Outro benefício dessa abordagem é que ela acelera a entrega de pelo menos algumas funcionalidades do aplicativo e oferece a oportunidade de obter feedback sobre essas funções sem ter que esperar que todo o produto seja desenvolvido e entregue.
O desenvolvimento ágil acomoda mais prontamente mudanças e adições de requisitos porque o escopo de sprints futuros não é firme até que o sprint tenha iniciado. Se requisitos forem adicionados ou houver necessidade de alterar os recursos ao longo do caminho, o escopo de sprints futuros pode ser facilmente modificado para acomodar a mudança.
Desenvolvimento de Aplicação Rápida
O desenvolvimento rápido de aplicativos , ou desenvolvimento RAD, é uma abordagem iterativa que se concentra na velocidade. O objetivo é desenvolver e entregar um produto rapidamente, desenvolvendo vários componentes em paralelo. O design RAD é uma ótima opção para aplicativos que podem ser divididos em módulos, desenvolvidos separadamente e depois integrados no final. Uma desvantagem desse método é que precisa haver várias equipes de analistas, designers e desenvolvedores experientes disponíveis para trabalhar em cada um dos componentes do aplicativo simultaneamente.
Resumo da lição
Tudo bem, vamos reservar um ou dois minutos para revisar as informações importantes que aprendemos nesta lição. Nesta lição, aprendemos primeiro sobre aplicativos , a gíria comum para um aplicativo de software ou programa de software que pode ser executado em um dispositivo de computador para realizar uma tarefa, e que o desenvolvimento de aplicativos é o nome da profissão que emprega pessoas que projetam, desenvolver e implantar esses aplicativos de computador. Em seguida, aprendemos sobre as sete etapas do ciclo de vida de desenvolvimento de sistemas, que aprendemos incluir o seguinte:
- Planejamento , que envolve a identificação de uma necessidade, a consideração de opções de solução e, possivelmente, a consideração dos recursos de aplicativos concorrentes.
- Análise , que envolve a documentação dos requisitos funcionais do aplicativo e a previsão de possíveis problemas que podem ser encontrados.
- Design , que envolve definir como o aplicativo funcionará e quais recursos e componentes ele terá.
- Construção , que é onde a programação real ocorre usando os requisitos e o projeto como uma diretriz.
- Teste , que envolve experimentar o aplicativo em busca de erros e confirmar se os requisitos documentados foram atendidos.
- Implementação , que envolve a disponibilização do aplicativo para uso das pessoas.
- Suporte , que envolve o monitoramento da experiência do usuário.
Também aprendemos sobre os três tipos mais comuns de metodologias de desenvolvimento de aplicativos:
- O estilo cascata , no qual cada fase do projeto SDLC é concluída sequencialmente em sua totalidade antes que a próxima fase seja iniciada.
- A estratégia de desenvolvimento ágil é uma metodologia que usa uma abordagem de desenvolvimento iterativa que usa o termo ‘sprints’ para definir cada uma das etapas.
- Desenvolvimento rápido de aplicativos , ou desenvolvimento RAD, que é uma abordagem iterativa que se concentra na velocidade em que o objetivo é desenvolver e entregar um produto rapidamente, desenvolvendo vários componentes em paralelo.
Embora existam muitas metodologias de desenvolvimento de aplicativos, é importante lembrar que os desenvolvedores de aplicativos têm a oportunidade de selecionar a abordagem de desenvolvimento que melhor se adapta às suas circunstâncias. Eles considerarão as necessidades e limitações da equipe de desenvolvimento, de seu cliente e do produto sendo desenvolvido para selecionar a abordagem de desenvolvimento que oferece o maior número de benefícios para cada um.