0% acharam este documento útil (0 voto)
6 visualizações8 páginas

Modelos Prescritivos de Processo de Software

Enviado por

Elis Silva
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações8 páginas

Modelos Prescritivos de Processo de Software

Enviado por

Elis Silva
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Modelos de processo

processo de software é um conjunto de atividades e resultados associados que produzem


um produto de software. Portanto, um processo de software se dá pela estruturação de um
conjunto de atividades que resultam num produto software. Um processo deve contribuir na
redução de custos, aumento de qualidade e de produção. Um processo que não suporta
esses objetivos não é considerado um processo adequado

Um processo de software pode conter diversas atividades. As principais atividades que


normalmente todo processo possui são: especificação, projeto, implementação, validação,
manutenção e evolução. As atividades constituem um conjunto mínimo para se obter um
produto de software.

Quando temos um processo definido temos a garantia de uma estabilidade, controle e


organização. Na próxima seção veremos mais sobre os modelos de processos prescritivos.
A estrutura genérica de um processo, independente do modelo escolhido,
em geral, inclui as seguintes atividades:
○ Comunicação
○ Planejamento
○ Modelagem
○ Construção
○ Implantação
A principal função desses modelos é colocar em ordem o caos do
desenvolvimento de software.

Modelos Prescritivos
Mesmo com a ascensão dos métodos ágeis, os modelos prescritivos ainda são muito
utilizados na indústria de software.

Os modelos prescritivos de processo surgiram para trazer certa estrutura inicial aos
processos. Como o próprio nome sugere, esses modelos prescrevem um conjunto de
elementos e a maneira como esses elementos se inter-relacionam. Apesar das
características dos modelos prescritivos, sempre devemos adaptá-los aos problemas e
projetos específicos que estamos tratando.

Temos um conjunto de quatro modelos prescritivos, são eles: Modelo Cascata, Modelo
Incremental, Modelo Evolucionário e Modelos Concorrentes.

No restante deste artigo veremos dois modelos prescritivos, o modelo incremental e o


modelo evolucionário. Este último ainda é subdividido em outros dois modelos.

Modelo Cascata:
O Modelo em Cascata é um modelo de desenvolvimento de software sequencial no qual o
processo é visto como um fluir constante para frente através das fases de análise de
requisitos, projeto, implementação, testes, integração, e manutenção de software. O modelo
cascata, algumas vezes chamado ciclo de vida clássico, sugere
uma abordagem sequencial e sistemática para o desenvolvimento de
software.O modelo cascata é utilizado principalmente quando os requisitos de um
determinado problema são bem compreendidos. Uma forma de utilizar o modelo cascata é
quando precisamos fazer adaptações ou aperfeiçoamentos em um sistema já existente.
A importância do Modelo Cascata
Esse modelo é um dos mais importantes e utilizados por servirem como uma base para a
criação de outros modelos de gestão do desenvolvimento de software, sendo uma base
também para os modelos de gestão de projetos mais modernos.
Vantagens:
Quais as vantagens do modelo em cascata? Uma das principais vantagens do modelo é
que, quando bem utilizado, ele não permite pular fases. A etapa seguinte só é iniciada após
concluída a anterior. Com isso, é possível garantir que não haverá falhas de aplicação do
modelo no decorrer do projeto.
○ Bastante simples porque as atividades são claras e bem definidas;
○ Permite que os desenvolvedores descrevam o que deve ser realizado;
○ Fácil gerenciamento;
○ Abordagem clássica e deve continuar sendo usada por bastante tempo;
○ Tornou-se base para outros modelos mais complexos.

Desvantagens:
○ Não há feedback entre as fases;
○ O cliente só pode ver o produto funcionando quando este estiver
completamente pronto;
○ Qualquer alteração no sistema pode se tornar uma tarefa difícil;
○ Atraso em uma fase é cascateado para as demais.

