Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aplicações Móveis Processos de Desenvolvimento de Software Bloco 1 Thiago Salhab Alves Processos de Desenvolvimento de Software Objetivos • Aprender sobre processos de desenvolvimento de software. • Conhecer o Manifesto Agile. • Conhecer sobre o pensamento Lean. • Aprender os princípios da UX Design. • Aprender técnicas de Design Thinking. Fonte: DavidGoh/IStock.com Processos de Desenvolvimento de Software Introdução ao Processo de Desenvolvimento de Software • De acordo com Sommerville (2007), a Engenharia de Software é uma área da Engenharia com foco no desenvolvimento de sistemas de software, de alta qualidade, dentro de custos adequados. • Software é algo abstrato e não limitado por materiais ou controlado por leis da física. • 1968: Crise de software - hardware baseado em circuitos integrados. Hardware avança e permite criar softwares antes inviáveis. Desenvolvimento informal de software – CRISE. Processos de Desenvolvimento de Software • As causas da crise estão relacionadas à complexidade do processo de desenvolvimento de software e à imaturidade da engenharia de software. • A crise se manifesta das seguintes formas: • Projetos estourando orçamento. • Projetos estourando prazo. • Software de baixa qualidade. • Software não atingem os requisitos. • Projetos sem gerência e código difícil de manter. Processos de Desenvolvimento de Software • Novas técnicas e métodos eram necessários para controlar a complexidades dos grandes sistemas de software. • Os custos de hardware estavam caindo e de softwares aumentando. • Essas técnicas tornaram-se parte da Engenharia de Software. Processos de Desenvolvimento de Software O que é software? • São programas de computador: visão restritiva. • Software não é apenas o programa, mas todos os dados de documentação e configuração associados para que o programa opere. • Sistema de software consiste de programas separados, arquivos de configuração e documentação do usuário. Processos de Desenvolvimento de Software O que é processo de desenvolvimento de software? • Conjunto de atividades e resultados associados, que produz um produto de software. • Segundo Pressman (2006), são quatro as atividades fundamentais comuns a todos os processos de software: • Especificação de software: clientes e engenheiros definem o que será produzido e suas restrições. • Desenvolvimento de software: software é programado. • Validação: software é verificado para garantir que é o que o cliente deseja. • Evolução do software. Processos de Desenvolvimento de Software Fonte: scyther5/iStock.com Figura 1 - Processo de Desenvolvimento de Software Processos de Desenvolvimento de Software Modelos de processo de software • Modelo cascata. Fonte: cacaroot/iStock.com Figura 2 - Modelo Cascata Processos de Desenvolvimento de Software • Desenvolvimento evolucionário: desenvolve uma implementação inicial, apresenta ao usuário, refina em várias versões, até produzir a versão final. Não é viável com sistemas frequentemente mal estruturados. Indicado para sistemas de pequeno e médio porte. • Engenharia de software baseada em componentes: depende de uma grande base de componentes reutilizáveis e um framework para integração. • Entrega incremental: abordagem que combina vantagens do modelo cascata. Produção dos serviços mais importantes. Vários incrementos são produzidos. Sua variante é programação XP (eXtreme Programming). Processos de Desenvolvimento de Software • Desenvolvimento em espiral: processo de software que, ao invés de apresentar o processo de software como uma sequência de atividades, é representado como um espiral. • Cada loop está divido em quatro setores: Definição de objetivo Avaliação e redução de riscos Desenvolvimento e validação Planejamento Fonte: elaborado pelo autor. Manifesto Ágil e Metodologias Ágeis Segundo Sommerville (2007), o termo metodologia ágil tornou- se popular em 2001, quando dezessete especialistas, em processos de desenvolvimento de software, estabeleceram princípios comuns compartilhados pelos métodos Extreme Programming (XP), Scrum, entre outros. Fonte: IconicBestiary/ IStock.com Processos de Desenvolvimento de Software • O resultado foi a criação da Aliança Ágil e o estabelecimento do Manifesto Ágil. • Os conceitos-chave do Manifesto Ágil enfatizam: Indivíduos e interações, ao invés de processo e ferramentas Software executável, ao invés de documentação Colaboração do cliente, ao invés de negociação de contratos Respostas rápidas a mudanças, ao invés de seguir planos Fonte: elaborado pelo autor. Processos de Desenvolvimento de Software • Uso de dispositivos móveis, conectados à Internet, a fim de otimizar qualquer tipo de tarefa. • O Manifesto Ágil não rejeita processos e ferramentas, documentação, negociação de contratos nem planejamento, mas simplesmente mostra que esses têm importância secundária quando comparados aos indivíduos, ao software executável, a colaboração dos clientes e às respostas rápidas às mudanças. Processos de Desenvolvimento de Software Extreme Programming (XP) • Metodologia ágil para equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que são modificados rapidamente. • Baseado em doze práticas: planejamento; entregas frequentes; metáfora; projeto simples; testes; programação em pares; refatoração; propriedade coletiva; integração contínua; trabalho semanal de 40 horas; cliente presente; código padrão. Processos de Desenvolvimento de Software Scrum • Processo de desenvolvimento usado para gestão de projetos, aplicada muitas vezes para desenvolvimento ágil de software. • Papéis fundamentais do Team Scrum: Product Owner, Scrum Master e Time Scrum. • Atividades básicas: planejamento da Sprint; reuniões diárias; execução, revisão e retrospectiva da Sprint. • Documentos: Product Backlog e Sprint Backlog. Processos de Desenvolvimento de Software Fonte: jazz42/iStock.com/ iStock Figura 3 - Sprint da Scrum Processos de Desenvolvimento de Software Bloco 2 Thiago Salhab Alves Processos de Desenvolvimento de Software Pensamento Lean • Lean thinking é um paradigma de liderança e gestão, voltado para o mundo empresarial, caracterizado por descobrir e eliminar todas as fontes de desperdício, criando valor para todos os seus stakeholders. • Surgiu na indústria Japonesa, após a 2ª Guerra Mundial, em contraponto à produção em massa. • Foco no cliente, eliminar desperdício e agregar valor, qualidade incorporada, estratégia de negócio, com flexibilidade e adaptabilidade e melhoria contínua. Processos de Desenvolvimento de Software UX Design • User Experience (UX) se refere a todos os aspectos relacionados ao uso de uma tecnologia por uma pessoa, desde um aplicativo de celular até um caixa eletrônico. Está relacionado também a como uma pessoa se sente ao usar um produto ou serviço. • A experiência do usuário engloba todos os aspectos da interação do usuário final com a empresa, seus serviços, produtos, estudando as melhores maneiras de atender as necessidades dos usuários e deixá- los satisfeitos. Processos de Desenvolvimento de Software • O UX Designer estudará e avaliará como os usuários se sentem sobre um sistema, levando em consideração aspectos como a facilidade de uso, percepção de valor do sistema e eficiência na execução de tarefas. Fonte: wichai leesawatwong/ IStock.com Processos de Desenvolvimento de Software Design Thinking • Auxiliar no entendimento de parâmetros e padrões essenciais para criar projetos de melhor qualidade. • É um processo de pensamento crítico e criativo, que permite organizar informações e ideias, tomar decisões, aprimorar situações e adquirir conhecimento. • Processo: imersão (entendimento), ideação (criação), prototipação (teste) e desenvolvimento (aplicação). Teoria em prática Bloco3 Thiago Salhab Alves Processos de Desenvolvimento de Software Uma padaria, de seu bairro, gostaria de automatizar seu processo de pedidos de lanchonete, substituindo os atuais cardápios por algo digital e totalmente interativo, facilitando e agilizando o pedido dos clientes. Atualmente, o cliente precisa verificar o cardápio e aguardar a disponibilidade de um atendente para realizar seu pedido. Muitas vezes, a quantidade de clientes é grande e os pedidos acabam demorando muito. Processos de Desenvolvimento de Software Quais processos de desenvolvimento de software podem ser aplicados nessa situação? Resposta: por se tratar de um sistema de pequeno porte, são indicados engenharia baseado em componentes; entrega incremental; desenvolvimento em espiral; XP; Scrum. Dica do professor Bloco 4 Thiago Salhab Alves Processos de Desenvolvimento de Software Indicações de filmes: • “Piratas do Vale do Silício” (Pirates of Silicon Valley). Estados Unidos – 1999 – 95 min. • “A Rede Social” (The Social Network). Estados Unidos – 2010 – 121 min. • Steve Jobs. Estados Unidos – 2015 – 122 min. Referências PRESSMAN, R. Engenharia de Software. 6. ed. São Paulo: Makron Books, 2006. SOMMERVILLE, I. Engenharia de Software. 8. ed. São Paulo: Pearson Education do Brasil, 2007.
Compartilhar