• Nenhum resultado encontrado

A2_Processos de Software_Visão_geral_6x1

N/A
N/A
Protected

Academic year: 2021

Share "A2_Processos de Software_Visão_geral_6x1"

Copied!
9
0
0

Texto

(1)

Processos de Software

Sistemas de Informação - SI

Processos de software

Atividades para especificar, projetar, implementar e testar sistemas de software.

Processos de software

Uma Visão Genérica: 3 Fases

Definição - “o que”

Engenharia do Sistema Planejamento do Projeto Análise de Requisitos Desenvolvimento - “como” Projeto Geração do Código Teste Manutenção

Processos de Software

Um processo de software é um método para desenvolver ou produzir software.

A pesquisa em processo de software lida com métodos e tecnologias estimativas, suporte e melhoria das atividades de desenvolvimento de software.

Definequem faz o que,quandoecomo.

Processos de software

O processo é o instrumento capaz de responder a qualquer momento: O que é feito? Produto

Como é feito? Passos Por quem é feito? Agente O que usa? Insumos O que produz? Resultados

Modelo de Processo de software

Estado Atual Definição do problema Integração da solução Desenvolvimento Técnico

(2)

Modelagem

Modelagem é uma técnica de engenharia aprovada e bem aceita modelos de arquitetura de casas e de grandes prédios

modelos matemáticos a fim de analisar os efeitos de ventos e tremores de terra --> causas

Modelos

Modelos

São construídos para permitir um melhor entendimento sobre o sistema que está sendo construído.

especificar a estrutura e comportamento

guia para construção do sistema

documentam as decisões tomadas

Objetivos da modelagem

Auxiliar no processo de produção: produtos de alta qualidade, produzidos mais rapidamente e a um custo cada vez menor.

Atributos: abstração, visibilidade, especificação, construção, confiabilidade,

manutenibilidade, segurança, documentação.

Modelos de processo de software

Abstração

Melhor entendimento e maior compreensão

Visualização

Visualização antecipada antes da implementação Visões complementares do software

Modelos de processo de software

Especificação

Descrição precisa do que deve ser feito

Construção

Geração automática com ferramentas baseadas em modelos

(3)

Objetivos da modelagem

Possibilitam:

Ao gerente: controlar o processo de desenvolvimento de sistemas de software.

Ao desenvolvedor: obter a base para produzir, de maneira eficiente, software que

satisfaça os requisitos pré-estabelecidos.

Modelos de processo de software

Um conjunto de atividades fundamentais exigida para desenvolver um sistema de software Especificação. Projeto e implementação. Validação. Evolução.

Modelo x Processo

Um modelo é algo teórico, um conjunto de possíveis ações.

O processo deve determinar ações práticas a serem realizadas pela equipe como prazos definidos e métricas para se avaliar como elas estão sendo realizadas

Modelo x Processo

MODELO + PLANEJAMENTO = PROCESSO

(4)

Modelos de processo de software

-paradigmas

Uma estratégia de desenvolvimento que englobe processos, métodos e ferramentas, e as fases de desenvolvimento.

Modelo Sequencial Linear (ciclo de vida clássico)

Modelos Evolucionários Prototipação Incremental Espiral Métodos Ágeis

CASCATA

Modelo sequencial linear

(ciclo de vida clássico)

Método sequencial

O resultado de uma fase se constitui na entrada da outra.

Cada fase é estruturada como um conjunto de atividades que podem ser executadas por pessoas diferentes.

Modelo clássico

EVOLUCIONÁRIO

Modelo Evolucionário

Abordagem baseada na ideia de desenvolver uma implementação inicial, expor o resultado ao comentário do usuário e fazer seu aprimoramento por meio de muitas versões.

(5)

Modelo Evolucionário

As atividades de desenvolvimento e validação são desempenhadas paralelamente, com um rápido feedback entre elas.

Modelo Evolucionário

Trabalhar junto com o cliente, a fim de explorar seus requisitos e entregar um sistema final.

O desenvolvimento se inicia com as partes do sistema que são mais bem compreendidas.

Modelo Evolucionário

O sistema evolui com o acréscimo de novas características à medida que elas são propostas pelo cliente.

Importante quando é difícil, ou mesmo impossível, estabelecer uma especificação detalhada dos requisitos do sistema a priori.

Modelo Evolucionário

PROTOTIPAÇÃO

PROTOTIPAÇÃO

Processo no qual o desenvolvedor tem a capacidade de criar um modelo do software que será implementado. O modelo pode assumir uma das três formas:

Um modelo em papel que o usuário tenha a visão da interação homem-máquina e quantas interações ocorrerá.

Um protótipo de trabalho que implementa algumas funcionalidades exigidas pelo software.

