aula 2 processo

42
Fernanda Campos DCC/UFJF Aula 2 Engenharia de Software

Upload: breno-almeida

Post on 14-Dec-2015

240 views

Category:

Documents


0 download

DESCRIPTION

aula 2 engenharia de software

TRANSCRIPT

Page 1: Aula 2  Processo

Fernanda Campos

DCC/UFJF

Aula 2

Engenharia de Software

Page 2: Aula 2  Processo

Processo de Software

� O desenvolvimento de software compreende um conjunto de etapas que envolve métodos, ferramentas e procedimentos, chamadas Modelo de Processo de Software.

� Estes modelos são escolhidos considerando:� domínio da aplicação� os métodos e as ferramentas a serem usadas� os controles e os artefatos que precisam ser entregues� as características do grupo desenvolvedor� o grau de conhecimento sobre o problema.

Page 3: Aula 2  Processo

Processo de Software

Page 4: Aula 2  Processo

Processo de Software

� Definições (Sommerville)Processo de Software

� Conjunto de atividades para especificação, projeto, implementação e teste de sistemas de software

� Modelo de Processo Software� Um modelo de processo software é uma

representação abstrata de um processo.� Apresenta a descrição de um processo a partir

de uma perspectiva particular.

Page 5: Aula 2  Processo
Page 6: Aula 2  Processo
Page 7: Aula 2  Processo
Page 8: Aula 2  Processo
Page 9: Aula 2  Processo
Page 10: Aula 2  Processo
Page 11: Aula 2  Processo
Page 12: Aula 2  Processo
Page 13: Aula 2  Processo
Page 14: Aula 2  Processo
Page 15: Aula 2  Processo

Modelo de Ciclo de Vida Clássico

� Às vezes chamado de modelo cascata ouainda de modelo linear seqüencial oparadigma desse ciclo de vida requer umaabordagem sistemática e seqüencial aodesenvolvimento.

� É o paradigma mais antigo e o maisusado.

Page 16: Aula 2  Processo

Modelo de Ciclo de Vida Clássico

Page 17: Aula 2  Processo
Page 18: Aula 2  Processo

Modelo de Ciclo de Vida Clássico

� Problemas

� Os projetos reais raramente seguem o fluxoseqüencial que o modelo propõe;

� Muitas vezes é difícil para o cliente declarar todasas exigências explicitamente;

� Uma versão do programa não estará disponívelaté um ponto tardio do cronograma;

� O cliente precisa ter paciência.� Indicado somente se os requisitos são bemconhecidos.

Page 19: Aula 2  Processo

Modelo de Prototipagem

� Em situações em que a incerteza está presente na definiçãode requisitos, objetivos e procedimentos a prototipagempode representar uma abordagem interessante.

� A prototipagem permite a criação de um modelo dosoftware que será desenvolvido, em uma das seguintesformas:

� Um protótipo que retrata a interação homem-máquina de forma que o usuário entenda estainteração;

� Um protótipo de trabalho que implemente umsubconjunto das funções do software;

� Um programa que executa parte ou toda a funçãodesejada, mas que tem outras características queserão melhoradas em um novo esforço dedesenvolvimento.

Page 20: Aula 2  Processo

Modelo de Prototipação

• Problemas

• O cliente vê o protótipo como uma versão detrabalho do software e exige a sua adequaçãopara o produto, pensando no prazo e nãoconsiderando as questões de qualidade emanutenibilidade;

• O desenvolvedor muitas vezes faz concessões deimplementação a fim de colocar um protótipo emfuncionamento.

Page 21: Aula 2  Processo

Modelo Desenvolvimento Rápido da

Aplicação - RAD

� É um modelo de desenvolvimento de software incremental que enfatiza um ciclo de desenvolvimento extremamente curto.

� É uma adaptação do modelo seqüencial linear, no qual o desenvolvimento rápido se utiliza da construção baseada em componentes.

� Se os requisitos são bem compreendidos e o objetivo do projeto é restrito, o processo RAD permite a uma equipe de desenvolvimento criar um sistema plenamente funcional, dentro de períodos muito curtos (60 a 90 dias).

� Muito aplicado a sistemas de informação.

Page 22: Aula 2  Processo

Modelo Desenvolvimento Rápido

