245
Engenharia de Software
UNICESUMAR
5
Engenharia de Software
UNASP
2
Engenharia de Software
UNINTER
2
Engenharia de Software
UNISALES
7
Engenharia de Software
FMU
1
Engenharia de Software
UVA
3
Engenharia de Software
FAESA
11
Engenharia de Software
UNIP
11
Engenharia de Software
UNIP
11
Engenharia de Software
UNIP
Texto de pré-visualização
Lembrese sua opinião precisa ser baseada e justificada respaldando cientificamente seu conhecimento e pensamento pois não serão aceitos trechos eou postagens sem as devidas referências Então vamos lá 1 Para começar leia o texto a seguir Desenvolvimento de Aplicativo para Facilitação de Localização Urbana 1 Introdução Uma empresa de desenvolvimento de software recebeu a demanda de criar um aplicativo para ajudar moradores e turistas a se deslocarem dentro de uma grande cidade O objetivo é oferecer informações detalhadas sobre rotas transporte público pontos de interesse e acessibilidade utilizando tecnologias modernas de geolocalização e inteligência artificial 2 Descrição do Problema Grandes cidades frequentemente enfrentam desafios relacionados à mobilidade urbana como congestionamentos dificuldade em encontrar transporte adequado e falta de informações atualizadas sobre caminhos mais rápidos O problema principal é a ausência de uma plataforma unificada que ofereça orientações precisas e integradas com diferentes meios de transporte 3 Requisitos do Sistema Funcionais o Exibir rotas personalizadas para diferentes meios de transporte ônibus metrô bicicletas compartilhadas caminhada etc o Informar o tempo estimado de deslocamento considerando o trânsito em tempo real o Fornecer sugestões baseadas em preferências do usuário exemplo rotas acessíveis para cadeirantes o Integração com mapas interativos e realidade aumentada para navegação visual o Notificações sobre mudanças no trânsito horários de transporte e possíveis interrupções Não Funcionais o Alta disponibilidade para garantir funcionamento contínuo o Interface intuitiva e acessível para diferentes perfis de usuários o Tempo de resposta ágil para consultas em tempo real 4 Modelos de Desenvolvimento Considerados Dado o escopo do projeto a equipe avaliou diferentes abordagens para o desenvolvimento do aplicativo Modelo Cascata Rejeitado devido à falta de flexibilidade para mudanças frequentes no escopo e nas necessidades dos usuários Scrum Metodologia Ágil Escolhido por permitir entregas incrementais adaptação às necessidades do mercado e colaboração contínua entre os stakeholders 5 Arquitetura e Tecnologias Utilizadas Backend Desenvolvido com Nodejs e banco de dados NoSQL MongoDB para armazenar informações geográficas e dados dinâmicos Frontend Aplicativo desenvolvido em React Native para permitir compatibilidade entre Android e iOS APIs e Integrações Uso da API do Google Maps OpenStreetMap e integração com sistemas de transporte público Infraestrutura Hospedagem em nuvem utilizando AWS para escalabilidade e confiabilidade 6 Testes e Verificação de Qualidade A equipe adotou estratégias de testes para garantir a funcionalidade e a usabilidade do aplicativo Testes unitários e de integração automatizados Testes de usabilidade com um grupo de usuários beta Simulações de alto tráfego para garantir desempenho sob demanda 7 Desafios e Soluções Atualização de dados em tempo real Implementação de um sistema de cache e requisições assíncronas para evitar lentidão Acessibilidade Design adaptado para pessoas com deficiência visual incluindo suporte a leitores de tela e comandos por voz Privacidade e Segurança Uso de criptografia para proteger dados dos usuários e conformidade com regulamentações de proteção de dados 2 Analisando a situação detalhada acima e diante do contexto exposto ao longo de nossa disciplina elabore o seu texto argumentativodissertativo e responda aos seguintes questionamentos Considerando que a empresa precisa entender as necessidades dos usuários antes de desenvolver o aplicativo quais técnicas de levantamento de requisitos você recomendaria Justifique sua escolha e explique como elas impactariam a qualidade do software Com base nos desafios e na natureza do projeto qual modelo de processo de software cascata incremental ágil etc você escolheria para o desenvolvimento do aplicativo Argumente sua resposta destacando os benefícios e desafios dessa abordagem Para garantir a confiabilidade e usabilidade do aplicativo quais estratégias de verificação e validação seriam mais apropriadas Justifique como a adoção dessas práticas pode reduzir falhas e melhorar a experiência do usuário Após o lançamento do aplicativo a equipe de desenvolvimento precisa lidar com atualizações e suporte contínuo Quais estratégias de manutenção você recomendaria para garantir a evolução do software e a satisfação dos usuários Justifique sua escolha com base em boas práticas de engenharia de software 3 Importante Faça uso da pesquisa buscando sites oficiais e de instituições de pesquisa reconhecidas Seguem algumas dicas httpsblogvincocombrlevantamentoderequisitosdesoftware httpseaduepgbraplsigmaassetseditaisPS0059E0080pdf httpsmondaycomblogptdesenvolvimentometodologiasdedesenvolvimentode software httpswwwdevmediacombrtecnicasparalevantamentoderequisitos9151 Após realizar suas reflexões elabore um pequeno texto contendo o máximo de 20 a 30 linhas expondo sua argumentação acerca do solicitado Caso exista inobservância ao tema proposto transgressão as instruções de elaboração e não atendimento a forma de envio da atividade que dever ser anexada e enviada formato pdf ou docx Windows informamos que a avaliação não poderá ser corrigida Não esqueça de realizar com antecedência sua atividade ContagemMinas Gerais 2025 SEU NOME COMPLETO AQUI CURSO SUPERIOR EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ENGENHARIA DE SOFTWARE ContagemMinas Gerais 2025 ENGENHARIA DE SOFTWARE Trabalho textual apresentado como requisito parcial para a obtenção de média semestral Orientadora Profa xxxxxxxx SEU NOME COMPLETO AQUI SUMÁRIO 1 DESENVOLVIMENTO3 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO13 1 DESENVOLVIMENTO 11 TAREFA 1 CONSIDERANDO QUE A EMPRESA PRECISA ENTENDER AS NECESSIDADES DOS USUÁRIOS ANTES DE DESENVOLVER O APLICATIVO QUAIS TÉCNICAS DE LEVANTAMENTO DE REQUISITOS VOCÊ RECOMENDARIA JUSTIFIQUE SUA ESCOLHA E EXPLIQUE COMO ELAS IMPACTARIAM A QUALIDADE DO SOFTWARE Recomendaria a aplicação de uma combinação das seguintes técnicas de levantamento de requisitos Entrevistas Realizar entrevistas semiestruturadas com diferentes grupos de usuários potenciais moradores turistas pessoas com mobilidade reduzida é crucial para obter informações detalhadas sobre suas necessidades expectativas e dores em relação à mobilidade urbana e a um aplicativo que a facilite A natureza aberta das entrevistas permite explorar cenários de uso específicos e descobrir requisitos implícitos que podem não ser evidentes por meio de outras técnicas Questionários e Enquetes Para alcançar um número maior de pessoas e obter dados quantitativos sobre as preferências e necessidades gerais a aplicação de questionários online ou presenciais seria valiosa Isso permitiria coletar informações sobre os meios de transporte mais utilizados os pontos de interesse mais relevantes e as funcionalidades desejadas de forma escalável Workshops de Requisitos Facilitated Workshops Promover workshops com stakeholders chave representantes da empresa de desenvolvimento potenciais usuários especialistas em mobilidade urbana facilitaria a colaboração e a construção de um entendimento comum sobre os objetivos do aplicativo e seus requisitos Essa técnica é eficaz para identificar conflitos priorizar funcionalidades e garantir que todas as partes interessadas estejam alinhadas Análise de Documentos Existentes e Sistemas Similares Analisar documentos relevantes sobre mobilidade urbana na cidade como planos de transporte público e guias turísticos pode fornecer informações valiosas sobre os dados que o aplicativo precisará integrar Além disso a análise de aplicativos de 3 localização existentes análise de concorrência ou benchmarking pode inspirar funcionalidades e identificar pontos fortes e fracos a serem considerados Justificativa da Escolha A escolha dessas técnicas se baseia na necessidade de obter uma compreensão abrangente das necessidades dos usuários combinando dados qualitativos e quantitativos e promovendo a colaboração entre os stakeholders As entrevistas fornecem profundidade e contexto os questionários oferecem alcance e generalização os workshops facilitam o consenso e a priorização e a análise de documentos e sistemas existentes fornece informações de base e inspiração Impacto na Qualidade do Software A aplicação dessas técnicas de levantamento de requisitos centradas no usuário impactaria positivamente a qualidade do software das seguintes maneiras Relevância Ao entender as reais necessidades dos usuários o aplicativo terá maior probabilidade de ser útil e adotado atendendo às suas expectativas de forma eficaz Completude A combinação de diferentes técnicas ajuda a identificar uma gama mais ampla de requisitos tanto funcionais quanto não funcionais reduzindo a chance de omitir funcionalidades importantes Precisão A clareza obtida através da interação direta com os usuários e stakeholders ajuda a definir os requisitos de forma mais precisa minimizando ambiguidades e malentendidos que podem levar a erros de desenvolvimento Usabilidade Ao compreender as necessidades e os cenários de uso dos usuários a equipe de desenvolvimento pode projetar uma interface intuitiva e acessível focada na experiência do usuário Redução de Custos Identificar e corrigir falhas ou omissões nos requisitos na fase inicial do projeto é significativamente mais econômico do que fazê lo durante o desenvolvimento ou após o lançamento Requisitos bem definidos desde o início evitam retrabalho e custos adicionais 4 12 TAREFA 2 COM BASE NOS DESAFIOS E NA NATUREZA DO PROJETO QUAL MODELO DE PROCESSO DE SOFTWARE CASCATA INCREMENTAL ÁGIL ETC VOCÊ ESCOLHERIA PARA O DESENVOLVIMENTO DO APLICATIVO ARGUMENTE SUA RESPOSTA DESTACANDO OS BENEFÍCIOS E DESAFIOS DESSA ABORDAGEM Para o desenvolvimento deste aplicativo de facilitação de localização urbana eu escolheria o modelo de processo de software Ágil especificamente o framework Scrum Argumentos e Benefícios da Abordagem Ágil Scrum Flexibilidade e Adaptabilidade O desenvolvimento de um aplicativo para um ambiente urbano dinâmico como uma grande cidade inevitavelmente envolverá mudanças nos requisitos Informações sobre transporte público tráfego em tempo real e até mesmo os pontos de interesse podem mudar O Scrum com seus ciclos de desenvolvimento curtos Sprints e a capacidade de incorporar feedback a cada iteração oferece a flexibilidade necessária para se adaptar a essas mudanças de forma eficiente Entrega Contínua de Valor Ao final de cada Sprint um incremento funcional do software é entregue Isso permite que os stakeholders a empresa de software e potencialmente usuários em fases iniciais visualizem o progresso e forneçam feedback contínuo Essa entrega incremental garante que o desenvolvimento esteja sempre alinhado com as necessidades do mercado e dos usuários maximizando o valor entregue desde cedo Colaboração e Comunicação O Scrum enfatiza a comunicação constante e a colaboração entre a equipe de desenvolvimento e os stakeholders Reuniões diárias Daily Scrums revisões de Sprint e retrospectivas promovem um ambiente de transparência e facilitam a identificação e resolução rápida de problemas Essa comunicação aberta é crucial para garantir que todos estejam na mesma página e que o produto final atenda às expectativas Foco no Cliente e Feedback Precoce A participação ativa dos stakeholders nas revisões de Sprint permite que eles forneçam feedback valioso sobre o incremento entregue Esse feedback precoce e frequente ajuda a garantir que o aplicativo esteja se desenvolvendo na direção correta e permite ajustes antes 5 que grandes quantidades de trabalho sejam investidas em funcionalidades que não atendem às necessidades Redução de Riscos A abordagem iterativa e incremental do Scrum permite identificar e mitigar riscos em estágios iniciais do projeto Ao dividir o projeto em Sprints menores e entregar funcionalidades de forma contínua a equipe pode identificar problemas técnicos ou de requisitos mais cedo e tomar medidas corretivas Desafios da Abordagem Ágil Scrum Gerenciamento da Mudança Embora a adaptabilidade seja um benefício gerenciar um grande volume de mudanças nos requisitos pode ser desafiador e requer um controle de escopo eficaz É importante ter um Product Owner forte que possa priorizar e gerenciar o backlog de forma eficiente Comprometimento da Equipe O sucesso do Scrum depende do comprometimento e da autogestão da equipe de desenvolvimento Todos os membros precisam estar engajados e dispostos a colaborar ativamente Necessidade de Colaboração Constante A comunicação frequente e a colaboração exigem tempo e esforço de todos os envolvidos Pode haver um overhead de comunicação se não for gerenciado adequadamente Documentação Em metodologias ágeis a documentação tende a ser menos extensa do que em modelos tradicionais como o Cascata É crucial garantir que a documentação necessária para a manutenção futura e para novos membros da equipe seja mantida de forma adequada sem sobrecarregar o processo de desenvolvimento Em resumo a natureza dinâmica de um aplicativo de localização urbana com a necessidade de integrar dados em tempo real e responder às necessidades evolutivas dos usuários torna a abordagem ágil Scrum a mais adequada Seus benefícios em termos de flexibilidade entrega contínua de valor colaboração e foco no cliente superam os desafios desde que a equipe esteja bem treinada comprometida e haja uma gestão eficaz do processo O modelo Cascata com sua natureza sequencial e pouca flexibilidade para mudanças seria inadequado para este tipo de projeto onde os requisitos podem evoluir rapidamente Modelos incrementais podem oferecer alguma flexibilidade mas o Scrum com sua estrutura bem definida para lidar com mudanças e feedback contínuo se alinha melhor com a 6 complexidade e a natureza dinâmica deste aplicativo 13 TAREFA 3 PARA GARANTIR A CONFIABILIDADE E USABILIDADE DO APLICATIVO QUAIS ESTRATÉGIAS DE VERIFICAÇÃO E VALIDAÇÃO SERIAM MAIS APROPRIADAS JUSTIFIQUE COMO A ADOÇÃO DESSAS PRÁTICAS PODE REDUZIR FALHAS E MELHORAR A EXPERIÊNCIA DO USUÁRIO Para garantir a confiabilidade e usabilidade do aplicativo de facilitação de localização urbana as seguintes estratégias de verificação e validação seriam mais apropriadas 1 Testes Unitários e de Integração Automatizados Descrição Testes unitários focam em verificar a funcionalidade correta de componentes individuais do software classes funções módulos Testes de integração garantem que esses diferentes componentes funcionem corretamente em conjunto A automação desses testes permite que sejam executados frequentemente e de forma consistente ao longo do ciclo de desenvolvimento Justificativa A automação garante que cada parte do código e a interação entre elas funcionem conforme o esperado Isso ajuda a identificar e corrigir erros falhas em estágios iniciais do desenvolvimento antes que se tornem mais complexos e caros de solucionar Ao garantir que os componentes individuais e suas interações sejam robustos a confiabilidade geral do aplicativo aumenta 2 Testes de Usabilidade com Usuários Beta Descrição Envolver um grupo de usuários representativos do públicoalvo moradores turistas pessoas com diferentes níveis de familiaridade com tecnologia para interagir com o aplicativo em um ambiente real ou simulado Observar seu comportamento coletar feedback por meio de entrevistas e questionários e identificar problemas de usabilidade Justificativa Testes com usuários reais fornecem insights valiosos sobre a facilidade de uso a intuitividade da interface a clareza da navegação e a satisfação geral com o aplicativo Identificar e corrigir problemas de usabilidade antes do lançamento garante que o aplicativo seja fácil de usar e atenda às necessidades dos usuários de forma eficaz melhorando significativamente a experiência do usuário e aumentando a probabilidade de adoção 7 3 Testes de Desempenho e Carga Descrição Simular o uso do aplicativo por um grande número de usuários simultaneamente e em condições de carga elevada para verificar sua capacidade de resposta estabilidade e escalabilidade Isso inclui testar os tempos de resposta o consumo de recursos CPU memória e a capacidade de lidar com picos de acesso Justificativa Um aplicativo de localização urbana precisa ser responsivo e confiável mesmo quando muitos usuários o acessam ao mesmo tempo especialmente em horários de pico ou em eventos Testes de desempenho e carga garantem que o aplicativo possa lidar com essas situações sem falhas lentidão ou indisponibilidade mantendo a confiabilidade e proporcionando uma experiência de usuário fluida e eficiente 4 Testes de Segurança Descrição Realizar testes específicos para identificar vulnerabilidades de segurança no aplicativo como falhas de autenticação injeção de código vazamento de dados e outras ameaças potenciais Isso pode incluir testes de penetração pentests e análise de código estática e dinâmica Justificativa Lidar com informações de localização e dados pessoais dos usuários exige um alto nível de segurança Testes de segurança garantem que o aplicativo esteja protegido contra ameaças prevenindo o acesso não autorizado a dados sensíveis e mantendo a confiança dos usuários na segurança e privacidade do aplicativo A segurança é um aspecto fundamental da confiabilidade Como a Adoção Dessas Práticas Reduz Falhas e Melhora a Experiência do Usuário A adoção dessas práticas de verificação e validação impacta positivamente a qualidade do software reduzindo falhas e melhorando a experiência do usuário da seguinte forma Detecção Precoce de Falhas Testes unitários e de integração automatizados identificam erros de codificação e problemas de integração em estágios iniciais do desenvolvimento evitando que essas falhas cheguem aos 8 usuários Correção Eficaz Ao identificar falhas precocemente a correção se torna mais fácil e menos custosa pois o contexto do código ainda está fresco na mente dos desenvolvedores Melhora da Usabilidade Os testes de usabilidade fornecem feedback direto dos usuários sobre a facilidade de uso do aplicativo permitindo que a equipe de desenvolvimento faça ajustes na interface e na navegação para tornálo mais intuitivo e agradável de usar Garantia de Desempenho Testes de desempenho e carga asseguram que o aplicativo seja rápido e responsivo mesmo sob condições de uso intenso evitando frustrações e garantindo uma experiência de usuário fluida Aumento da Confiabilidade Ao garantir que os componentes funcionem corretamente que o aplicativo seja capaz de lidar com a demanda e que seja seguro a confiabilidade geral do sistema aumenta construindo a confiança dos usuários Redução de Custos a Longo Prazo Identificar e corrigir problemas antes do lançamento é significativamente mais barato do que lidar com falhas e reclamações de usuários após o lançamento o que pode prejudicar a reputação do aplicativo e gerar custos adicionais de manutenção e correção Em resumo uma estratégia abrangente de verificação e validação que inclui testes automatizados testes de usabilidade testes de desempenho e testes de segurança é essencial para garantir que o aplicativo de facilitação de localização urbana seja confiável fácil de usar e seguro proporcionando uma experiência positiva para o usuário e aumentando suas chances de sucesso 14 TAREFA 4 APÓS O LANÇAMENTO DO APLICATIVO A EQUIPE DE DESENVOLVIMENTO PRECISA LIDAR COM ATUALIZAÇÕES E SUPORTE CONTÍNUO QUAIS ESTRATÉGIAS DE MANUTENÇÃO VOCÊ RECOMENDARIA PARA GARANTIR A EVOLUÇÃO DO SOFTWARE E A SATISFAÇÃO DOS USUÁRIOS JUSTIFIQUE SUA ESCOLHA COM BASE EM BOAS PRÁTICAS DE ENGENHARIA DE SOFTWARE Para garantir a evolução contínua do aplicativo e a satisfação dos usuários após o lançamento recomendo a implementação das seguintes estratégias 9 de manutenção baseadas em boas práticas de engenharia de software 1 Manutenção Corretiva Descrição Estabelecer um sistema eficiente para que os usuários possam reportar bugs e problemas encontrados no aplicativo A equipe de desenvolvimento deve ter um processo claro para receber priorizar investigar corrigir e liberar atualizações com as correções necessárias Justificativa Mesmo com testes extensivos é inevitável que alguns defeitos passem para a versão final Responder prontamente e corrigir esses problemas é crucial para manter a confiabilidade do aplicativo e a satisfação dos usuários Ignorar ou demorar para corrigir bugs pode levar à frustração e ao abandono do aplicativo Boas práticas incluem o uso de um sistema de rastreamento de issues como Jira Asana Trello definição de níveis de prioridade para os bugs e comunicação transparente com os usuários sobre o status das correções 2 Manutenção Adaptativa Descrição Monitorar continuamente as mudanças no ambiente em que o aplicativo opera como novas versões de sistemas operacionais Android iOS atualizações de APIs de terceiros Google Maps OpenStreetMap sistemas de transporte público e novas regulamentações como leis de privacidade de dados Realizar as adaptações necessárias para garantir que o aplicativo continue funcionando corretamente e seja compatível com essas mudanças Justificativa A tecnologia está em constante evolução Não adaptar o aplicativo a novas versões de sistemas operacionais ou a mudanças em APIs de terceiros pode levar a falhas de funcionamento perda de funcionalidades ou problemas de segurança A manutenção adaptativa proativa garante a longevidade e a usabilidade contínua do aplicativo Boas práticas incluem o acompanhamento regular das novidades tecnológicas relevantes a realização de testes de compatibilidade e a atualização das dependências do projeto de forma planejada 3 Manutenção Perfectiva Descrição Implementar novas funcionalidades melhorar o desempenho otimizar a interface do usuário e refatorar o código com base no 10 feedback dos usuários nas tendências do mercado e nas novas tecnologias disponíveis Essa estratégia visa aprimorar o aplicativo ao longo do tempo tornando o mais atraente eficiente e competitivo Justificativa A manutenção perfectiva é essencial para manter o aplicativo relevante e competitivo Ao incorporar o feedback dos usuários e inovar com novas funcionalidades a equipe demonstra um compromisso com a melhoria contínua e aumenta a satisfação e o engajamento dos usuários Boas práticas incluem a coleta regular de feedback dos usuários por meio de pesquisas avaliações na loja de aplicativos canais de suporte a análise de dados de uso para identificar áreas de melhoria e a priorização de novas funcionalidades com base no valor para o usuário e no alinhamento com a visão do produto 4 Manutenção Preventiva Descrição Realizar atividades proativas para prevenir problemas futuros como refatoração de código complexo ou obsoleto otimização de banco de dados atualização de bibliotecas e frameworks para versões mais recentes e seguras e melhoria da arquitetura do software Justificativa A manutenção preventiva visa reduzir a probabilidade de falhas futuras melhorar a manutenibilidade do código e aumentar a estabilidade e o desempenho do aplicativo a longo prazo Ignorar a saúde interna do código pode levar a um aumento da complexidade tornando futuras atualizações mais difíceis e arriscadas Boas práticas incluem a realização regular de revisões de código a aplicação de princípios de design de software robustos e a alocação de tempo para atividades de refatoração e melhoria da arquitetura Justificativa Geral com Base em Boas Práticas de Engenharia de Software A implementação dessas quatro estratégias de manutenção é fundamental para seguir boas práticas de engenharia de software pois Garante a Qualidade Contínua A manutenção corretiva e preventiva focam em manter a qualidade técnica do software corrigindo falhas e evitando o acúmulo de dívida técnica Atende às Necessidades dos Usuários A manutenção adaptativa e perfectiva garantem que o aplicativo continue atendendo às necessidades dos usuários em um ambiente em constante mudança e evoluindo com novas 11 funcionalidades que agregam valor Promove a Sustentabilidade do Software Uma estratégia de manutenção bem definida garante que o aplicativo possa ser mantido atualizado e evoluído a longo prazo evitando a obsolescência e maximizando o retorno sobre o investimento Fomenta a Satisfação do Usuário Ao responder a problemas manter o aplicativo atualizado e introduzir melhorias relevantes a equipe demonstra um compromisso com a experiência do usuário o que leva a maior satisfação e lealdade Em resumo uma abordagem holística para a manutenção de software que abrange a correção de erros a adaptação a mudanças a implementação de melhorias e a prevenção de problemas futuros é essencial para garantir a longevidade a relevância e a satisfação dos usuários de um aplicativo como este Ignorar qualquer uma dessas áreas pode levar a problemas de qualidade perda de usuários e em última análise ao insucesso do aplicativo 12 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO O desenvolvimento de um aplicativo de facilitação de localização urbana exige uma abordagem estratégica em todas as suas fases Inicialmente para entender as reais necessidades dos usuários a combinação de entrevistas questionários workshops e análise de sistemas existentes Wiegers Beatty 2013 Sommerville 2011 se mostra crucial Essas técnicas garantem a relevância completude e precisão dos requisitos impactando diretamente a qualidade do software ao evitar retrabalho e focar nas expectativas dos usuários Dado o dinamismo do ambiente urbano e a necessidade de adaptação contínua o modelo Ágil especificamente o Scrum Schwaber Sutherland 2020 emerge como a escolha mais apropriada Sua flexibilidade entrega incremental de valor e foco na colaboração permitem responder eficientemente às mudanças e garantir um produto alinhado com as necessidades do mercado Para assegurar a confiabilidade e usabilidade do aplicativo uma estratégia robusta de verificação e validação é essencial Testes unitários e de integração automatizados Myers Sandler Badgett 2011 testes de usabilidade com usuários beta Nielsen 1993 testes de desempenho e carga Smith Williams 2001 e testes de segurança garantem a detecção precoce de falhas a otimização da experiência do usuário e a proteção de dados sensíveis Após o lançamento a manutenção contínua é vital para a evolução do software e a satisfação dos usuários Estratégias como a manutenção corretiva adaptativa perfectiva e preventiva Sommerville 2011 Pressman Maxim 2016 garantem a correção de bugs a compatibilidade com novas tecnologias a implementação de melhorias e a prevenção de problemas futuros assegurando a longevidade e a relevância do aplicativo A adoção dessas práticas fundamentadas em princípios sólidos de engenharia de software é essencial para o sucesso a longo prazo do aplicativo de facilitação de localização urbana 13 ContagemMinas Gerais 2025 SEU NOME COMPLETO AQUI CURSO SUPERIOR EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ENGENHARIA DE SOFTWARE ContagemMinas Gerais 2025 ENGENHARIA DE SOFTWARE Trabalho textual apresentado como requisito parcial para a obtenção de média semestral Orientadora Profa xxxxxxxx SEU NOME COMPLETO AQUI SUMÁRIO 1 DESENVOLVIMENTO 3 11 TAREFA 1 CONSIDERANDO QUE A EMPRESA PRECISA ENTENDER AS NECESSIDADES DOS USUÁRIOS ANTES DE DESENVOLVER O APLICATIVO QUAIS TÉCNICAS DE LEVANTAMENTO DE REQUISITOS VOCÊ RECOMENDARIA JUSTIFIQUE SUA ESCOLHA E EXPLIQUE COMO ELAS IMPACTARIAM A QUALIDADE DO SOFTWARE 3 12 TAREFA 2 COM BASE NOS DESAFIOS E NA NATUREZA DO PROJETO QUAL MODELO DE PROCESSO DE SOFTWARE CASCATA INCREMENTAL ÁGIL ETC VOCÊ ESCOLHERIA PARA O DESENVOLVIMENTO DO APLICATIVO ARGUMENTE SUA RESPOSTA DESTACANDO OS BENEFÍCIOS E DESAFIOS DESSA ABORDAGEM 5 13 TAREFA 3 PARA GARANTIR A CONFIABILIDADE E USABILIDADE DO APLICATIVO QUAIS ESTRATÉGIAS DE VERIFICAÇÃO E VALIDAÇÃO SERIAM MAIS APROPRIADAS JUSTIFIQUE COMO A ADOÇÃO DESSAS PRÁTICAS PODE REDUZIR FALHAS E MELHORAR A EXPERIÊNCIA DO USUÁRIO 7 14 TAREFA 4 APÓS O LANÇAMENTO DO APLICATIVO A EQUIPE DE DESENVOLVIMENTO PRECISA LIDAR COM ATUALIZAÇÕES E SUPORTE CONTÍNUO QUAIS ESTRATÉGIAS DE MANUTENÇÃO VOCÊ RECOMENDARIA PARA GARANTIR A EVOLUÇÃO DO SOFTWARE E A SATISFAÇÃO DOS USUÁRIOS JUSTIFIQUE SUA ESCOLHA COM BASE EM BOAS PRÁTICAS DE ENGENHARIA DE SOFTWARE 9 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO 13 3 1 DESENVOLVIMENTO 11 TAREFA 1 CONSIDERANDO QUE A EMPRESA PRECISA ENTENDER AS NECESSIDADES DOS USUÁRIOS ANTES DE DESENVOLVER O APLICATIVO QUAIS TÉCNICAS DE LEVANTAMENTO DE REQUISITOS VOCÊ RECOMENDARIA JUSTIFIQUE SUA ESCOLHA E EXPLIQUE COMO ELAS IMPACTARIAM A QUALIDADE DO SOFTWARE Recomendaria a aplicação de uma combinação das seguintes técnicas de levantamento de requisitos Entrevistas Realizar entrevistas semiestruturadas com diferentes grupos de usuários potenciais moradores turistas pessoas com mobilidade reduzida é crucial para obter informações detalhadas sobre suas necessidades expectativas e dores em relação à mobilidade urbana e a um aplicativo que a facilite A natureza aberta das entrevistas permite explorar cenários de uso específicos e descobrir requisitos implícitos que podem não ser evidentes por meio de outras técnicas Questionários e Enquetes Para alcançar um número maior de pessoas e obter dados quantitativos sobre as preferências e necessidades gerais a aplicação de questionários online ou presenciais seria valiosa Isso permitiria coletar informações sobre os meios de transporte mais utilizados os pontos de interesse mais relevantes e as funcionalidades desejadas de forma escalável Workshops de Requisitos Facilitated Workshops Promover workshops com stakeholders chave representantes da empresa de desenvolvimento potenciais usuários especialistas em mobilidade urbana facilitaria a colaboração e a construção de um entendimento comum sobre os objetivos do aplicativo e seus requisitos Essa técnica é eficaz para identificar conflitos priorizar funcionalidades e garantir que todas as partes interessadas estejam alinhadas Análise de Documentos Existentes e Sistemas Similares Analisar documentos relevantes sobre mobilidade urbana na cidade como planos de transporte público e guias turísticos pode fornecer informações valiosas sobre os dados que o aplicativo precisará integrar Além disso a análise de aplicativos de 4 localização existentes análise de concorrência ou benchmarking pode inspirar funcionalidades e identificar pontos fortes e fracos a serem considerados Justificativa da Escolha A escolha dessas técnicas se baseia na necessidade de obter uma compreensão abrangente das necessidades dos usuários combinando dados qualitativos e quantitativos e promovendo a colaboração entre os stakeholders As entrevistas fornecem profundidade e contexto os questionários oferecem alcance e generalização os workshops facilitam o consenso e a priorização e a análise de documentos e sistemas existentes fornece informações de base e inspiração Impacto na Qualidade do Software A aplicação dessas técnicas de levantamento de requisitos centradas no usuário impactaria positivamente a qualidade do software das seguintes maneiras Relevância Ao entender as reais necessidades dos usuários o aplicativo terá maior probabilidade de ser útil e adotado atendendo às suas expectativas de forma eficaz Completude A combinação de diferentes técnicas ajuda a identificar uma gama mais ampla de requisitos tanto funcionais quanto não funcionais reduzindo a chance de omitir funcionalidades importantes Precisão A clareza obtida através da interação direta com os usuários e stakeholders ajuda a definir os requisitos de forma mais precisa minimizando ambiguidades e malentendidos que podem levar a erros de desenvolvimento Usabilidade Ao compreender as necessidades e os cenários de uso dos usuários a equipe de desenvolvimento pode projetar uma interface intuitiva e acessível focada na experiência do usuário Redução de Custos Identificar e corrigir falhas ou omissões nos requisitos na fase inicial do projeto é significativamente mais econômico do que fazê lo durante o desenvolvimento ou após o lançamento Requisitos bem definidos desde o início evitam retrabalho e custos adicionais 5 12 TAREFA 2 COM BASE NOS DESAFIOS E NA NATUREZA DO PROJETO QUAL MODELO DE PROCESSO DE SOFTWARE CASCATA INCREMENTAL ÁGIL ETC VOCÊ ESCOLHERIA PARA O DESENVOLVIMENTO DO APLICATIVO ARGUMENTE SUA RESPOSTA DESTACANDO OS BENEFÍCIOS E DESAFIOS DESSA ABORDAGEM Para o desenvolvimento deste aplicativo de facilitação de localização urbana eu escolheria o modelo de processo de software Ágil especificamente o framework Scrum Argumentos e Benefícios da Abordagem Ágil Scrum Flexibilidade e Adaptabilidade O desenvolvimento de um aplicativo para um ambiente urbano dinâmico como uma grande cidade inevitavelmente envolverá mudanças nos requisitos Informações sobre transporte público tráfego em tempo real e até mesmo os pontos de interesse podem mudar O Scrum com seus ciclos de desenvolvimento curtos Sprints e a capacidade de incorporar feedback a cada iteração oferece a flexibilidade necessária para se adaptar a essas mudanças de forma eficiente Entrega Contínua de Valor Ao final de cada Sprint um incremento funcional do software é entregue Isso permite que os stakeholders a empresa de software e potencialmente usuários em fases iniciais visualizem o progresso e forneçam feedback contínuo Essa entrega incremental garante que o desenvolvimento esteja sempre alinhado com as necessidades do mercado e dos usuários maximizando o valor entregue desde cedo Colaboração e Comunicação O Scrum enfatiza a comunicação constante e a colaboração entre a equipe de desenvolvimento e os stakeholders Reuniões diárias Daily Scrums revisões de Sprint e retrospectivas promovem um ambiente de transparência e facilitam a identificação e resolução rápida de problemas Essa comunicação aberta é crucial para garantir que todos estejam na mesma página e que o produto final atenda às expectativas Foco no Cliente e Feedback Precoce A participação ativa dos stakeholders nas revisões de Sprint permite que eles forneçam feedback valioso sobre o incremento entregue Esse feedback precoce e frequente ajuda a garantir que o aplicativo esteja se desenvolvendo na direção correta e permite ajustes antes que 6 grandes quantidades de trabalho sejam investidas em funcionalidades que não atendem às necessidades Redução de Riscos A abordagem iterativa e incremental do Scrum permite identificar e mitigar riscos em estágios iniciais do projeto Ao dividir o projeto em Sprints menores e entregar funcionalidades de forma contínua a equipe pode identificar problemas técnicos ou de requisitos mais cedo e tomar medidas corretivas Desafios da Abordagem Ágil Scrum Gerenciamento da Mudança Embora a adaptabilidade seja um benefício gerenciar um grande volume de mudanças nos requisitos pode ser desafiador e requer um controle de escopo eficaz É importante ter um Product Owner forte que possa priorizar e gerenciar o backlog de forma eficiente Comprometimento da Equipe O sucesso do Scrum depende do comprometimento e da autogestão da equipe de desenvolvimento Todos os membros precisam estar engajados e dispostos a colaborar ativamente Necessidade de Colaboração Constante A comunicação frequente e a colaboração exigem tempo e esforço de todos os envolvidos Pode haver um overhead de comunicação se não for gerenciado adequadamente Documentação Em metodologias ágeis a documentação tende a ser menos extensa do que em modelos tradicionais como o Cascata É crucial garantir que a documentação necessária para a manutenção futura e para novos membros da equipe seja mantida de forma adequada sem sobrecarregar o processo de desenvolvimento Em resumo a natureza dinâmica de um aplicativo de localização urbana com a necessidade de integrar dados em tempo real e responder às necessidades evolutivas dos usuários torna a abordagem ágil Scrum a mais adequada Seus benefícios em termos de flexibilidade entrega contínua de valor colaboração e foco no cliente superam os desafios desde que a equipe esteja bem treinada comprometida e haja uma gestão eficaz do processo O modelo Cascata com sua natureza sequencial e pouca flexibilidade para mudanças seria inadequado para este tipo de projeto onde os requisitos podem evoluir rapidamente Modelos incrementais podem oferecer alguma flexibilidade mas o Scrum com sua estrutura bem definida para lidar com mudanças e feedback contínuo se alinha melhor com a complexidade e a natureza dinâmica deste aplicativo 7 13 TAREFA 3 PARA GARANTIR A CONFIABILIDADE E USABILIDADE DO APLICATIVO QUAIS ESTRATÉGIAS DE VERIFICAÇÃO E VALIDAÇÃO SERIAM MAIS APROPRIADAS JUSTIFIQUE COMO A ADOÇÃO DESSAS PRÁTICAS PODE REDUZIR FALHAS E MELHORAR A EXPERIÊNCIA DO USUÁRIO Para garantir a confiabilidade e usabilidade do aplicativo de facilitação de localização urbana as seguintes estratégias de verificação e validação seriam mais apropriadas 1 Testes Unitários e de Integração Automatizados Descrição Testes unitários focam em verificar a funcionalidade correta de componentes individuais do software classes funções módulos Testes de integração garantem que esses diferentes componentes funcionem corretamente em conjunto A automação desses testes permite que sejam executados frequentemente e de forma consistente ao longo do ciclo de desenvolvimento Justificativa A automação garante que cada parte do código e a interação entre elas funcionem conforme o esperado Isso ajuda a identificar e corrigir erros falhas em estágios iniciais do desenvolvimento antes que se tornem mais complexos e caros de solucionar Ao garantir que os componentes individuais e suas interações sejam robustos a confiabilidade geral do aplicativo aumenta 2 Testes de Usabilidade com Usuários Beta Descrição Envolver um grupo de usuários representativos do públicoalvo moradores turistas pessoas com diferentes níveis de familiaridade com tecnologia para interagir com o aplicativo em um ambiente real ou simulado Observar seu comportamento coletar feedback por meio de entrevistas e questionários e identificar problemas de usabilidade Justificativa Testes com usuários reais fornecem insights valiosos sobre a facilidade de uso a intuitividade da interface a clareza da navegação e a satisfação geral com o aplicativo Identificar e corrigir problemas de usabilidade antes do lançamento garante que o aplicativo seja fácil de usar e atenda às necessidades dos usuários de forma eficaz melhorando significativamente a experiência do usuário e aumentando a probabilidade de adoção 8 3 Testes de Desempenho e Carga Descrição Simular o uso do aplicativo por um grande número de usuários simultaneamente e em condições de carga elevada para verificar sua capacidade de resposta estabilidade e escalabilidade Isso inclui testar os tempos de resposta o consumo de recursos CPU memória e a capacidade de lidar com picos de acesso Justificativa Um aplicativo de localização urbana precisa ser responsivo e confiável mesmo quando muitos usuários o acessam ao mesmo tempo especialmente em horários de pico ou em eventos Testes de desempenho e carga garantem que o aplicativo possa lidar com essas situações sem falhas lentidão ou indisponibilidade mantendo a confiabilidade e proporcionando uma experiência de usuário fluida e eficiente 4 Testes de Segurança Descrição Realizar testes específicos para identificar vulnerabilidades de segurança no aplicativo como falhas de autenticação injeção de código vazamento de dados e outras ameaças potenciais Isso pode incluir testes de penetração pentests e análise de código estática e dinâmica Justificativa Lidar com informações de localização e dados pessoais dos usuários exige um alto nível de segurança Testes de segurança garantem que o aplicativo esteja protegido contra ameaças prevenindo o acesso não autorizado a dados sensíveis e mantendo a confiança dos usuários na segurança e privacidade do aplicativo A segurança é um aspecto fundamental da confiabilidade Como a Adoção Dessas Práticas Reduz Falhas e Melhora a Experiência do Usuário A adoção dessas práticas de verificação e validação impacta positivamente a qualidade do software reduzindo falhas e melhorando a experiência do usuário da seguinte forma Detecção Precoce de Falhas Testes unitários e de integração automatizados identificam erros de codificação e problemas de integração em estágios iniciais do desenvolvimento evitando que essas falhas cheguem aos usuários Correção Eficaz Ao identificar falhas precocemente a correção se torna mais fácil e menos custosa pois o contexto do código ainda está fresco na mente 9 dos desenvolvedores Melhora da Usabilidade Os testes de usabilidade fornecem feedback direto dos usuários sobre a facilidade de uso do aplicativo permitindo que a equipe de desenvolvimento faça ajustes na interface e na navegação para tornálo mais intuitivo e agradável de usar Garantia de Desempenho Testes de desempenho e carga asseguram que o aplicativo seja rápido e responsivo mesmo sob condições de uso intenso evitando frustrações e garantindo uma experiência de usuário fluida Aumento da Confiabilidade Ao garantir que os componentes funcionem corretamente que o aplicativo seja capaz de lidar com a demanda e que seja seguro a confiabilidade geral do sistema aumenta construindo a confiança dos usuários Redução de Custos a Longo Prazo Identificar e corrigir problemas antes do lançamento é significativamente mais barato do que lidar com falhas e reclamações de usuários após o lançamento o que pode prejudicar a reputação do aplicativo e gerar custos adicionais de manutenção e correção Em resumo uma estratégia abrangente de verificação e validação que inclui testes automatizados testes de usabilidade testes de desempenho e testes de segurança é essencial para garantir que o aplicativo de facilitação de localização urbana seja confiável fácil de usar e seguro proporcionando uma experiência positiva para o usuário e aumentando suas chances de sucesso 14 TAREFA 4 APÓS O LANÇAMENTO DO APLICATIVO A EQUIPE DE DESENVOLVIMENTO PRECISA LIDAR COM ATUALIZAÇÕES E SUPORTE CONTÍNUO QUAIS ESTRATÉGIAS DE MANUTENÇÃO VOCÊ RECOMENDARIA PARA GARANTIR A EVOLUÇÃO DO SOFTWARE E A SATISFAÇÃO DOS USUÁRIOS JUSTIFIQUE SUA ESCOLHA COM BASE EM BOAS PRÁTICAS DE ENGENHARIA DE SOFTWARE Para garantir a evolução contínua do aplicativo e a satisfação dos usuários após o lançamento recomendo a implementação das seguintes estratégias de manutenção baseadas em boas práticas de engenharia de software 10 1 Manutenção Corretiva Descrição Estabelecer um sistema eficiente para que os usuários possam reportar bugs e problemas encontrados no aplicativo A equipe de desenvolvimento deve ter um processo claro para receber priorizar investigar corrigir e liberar atualizações com as correções necessárias Justificativa Mesmo com testes extensivos é inevitável que alguns defeitos passem para a versão final Responder prontamente e corrigir esses problemas é crucial para manter a confiabilidade do aplicativo e a satisfação dos usuários Ignorar ou demorar para corrigir bugs pode levar à frustração e ao abandono do aplicativo Boas práticas incluem o uso de um sistema de rastreamento de issues como Jira Asana Trello definição de níveis de prioridade para os bugs e comunicação transparente com os usuários sobre o status das correções 2 Manutenção Adaptativa Descrição Monitorar continuamente as mudanças no ambiente em que o aplicativo opera como novas versões de sistemas operacionais Android iOS atualizações de APIs de terceiros Google Maps OpenStreetMap sistemas de transporte público e novas regulamentações como leis de privacidade de dados Realizar as adaptações necessárias para garantir que o aplicativo continue funcionando corretamente e seja compatível com essas mudanças Justificativa A tecnologia está em constante evolução Não adaptar o aplicativo a novas versões de sistemas operacionais ou a mudanças em APIs de terceiros pode levar a falhas de funcionamento perda de funcionalidades ou problemas de segurança A manutenção adaptativa proativa garante a longevidade e a usabilidade contínua do aplicativo Boas práticas incluem o acompanhamento regular das novidades tecnológicas relevantes a realização de testes de compatibilidade e a atualização das dependências do projeto de forma planejada 3 Manutenção Perfectiva Descrição Implementar novas funcionalidades melhorar o desempenho otimizar a interface do usuário e refatorar o código com base no feedback dos usuários nas tendências do mercado e nas novas tecnologias disponíveis Essa estratégia visa aprimorar o aplicativo ao longo do tempo tornando o mais atraente eficiente e competitivo 11 Justificativa A manutenção perfectiva é essencial para manter o aplicativo relevante e competitivo Ao incorporar o feedback dos usuários e inovar com novas funcionalidades a equipe demonstra um compromisso com a melhoria contínua e aumenta a satisfação e o engajamento dos usuários Boas práticas incluem a coleta regular de feedback dos usuários por meio de pesquisas avaliações na loja de aplicativos canais de suporte a análise de dados de uso para identificar áreas de melhoria e a priorização de novas funcionalidades com base no valor para o usuário e no alinhamento com a visão do produto 4 Manutenção Preventiva Descrição Realizar atividades proativas para prevenir problemas futuros como refatoração de código complexo ou obsoleto otimização de banco de dados atualização de bibliotecas e frameworks para versões mais recentes e seguras e melhoria da arquitetura do software Justificativa A manutenção preventiva visa reduzir a probabilidade de falhas futuras melhorar a manutenibilidade do código e aumentar a estabilidade e o desempenho do aplicativo a longo prazo Ignorar a saúde interna do código pode levar a um aumento da complexidade tornando futuras atualizações mais difíceis e arriscadas Boas práticas incluem a realização regular de revisões de código a aplicação de princípios de design de software robustos e a alocação de tempo para atividades de refatoração e melhoria da arquitetura Justificativa Geral com Base em Boas Práticas de Engenharia de Software A implementação dessas quatro estratégias de manutenção é fundamental para seguir boas práticas de engenharia de software pois Garante a Qualidade Contínua A manutenção corretiva e preventiva focam em manter a qualidade técnica do software corrigindo falhas e evitando o acúmulo de dívida técnica Atende às Necessidades dos Usuários A manutenção adaptativa e perfectiva garantem que o aplicativo continue atendendo às necessidades dos usuários em um ambiente em constante mudança e evoluindo com novas funcionalidades que agregam valor Promove a Sustentabilidade do Software Uma estratégia de manutenção bem definida garante que o aplicativo possa ser mantido atualizado e 12 evoluído a longo prazo evitando a obsolescência e maximizando o retorno sobre o investimento Fomenta a Satisfação do Usuário Ao responder a problemas manter o aplicativo atualizado e introduzir melhorias relevantes a equipe demonstra um compromisso com a experiência do usuário o que leva a maior satisfação e lealdade Em resumo uma abordagem holística para a manutenção de software que abrange a correção de erros a adaptação a mudanças a implementação de melhorias e a prevenção de problemas futuros é essencial para garantir a longevidade a relevância e a satisfação dos usuários de um aplicativo como este Ignorar qualquer uma dessas áreas pode levar a problemas de qualidade perda de usuários e em última análise ao insucesso do aplicativo 13 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO O desenvolvimento de um aplicativo de facilitação de localização urbana exige uma abordagem estratégica em todas as suas fases Inicialmente para entender as reais necessidades dos usuários a combinação de entrevistas questionários workshops e análise de sistemas existentes Wiegers Beatty 2013 Sommerville 2011 se mostra crucial Essas técnicas garantem a relevância completude e precisão dos requisitos impactando diretamente a qualidade do software ao evitar retrabalho e focar nas expectativas dos usuários Dado o dinamismo do ambiente urbano e a necessidade de adaptação contínua o modelo Ágil especificamente o Scrum Schwaber Sutherland 2020 emerge como a escolha mais apropriada Sua flexibilidade entrega incremental de valor e foco na colaboração permitem responder eficientemente às mudanças e garantir um produto alinhado com as necessidades do mercado Para assegurar a confiabilidade e usabilidade do aplicativo uma estratégia robusta de verificação e validação é essencial Testes unitários e de integração automatizados Myers Sandler Badgett 2011 testes de usabilidade com usuários beta Nielsen 1993 testes de desempenho e carga Smith Williams 2001 e testes de segurança garantem a detecção precoce de falhas a otimização da experiência do usuário e a proteção de dados sensíveis Após o lançamento a manutenção contínua é vital para a evolução do software e a satisfação dos usuários Estratégias como a manutenção corretiva adaptativa perfectiva e preventiva Sommerville 2011 Pressman Maxim 2016 garantem a correção de bugs a compatibilidade com novas tecnologias a implementação de melhorias e a prevenção de problemas futuros assegurando a longevidade e a relevância do aplicativo A adoção dessas práticas fundamentadas em princípios sólidos de engenharia de software é essencial para o sucesso a longo prazo do aplicativo de facilitação de localização urbana
245
Engenharia de Software
UNICESUMAR
5
Engenharia de Software
UNASP
2
Engenharia de Software
UNINTER
2
Engenharia de Software
UNISALES
7
Engenharia de Software
FMU
1
Engenharia de Software
UVA
3
Engenharia de Software
FAESA
11
Engenharia de Software
UNIP
11
Engenharia de Software
UNIP
11
Engenharia de Software
UNIP
Texto de pré-visualização
Lembrese sua opinião precisa ser baseada e justificada respaldando cientificamente seu conhecimento e pensamento pois não serão aceitos trechos eou postagens sem as devidas referências Então vamos lá 1 Para começar leia o texto a seguir Desenvolvimento de Aplicativo para Facilitação de Localização Urbana 1 Introdução Uma empresa de desenvolvimento de software recebeu a demanda de criar um aplicativo para ajudar moradores e turistas a se deslocarem dentro de uma grande cidade O objetivo é oferecer informações detalhadas sobre rotas transporte público pontos de interesse e acessibilidade utilizando tecnologias modernas de geolocalização e inteligência artificial 2 Descrição do Problema Grandes cidades frequentemente enfrentam desafios relacionados à mobilidade urbana como congestionamentos dificuldade em encontrar transporte adequado e falta de informações atualizadas sobre caminhos mais rápidos O problema principal é a ausência de uma plataforma unificada que ofereça orientações precisas e integradas com diferentes meios de transporte 3 Requisitos do Sistema Funcionais o Exibir rotas personalizadas para diferentes meios de transporte ônibus metrô bicicletas compartilhadas caminhada etc o Informar o tempo estimado de deslocamento considerando o trânsito em tempo real o Fornecer sugestões baseadas em preferências do usuário exemplo rotas acessíveis para cadeirantes o Integração com mapas interativos e realidade aumentada para navegação visual o Notificações sobre mudanças no trânsito horários de transporte e possíveis interrupções Não Funcionais o Alta disponibilidade para garantir funcionamento contínuo o Interface intuitiva e acessível para diferentes perfis de usuários o Tempo de resposta ágil para consultas em tempo real 4 Modelos de Desenvolvimento Considerados Dado o escopo do projeto a equipe avaliou diferentes abordagens para o desenvolvimento do aplicativo Modelo Cascata Rejeitado devido à falta de flexibilidade para mudanças frequentes no escopo e nas necessidades dos usuários Scrum Metodologia Ágil Escolhido por permitir entregas incrementais adaptação às necessidades do mercado e colaboração contínua entre os stakeholders 5 Arquitetura e Tecnologias Utilizadas Backend Desenvolvido com Nodejs e banco de dados NoSQL MongoDB para armazenar informações geográficas e dados dinâmicos Frontend Aplicativo desenvolvido em React Native para permitir compatibilidade entre Android e iOS APIs e Integrações Uso da API do Google Maps OpenStreetMap e integração com sistemas de transporte público Infraestrutura Hospedagem em nuvem utilizando AWS para escalabilidade e confiabilidade 6 Testes e Verificação de Qualidade A equipe adotou estratégias de testes para garantir a funcionalidade e a usabilidade do aplicativo Testes unitários e de integração automatizados Testes de usabilidade com um grupo de usuários beta Simulações de alto tráfego para garantir desempenho sob demanda 7 Desafios e Soluções Atualização de dados em tempo real Implementação de um sistema de cache e requisições assíncronas para evitar lentidão Acessibilidade Design adaptado para pessoas com deficiência visual incluindo suporte a leitores de tela e comandos por voz Privacidade e Segurança Uso de criptografia para proteger dados dos usuários e conformidade com regulamentações de proteção de dados 2 Analisando a situação detalhada acima e diante do contexto exposto ao longo de nossa disciplina elabore o seu texto argumentativodissertativo e responda aos seguintes questionamentos Considerando que a empresa precisa entender as necessidades dos usuários antes de desenvolver o aplicativo quais técnicas de levantamento de requisitos você recomendaria Justifique sua escolha e explique como elas impactariam a qualidade do software Com base nos desafios e na natureza do projeto qual modelo de processo de software cascata incremental ágil etc você escolheria para o desenvolvimento do aplicativo Argumente sua resposta destacando os benefícios e desafios dessa abordagem Para garantir a confiabilidade e usabilidade do aplicativo quais estratégias de verificação e validação seriam mais apropriadas Justifique como a adoção dessas práticas pode reduzir falhas e melhorar a experiência do usuário Após o lançamento do aplicativo a equipe de desenvolvimento precisa lidar com atualizações e suporte contínuo Quais estratégias de manutenção você recomendaria para garantir a evolução do software e a satisfação dos usuários Justifique sua escolha com base em boas práticas de engenharia de software 3 Importante Faça uso da pesquisa buscando sites oficiais e de instituições de pesquisa reconhecidas Seguem algumas dicas httpsblogvincocombrlevantamentoderequisitosdesoftware httpseaduepgbraplsigmaassetseditaisPS0059E0080pdf httpsmondaycomblogptdesenvolvimentometodologiasdedesenvolvimentode software httpswwwdevmediacombrtecnicasparalevantamentoderequisitos9151 Após realizar suas reflexões elabore um pequeno texto contendo o máximo de 20 a 30 linhas expondo sua argumentação acerca do solicitado Caso exista inobservância ao tema proposto transgressão as instruções de elaboração e não atendimento a forma de envio da atividade que dever ser anexada e enviada formato pdf ou docx Windows informamos que a avaliação não poderá ser corrigida Não esqueça de realizar com antecedência sua atividade ContagemMinas Gerais 2025 SEU NOME COMPLETO AQUI CURSO SUPERIOR EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ENGENHARIA DE SOFTWARE ContagemMinas Gerais 2025 ENGENHARIA DE SOFTWARE Trabalho textual apresentado como requisito parcial para a obtenção de média semestral Orientadora Profa xxxxxxxx SEU NOME COMPLETO AQUI SUMÁRIO 1 DESENVOLVIMENTO3 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO13 1 DESENVOLVIMENTO 11 TAREFA 1 CONSIDERANDO QUE A EMPRESA PRECISA ENTENDER AS NECESSIDADES DOS USUÁRIOS ANTES DE DESENVOLVER O APLICATIVO QUAIS TÉCNICAS DE LEVANTAMENTO DE REQUISITOS VOCÊ RECOMENDARIA JUSTIFIQUE SUA ESCOLHA E EXPLIQUE COMO ELAS IMPACTARIAM A QUALIDADE DO SOFTWARE Recomendaria a aplicação de uma combinação das seguintes técnicas de levantamento de requisitos Entrevistas Realizar entrevistas semiestruturadas com diferentes grupos de usuários potenciais moradores turistas pessoas com mobilidade reduzida é crucial para obter informações detalhadas sobre suas necessidades expectativas e dores em relação à mobilidade urbana e a um aplicativo que a facilite A natureza aberta das entrevistas permite explorar cenários de uso específicos e descobrir requisitos implícitos que podem não ser evidentes por meio de outras técnicas Questionários e Enquetes Para alcançar um número maior de pessoas e obter dados quantitativos sobre as preferências e necessidades gerais a aplicação de questionários online ou presenciais seria valiosa Isso permitiria coletar informações sobre os meios de transporte mais utilizados os pontos de interesse mais relevantes e as funcionalidades desejadas de forma escalável Workshops de Requisitos Facilitated Workshops Promover workshops com stakeholders chave representantes da empresa de desenvolvimento potenciais usuários especialistas em mobilidade urbana facilitaria a colaboração e a construção de um entendimento comum sobre os objetivos do aplicativo e seus requisitos Essa técnica é eficaz para identificar conflitos priorizar funcionalidades e garantir que todas as partes interessadas estejam alinhadas Análise de Documentos Existentes e Sistemas Similares Analisar documentos relevantes sobre mobilidade urbana na cidade como planos de transporte público e guias turísticos pode fornecer informações valiosas sobre os dados que o aplicativo precisará integrar Além disso a análise de aplicativos de 3 localização existentes análise de concorrência ou benchmarking pode inspirar funcionalidades e identificar pontos fortes e fracos a serem considerados Justificativa da Escolha A escolha dessas técnicas se baseia na necessidade de obter uma compreensão abrangente das necessidades dos usuários combinando dados qualitativos e quantitativos e promovendo a colaboração entre os stakeholders As entrevistas fornecem profundidade e contexto os questionários oferecem alcance e generalização os workshops facilitam o consenso e a priorização e a análise de documentos e sistemas existentes fornece informações de base e inspiração Impacto na Qualidade do Software A aplicação dessas técnicas de levantamento de requisitos centradas no usuário impactaria positivamente a qualidade do software das seguintes maneiras Relevância Ao entender as reais necessidades dos usuários o aplicativo terá maior probabilidade de ser útil e adotado atendendo às suas expectativas de forma eficaz Completude A combinação de diferentes técnicas ajuda a identificar uma gama mais ampla de requisitos tanto funcionais quanto não funcionais reduzindo a chance de omitir funcionalidades importantes Precisão A clareza obtida através da interação direta com os usuários e stakeholders ajuda a definir os requisitos de forma mais precisa minimizando ambiguidades e malentendidos que podem levar a erros de desenvolvimento Usabilidade Ao compreender as necessidades e os cenários de uso dos usuários a equipe de desenvolvimento pode projetar uma interface intuitiva e acessível focada na experiência do usuário Redução de Custos Identificar e corrigir falhas ou omissões nos requisitos na fase inicial do projeto é significativamente mais econômico do que fazê lo durante o desenvolvimento ou após o lançamento Requisitos bem definidos desde o início evitam retrabalho e custos adicionais 4 12 TAREFA 2 COM BASE NOS DESAFIOS E NA NATUREZA DO PROJETO QUAL MODELO DE PROCESSO DE SOFTWARE CASCATA INCREMENTAL ÁGIL ETC VOCÊ ESCOLHERIA PARA O DESENVOLVIMENTO DO APLICATIVO ARGUMENTE SUA RESPOSTA DESTACANDO OS BENEFÍCIOS E DESAFIOS DESSA ABORDAGEM Para o desenvolvimento deste aplicativo de facilitação de localização urbana eu escolheria o modelo de processo de software Ágil especificamente o framework Scrum Argumentos e Benefícios da Abordagem Ágil Scrum Flexibilidade e Adaptabilidade O desenvolvimento de um aplicativo para um ambiente urbano dinâmico como uma grande cidade inevitavelmente envolverá mudanças nos requisitos Informações sobre transporte público tráfego em tempo real e até mesmo os pontos de interesse podem mudar O Scrum com seus ciclos de desenvolvimento curtos Sprints e a capacidade de incorporar feedback a cada iteração oferece a flexibilidade necessária para se adaptar a essas mudanças de forma eficiente Entrega Contínua de Valor Ao final de cada Sprint um incremento funcional do software é entregue Isso permite que os stakeholders a empresa de software e potencialmente usuários em fases iniciais visualizem o progresso e forneçam feedback contínuo Essa entrega incremental garante que o desenvolvimento esteja sempre alinhado com as necessidades do mercado e dos usuários maximizando o valor entregue desde cedo Colaboração e Comunicação O Scrum enfatiza a comunicação constante e a colaboração entre a equipe de desenvolvimento e os stakeholders Reuniões diárias Daily Scrums revisões de Sprint e retrospectivas promovem um ambiente de transparência e facilitam a identificação e resolução rápida de problemas Essa comunicação aberta é crucial para garantir que todos estejam na mesma página e que o produto final atenda às expectativas Foco no Cliente e Feedback Precoce A participação ativa dos stakeholders nas revisões de Sprint permite que eles forneçam feedback valioso sobre o incremento entregue Esse feedback precoce e frequente ajuda a garantir que o aplicativo esteja se desenvolvendo na direção correta e permite ajustes antes 5 que grandes quantidades de trabalho sejam investidas em funcionalidades que não atendem às necessidades Redução de Riscos A abordagem iterativa e incremental do Scrum permite identificar e mitigar riscos em estágios iniciais do projeto Ao dividir o projeto em Sprints menores e entregar funcionalidades de forma contínua a equipe pode identificar problemas técnicos ou de requisitos mais cedo e tomar medidas corretivas Desafios da Abordagem Ágil Scrum Gerenciamento da Mudança Embora a adaptabilidade seja um benefício gerenciar um grande volume de mudanças nos requisitos pode ser desafiador e requer um controle de escopo eficaz É importante ter um Product Owner forte que possa priorizar e gerenciar o backlog de forma eficiente Comprometimento da Equipe O sucesso do Scrum depende do comprometimento e da autogestão da equipe de desenvolvimento Todos os membros precisam estar engajados e dispostos a colaborar ativamente Necessidade de Colaboração Constante A comunicação frequente e a colaboração exigem tempo e esforço de todos os envolvidos Pode haver um overhead de comunicação se não for gerenciado adequadamente Documentação Em metodologias ágeis a documentação tende a ser menos extensa do que em modelos tradicionais como o Cascata É crucial garantir que a documentação necessária para a manutenção futura e para novos membros da equipe seja mantida de forma adequada sem sobrecarregar o processo de desenvolvimento Em resumo a natureza dinâmica de um aplicativo de localização urbana com a necessidade de integrar dados em tempo real e responder às necessidades evolutivas dos usuários torna a abordagem ágil Scrum a mais adequada Seus benefícios em termos de flexibilidade entrega contínua de valor colaboração e foco no cliente superam os desafios desde que a equipe esteja bem treinada comprometida e haja uma gestão eficaz do processo O modelo Cascata com sua natureza sequencial e pouca flexibilidade para mudanças seria inadequado para este tipo de projeto onde os requisitos podem evoluir rapidamente Modelos incrementais podem oferecer alguma flexibilidade mas o Scrum com sua estrutura bem definida para lidar com mudanças e feedback contínuo se alinha melhor com a 6 complexidade e a natureza dinâmica deste aplicativo 13 TAREFA 3 PARA GARANTIR A CONFIABILIDADE E USABILIDADE DO APLICATIVO QUAIS ESTRATÉGIAS DE VERIFICAÇÃO E VALIDAÇÃO SERIAM MAIS APROPRIADAS JUSTIFIQUE COMO A ADOÇÃO DESSAS PRÁTICAS PODE REDUZIR FALHAS E MELHORAR A EXPERIÊNCIA DO USUÁRIO Para garantir a confiabilidade e usabilidade do aplicativo de facilitação de localização urbana as seguintes estratégias de verificação e validação seriam mais apropriadas 1 Testes Unitários e de Integração Automatizados Descrição Testes unitários focam em verificar a funcionalidade correta de componentes individuais do software classes funções módulos Testes de integração garantem que esses diferentes componentes funcionem corretamente em conjunto A automação desses testes permite que sejam executados frequentemente e de forma consistente ao longo do ciclo de desenvolvimento Justificativa A automação garante que cada parte do código e a interação entre elas funcionem conforme o esperado Isso ajuda a identificar e corrigir erros falhas em estágios iniciais do desenvolvimento antes que se tornem mais complexos e caros de solucionar Ao garantir que os componentes individuais e suas interações sejam robustos a confiabilidade geral do aplicativo aumenta 2 Testes de Usabilidade com Usuários Beta Descrição Envolver um grupo de usuários representativos do públicoalvo moradores turistas pessoas com diferentes níveis de familiaridade com tecnologia para interagir com o aplicativo em um ambiente real ou simulado Observar seu comportamento coletar feedback por meio de entrevistas e questionários e identificar problemas de usabilidade Justificativa Testes com usuários reais fornecem insights valiosos sobre a facilidade de uso a intuitividade da interface a clareza da navegação e a satisfação geral com o aplicativo Identificar e corrigir problemas de usabilidade antes do lançamento garante que o aplicativo seja fácil de usar e atenda às necessidades dos usuários de forma eficaz melhorando significativamente a experiência do usuário e aumentando a probabilidade de adoção 7 3 Testes de Desempenho e Carga Descrição Simular o uso do aplicativo por um grande número de usuários simultaneamente e em condições de carga elevada para verificar sua capacidade de resposta estabilidade e escalabilidade Isso inclui testar os tempos de resposta o consumo de recursos CPU memória e a capacidade de lidar com picos de acesso Justificativa Um aplicativo de localização urbana precisa ser responsivo e confiável mesmo quando muitos usuários o acessam ao mesmo tempo especialmente em horários de pico ou em eventos Testes de desempenho e carga garantem que o aplicativo possa lidar com essas situações sem falhas lentidão ou indisponibilidade mantendo a confiabilidade e proporcionando uma experiência de usuário fluida e eficiente 4 Testes de Segurança Descrição Realizar testes específicos para identificar vulnerabilidades de segurança no aplicativo como falhas de autenticação injeção de código vazamento de dados e outras ameaças potenciais Isso pode incluir testes de penetração pentests e análise de código estática e dinâmica Justificativa Lidar com informações de localização e dados pessoais dos usuários exige um alto nível de segurança Testes de segurança garantem que o aplicativo esteja protegido contra ameaças prevenindo o acesso não autorizado a dados sensíveis e mantendo a confiança dos usuários na segurança e privacidade do aplicativo A segurança é um aspecto fundamental da confiabilidade Como a Adoção Dessas Práticas Reduz Falhas e Melhora a Experiência do Usuário A adoção dessas práticas de verificação e validação impacta positivamente a qualidade do software reduzindo falhas e melhorando a experiência do usuário da seguinte forma Detecção Precoce de Falhas Testes unitários e de integração automatizados identificam erros de codificação e problemas de integração em estágios iniciais do desenvolvimento evitando que essas falhas cheguem aos 8 usuários Correção Eficaz Ao identificar falhas precocemente a correção se torna mais fácil e menos custosa pois o contexto do código ainda está fresco na mente dos desenvolvedores Melhora da Usabilidade Os testes de usabilidade fornecem feedback direto dos usuários sobre a facilidade de uso do aplicativo permitindo que a equipe de desenvolvimento faça ajustes na interface e na navegação para tornálo mais intuitivo e agradável de usar Garantia de Desempenho Testes de desempenho e carga asseguram que o aplicativo seja rápido e responsivo mesmo sob condições de uso intenso evitando frustrações e garantindo uma experiência de usuário fluida Aumento da Confiabilidade Ao garantir que os componentes funcionem corretamente que o aplicativo seja capaz de lidar com a demanda e que seja seguro a confiabilidade geral do sistema aumenta construindo a confiança dos usuários Redução de Custos a Longo Prazo Identificar e corrigir problemas antes do lançamento é significativamente mais barato do que lidar com falhas e reclamações de usuários após o lançamento o que pode prejudicar a reputação do aplicativo e gerar custos adicionais de manutenção e correção Em resumo uma estratégia abrangente de verificação e validação que inclui testes automatizados testes de usabilidade testes de desempenho e testes de segurança é essencial para garantir que o aplicativo de facilitação de localização urbana seja confiável fácil de usar e seguro proporcionando uma experiência positiva para o usuário e aumentando suas chances de sucesso 14 TAREFA 4 APÓS O LANÇAMENTO DO APLICATIVO A EQUIPE DE DESENVOLVIMENTO PRECISA LIDAR COM ATUALIZAÇÕES E SUPORTE CONTÍNUO QUAIS ESTRATÉGIAS DE MANUTENÇÃO VOCÊ RECOMENDARIA PARA GARANTIR A EVOLUÇÃO DO SOFTWARE E A SATISFAÇÃO DOS USUÁRIOS JUSTIFIQUE SUA ESCOLHA COM BASE EM BOAS PRÁTICAS DE ENGENHARIA DE SOFTWARE Para garantir a evolução contínua do aplicativo e a satisfação dos usuários após o lançamento recomendo a implementação das seguintes estratégias 9 de manutenção baseadas em boas práticas de engenharia de software 1 Manutenção Corretiva Descrição Estabelecer um sistema eficiente para que os usuários possam reportar bugs e problemas encontrados no aplicativo A equipe de desenvolvimento deve ter um processo claro para receber priorizar investigar corrigir e liberar atualizações com as correções necessárias Justificativa Mesmo com testes extensivos é inevitável que alguns defeitos passem para a versão final Responder prontamente e corrigir esses problemas é crucial para manter a confiabilidade do aplicativo e a satisfação dos usuários Ignorar ou demorar para corrigir bugs pode levar à frustração e ao abandono do aplicativo Boas práticas incluem o uso de um sistema de rastreamento de issues como Jira Asana Trello definição de níveis de prioridade para os bugs e comunicação transparente com os usuários sobre o status das correções 2 Manutenção Adaptativa Descrição Monitorar continuamente as mudanças no ambiente em que o aplicativo opera como novas versões de sistemas operacionais Android iOS atualizações de APIs de terceiros Google Maps OpenStreetMap sistemas de transporte público e novas regulamentações como leis de privacidade de dados Realizar as adaptações necessárias para garantir que o aplicativo continue funcionando corretamente e seja compatível com essas mudanças Justificativa A tecnologia está em constante evolução Não adaptar o aplicativo a novas versões de sistemas operacionais ou a mudanças em APIs de terceiros pode levar a falhas de funcionamento perda de funcionalidades ou problemas de segurança A manutenção adaptativa proativa garante a longevidade e a usabilidade contínua do aplicativo Boas práticas incluem o acompanhamento regular das novidades tecnológicas relevantes a realização de testes de compatibilidade e a atualização das dependências do projeto de forma planejada 3 Manutenção Perfectiva Descrição Implementar novas funcionalidades melhorar o desempenho otimizar a interface do usuário e refatorar o código com base no 10 feedback dos usuários nas tendências do mercado e nas novas tecnologias disponíveis Essa estratégia visa aprimorar o aplicativo ao longo do tempo tornando o mais atraente eficiente e competitivo Justificativa A manutenção perfectiva é essencial para manter o aplicativo relevante e competitivo Ao incorporar o feedback dos usuários e inovar com novas funcionalidades a equipe demonstra um compromisso com a melhoria contínua e aumenta a satisfação e o engajamento dos usuários Boas práticas incluem a coleta regular de feedback dos usuários por meio de pesquisas avaliações na loja de aplicativos canais de suporte a análise de dados de uso para identificar áreas de melhoria e a priorização de novas funcionalidades com base no valor para o usuário e no alinhamento com a visão do produto 4 Manutenção Preventiva Descrição Realizar atividades proativas para prevenir problemas futuros como refatoração de código complexo ou obsoleto otimização de banco de dados atualização de bibliotecas e frameworks para versões mais recentes e seguras e melhoria da arquitetura do software Justificativa A manutenção preventiva visa reduzir a probabilidade de falhas futuras melhorar a manutenibilidade do código e aumentar a estabilidade e o desempenho do aplicativo a longo prazo Ignorar a saúde interna do código pode levar a um aumento da complexidade tornando futuras atualizações mais difíceis e arriscadas Boas práticas incluem a realização regular de revisões de código a aplicação de princípios de design de software robustos e a alocação de tempo para atividades de refatoração e melhoria da arquitetura Justificativa Geral com Base em Boas Práticas de Engenharia de Software A implementação dessas quatro estratégias de manutenção é fundamental para seguir boas práticas de engenharia de software pois Garante a Qualidade Contínua A manutenção corretiva e preventiva focam em manter a qualidade técnica do software corrigindo falhas e evitando o acúmulo de dívida técnica Atende às Necessidades dos Usuários A manutenção adaptativa e perfectiva garantem que o aplicativo continue atendendo às necessidades dos usuários em um ambiente em constante mudança e evoluindo com novas 11 funcionalidades que agregam valor Promove a Sustentabilidade do Software Uma estratégia de manutenção bem definida garante que o aplicativo possa ser mantido atualizado e evoluído a longo prazo evitando a obsolescência e maximizando o retorno sobre o investimento Fomenta a Satisfação do Usuário Ao responder a problemas manter o aplicativo atualizado e introduzir melhorias relevantes a equipe demonstra um compromisso com a experiência do usuário o que leva a maior satisfação e lealdade Em resumo uma abordagem holística para a manutenção de software que abrange a correção de erros a adaptação a mudanças a implementação de melhorias e a prevenção de problemas futuros é essencial para garantir a longevidade a relevância e a satisfação dos usuários de um aplicativo como este Ignorar qualquer uma dessas áreas pode levar a problemas de qualidade perda de usuários e em última análise ao insucesso do aplicativo 12 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO O desenvolvimento de um aplicativo de facilitação de localização urbana exige uma abordagem estratégica em todas as suas fases Inicialmente para entender as reais necessidades dos usuários a combinação de entrevistas questionários workshops e análise de sistemas existentes Wiegers Beatty 2013 Sommerville 2011 se mostra crucial Essas técnicas garantem a relevância completude e precisão dos requisitos impactando diretamente a qualidade do software ao evitar retrabalho e focar nas expectativas dos usuários Dado o dinamismo do ambiente urbano e a necessidade de adaptação contínua o modelo Ágil especificamente o Scrum Schwaber Sutherland 2020 emerge como a escolha mais apropriada Sua flexibilidade entrega incremental de valor e foco na colaboração permitem responder eficientemente às mudanças e garantir um produto alinhado com as necessidades do mercado Para assegurar a confiabilidade e usabilidade do aplicativo uma estratégia robusta de verificação e validação é essencial Testes unitários e de integração automatizados Myers Sandler Badgett 2011 testes de usabilidade com usuários beta Nielsen 1993 testes de desempenho e carga Smith Williams 2001 e testes de segurança garantem a detecção precoce de falhas a otimização da experiência do usuário e a proteção de dados sensíveis Após o lançamento a manutenção contínua é vital para a evolução do software e a satisfação dos usuários Estratégias como a manutenção corretiva adaptativa perfectiva e preventiva Sommerville 2011 Pressman Maxim 2016 garantem a correção de bugs a compatibilidade com novas tecnologias a implementação de melhorias e a prevenção de problemas futuros assegurando a longevidade e a relevância do aplicativo A adoção dessas práticas fundamentadas em princípios sólidos de engenharia de software é essencial para o sucesso a longo prazo do aplicativo de facilitação de localização urbana 13 ContagemMinas Gerais 2025 SEU NOME COMPLETO AQUI CURSO SUPERIOR EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ENGENHARIA DE SOFTWARE ContagemMinas Gerais 2025 ENGENHARIA DE SOFTWARE Trabalho textual apresentado como requisito parcial para a obtenção de média semestral Orientadora Profa xxxxxxxx SEU NOME COMPLETO AQUI SUMÁRIO 1 DESENVOLVIMENTO 3 11 TAREFA 1 CONSIDERANDO QUE A EMPRESA PRECISA ENTENDER AS NECESSIDADES DOS USUÁRIOS ANTES DE DESENVOLVER O APLICATIVO QUAIS TÉCNICAS DE LEVANTAMENTO DE REQUISITOS VOCÊ RECOMENDARIA JUSTIFIQUE SUA ESCOLHA E EXPLIQUE COMO ELAS IMPACTARIAM A QUALIDADE DO SOFTWARE 3 12 TAREFA 2 COM BASE NOS DESAFIOS E NA NATUREZA DO PROJETO QUAL MODELO DE PROCESSO DE SOFTWARE CASCATA INCREMENTAL ÁGIL ETC VOCÊ ESCOLHERIA PARA O DESENVOLVIMENTO DO APLICATIVO ARGUMENTE SUA RESPOSTA DESTACANDO OS BENEFÍCIOS E DESAFIOS DESSA ABORDAGEM 5 13 TAREFA 3 PARA GARANTIR A CONFIABILIDADE E USABILIDADE DO APLICATIVO QUAIS ESTRATÉGIAS DE VERIFICAÇÃO E VALIDAÇÃO SERIAM MAIS APROPRIADAS JUSTIFIQUE COMO A ADOÇÃO DESSAS PRÁTICAS PODE REDUZIR FALHAS E MELHORAR A EXPERIÊNCIA DO USUÁRIO 7 14 TAREFA 4 APÓS O LANÇAMENTO DO APLICATIVO A EQUIPE DE DESENVOLVIMENTO PRECISA LIDAR COM ATUALIZAÇÕES E SUPORTE CONTÍNUO QUAIS ESTRATÉGIAS DE MANUTENÇÃO VOCÊ RECOMENDARIA PARA GARANTIR A EVOLUÇÃO DO SOFTWARE E A SATISFAÇÃO DOS USUÁRIOS JUSTIFIQUE SUA ESCOLHA COM BASE EM BOAS PRÁTICAS DE ENGENHARIA DE SOFTWARE 9 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO 13 3 1 DESENVOLVIMENTO 11 TAREFA 1 CONSIDERANDO QUE A EMPRESA PRECISA ENTENDER AS NECESSIDADES DOS USUÁRIOS ANTES DE DESENVOLVER O APLICATIVO QUAIS TÉCNICAS DE LEVANTAMENTO DE REQUISITOS VOCÊ RECOMENDARIA JUSTIFIQUE SUA ESCOLHA E EXPLIQUE COMO ELAS IMPACTARIAM A QUALIDADE DO SOFTWARE Recomendaria a aplicação de uma combinação das seguintes técnicas de levantamento de requisitos Entrevistas Realizar entrevistas semiestruturadas com diferentes grupos de usuários potenciais moradores turistas pessoas com mobilidade reduzida é crucial para obter informações detalhadas sobre suas necessidades expectativas e dores em relação à mobilidade urbana e a um aplicativo que a facilite A natureza aberta das entrevistas permite explorar cenários de uso específicos e descobrir requisitos implícitos que podem não ser evidentes por meio de outras técnicas Questionários e Enquetes Para alcançar um número maior de pessoas e obter dados quantitativos sobre as preferências e necessidades gerais a aplicação de questionários online ou presenciais seria valiosa Isso permitiria coletar informações sobre os meios de transporte mais utilizados os pontos de interesse mais relevantes e as funcionalidades desejadas de forma escalável Workshops de Requisitos Facilitated Workshops Promover workshops com stakeholders chave representantes da empresa de desenvolvimento potenciais usuários especialistas em mobilidade urbana facilitaria a colaboração e a construção de um entendimento comum sobre os objetivos do aplicativo e seus requisitos Essa técnica é eficaz para identificar conflitos priorizar funcionalidades e garantir que todas as partes interessadas estejam alinhadas Análise de Documentos Existentes e Sistemas Similares Analisar documentos relevantes sobre mobilidade urbana na cidade como planos de transporte público e guias turísticos pode fornecer informações valiosas sobre os dados que o aplicativo precisará integrar Além disso a análise de aplicativos de 4 localização existentes análise de concorrência ou benchmarking pode inspirar funcionalidades e identificar pontos fortes e fracos a serem considerados Justificativa da Escolha A escolha dessas técnicas se baseia na necessidade de obter uma compreensão abrangente das necessidades dos usuários combinando dados qualitativos e quantitativos e promovendo a colaboração entre os stakeholders As entrevistas fornecem profundidade e contexto os questionários oferecem alcance e generalização os workshops facilitam o consenso e a priorização e a análise de documentos e sistemas existentes fornece informações de base e inspiração Impacto na Qualidade do Software A aplicação dessas técnicas de levantamento de requisitos centradas no usuário impactaria positivamente a qualidade do software das seguintes maneiras Relevância Ao entender as reais necessidades dos usuários o aplicativo terá maior probabilidade de ser útil e adotado atendendo às suas expectativas de forma eficaz Completude A combinação de diferentes técnicas ajuda a identificar uma gama mais ampla de requisitos tanto funcionais quanto não funcionais reduzindo a chance de omitir funcionalidades importantes Precisão A clareza obtida através da interação direta com os usuários e stakeholders ajuda a definir os requisitos de forma mais precisa minimizando ambiguidades e malentendidos que podem levar a erros de desenvolvimento Usabilidade Ao compreender as necessidades e os cenários de uso dos usuários a equipe de desenvolvimento pode projetar uma interface intuitiva e acessível focada na experiência do usuário Redução de Custos Identificar e corrigir falhas ou omissões nos requisitos na fase inicial do projeto é significativamente mais econômico do que fazê lo durante o desenvolvimento ou após o lançamento Requisitos bem definidos desde o início evitam retrabalho e custos adicionais 5 12 TAREFA 2 COM BASE NOS DESAFIOS E NA NATUREZA DO PROJETO QUAL MODELO DE PROCESSO DE SOFTWARE CASCATA INCREMENTAL ÁGIL ETC VOCÊ ESCOLHERIA PARA O DESENVOLVIMENTO DO APLICATIVO ARGUMENTE SUA RESPOSTA DESTACANDO OS BENEFÍCIOS E DESAFIOS DESSA ABORDAGEM Para o desenvolvimento deste aplicativo de facilitação de localização urbana eu escolheria o modelo de processo de software Ágil especificamente o framework Scrum Argumentos e Benefícios da Abordagem Ágil Scrum Flexibilidade e Adaptabilidade O desenvolvimento de um aplicativo para um ambiente urbano dinâmico como uma grande cidade inevitavelmente envolverá mudanças nos requisitos Informações sobre transporte público tráfego em tempo real e até mesmo os pontos de interesse podem mudar O Scrum com seus ciclos de desenvolvimento curtos Sprints e a capacidade de incorporar feedback a cada iteração oferece a flexibilidade necessária para se adaptar a essas mudanças de forma eficiente Entrega Contínua de Valor Ao final de cada Sprint um incremento funcional do software é entregue Isso permite que os stakeholders a empresa de software e potencialmente usuários em fases iniciais visualizem o progresso e forneçam feedback contínuo Essa entrega incremental garante que o desenvolvimento esteja sempre alinhado com as necessidades do mercado e dos usuários maximizando o valor entregue desde cedo Colaboração e Comunicação O Scrum enfatiza a comunicação constante e a colaboração entre a equipe de desenvolvimento e os stakeholders Reuniões diárias Daily Scrums revisões de Sprint e retrospectivas promovem um ambiente de transparência e facilitam a identificação e resolução rápida de problemas Essa comunicação aberta é crucial para garantir que todos estejam na mesma página e que o produto final atenda às expectativas Foco no Cliente e Feedback Precoce A participação ativa dos stakeholders nas revisões de Sprint permite que eles forneçam feedback valioso sobre o incremento entregue Esse feedback precoce e frequente ajuda a garantir que o aplicativo esteja se desenvolvendo na direção correta e permite ajustes antes que 6 grandes quantidades de trabalho sejam investidas em funcionalidades que não atendem às necessidades Redução de Riscos A abordagem iterativa e incremental do Scrum permite identificar e mitigar riscos em estágios iniciais do projeto Ao dividir o projeto em Sprints menores e entregar funcionalidades de forma contínua a equipe pode identificar problemas técnicos ou de requisitos mais cedo e tomar medidas corretivas Desafios da Abordagem Ágil Scrum Gerenciamento da Mudança Embora a adaptabilidade seja um benefício gerenciar um grande volume de mudanças nos requisitos pode ser desafiador e requer um controle de escopo eficaz É importante ter um Product Owner forte que possa priorizar e gerenciar o backlog de forma eficiente Comprometimento da Equipe O sucesso do Scrum depende do comprometimento e da autogestão da equipe de desenvolvimento Todos os membros precisam estar engajados e dispostos a colaborar ativamente Necessidade de Colaboração Constante A comunicação frequente e a colaboração exigem tempo e esforço de todos os envolvidos Pode haver um overhead de comunicação se não for gerenciado adequadamente Documentação Em metodologias ágeis a documentação tende a ser menos extensa do que em modelos tradicionais como o Cascata É crucial garantir que a documentação necessária para a manutenção futura e para novos membros da equipe seja mantida de forma adequada sem sobrecarregar o processo de desenvolvimento Em resumo a natureza dinâmica de um aplicativo de localização urbana com a necessidade de integrar dados em tempo real e responder às necessidades evolutivas dos usuários torna a abordagem ágil Scrum a mais adequada Seus benefícios em termos de flexibilidade entrega contínua de valor colaboração e foco no cliente superam os desafios desde que a equipe esteja bem treinada comprometida e haja uma gestão eficaz do processo O modelo Cascata com sua natureza sequencial e pouca flexibilidade para mudanças seria inadequado para este tipo de projeto onde os requisitos podem evoluir rapidamente Modelos incrementais podem oferecer alguma flexibilidade mas o Scrum com sua estrutura bem definida para lidar com mudanças e feedback contínuo se alinha melhor com a complexidade e a natureza dinâmica deste aplicativo 7 13 TAREFA 3 PARA GARANTIR A CONFIABILIDADE E USABILIDADE DO APLICATIVO QUAIS ESTRATÉGIAS DE VERIFICAÇÃO E VALIDAÇÃO SERIAM MAIS APROPRIADAS JUSTIFIQUE COMO A ADOÇÃO DESSAS PRÁTICAS PODE REDUZIR FALHAS E MELHORAR A EXPERIÊNCIA DO USUÁRIO Para garantir a confiabilidade e usabilidade do aplicativo de facilitação de localização urbana as seguintes estratégias de verificação e validação seriam mais apropriadas 1 Testes Unitários e de Integração Automatizados Descrição Testes unitários focam em verificar a funcionalidade correta de componentes individuais do software classes funções módulos Testes de integração garantem que esses diferentes componentes funcionem corretamente em conjunto A automação desses testes permite que sejam executados frequentemente e de forma consistente ao longo do ciclo de desenvolvimento Justificativa A automação garante que cada parte do código e a interação entre elas funcionem conforme o esperado Isso ajuda a identificar e corrigir erros falhas em estágios iniciais do desenvolvimento antes que se tornem mais complexos e caros de solucionar Ao garantir que os componentes individuais e suas interações sejam robustos a confiabilidade geral do aplicativo aumenta 2 Testes de Usabilidade com Usuários Beta Descrição Envolver um grupo de usuários representativos do públicoalvo moradores turistas pessoas com diferentes níveis de familiaridade com tecnologia para interagir com o aplicativo em um ambiente real ou simulado Observar seu comportamento coletar feedback por meio de entrevistas e questionários e identificar problemas de usabilidade Justificativa Testes com usuários reais fornecem insights valiosos sobre a facilidade de uso a intuitividade da interface a clareza da navegação e a satisfação geral com o aplicativo Identificar e corrigir problemas de usabilidade antes do lançamento garante que o aplicativo seja fácil de usar e atenda às necessidades dos usuários de forma eficaz melhorando significativamente a experiência do usuário e aumentando a probabilidade de adoção 8 3 Testes de Desempenho e Carga Descrição Simular o uso do aplicativo por um grande número de usuários simultaneamente e em condições de carga elevada para verificar sua capacidade de resposta estabilidade e escalabilidade Isso inclui testar os tempos de resposta o consumo de recursos CPU memória e a capacidade de lidar com picos de acesso Justificativa Um aplicativo de localização urbana precisa ser responsivo e confiável mesmo quando muitos usuários o acessam ao mesmo tempo especialmente em horários de pico ou em eventos Testes de desempenho e carga garantem que o aplicativo possa lidar com essas situações sem falhas lentidão ou indisponibilidade mantendo a confiabilidade e proporcionando uma experiência de usuário fluida e eficiente 4 Testes de Segurança Descrição Realizar testes específicos para identificar vulnerabilidades de segurança no aplicativo como falhas de autenticação injeção de código vazamento de dados e outras ameaças potenciais Isso pode incluir testes de penetração pentests e análise de código estática e dinâmica Justificativa Lidar com informações de localização e dados pessoais dos usuários exige um alto nível de segurança Testes de segurança garantem que o aplicativo esteja protegido contra ameaças prevenindo o acesso não autorizado a dados sensíveis e mantendo a confiança dos usuários na segurança e privacidade do aplicativo A segurança é um aspecto fundamental da confiabilidade Como a Adoção Dessas Práticas Reduz Falhas e Melhora a Experiência do Usuário A adoção dessas práticas de verificação e validação impacta positivamente a qualidade do software reduzindo falhas e melhorando a experiência do usuário da seguinte forma Detecção Precoce de Falhas Testes unitários e de integração automatizados identificam erros de codificação e problemas de integração em estágios iniciais do desenvolvimento evitando que essas falhas cheguem aos usuários Correção Eficaz Ao identificar falhas precocemente a correção se torna mais fácil e menos custosa pois o contexto do código ainda está fresco na mente 9 dos desenvolvedores Melhora da Usabilidade Os testes de usabilidade fornecem feedback direto dos usuários sobre a facilidade de uso do aplicativo permitindo que a equipe de desenvolvimento faça ajustes na interface e na navegação para tornálo mais intuitivo e agradável de usar Garantia de Desempenho Testes de desempenho e carga asseguram que o aplicativo seja rápido e responsivo mesmo sob condições de uso intenso evitando frustrações e garantindo uma experiência de usuário fluida Aumento da Confiabilidade Ao garantir que os componentes funcionem corretamente que o aplicativo seja capaz de lidar com a demanda e que seja seguro a confiabilidade geral do sistema aumenta construindo a confiança dos usuários Redução de Custos a Longo Prazo Identificar e corrigir problemas antes do lançamento é significativamente mais barato do que lidar com falhas e reclamações de usuários após o lançamento o que pode prejudicar a reputação do aplicativo e gerar custos adicionais de manutenção e correção Em resumo uma estratégia abrangente de verificação e validação que inclui testes automatizados testes de usabilidade testes de desempenho e testes de segurança é essencial para garantir que o aplicativo de facilitação de localização urbana seja confiável fácil de usar e seguro proporcionando uma experiência positiva para o usuário e aumentando suas chances de sucesso 14 TAREFA 4 APÓS O LANÇAMENTO DO APLICATIVO A EQUIPE DE DESENVOLVIMENTO PRECISA LIDAR COM ATUALIZAÇÕES E SUPORTE CONTÍNUO QUAIS ESTRATÉGIAS DE MANUTENÇÃO VOCÊ RECOMENDARIA PARA GARANTIR A EVOLUÇÃO DO SOFTWARE E A SATISFAÇÃO DOS USUÁRIOS JUSTIFIQUE SUA ESCOLHA COM BASE EM BOAS PRÁTICAS DE ENGENHARIA DE SOFTWARE Para garantir a evolução contínua do aplicativo e a satisfação dos usuários após o lançamento recomendo a implementação das seguintes estratégias de manutenção baseadas em boas práticas de engenharia de software 10 1 Manutenção Corretiva Descrição Estabelecer um sistema eficiente para que os usuários possam reportar bugs e problemas encontrados no aplicativo A equipe de desenvolvimento deve ter um processo claro para receber priorizar investigar corrigir e liberar atualizações com as correções necessárias Justificativa Mesmo com testes extensivos é inevitável que alguns defeitos passem para a versão final Responder prontamente e corrigir esses problemas é crucial para manter a confiabilidade do aplicativo e a satisfação dos usuários Ignorar ou demorar para corrigir bugs pode levar à frustração e ao abandono do aplicativo Boas práticas incluem o uso de um sistema de rastreamento de issues como Jira Asana Trello definição de níveis de prioridade para os bugs e comunicação transparente com os usuários sobre o status das correções 2 Manutenção Adaptativa Descrição Monitorar continuamente as mudanças no ambiente em que o aplicativo opera como novas versões de sistemas operacionais Android iOS atualizações de APIs de terceiros Google Maps OpenStreetMap sistemas de transporte público e novas regulamentações como leis de privacidade de dados Realizar as adaptações necessárias para garantir que o aplicativo continue funcionando corretamente e seja compatível com essas mudanças Justificativa A tecnologia está em constante evolução Não adaptar o aplicativo a novas versões de sistemas operacionais ou a mudanças em APIs de terceiros pode levar a falhas de funcionamento perda de funcionalidades ou problemas de segurança A manutenção adaptativa proativa garante a longevidade e a usabilidade contínua do aplicativo Boas práticas incluem o acompanhamento regular das novidades tecnológicas relevantes a realização de testes de compatibilidade e a atualização das dependências do projeto de forma planejada 3 Manutenção Perfectiva Descrição Implementar novas funcionalidades melhorar o desempenho otimizar a interface do usuário e refatorar o código com base no feedback dos usuários nas tendências do mercado e nas novas tecnologias disponíveis Essa estratégia visa aprimorar o aplicativo ao longo do tempo tornando o mais atraente eficiente e competitivo 11 Justificativa A manutenção perfectiva é essencial para manter o aplicativo relevante e competitivo Ao incorporar o feedback dos usuários e inovar com novas funcionalidades a equipe demonstra um compromisso com a melhoria contínua e aumenta a satisfação e o engajamento dos usuários Boas práticas incluem a coleta regular de feedback dos usuários por meio de pesquisas avaliações na loja de aplicativos canais de suporte a análise de dados de uso para identificar áreas de melhoria e a priorização de novas funcionalidades com base no valor para o usuário e no alinhamento com a visão do produto 4 Manutenção Preventiva Descrição Realizar atividades proativas para prevenir problemas futuros como refatoração de código complexo ou obsoleto otimização de banco de dados atualização de bibliotecas e frameworks para versões mais recentes e seguras e melhoria da arquitetura do software Justificativa A manutenção preventiva visa reduzir a probabilidade de falhas futuras melhorar a manutenibilidade do código e aumentar a estabilidade e o desempenho do aplicativo a longo prazo Ignorar a saúde interna do código pode levar a um aumento da complexidade tornando futuras atualizações mais difíceis e arriscadas Boas práticas incluem a realização regular de revisões de código a aplicação de princípios de design de software robustos e a alocação de tempo para atividades de refatoração e melhoria da arquitetura Justificativa Geral com Base em Boas Práticas de Engenharia de Software A implementação dessas quatro estratégias de manutenção é fundamental para seguir boas práticas de engenharia de software pois Garante a Qualidade Contínua A manutenção corretiva e preventiva focam em manter a qualidade técnica do software corrigindo falhas e evitando o acúmulo de dívida técnica Atende às Necessidades dos Usuários A manutenção adaptativa e perfectiva garantem que o aplicativo continue atendendo às necessidades dos usuários em um ambiente em constante mudança e evoluindo com novas funcionalidades que agregam valor Promove a Sustentabilidade do Software Uma estratégia de manutenção bem definida garante que o aplicativo possa ser mantido atualizado e 12 evoluído a longo prazo evitando a obsolescência e maximizando o retorno sobre o investimento Fomenta a Satisfação do Usuário Ao responder a problemas manter o aplicativo atualizado e introduzir melhorias relevantes a equipe demonstra um compromisso com a experiência do usuário o que leva a maior satisfação e lealdade Em resumo uma abordagem holística para a manutenção de software que abrange a correção de erros a adaptação a mudanças a implementação de melhorias e a prevenção de problemas futuros é essencial para garantir a longevidade a relevância e a satisfação dos usuários de um aplicativo como este Ignorar qualquer uma dessas áreas pode levar a problemas de qualidade perda de usuários e em última análise ao insucesso do aplicativo 13 2 APÓS REALIZAR SUAS REFLEXÕES ELABORE UM PEQUENO TEXTO CONTENDO O MÁXIMO DE 20 A 30 LINHAS EXPONDO SUA ARGUMENTAÇÃO ACERCA DO SOLICITADO O desenvolvimento de um aplicativo de facilitação de localização urbana exige uma abordagem estratégica em todas as suas fases Inicialmente para entender as reais necessidades dos usuários a combinação de entrevistas questionários workshops e análise de sistemas existentes Wiegers Beatty 2013 Sommerville 2011 se mostra crucial Essas técnicas garantem a relevância completude e precisão dos requisitos impactando diretamente a qualidade do software ao evitar retrabalho e focar nas expectativas dos usuários Dado o dinamismo do ambiente urbano e a necessidade de adaptação contínua o modelo Ágil especificamente o Scrum Schwaber Sutherland 2020 emerge como a escolha mais apropriada Sua flexibilidade entrega incremental de valor e foco na colaboração permitem responder eficientemente às mudanças e garantir um produto alinhado com as necessidades do mercado Para assegurar a confiabilidade e usabilidade do aplicativo uma estratégia robusta de verificação e validação é essencial Testes unitários e de integração automatizados Myers Sandler Badgett 2011 testes de usabilidade com usuários beta Nielsen 1993 testes de desempenho e carga Smith Williams 2001 e testes de segurança garantem a detecção precoce de falhas a otimização da experiência do usuário e a proteção de dados sensíveis Após o lançamento a manutenção contínua é vital para a evolução do software e a satisfação dos usuários Estratégias como a manutenção corretiva adaptativa perfectiva e preventiva Sommerville 2011 Pressman Maxim 2016 garantem a correção de bugs a compatibilidade com novas tecnologias a implementação de melhorias e a prevenção de problemas futuros assegurando a longevidade e a relevância do aplicativo A adoção dessas práticas fundamentadas em princípios sólidos de engenharia de software é essencial para o sucesso a longo prazo do aplicativo de facilitação de localização urbana