Modelo Incremental:
O modelo de construção incremental é um método de desenvolvimento de software em que
o produto é projetado, implementado e testado de forma incremental até a conclusão do
produto. Envolve desenvolvimento e manutenção. O produto é definido como acabado
quando atende a todos os seus requisitos. Em várias situações, os requisitos iniciais do
software são bem definidos,
entretanto, o uso de um processo puramente linear não é utilizado.
● O Modelo Incremental surge como uma melhoria do Modelo em Cascata.
● Cada pedaço (incremento) é desenvolvido de forma linear, como no Modelo
em Cascata, e em seguida exposto aos comentários dos clientes.
São atividades do modelo incremental: especificação, desenvolvimento e validação.

Vantagens:
Vantagens de usar o modelo de processo incremental:

Reduz o custo de entrega inicial. Possui implantação incremental de recursos. Ele pode
deduzir erros facilmente porque os módulos principais são usados ​pelo cliente desde o
início da fase e, em seguida, 5. Eles são testados exaustivamente.

Desvantagens:
As desvantagens do desenvolvimento incremental incluem: Todos os requisitos precisam
ser conhecidos para decompor o produto em módulos. Não são tão adaptáveis a mudanças
nas exigências, a menos que combinadas com o trabalho em iterações. O produto não
estará completo até que cada peça esteja no lugar.
Quais são os problemas com a entrega incremental Sommerville?

SOMMERVILLE (2011) aponta dois problemas no modelo incremental.


O primeiro problema é que o progresso não é visível e os gerentes precisam de entregas
regulares para mensurar o progresso. ...
O segundo problema é que a estrutura do sistema tende a se degradar com a adição dos
novos incrementos.

Exemplo de um Modelo Incremental


● Um software de processamento de texto
1º Incremento: Entregar a gestão básica de arquivos, edição e produção de
documentos.
2º Incremento: Capacidades de edição e de produção de documentos mais
sofisticados.
3º Incremento: Verificação ortográfica e gramatical.
4º Incremento: Capacidade avançada de disposição de página.
O 1º Incremento do modelo incremental é chamado de núcleo do produto:
requisitos básicos são satisfeitos.
● E as características suplementares?
● E depois? Revisar, Desenvolver Plano, Modificar núcleo.
● O objetivo do modelo é oferecer ao usuário um produto operacional a cada
incremento, versões simplificadas do produto final, mas que oferecem
capacidades que servem ao usuário, além de uma plataforma para sua avaliação.

Modelo Evolucionário:

O modelo evolucionário tem como base a idéia de desenvolver uma implementação inicial,
e interagir ativamente com o cliente de modo a fazer seu aprimoramento por meio de muitas
versões até que um sistema adequado tenha sido desenvolvido.
Software, assim como todos sistemas complexos, evolui ao longo do
tempo.
● Em situações como essa ou similares, faz-se necessário um modelo de
processo que tenha sido projetado especificamente para desenvolver
um produto que evolua ao longo do tempo.
● Modelos evolucionários são iterativos.

Quando usar o modelo evolucionário?


O modelo evolucionário é comumente usado quando o cliente deseja começar a usar os
recursos principais em vez de esperar pelo software completo. O modelo evolucionário
também é usado no desenvolvimento de software orientado a objetos porque o sistema
pode ser facilmente dividido em unidades em termos de objetos.

O que caracteriza o desenvolvimento evolucionário?


O desenvolvimento evolucionário baseia-se na idéia de desenvolvimento de uma
implementação inicial, expondo o resultado aos comentários do usuário e refinando esses
comentários por meio de várias versões até que seja desenvolvido um sistema adequado.

Modelos Evolucionários - Prototipação


