modelos de processo de software
DESCRIPTION
Aula de Processo de SoftwareTRANSCRIPT
![Page 1: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/1.jpg)
Um modelo de processo para engenharia de software é escolhido com base na natureza do projeto e da aplicação, nos métodos e ferramentas a serem usados, e nos controles e nos produtos intermediários e finais que são requeridos.
Modelos de Processo de Software
Ennharia de Software 1
![Page 2: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/2.jpg)
Caracterizado por um ciclo de solução
de problemas
4 estágios distintos:
Situação atual
Definição do problema
Desenvolvimento técnico e integração da solução
Ennharia de Software 2
![Page 3: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/3.jpg)
Situação Atual
Representa o estado atual das coisas
Definição do problema
Identifica o problema específico a ser resolvido
Ennharia de Software 3
![Page 4: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/4.jpg)
Desenvolvimento técnico
Resolve o problema por intermédio da aplicação de alguma tecnologia.
Integração da solução
• Aqueles que solicitaram a solução inicialmente (p. ex. documentos, programas, dados, nova função de negócios, novo produto)
Ennharia de Software 4
![Page 5: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/5.jpg)
Ciclo solução de problemas
Aplica-se ao trabalho de engenharia de software em muitos diferentes níveis de resolução. Pode ser usado em nível macro, quando toda aplicação é considerada.
Ennharia de Software 5
![Page 6: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/6.jpg)
Em nível intermediário, quando os componentes de programa estão passando por engenharia e mesmo no nível de linha de código.
Ennharia de Software 6
![Page 7: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/7.jpg)
Cada estágio do ciclo de solução do problema contém, um ciclo idêntico de solução de problema, que contêm um outro ciclo de solução do problema (isso continua até algum limite racional; para software, uma linha de código)
Ennharia de Software 7
![Page 8: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/8.jpg)
Realisticamente, é difícil...
Porque interferências ocorrem dentro e entre os estágios. Essa visão simplificada leva ainda a uma idéia muito importante: independentemente do modelo de processo que é escolhido um projeto, todos os estágios.
Ennharia de Software 8
![Page 9: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/9.jpg)
Situação atual, definição do problema, desenvolvimento técnico e integração da solução – coexistem simultaneamente em algum nível de detalhe.
Uma completa aplicação para a geração de um pequeno trecho de código.
Ennharia de Software 9
![Page 10: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/10.jpg)
Ciclo de Vida
Ciclo de vida Clássico (cascata)
Abordagem sistemática e seqüencial;
O mais antigo ciclo e o mais amplamente utilizado pela engenharia de software;
Ennharia de Software 10
![Page 11: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/11.jpg)
Ciclo de vida
Engenharia
de Sistemas
Análise de
Requisitos
Projeto do
Software
Codificação
Teste
Manutenção
Ennharia de Software 11
![Page 12: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/12.jpg)
Modelagem – Eng. de Sistemas
Trabalho começa pelo estabelecimento de requisitos para todos os elementos do sistema e depois pela alocação de algum subconjunto desses requisitos para o software
Ennharia de Software 12
![Page 13: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/13.jpg)
Precisa interagir com outros elementos tais como hardware, pessoas e bases de dados.
Incluem um conjunto de necessidade a nível de sistema com um pouco de projeto de alto nível.
Ennharia de Software 13
![Page 14: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/14.jpg)
Inclui um conjunto de necessidades a nível estratégico e a nível da área de negócios.
Ennharia de Software 14
![Page 15: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/15.jpg)
Análise de requisitos de software
É intensificado e focalizado especificamente no software.
O ES (“analista”) deve conhecer o domínio da informação do software, tanto quanto a função necessária, o comportamento, o desempenho e a interface.
Ennharia de Software 15
![Page 16: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/16.jpg)
Os requisitos do sistema e do software são documentado e revistos com o cliente.
Ennharia de Software 16
![Page 17: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/17.jpg)
Projeto
Um processo de múltiplos passos que enfoca quatro atributos distintos do programa: estrutura de dados, arquitetura do software, representações da interface e detalhes procedimentais (algoritmicos)
Ennharia de Software 17
![Page 18: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/18.jpg)
O processo de projeto traduz os requisitos para uma representação do software, que pode ser avaliada quanto à qualidade, antes que a codificação tenha início. À semelhança dos requisitos, o projeto é documentado e torna-se parte da configuração do software.
Ennharia de Software 18
![Page 19: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/19.jpg)
Geração de código
O projeto deve ser traduzido para linguagem de máquina. O passo de geração de código executa essa tarefa. Se o projeto é realizado de maneira detalhada, a geração de código pode ser realizada mecanicamente.
Ennharia de Software 19
![Page 20: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/20.jpg)
Testes
O processo de teste focaliza os aspectos lógicos internos do software, garantindo que todos os comandos sejam testados, e os aspectos externos funcionais;
Ennharia de Software 20
![Page 21: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/21.jpg)
isto é, conduz testes para descobrir erros e garantir que entradas produzirão resultados reais, que concordam com os resultados exigidos.
Ennharia de Software 21
![Page 22: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/22.jpg)
Manutenção
Uma modificação acomodar mudanças no seu ambiente externo (modificação necessária por causa de um novo sistema Operacional ou dispositivo periférico), ou quando o cliente deseja melhoramentos funcionais ou de desempenho
Ennharia de Software 22
![Page 23: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/23.jpg)
O suporte/manutenção do software reaplica cada uma das fases precedentes a um programa existente ao invés de um novo programa
Ennharia de Software 23
![Page 24: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/24.jpg)
Ciclo de Vida
Atualmente críticas estão sendo feitas sobre sua aplicabilidade:
Os projetos raramente seguem o fluxo seqüencial;
Raramente o cliente declara totalmente suas exigências;
Uma versão do sistema é entregue
no fim do cronograma, o que deixa o cliente sem paciência
Ennharia de Software 24
![Page 25: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/25.jpg)
Prototipação
Adequado em casos de incertezas do cliente;
Recomendado quando há dúvidas da eficiência da versão final;
A prototipação pode assumir:
Modelo em papel ou baseado em PC com algumas interfaces que retratariam a versão final;
Implementação de um subconjunto da versão final
Uma versão que executa parte ou toda função desejada, mas que será melhorado em nova versão.
Ennharia de Software 25
![Page 26: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/26.jpg)
Prototipação
Ennharia de Software 26
![Page 27: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/27.jpg)
Começa com a definição de requisitos. O desenvolvedor e o cliente encontra-se e definem os objetivos gerais do software, identificam as necessidades conhecidas e delineiam áreas que necessitam de mais definições.
Ennharia de Software 27
![Page 28: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/28.jpg)
Um projeto rápido é então realizado. Esse projeto concentra-se na representação daqueles aspectos do software que vão ficar visíveis ao cliente/usuário (ex. abordagem de entrada e formato de saída).
Ennharia de Software 28
![Page 29: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/29.jpg)
O projeto rápido parte de um protótipo. O protótipo é avaliado pelo cliente/usuário e usado para refinar os requisitos do software que será desenvolvido.
Ennharia de Software 29
![Page 30: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/30.jpg)
Interações ocorrem à medida que o protótipo é ajustado para satisfazer às necessidades do cliente, enquanto, ao mesmo tempo, permitem ao desenvolvedor entender melhor o que precisa ser feito.
Ennharia de Software 30
![Page 31: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/31.jpg)
Idealmente, o protótipo serve como um mecanismo para a identificação dos requisitos do software. Se um protótipo executável é elaborado, o desenvolvedor tenta usar partes do programas existentes ou aplica ferramentas (ex. geradores de relatórios) que possibilitam que programas executáveis sejam gerados rapidamente.
Ennharia de Software 31
![Page 32: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/32.jpg)
Mas o que fazer com o protótipo quando
tiver cumprido a finalidade descrita
Na maioria dos projetos, o primeiro sistema construído consegue ser apenas utilizável. Pode ser muito lento, grande, complicado de usar ou tudo isso ao mesmo tempo.
Ennharia de Software 32
![Page 33: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/33.jpg)
Na há alternativa senão começar de novo e construir uma versão reprojetada, na qual esses problemas são resolvidos... Quando um novo conceito de sistema ou uma nova tecnologia é usada deve-se construir um sistema para ser descartado, porque nem mesmo o melhor planejamento é tão onisciente para fazer certo na primeira vez.
Ennharia de Software 33
![Page 34: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/34.jpg)
A questão de gerência, entretanto, não é se o sistema piloto elaborado deve ser descartado. Ele será. A única questão é planejar antecipadamente a construção de um descartável, ou prometer entregá-lo aos clientes...
Ennharia de Software 34
![Page 35: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/35.jpg)
O protótipo pode servir como o “primeiro sistema”. Aquele que Brooks recomenda que se descarte. Mas essa pode ser uma visão idealizada. É verdade que tanto clientes quanto desenvolvedores gostam de paradigma de prototipagem.
Ennharia de Software 35
![Page 36: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/36.jpg)
Os usuários tem o sabor de um sistema real e os desenvolvedores conseguem construir algo imediatamente.
Ennharia de Software 36
![Page 37: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/37.jpg)
Apesar dos problemas poderem ocorrer, a prototipagem pode ser utilizado. O importante é definir as regras do jogo no início, isto é, o cliente e desenvolvedor devem estar de acordo que o protótipo seja construído para servir como um mecanismo para definição dos requisitos. Depois é descartado (ou pelo menos em parte).
Ennharia de Software 37
![Page 38: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/38.jpg)
Prototipação
– possíveis problemas
O cliente vê aquilo que “parece” ser uma versão definitiva do trabalho do software.
O desenvolvedor muitas vezes faz concessões de implementação a fim de colocar um protótipo em funcionamento rapidamente.
Ennharia de Software 38
![Page 39: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/39.jpg)
Espiral
Atividades em espiral que é composta por ciclos (Planejamento, Análise de Riscos, Engenharia e Avaliação pelo Cliente);
A cada ciclo, novas versões são apresentadas ao cliente;
Caso a análise dos riscos indicar que há incertezas nos requisitos, a prototipação pode ser adotada no quadrante da engenharia para ajudar a desenvolvedor e cliente.
Ennharia de Software 39
![Page 40: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/40.jpg)
Espiral
Ennharia de Software 40
![Page 41: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/41.jpg)
É um modelo de processo de software evolucionário que combina a natureza iterativa da prototipagem com os aspectos controlados e sistemáticos de modelo sequencial linear
Ennharia de Software 41
![Page 42: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/42.jpg)
Fornece potencial para o desenvolvimento rápido de versões incrementais do software. Usando o modelo Espiral, o software é desenvolvido numa séie de versões incrementais.
Ennharia de Software 42
![Page 43: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/43.jpg)
A versão incremental, durante as primeiras iterações, pode ser um modelo de papel ou protótipo. Durante as últimas iterações, são produzidas versões cada vez mais completas do sistema submetido à engenharia.
Ennharia de Software 43
![Page 44: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/44.jpg)
Regiões de tarefas
Comunicação com o cliente – tarefas necessárias para estabelecer efetiva comunicação entre o desenvolvedor e o cliente
Ennharia de Software 44
![Page 45: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/45.jpg)
Planejamento – tarefa necessárias para definir recursos, prazos e outras informações relacionadas ao projeto.
Análise de Risco – tarefas necessárias para avaliar os riscos, tanto técnico quanto gerenciais. Ennharia de Software 45
![Page 46: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/46.jpg)
Engenharia – tarefa necessária para construir uma ou mais representações da aplicação.
Construção e liberação – para construir, testar, instalar e fornecer apoio ao usuário (Ex. documentação e treinamento)
Ennharia de Software 46
![Page 47: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/47.jpg)
Avaliação pelo cliente – tarefa necessária para obter realimentação do cliente, com base na avaliação das representações do software criadas durante o estágio de engenharia e implementadas durante o estágio de instalação.
Ennharia de Software 47
![Page 48: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/48.jpg)
Cada uma das regiões é preenchida por um conjunto de tarefas de trabalho, que são adaptadas às características do projeto a ser desenvolvidos.
Ennharia de Software 48
![Page 49: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/49.jpg)
Para projetos pequenos, a quantidade de tarefas de trabalho e suas formalidades é pequena. Para projetos maiores, mais críticos, cada região de tarefas contém mais tarefas de trabalho, que são definidas para alcançar um alto nível de formalidade.
Ennharia de Software 49
![Page 50: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/50.jpg)
A medida que esse processo evolucionário tem início, a equipe de engenharia de software move-se em volta da espiral, no sentido horário, a partir do centro. O primeiro circuito em torno da espiral pode resultar no desenvolvimento da especificação do produto;
Ennharia de Software 50
![Page 51: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/51.jpg)
Passagens subsequentes em torno da espiral podem ser usadas para desenvolver um protótipo e depois, progressivamente, versões mais sofisticadas do software. Cada passagem pela região de planejamento resulta em ajustes ao plano do projeto.
Ennharia de Software 51
![Page 52: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/52.jpg)
O custo e o cronograma sã ajustados com base na realimentação derivada da avaliação do cliente. Além disso, o gerente do projeto ajusta a quantidade de iterações necessárias planejadas para completar o software.
Ennharia de Software 52
![Page 53: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/53.jpg)
Um “projeto de desenvolvimento conceitual” começa no centro da espiral e continua (ocorrem múltiplas iterações ao longo do caminho em espiral que limita a região central escura) até que o desenvolvimento conceitual se complete.
Ennharia de Software 53
![Page 54: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/54.jpg)
Se o conceito deve ser desenvolvido até virar um produto real, o processo prossegue através do próximo cubo (ponto de entrada para um projeto de desenvolvimento de novo produto) e um “novo projeto de desenvolvimento” é iniciado.
Ennharia de Software 54
![Page 55: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/55.jpg)
O novo produto vai evoluir através de um certo número de iterações, em torno da espiral, seguindo o caminho que limita a região, que tem uma tonalidade um pouco mais clara do que o núcleo.
Ennharia de Software 55
![Page 56: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/56.jpg)
Em resumo, o espiral, quando caracterizada desse modo, permanece operacional até que o software seja retirado de serviço. Há momentos em que eu o processo fica adormecido, mas sempre que uma modificação é iniciada, o processo começa no ponto de entrada adequado (ex.: melhoria)
Ennharia de Software 56
![Page 57: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/57.jpg)
O modelo é utilizado para desenvolvimento de sistemas de grande porte. Como o software evolui a medida que o processo avança o desenvolvedor e o cliente entendem melhor e reagem aos riscos em cada nível evolucionário.
Ennharia de Software 57
![Page 58: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/58.jpg)
O modelo espiral usa prototipagem como mecanismo de redução de risco, porém, o mais importante, é que permite ao desenvolvedor aplicar a abordagem de prototipagem em qualquer estágio de evolução do produto.
Ennharia de Software 58
![Page 59: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/59.jpg)
Espiral
possíveis problemas
Pode ser difícil convencer os clientes de que a abordagem evolutiva é controlável;
Exige considerável experiência na avaliação dos riscos;
É um modelo relativamente novo, portanto a atenção e cuidados devem ser maiores.
Ennharia de Software 59
![Page 60: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/60.jpg)
Modelo Espiral Ganha-Ganha
O objetivo dessa atividade é formular os requisitos de projeto do cliente. Em contexto ideal, o desenvolvedor simplesmente pergunta ao cliente o que é necessário e o cliente fornece os detalhes suficiente para prosseguir.
Ennharia de Software 60
![Page 61: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/61.jpg)
Infelizmente, isso raramente acontece. Na realidade, o cliente e o desenvolvedor iniciam uma negociação, em que o cliente pode ser levado a ponderar a funcionalidade, o desempenho e outras características do produto, ou do sistema, em relação ao custo e ao prazo para chegar ao mercado.
Ennharia de Software 61
![Page 62: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/62.jpg)
As melhores negociações buscam um resultado “ganha-ganha”. Isto é, o cliente ganha obtendo um produto ou sistema que satisfaz à maior parte das necessidades do cliente, e o desenvolvedor ganha trabalhando com orçamento e prazos de entrega realísticos e possíveis de serem cumpridos.
Ennharia de Software 62
![Page 63: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/63.jpg)
O modelo espiral ganha-ganha de Boehm [BO98] define um conjunto de atividades de negociação no começo de cada passagem, em torno da espiral. Ao invés de uma única atividade de comunicação com o cliente, as seguintes atividades são definidas:
Ennharia de Software 63
![Page 64: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/64.jpg)
Identificação dos principais “interessados” do sistema ou do subsistema.
Determinação das condições de lucro do interessado.
Negociação das condições de ganho do interessado para reconciliá-las no âmbito das condições ganha-ganha para todos os envolvidos.
Ennharia de Software 64
![Page 65: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/65.jpg)
A conclusão bem-sucedida desses passos iniciais leva a um resultado ganha-ganha que vem a ser o principal critério para prosseguir em direção à definição do software e do sistema.
Ennharia de Software 65
![Page 66: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/66.jpg)
Além da ênfase na negociação inicial, o modelo espiral ganha-ganha introduz três marcos de processo, chamados pontos de ancoragem que ajudam a estabelecer quando um ciclo é completado em torno da espiral e fornecem marcos de decisão antes do projeto de software prosseguir.
Ennharia de Software 66
![Page 67: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/67.jpg)
Os pontos de ancoragem representam três diferentes visões de progresso a medida que o projeto percorre a espiral. O primeiro ponto...
Ennharia de Software 67
![Page 68: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/68.jpg)
Primeiro ponto de ancoragem
Objetivos de ciclo de vida – define um conjunto de objetivos para cada atividade principal de engenharia de software. (ex. alto nível dos requisitos do sistema/produto)
Ennharia de Software 68
![Page 69: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/69.jpg)
Segundo ponto de ancoragem
Arquitetura do ciclo de vida – estabelece objetivos que precisam ser satisfeitos, à medida que a arquitetura do sistema, e do software, é definida. (ex. avaliação de componentes reusável)
Ennharia de Software 69
![Page 70: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/70.jpg)
Terceiro ponto de ancoragem
Capacidade operacional – um conjunto de objetivos associado com a preparação do software para instalação/distribuição, preparação do local antes da instalação e assistência requerida por todas as partes que irão usar ao dar suporte.
Ennharia de Software 70
![Page 71: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/71.jpg)
Visão Geral da ES
Ao observarmos os modelos apresentados de ciclo de vida de um software, deparamos com fases em comum em todos eles;
Basicamente a Engenharia de Software dispões de 3 grandes fases:
Definição;
Desenvolvimento;
Manutenção.
Ennharia de Software 71
![Page 72: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/72.jpg)
Fase de Definição:
Análise ou Definição do Sistema;
Permite determinar o papel de cada elemento (software, hardware, equipamentos, pessoas)
Planejamento do Projeto de Software;
Análise de riscos, definição de recursos, custos e cronograma.
Análise de Requisitos
Determina o conjunto de funções a serem realizadas e principais estruturas de informação a serem processadas.
Ennharia de Software 72
![Page 73: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/73.jpg)
Fase de Desenvolvimento:
Projeto de Software
Definição de estrutura de dados, arquitetura de software, detalhes procedimentais e caracterização de interface.
Codificação:
É o mapa ou definição em forma de código em uma ou mais linguagens de programação baseado nas definições de Projeto de Software
Teste de Software:
Submissão a um conjunto de testes para validar sua funcionalidade e corrigir possíveis erros.
Ennharia de Software 73
![Page 74: Modelos de Processo de Software](https://reader033.vdocuments.site/reader033/viewer/2022042608/568bd9c81a28ab2034a84d87/html5/thumbnails/74.jpg)
Fase de Manutenção:
Correção
Atividade de correção dos erros observados durante a operação do sistema
Adaptação
Alterações no software para que ele possa ser executado por exemplo em plataforma diferente
Melhoramento funcional ou Perfectivo
Alterações que permitam melhorar aspectos do software como desempenho, interface, robustez. Ennharia de Software 74