• Nenhum resultado encontrado

2- Processos

N/A
N/A
Protected

Academic year: 2021

Share "2- Processos"

Copied!
43
0
0

Texto

(1)

Processos

Engenharia de Software

Caainã Jerônimo de Souza Nascimento

https://sites.google.com/site/esjogos161/

(2)
(3)

Planejamento

• Contra quem vamos jogar? • Quem faz o que?

• Qual a função do Mid? Suporte? Carry? Off-Lane?

• Como identificar problemas? • Que itens comprar?

• Jogar igual contra todos? • Qual a função do capitão?

(4)
(5)

Processo

• Ação regular e contínua realizada de forma bem definida, levando a um resultado!

• Quem faz o que? • Quando?

(6)

Processo de Software

• Sugere um conjunto de atividades:

• bem definidas

• com responsáveis

• com artefatos de entrada e saída

• com dependências entre as mesmas e ordem de execução.

• Os processos de software são complexos e, como todos os processos intelectuais e criativos, dependem de pessoas para tomar decisões e fazer julgamentos

(7)

Processo de Software

• Existem muitos processos de software diferentes, mas todos devem incluir quatro atividades fundamentais para a engenharia de

software:

• Especificação de software

• Projeto e implementação de software • Validação de software

(8)

Processos de Software

• Em comum:

• Participação de usuários

• Flexibilidade de configuração para projetos específicos • Comunicação entre membros da equipe

• Diferenças em:

• Detalhamento de atividades a serem seguidas • Critério de conclusão da execução das atividades • Rigor na atribuição de tarefas a responsáveis

• Artefatos (documentação) gerados • Nível de Automação

(9)

Modelo de Processo

• Um modelo de processo de software é uma representação simplificada de um processo de software.

• Um modelo é usado para entendimento e comunicação do processo, e como base para análise, execução, gerência e melhoria do processo.

(10)

Modelo – Cascata (Waterfall)

• O primeiro modelo do processo de desenvolvimento de software a ser publicado foi derivado de processos mais gerais da engenharia de sistemas. (Winston Royce - 1970)

• Surgiu da Crise de Software

• Cada fase precisa de aprovação para a fase seguinte

• Você deve planejar e programar todas as atividades do processo antes de começar a trabalhar nelas

(11)

Cascata

Definição de requisitos Projeto de sistema e software Implementação e teste unitário Integração e teste de sistema Operação e manutenção

(12)

Cascata

• O resultado de cada estágio é a aprovação de um ou mais documentos.

• O estágio seguinte não deve ser iniciado até que a fase anterior seja concluída.

(13)

Vantagens e desvantagens

• Vantagens

• Imita outras engenharias

• Documentação produzida a cada passo • Simplicidade

• Desvantagens

• Dificuldade em atender mudanças de requisitos do cliente • Desenvolvedores ficam esperando

• O modelo em cascata deve ser usado apenas quando os requisitos são bem compreendidos e pouco provavelmente venham a ser

(14)

Mudanças...

• Requisitos mudam constantemente devido a feedback • Novas tecnologias surgem

• Precisamos adaptar as mudanças • Interações

• Especificação em cada incremento

(15)

Desenvolvimento Incremental

• É baseado na ideia de desenvolver uma implementação inicial, expõ-Ia aos comentários dos usuários e continuar por meio da criação de várias versões até que um sistema adequado seja desenvolvido

• O desenvolvimento e a entrega são divididos em incrementos

• Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são "congelados"

(16)

Modelo

Definir esboço dos requisitos Associar requisitos a incrementos Projetar a arquitetura do sistema Desenvolver incremento Validar incremento Integrar o incremento Validar o sistema

(17)

Vantagens e desvantagens

• Vantagens:

• O cliente já poderá utilizar o sistema desde o primeiro incremento • Poderá dar feedback para próximos incrementos

• As funcionalidades são bem testadas até o ultimo incremento

• Desvantagens:

• Nem sempre os incrementos são pequenos

(18)

Engenharia de Software orientada a reúso

• Na maioria dos projetos existe um reuso de software

