• Nenhum resultado encontrado

Aula 6 - Modelos_Software

N/A
N/A
Protected

Academic year: 2021

Share "Aula 6 - Modelos_Software"

Copied!
58
0
0

Texto

(1)

Engenharia de Software

Modelos de Software – Cap 2 - PLT

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

(2)

Aula

Modelo em cascata;O modelo de desenvolvimento evolucionário;Prototipação;Espiral ;Modelo de desenvolvimento baseado em componentes.

(3)

Relembrando

 O que é um Processo?  processo

substantivo masculino

1. ação continuada, realização contínua e prolongada de alguma atividade;

seguimento, curso, decurso.

2. sequência contínua de fatos ou

operações que apresentam certa

unidade ou que se reproduzem com certa regularidade; andamento,

(4)

Relembrando

 Processos de Software

“Quando se fornece um serviço ou cria-se

um produto, seja desenvolvendo um software, escrevendo um relatório ou fazendo uma

viagem de negócios, segue-se

costumeiramente uma sequencia de etapas para completar um conjunto de tarefas.”

(5)

Processos de Software

Não existe um processo ideal. As organizações devem criar, verificar,

validar e aperfeiçoar seus próprios métodos (CMMI, 2006).

(6)

Cascata

 O modelo clássico ou cascata, que também é conhecido por abordagem “top-down”, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação geral. Esse modelo foi derivado de modelos de atividade de engenharia com o fim de estabelecer ordem no

desenvolvimento de grandes produtos de software. Comparado com outros modelos de desenvolvimento de software.

(7)
(8)

Cascata

 O modelo cascata é um dos mais

importantes modelos, e é referência para muitos outros modelos, servindo de base para muitos projetos modernos. A versão original deste modelo foi melhorada e

retocada ao longo do tempo e continua sendo muito utilizado hoje em dia.

(9)

Cascata

 Grande parte do sucesso do modelo

cascata está no facto dele ser orientado para documentação. No entanto deve salientar-se que a documentação

abrange mais do que arquivo de texto, abrange representações

(10)

Cascata

 Existem três abordagens de modelos de processo de desenvolvimento de

software. Elas tentem colocar ordem numa atividade caótica.

(11)

Reflexão

 O que São Atividades Caóticas?  Por que Projetos Podem ser

(12)

Cascata

 O modelo Cascata é um modelo de

engenharia projetado para ser aplicado no desenvolvimento do software.

 A ideia principal que o dirige é que as diferentes etapas de desenvolvimento seguem uma sequência de eventos.

(13)

Cascata

 O Funcionamento Básico do Cascata:  “a saída da primeira etapa “fluí” para a

segunda etapa e a saída da segunda etapa “fluí” para a terceira e assim por diante. As atividades a executar são agrupadas em tarefas, executadas sequencialmente, de forma que uma tarefa só poderá ter início quando a anterior tiver terminado.”

(14)
(15)
(16)

Cascata

 O modelo em cascata tem a vantagem que só avança para a tarefa seguinte quando o cliente valida e aceita as

atividades realizadas na etapa em que se encontra.

(17)

Cascata

 Pressupõe que o cliente participa

ativamente no projeto e que sabe muito bem o que quer. Este modelo minimiza o impacto da compreensão adquirida no decurso de um projeto, uma vez que se um processo não pode voltar atrás de modo a alterar os modelos e as

conclusões das tarefas anteriores, é normal que as novas ideias sobre o sistema não sejam aproveitadas.

(18)

Reflexão

 O Cliente realmente participa de todo processo de desenvolvimento?

(19)

Cascata

 Numa tentativa de resolver este tipo de problema foi definido um novo tipo de processo baseado no clássico em cascata, designado por modelo em cascata revisto, cuja principal diferença consiste em prever a possibilidade de a partir de qualquer tarefa do ciclo se poder regressar a uma tarefa anterior de forma a contemplar alterações funcionais e/ou técnicas que entretanto

tenham surgido, em virtude de um maior conhecimento que entretanto se tenha obtido.

(20)
(21)

Cascata

 Problemas

 O ciclo de vida Cascata é o paradigma mais visto e mais amplamente empregue na engenharia de software, porém sua aplicabilidade, em muitos campos, tem

sido questionada. Entre os problemas que surgem quando se aplica o modelo são:

(22)

Cascata

◦ Na realidade, os projetos raramente seguem o fluxo sequencial que o modelo propõe. A

interação é sempre necessária e está presente, criando problemas na aplicação do modelo;

◦ Em princípio, é difícil para o cliente especificar os requisitos explicitamente, o que acarreta a

incerteza natural do início de qualquer projeto;

◦ O cliente deve ser paciente, pois uma versão funcional não estará disponível até o final do desenvolvimento. Qualquer erro ou mal

entendido, se não for detectado até que o software seja revisado, pode ser desastroso.

(23)

Reflexão

Qual e o maior Problema enfrentado no modelo em cascata? (Não existem

respostas certas e erradas)

Resposta: Dependendo da Alteração