É utilizado, frequentemente, quando não há um detalhamento dos
requisitos para funções e recursos do software.
● A prototipação pode ser usada como um modelo isolado, mas também
como uma técnica aliada a um outro modelo.
Etapas:
○ Comunicação – reunião entre o analista e o cliente para
definir os objetivos gerais do software;
○ Modelagem (projeto rápido) – define os aspectos visuais do
usuário, por exemplo, interface de páginas;
○ Construção do protótipo
○ Implantação – entrega e feedback.

Vantagens
○ Facilita a definição de requisitos.
○ Reduz os riscos e incertezas do desenvolvimento.
○ A experiência de produzir o protótipo pode reduzir o custo das
etapas seguintes.
● Desvantagens
○ O cliente precisa estar ciente de que o produto deverá ser
refeito, uma vez que foi construído apenas um protótipo;

Modelos Evolucionários - Espiral


É um modelo de processo de software evolucionário que acopla a natureza
iterativa da prototipação com os aspectos sistemáticos e controlados do
modelo cascata.
É um modelo evolucionário;
● Sucessivos refinamentos;
● Inclui os conceitos de Prototipagem e Gerenciamento de Riscos;

Vantagens
● Redução dos riscos;
● Versátil para testar e lidar com mudanças
Desvantagens:
● A avaliação dos riscos exige um analista com experiência;
● Erros na avaliação de riscos podem impactar o projeto.

Modelos Especializados

Modelos de Processo Especializado


Um modelo de processo especializado leva em conta muitas das características de um ou
mais modelos tradicionais, tais como o modelo espiral, modelo evolucionário, entre outros.
Esses modelos tendem a ser aplicados quando optamos por uma abordagem mais
especializada de engenharia de software ou quando definida de uma forma mais restritiva.

Temos um conjunto de três modelos de processo especializado, são eles: Modelo


Desenvolvimento baseado em componentes, Modelo de métodos formais e o
Desenvolvimento de software orientado a aspectos. No restante deste artigo veremos mais
especificamente sobre os dois primeiros modelos.

1) Desenvolvimento Baseado em Componentes


O modelo de desenvolvimento baseado em componentes incorpora muitas das
características do modelo espiral, com ênfase na decomposição dos sistemas. 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
possue uma função clara e bem definida na estrutura do sistema.
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.
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.
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. Apesar
desses resultados, existe pouca dúvida de que o modelo de desenvolvimento baseado em
componentes fornece vantagens significativas para os desenvolvedores de software.
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.
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.
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
desenvolvimento.

2)O Modelo de Métodos Formais


O modelo de métodos formais abrange um conjunto de atividades que levam à
especificação matemática formal do software de computador.
Os métodos formais permitem especificar, desenvolver e verificar um sistema baseado em
computador pela aplicação de uma rigorosa notação matemática. Quando métodos formais
são usados durante o desenvolvimento, eles fornecem um mecanismo para eliminação de
muitos problemas.
Ambiguidade, inconclusão e inconsistência podem ser descobertas e corrigidas mais
facilmente por meios de análises matemáticas. Isso permite que os desenvolvedores
descubram e corrijam erros que possam passar desapercebidos.
O modelo formal fornece a promessa de um software sem defeitos, mas algumas
preocupações devem ser levantadas em um ambiente comercial:
- o desenvolvimento de métodos formais é muito lento e dispendioso
- como poucos desenvolvedores de software têm o preparo necessário para aplicar
métodos formais, torna-se necessário um treinamento extensivo.
- é difícil usar os modelos como um mecanismo de comunicação, com clientes
despreparados tecnicamente.

Apesar dessas preocupações, a abordagem de métodos formais tem ganho adeptos entre
desenvolvedores de software que precisam construir softwares críticos em termos de
segurança (por exemplo, desenvolvedores de aviões e dispositivos médicos) e entre
desenvolvedores de software que sofreriam pesadas sanções econômicas se ocorressem
erros no software.