• Estágio inicial e o final desse modelo é semelhante aos anteriores. • Os estágios intermediários são:

• Analise de componentes • Modificação de requisitos

• Projeto de sistemas com reuso • Desenvolvimento e integração

(19)

Modelo

Especificação de requisitos Análise de componentes Alterações nos requisitos

Projeto de sistema com reuso

Desenvolvimento e integração

(20)

Vantagens e Desvantagens

• Vantagens

• Reduz a quantidade de software a ser desenvolvido e, assim, reduz os custos e riscos.

• Proporciona a entrega mais rápida do software.

• Desvantagens

• Pode levar a um sistema que não atende as reais necessidades dos usuários • Pode existir falta de controle sobre novas versões de componentes

(21)

Atividades do processo - Especificação de

Software

• Especificação de software ou engenharia de requisitos é o processo de compreensão e definição dos serviços requisitados do sistema e identificação de restrições relativas à operação e ao desenvolvimento do sistema

• Tem como objetivo produzir um documento de requisitos acordados que especifica um sistema que satisfaz os requisitos dos stakeholders • Os usuários finais e os clientes precisam de uma declaração de

requisitos em alto nível; desenvolvedores de sistemas precisam de uma especificação mais detalhada do sistema.

(22)

Modelo

Estudo de viabilidade Elicitação e análise de requisitos

Especificação de

requisitos Validação de requisitos

Relatório de viabilidade Modelos de sistema Requisitos de usuários e de sistema Documentação de requisitos

(23)

Projeto e implementação de software

• É o processo de conversão de uma especificação do sistema em um sistema executável.

• Um projeto de software é uma descrição da estrutura do software a ser implementado, dos modelos e estruturas de dados usados pelo sistema, das interfaces entre os componentes do sistema e, às vezes, dos algoritmos usados.

(24)

Modelo

Informação da plataforma

Especificação de

requisitos Descrição de dados

Projeto de arquitetura Projeto de interface Projeto de componentes

Projeto de banco de dados

Arquitetura do sistema Especificação de banco de dados Especificação de interface Especificação de componentes

(25)

Validação e Verificação de Software

• Tem a intenção de mostrar que um software se adequa a suas

especificações ao mesmo tempo que satisfaz as especificações do cliente do sistema

• Verificação: Estamos construindo certo o produto? • Validação: Estamos construindo o produto certo? • Tem dois objetivos principais

• Descobrir falhas no sistema

(26)

Validação e Verificação de Software

• Teste de programa, em que o sistema é executado com dados de testes simulados, é a principal técnica de validação

• Sistemas não devem ser testados como uma unidade única e monolítica

• Também pode envolver processos de verificação, como inspeções e revisões, em cada estágio do processo de software, desde a definição dos requisitos de usuários até o desenvolvimento do programa

Teste de

(27)
(28)

Evolução de Software

• Sistemas são feitos para refletir o comportamento humano do mundo real. [Gall97].

• Não acompanhar as mudanças do ambiente inserido acarreta em perda de qualidade.

• O Processo de envelhecimento é algo inevitável. Porém é controlável e reversível.

• Existem dois tipos de envelhecimento de software

• Quando os responsáveis falham em adaptá-lo para novos requisitos

(29)

Lidando com mudanças

• Os requisitos do sistema mudam, ao mesmo tempo que o negócio que adquiriu o sistema responde a pressões externas e mudam as prioridades de gerenciamento.

• Qualquer que seja o modelo do software de processo, é essencial que possa acomodar mudanças no software em desenvolvimento.

(30)

Prototipação

• Uma versão do sistema ou de parte dele é desenvolvida rapidamente para verificar as necessidades do cliente e a viabilidade de algumas decisões de projeto

• Esse processo previne mudanças, já que permite aos usuários experimentarem o sistema antes da entrega

• No processo de engenharia de requisitos, um protótipo pode ajudar na elicitação e validação de requisitos de sistema.

• No processo de projeto de sistema, um protótipo pode ser usado

para estudar soluções específicas do software e para apoiar o projeto de interface de usuário.