a ser realizada o Custo pode ser elevado demais.

(24)
(25)

Modelo Evolucionário

 O software evolui ao longo do tempo e conforme o desenvolvimento deste

software avança também temos mudanças nas necessidades de negócio e de

(26)

Modelo Evolucionário

 Isso torna inadequado seguirmos um planejamento em linha reta de um

produto. Os modelos de processo

evolucionário tornaram-se realidade para que possamos desenvolver um produto que evolua ao longo do tempo.

(27)

Modelo Evolucionário

 Modelos evolucionários são

caracterizados por serem iterativos e apresentarem características que

possibilitem desenvolvermos versões cada vez mais completas do software. Os

processos evolucionários se caracterizam por dois modelos comuns: Prototipação

(28)

Modelo Evolucionário

 Prototipação: A prototipação é utilizada quando o desenvolver não tem certeza

quanto à eficiência de um algoritmo, ou quanto à adaptabilidade de um

sistema operacional ou ainda quanto à forma em que deva ocorrer a

interação entre o cliente e o sistema.

(29)

Modelo Evolucionário

 Quando temos essa situação a

prototipação é uma excelente alternativa. Vale ressaltar que a prototipação pode

ser utilizada em qualquer processo de software, visto que a prototipação auxilia os interessados a

compreender melhor o que está para ser construído.

(30)

Modelo Evolucionário

 A prototipação se dá basicamente com a comunicação que ocorre através de uma reunião com todos os envolvidos afim de definir objetivos gerais do software e

identificar quais requisitos já estão bem conhecidos e esquematizar as áreas que realmente necessitam de uma definição mais ampla.

(31)

Modelo Evolucionário

Uma iteração de prototipação deve ser planejada rapidamente e dessa

forma ocorre a modelagem na forma de um projeto rápido. O projeto rápido foca na representação dos aspectos do

software que serão visíveis aos usuários como layout da interface e os formatos de exibição. Esse projeto rápido leva à construção de um protótipo que será avaliado pelo cliente.

(32)

Modelo Evolucionário

 O cliente por sua vez retornará um

feedback á equipe de software que irá

aprimorar os requisitos. A iteração vai ocorrendo conforme vamos ajustando o protótipo às necessidades dos usuários.

(33)
(34)

Modelo Evolucionário

 De forma geral o protótipo auxilia na

identificação dos requisitos do software. Os protótipos podem ser descartados quando usamo-los apenas para entender um determinado requisito ou pode ser

utilizado como um produto evolucionário que servirá para o cliente.

(35)

Reflexão

 Qual e a Principal diferença entre um Protótipo e um Layout?

 Embora bastante semelhantes o Protótipo e considerado “Funcional” enquanto o

(36)

Modelo em Espiral

 O famoso modelo espiral foi proposto por Boehm. Esse é um modelo de

processo de software evolucionário que também é iterativo como a prototipação, porém com aspectos sistemáticos e

controlados do modelo cascata. O modelo espiral fornece um grande

potencial para que possamos ter rápido desenvolvimento de versão cada vez mais completas.

(37)

Modelo em Espiral

 Um modelo espiral possui diversas

atividades definidas pela engenharia de software, onde cada uma dessas

atividades representa um segmento do caminho espiral.

(38)
(39)
(40)

Modelo em Espiral

 Sempre iniciamos pelo centro da espiral e prosseguimos no sentido horário.

 Os riscos são considerados à medida que cada evolução é realizada. A primeira

atividade se dá com o desenvolvimento de uma especificação de produto, as

próximas passagens podem ser usadas para desenvolver um protótipo e, assim sucessivamente vamos evoluindo para versões cada vez mais sofisticadas do software.

(41)

Modelo em Espiral

 Cada passagem pela parte de

planejamento, por exemplo, resulta em ajustes no planejamento do projeto.

 O custo e o cronograma são sempre ajustados de acordo com o feedback obtido do cliente após uma entrega.

Também teremos um ajuste no número de iterações planejadas para completar o software.

(42)

Modelo em Espiral

 Podemos notar que diferente de outros modelos que terminam quando o

software é entregue, o modelo espiral

pode ser adaptado a cada entrega. O

projeto finaliza quando o cliente fica

satisfeito, quando o software é retirado de operação ou uma data encerra

(43)

Modelo em Espiral

 O modelo espiral é largamente utilizado e é considerada uma abordagem realista

(44)

Modelo Baseado em Componentes

 O modelo baseado em componentes incorpora muitas características do

modelo em Espiral, tendo como base os seguintes pontos:

◦ Baseado na tecnologia de orientação a objetos;

◦ Reaproveitamento de código;

◦ Recursão onde um componente esta presente dentro de outro componente.

(45)

Modelo Baseado em Componentes

 O modelo compõe aplicações à partir de componentes de software previamente definidos. Um componente é uma

parte independente do sistema, que pode ser substituído, mas que possui uma função clara e bem definida na estrutura do sistema.

(46)

Modelo Baseado em Componentes

 As atividades de modelagem e construção começam com a identificação de