Eliminam muitos dos problemas difíceis de serem resolvidos pelos outros paradigmas da
engenharia de software;
❏ Ambiguidade;
❏ Inconclusão;
❏ Inconsistência;
Apesar de não ser usado de forma geral, é ideal para softwares de missões críticas
(tráfego aéreo, meteorologia, dispositivos médicos, etc).

Perguntas:

O que são modelos prescritivos de software?


Um Modelo Prescritivo de Processo de Software é um conjunto de elementos que inclui
ações de engenharia de software, produtos de trabalho e mecanismos que garantam a
qualidade e controle de modificações em cada projeto necessárias para o desenvolvimento
de um sistema de software.

Quais os modelos de gestão da qualidade?


Quais as 10 principais ferramentas de gestão da qualidade
Análise SWOT. ...
Diagrama de Pareto. ...
Diagrama de Ishikawa. ...
Ciclo PDCA. ...
Fluxograma. ...
Folhas de verificação. ...
Histograma. ...
Diagrama de dispersão.

Quais são os 5 tipos de software?

Quais são os tipos de software?


Software aplicativo. ...
Software de programação. ...
Software de sistema. ...
Tipos de software de sistema. ...
Tipos de software de programação. ...
Tipos de software de sistema

Qual a diferença do modelo cascata e incremental?

No modelo em cascata, a sobreposição de fases não é possível. No modelo incremental, a


sobreposição de fases é possível. Existe apenas um ciclo no modelo em cascata. Existem
vários ciclos de desenvolvimento que ocorrem no modelo incremental.

Qual é a diferença entre os modelos incremental e iterativo?


Podemos dizer, ainda, que no desenvolvimento iterativo há uma repetição das etapas do
processo de criação do software até que o resultado almejado seja obtido; já no
desenvolvimento incremental, novas partes são integradas ao longo do período de
construção.

Diferença entre incremental e espiral.


No modelo espiral, a sobreposição de fases não é possível. No modelo incremental, a
sobreposição de fases é possível. O teste é feito em modelo espiral no final da fase de
engenharia. O teste é feito no modelo incremental após cada iteração da fase.

O que significa dizer que o modelo espiral é iterativo incremental?


São iterativos por que o trabalho realizado é sempre melhorado em ciclos subsequentes.
São também incrementais, por que o trabalho planejado é entregue em partes que são
adicionadas ao todo do projeto.

Algumas vezes, a engenharia de software necessita de um processo que possa


acondicionar um produto que evolui ao longo do tempo, devido à constante
atualização dos requisitos, ou o tempo para implantação é curto para entrega do
sistema completo. Para este tipo de situação, qual modelo se adequa melhor?
RESPOSTA: Evolutivo (como o espiral).

Algumas atividades que fazem parte do modelo espiral de desenvolvimento de


software são:

Construção – Implantação – Comunicação


Planejamento – Modelagem

A ordem correta com que tais atividades são executadas, considerando o modelo
espiral, é:
RESPOSTA: Comunicação, Planejamento, Modelagem, Construção e Implantação.

A vida de um software é composta por um conjunto de fases que definem uma série
de atividades. Desenvolvimento, operação e manutenção são alguns exemplos,
etapas presentes na vida de um sistema e a literatura de engenharia de software
costuma chamar este conjunto de ciclo de vida de software. A respeito dos diversos
modelos de ciclo de vida de software, analise as afirmativas abaixo.

I. Cascata, evolutivo, incremental e espiral são exemplos de modelos de ciclo de vida


de software.

II. O modelo cascata é um modelo tradicional onde as fases são realizadas de forma
serial em um processo que flui sempre para frente. Uma das desvantagens deste
modelo é a dificuldade de lidar com mudanças durante a execução do projeto.

III. O modelo incremental preconiza a divisão das entregas do projeto, característica


que justifica seu nome. Tem como vantagem em relação ao modelo cascata o fato de
ser mais tolerante a mudanças de requisito.

É correto o que se afirma:


RESPOSTA:em I, II e III.

Você também pode gostar