(31)

Modelo de processo de desenvolvimento de

protótipos

Estabelecer objetivos do protótipo Definir funcionalidade do protótipo Desenvolver

protótipo Avaliar protótipo

Plano de

prototipação Definição geral

Protótipo executável

Relatório de avaliação

(32)

Alguns modelos de processo ágeis

• Extreme Programming • SCRUM

(33)

Extreme Programming - XP

• É uma metodologia ágil para equipes pequenas e médias

desenvolvendo software com requisitos vagos e em constante mudança

• Levar todas as boas práticas ao extremo • Lemas:

• Comunicação • Coragem

• Feedback • Simplicidade

(34)

Comunicação

• Comunicação face a face é a maneira

mais rápida de “espalhar” conhecimento • Preferir

• Chat a e-mail • Telefone a chat

(35)

Coragem

• Indicar problemas no projeto • Parar quando está cansado

• Pedir ajuda quando necessário • Simplificar código que já está

(36)

Feedback

• Cliente participando do desenvolvimento

• Oportunidades e problemas são evidenciados o mais cedo possível

• Testes em abundância fornecem feedback sobre sistema

(37)

Simplicidade

• Regra geral: “Pensar sempre no que pode ser feito para simplificar o que já está funcionando”

• Fazer o mínimo necessário para funcionar

(38)

Modelo

• Iterações semanais

• Cliente identifica prioridades • Desenvolvedores as estimam • O escopo é reavaliado

• Contrato de escopo negociável

• O cliente recebe novas funcionalidades

• completamente testadas – postas em produção

(39)

Práticas

• Stand‐up Meeting

• Reuniões rápidas e diárias com a equipe. “Planning game”

• Refactoring

• Remoção de redundância/duplicação, eliminação de funcionalidades inúteis,...

• Test‐driven Development

• Criação dos testes antes da codificação, conhecendo previamente as possíveis falhas do seu sistema

• Pair Programming

• Todo código desenvolvido por duas pessoas trabalhando com o mesmo computador

(40)

Práticas

• The Customer is Always Available

• O cliente está sempre disponível para resolver dúvidas, alterar o escopo de uma iteração e definir prioridades

• Small Release

• O software é entregue em pequenas versões para que o cliente possa obter o seu ganho o mais cedo possível e para minimizar riscos

• Simple Design

• O código está, a qualquer momento, na forma mais simples que passe todos os testes

(41)

Práticas

• 40-Hour Week

• Cada programador trabalha 40 horas por semana. Se o horário for flexível, deve-se respeitar o horário do par naquele período, senão enquanto um trabalha o outro vai pra casa.

• Collective Code Ownership

• Equipe como um todo é responsável por cada arquivo de código

• Coding Standards

• Todo código é desenvolvido seguindo um padrão

• Continuous Integration

• Os módulos do software são integrados diversas vezes por dia e todos os testes unitários são executados. Obter 100% sucesso.

(42)
(43)

Referências

Documentos relacionados

Estima-se que a diversidade de espécies na Mata Atlântica e no Brasil seja muito maior e o baixo número de táxons conhecidos se dá por falta de identificação ao

Essa configuração do porão foi pensada talvez como alternativa de transição entre a situação de hoje e a alternativa a, ou como opção que não prescinde de um aumento no número

O procedimento descrito no caput deste artigo depende de prévia notificação ao responsável pela obra, ao qual será dada oportunidade de defesa no prazo de 07 (sete) dias corridos,

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

auxiliar na criação de KPI’s. Fonte: Elaborado pela autora com base nos Quadros de 1 a 10 dessa dissertação.. O Quadro 13 apresenta os resultados trabalhados e que possuem

Também resultou deste trabalho a análise out-process, tendo como referenciais a NBR ISO 9001:2008 e o Modelo de Excelência da Gestão® (MEG), do processo Coleta de

1. Etnografia Concorrente: São realizados estudos curtos e interativos antes do inicio do desenvolvimento, para que sejam colhidos os requisitos iniciais e a geração dos