componentes candidatos. Esses

componentes podem ser projetados

como módulos de software convencional ou como classes ou pacotes de classes orientados a objetos.

(47)

Modelo Baseado em Componentes

 O modelo de desenvolvimento baseado em componentes incorpora os seguintes passos:

◦ Produtos baseados em componentes disponíveis são pesquisados e avaliados para o domínio da aplicação em questão.

◦ Tópicos de integração de componentes são considerados.

◦ Uma arquitetura de software é projetada para acomodar os componentes.

◦ Componentes são integrados à arquitetura.

◦ Testes abrangentes são realizados para garantir a funcionalidade adequada.

(48)

Modelo Baseado em Componentes

 O modelo de desenvolvimento baseado em componentes leva ao reuso de software, e a reusabilidade fornece vários benefícios. Com base em estudos de reusabilidade, a QSM

Associates, Inc. relata que o desenvolvimento baseado em componentes leva à redução de 70% do prazo do ciclo de desenvolvimento; uma redução de 84% no custo do projeto; e um índice de produtividade de 26,2,

comparando com o padrão de 16,9 para a indústria.

(49)

Modelo Baseado em Componentes

 Apesar desses resultados, existe pouca dúvida de que o modelo de

desenvolvimento baseado em

componentes fornece vantagens

significativas para os desenvolvedores de software.

(50)

Modelo Baseado em Componentes

 Para projetar um sistema baseado em componentes é necessário entender os benefícios e dificuldades da tecnologia, bem como a ferramenta disponível. Os benefícios da componentização estão ligados a manutenabilidade, reuso,

composição, extensibilidade, integração, escalabilidade, entre outros.

(51)

Modelo Baseado em Componentes

 As dificuldades podem ser separadas em dificuldades do desenvolvimento para

componentização (construção dos componentes e da infra-estrutura) e dificuldades do desenvolvimento com componentização.

(52)

Modelo Baseado em Componentes

 As primeiras estão ligadas ao esforço inicial de análise, projeto e

desenvolvimento, enquanto as segundas estão ligadas ao esforço despendido no entendimento dos componentes e das ferramentas envolvidas, à perda de

flexibilidade, à dependência de terceiros e à adaptação do processo de

(53)

Modelo Baseado em Componentes

 Vantagens

 Reutilização de Código;

 Redução do tempo de desenvolvimento;  Redução de Custos de Projetos;

(54)

Modelo Baseado em Componentes

 Desvantagens

 Indisponibilidade de Código Fonte, muitas vezes, componentes comprados os

desenvolvidos não possuem código fonte disponível.

 Solução deve ser construida identificando e isolando componentes independentes, com interfaces suficientemente genéricas.

(55)

Exercício 30 Minutos

 Com Base nos Modelos de Software visto crie em Grupo ( Ate 5 Pessoas) um

Modelo para ser adotado no desenvolvimento.

 A criação do Modelo e livre junto com as etapas.

(56)

Referencias

SOMMERVILLE, Ian (org.). Engenharia de

Software. 9ª ed. São Paulo: PEARSON, 2011.

PRESSMAN, Roger S.. Engenharia de Software.

7ª ed. São Paulo: Makron Books, 2007.

 http://www.api.adm.br/GRS/referencias/t1_g13.m odeloCascata.pdf  http://www.univasf.edu.br/~ricardo.aramos/discipli nas/ES_I_2012_2/Aula03_ModelosProcessos.pdf  http://www.devmedia.com.br/introducao-aos- processos-de-software-e-o-modelo-incremental-e-evolucionario/29839

(57)

Referencias

 http://www.inf.ufpr.br/lmperes/ciclos_vida/ desenv_componentes.pdf  http://metodologiasclassicas.blogspot.com. br/p/modelos-especializados-de-processos.html

(58)

Referências

Documentos relacionados

Resumidamente a forma de comercialização dos apartamentos FLAT e operação de locação dos apartamentos do HOTEL para uma bandeira hoteleira proposta a seguir objetiva a

No mesmo período do ano 2018 foram notificados nove óbitos por SRAG; destes, seis classificados como SRAG não especificada e três encerrados como Influenza A

Como foi visto, a primeira etapa do processo decisório de consumo é o reconhecimento da necessidade, com isso, observou-se que, nessa primeira etapa, os consumidores buscam no

Na avaliação da infiltração de água em Neossolos Regolíticos e nas condições pedoclimáticas da região onde foi desenvolvido este trabalho, conclui- se que os Neossolos

Continuando no contexto do Estado brasileiro, o quarto capítulo: O PRONERA como Política de acesso à Educação Superior e os Movimentos Sociais no contexto da Globalização da

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

A problemática que leva Bourdieu e Coleman a uma concepção ampliada do conceito de capital repousa, fundamentalmente, sobre evidências empíricas que apontam as limitações do

As cascavéis (Crotalus), apesar de extremamente venenosas, são cobras que, em relação a outras espécies, causam poucos acidentes a humanos. Isso se deve ao ruído