da Aplicação - RAD

� Fases:� Modelagem do negócio: o fluxo de

informação entre as funções do negócio é modelada.

� Modelagem de dados: o fluxo de informação é refinado num conjunto de objetos de dados necessários para dar suporte ao negócio. Os atributos e e as relações são definidas.

� Modelagem do processo: descrições do processamento são criadas para adicionar, modificar, descartar ou recuperar um objeto de dados.

Page 23: Aula 2  Processo

Modelo Desenvolvimento Rápido da

Aplicação - RAD

� Fases� Geração da aplicação: usa técnicas de

quarta geração, reuso e desenvolvimento de componentes, e ferramentas automatizadas para facilitar a construção.

� Teste e entrega: reutiliza componentes o que reduz o tempo de teste, porém os novos componentes precisam ser testados e as interfaces exercitadas.

Page 24: Aula 2  Processo

Modelo Desenvolvimento Rápido da

Aplicação - RAD

� Desvantagens� Para projetos grandes exige RH suficientes para criar um

número adequado de equipes RAD� Exige desenvolvedores e clientes compromissados.� Nem todos os tipos de aplicação são apropriadas.� Quando riscos técnicos forem elevados o RAD não é

adequado (novas tecnologias, interoperabilidade com outros sistemas)

Page 25: Aula 2  Processo
Page 26: Aula 2  Processo

Modelos de Desenvolvimento

Evolucionários

� O software evolui durante um período de tempo� Requisitos do negócio e do produto mudam

frequentemente à medida que o desenvolvimento prossegue

� Prazos reduzidos de mercado exigem versão reduzida

� Os modelos evolucionários são interativos e permitem o desenvolvimento de versões cada vez mais completas do software.

Page 27: Aula 2  Processo
Page 28: Aula 2  Processo
Page 29: Aula 2  Processo

Desenvolvimento Evolucionário

Incremental

� Modelo incremental� Combina elementos do modelo sequencial

linear (aplicado repetidamente) com a filosofia interativa da prototipagem.

� Cada sequência linear produz um incremento factível do software,operacional.

� È particularmente útil quando não há mão-de-obra disponível para uma implementação completa, dentro do prazo estabelecido.

Page 30: Aula 2  Processo

Desenvolvimento Evolucionário

Incremental

Page 31: Aula 2  Processo
Page 32: Aula 2  Processo

Desenvolvimento Evolucionário

Incremental

Page 33: Aula 2  Processo

Desenvolvimento Evolucionário

Incremental

Page 34: Aula 2  Processo

Modelo Evolucionário - Espiral

� Foi desenvolvido para abranger asmelhores características tanto do ciclode vida clássico como de prototipação,acrescentando ao mesmo tempo umnovo elemento a análise de riscos.

Page 35: Aula 2  Processo

Modelo Evolucionário - Espiral

� Atividades� Planejamento: determinação dos objetivos,

alternativas e restrições.� Análise de riscos: análise de alternativas e

identificação e resolução dos riscos.� Engenharia: desenvolvimento do produto no “nível

seguinte”.� Avaliação: feita pelo cliente: avaliação dos resultados

da engenharia.

Page 36: Aula 2  Processo

Modelo Evolucionário - Espiral

Page 37: Aula 2  Processo

Modelo Evolucionário - Espiral

Page 38: Aula 2  Processo

Modelo Evolucionário - Espiral

Page 39: Aula 2  Processo
Page 40: Aula 2  Processo

Modelo Evolucionário - Espiral

� Cada interação ao redor da espiral possibilita a construção de versões progressivamente mais complexas. Para tal outros modelos de ciclo de vida podem ser usados para elucidar requisitos como o de prototipagem.

� O paradigma do modelo espiral é, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala. Ele usa uma abordagem evolucionária, capacitando o desenvolvedor e o cliente a

entender e reagir aos riscos de cada etapa evolutiva.

Page 41: Aula 2  Processo

Desenvolvimento Orientado a Reuso

� Incorpora as características do modelo espiral e compõe aplicações a partir de componentes de software previamente desenvolvidos ou desenvolvidos durante o processo.

� Enfatiza a reutilização, isto é desenvolve para e com reuso.

Page 42: Aula 2  Processo