Buscar

aula2 - aplicações moveis

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.

Continue navegando