Um programa existente que executa parte ou toda a função desejada, mas que tem outras características que serão melhoradas posteriormente

(6)

PROTÓTIPO

Um protótipo é uma versão inicial de um sistema de software, utilizada para mostrar conceitos, experimentar opções de projeto e, em geral, para conhecer mais sobre os problemas e suas possíveis soluções.

O desenvolvimento rápido de um protótipo é essencial para que os custos sejam controlados e os usuários possam fazer experiências com o protótipo no início do processo de software.

INCREMENTAL

INCREMENTAL

INCREMENTAL

CASCATA + PROTOTIPAÇÃO

O desenvolvimento é dividido em etapas, denominadas “incrementos”, que produzirão incrementalmente o sistema, até a sua versão final.

Em cada incremento é realizado todo o ciclo do desenvolvimento de software, do planejamento aos testes do sistema já em funcionamento. Cada etapa produz um sistema totalmente funcional, apesar de ainda não cobrir todos os requisitos.

(7)

ESPIRAL

Determinação dos objetivos, alternativas e restrições; Análise de risco e prototipação;

Validação e verificação; Planejamento da fase seguinte.

Objetivo: criar um roteiro de atividades e etapas para que se alcance uma maturidade do processo evolutivo de desenvolvimento de sistemas complexos e obter, ao final, um produto em sua forma mais completa possível.

Modelo Espiral

Modelo Espiral

Desenvolvido para englobar as melhores características do ciclo de vida . São avaliados riscos explicitamente e são solucionados ao longo do processo. Processo é representado como uma espiral em lugar de ser representado como uma sequência de atividades.

Modelo Espiral

Cada loop na espiral representa uma fase do processo de software. Não existem fases fixas.

Engloba as melhores características do ciclo de vida Clássico como o da

Prototipação, adicionando um novo elemento: a ANÁLISE DOS RISCOS

Modelo Espiral: funcionamento

À medida que a volta na espiral acontece, versões mais completas do software vão sendo progressivamente construída.

Durante a primeira volta, são definidos objetivos, alternativas e restrições. Se a análise de risco indicar que há incerteza nos requisitos, a prototipação pode ser usada para auxiliar o desenvolvedor e o usuário.

O usuário avalia o produto e faz sugestões de modificações.

(8)

Desenvolvimento Rápido de Software

Métodos ágeis

Extreme Programming SCRUM

Desenvolvimento Rápido de Software

Devido à rápida mudança dos ambientes de negócio, os negócios devem responder às novas oportunidades e à competição.

Isso requer software e desenvolvimento rápido, e a entrega é, frequentemente, o requisito mais crítico para sistemas de software.

Métodos Ágeis

Movimento iniciado por programadores experientes e consultores em desenvolvimento de software.

Objetivo: satisfazer o cliente entregando, rapidamente e com frequência,

sistemas com algum valor.

Os métodos ágeis são, provavelmente, os mais adequados para sistemas de negócio de porte pequeno/médio.

XP

Novas versões podem ser compiladas várias vezes por dia. Os incrementos são entregues para os clientes a cada 2 semanas.

Todos os testes devem ser realizados para cada nova versão.

Os valores de XP

Comunicação Simplicidade Retorno (feedback) Coragem

XP

Grupos de 2 a 10 programadores Projetos de 1 a 36 meses (calendário) De 1000 a 250 000 linhas de código Papéis:

(9)

Scrum

SCRUM é uma metodologia (ou Framework de acordo com o criador Ken Schwaber) onde a espinha dorsal é que chamamos de Sprint.

Papeis no Scrum

Product Owner Representante do cliente Scrum Master lidera o time de desenvolvimento

Scrum Team membros que formam o time de desenvolvedores, designers, consiste de 5 a 9 pessoas.

Sprint

SPRINT

Sprint Planning Meeting - Reunião onde Scrum Team e o Product Owner determinam quais funcionalidades e atividades serão realizadas no próximo Sprint.

Sprint Review - O ScrumTeam e o SCRUM Master apresentam ao Product Owner os resultados alcançados durante o sprint.

O que foi bom durante o Sprint? O que pode ser melhorado? As Lições aprendidas

Sprint Retrospective

Referências

Documentos relacionados

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a

Desta maneira, observando a figura 2A e 2C para os genótipos 6 e 8, nota-se que os valores de captura da energia luminosa (TRo/RC) são maiores que o de absorção (ABS/RC) e

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

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

ITIL, biblioteca de infraestrutura de tecnologia da informação, é um framework que surgiu na década de mil novecentos e oitenta pela necessidade do governo

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

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Para identificar quais treinamentos serão necessários para cada trabalhador ou equipe dentro de uma organização desenvolver um programa eficaz de T&D, pode-se buscar