Você está na página 1de 10

FATEC -SP

ENGENHARIA DE SOFTWARE
Modelos prescritivos e resumo do artigo de BARRY BOEHM A SPIRAL
MODEL OF SOFTWARE DEVELOPMENT AND ENHANCED(1988).

Vitor Itiro Oki Takahashi


20118921

São Paulo – SP
2020
Sumá rio
INTRODUÇÃO...............................................................................................................3
A SPIRAL MODEL OF SOFTWARE DEVELOPMENT AND ENHANCED (1988)..........4
Modelo Incremental........................................................................................................... 6
RAD (Rapid Application Development)..............................................................................7
Prototipação...................................................................................................................... 8
CONCLUSÃO................................................................................................................9
Referências..................................................................................................................... 10
INTRODUÇÃO

Este trabalho enfoca a análise de métodos para projetos de software de


grande escala, de acordo com o artigo 'Gerenciando o desenvolvimento de
grandes sistemas de software' do autor W. W. Royce. Considerando alguns
métodos de desenvolvimento dinâmico, como incremental, prototipagem e RAD,
e o modelo tradicional em cascata, os benefícios e desvantagens de cada
modelo serão colocados em paralelo.
A SPIRAL MODEL OF SOFTWARE DEVELOPMENT AND ENHANCED
(1988).

O artigo sobre modelo espiral para software aborda diversos temas


relacionados a software com base no modelo espiral, inicia-se então pelo ciclo
de vida de software, logo, o relatório de software militar ressalta a falta de
empenho e esforço para melhorias de software em qualidade e
desenvolvimento. Inicia-se pela definição do modelo espiral, que no artigo
demostra que esse modelo em caso de riscos, cria uma abordagem orientada a
riscos, visando ser mais efetivo do que métodos primitivos. Então, e denotado
sobre as funções de um modelo de software que é determinar a ordem das
etapas e um critério de transição para mudar de um estágio para outro, logo é
descrito também que um modelo de processo difere de um método de
software, pois ambos são diferentes no tratamento de dados e documentação.
Fica a recomendação no artigo ver outros modelos como o modelo code
and fix, stage wise, modelo em cascata, modelo evolucionário e o modelo de
transformação, tendo uma breve definição sobre estes, ressaltando o modelo
evolucionário que visa fornecer uma rápida capacidade aos usuários e também
uma base operacional realista para determinar ao produto futuras melhorias.
O modelo espiral em si tem evoluído muito, uma marca disso é que esse
modelo pode abrigar a maioria dos modelos remotos como casos especiais e
fornece orientações sobre qual combinações de modelos anteriores se adapta
a uma determinada situação de software. O ciclo do modelo espiral visa em
identificar os objetivos da porção do produto que está sendo feito, os meios
alternativos de implementação desta parte do produto e as restrições impostas
a aplicação das alternativas. Então o próximo estágio é avaliar as alternativas
em relação aos objetivos e instruções , sendo essencial para identificar áreas
de incertezas significativas fontes de riscos para o projeto ,após a avaliação de
riscos ,o próximo passo é determinado pelo restante relativo de riscos e se o
nível de risco ficar baixo, poderá já ser efetuado a criação de protótipos para o
sistema , e se tudo ocorrer bem, pode ser aplicado então a abordagem em
cascata ,logo após pode as fases seguintes podem ter uma partição do
produto, incremento para desenvolvimento ou componentes sucessivos a
serem criados por organizações ou pessoas. Fica claro que no artigo é de
suma importância a implantação de análise de riscos, pois o mesmo visa a
precaução de futuros problemas e adversidades ao projeto, além disso, caso
uma hipótese de o modelo espiral falhar, o mesmo será terminado sem
precedentes, ou caso contrário será feita a instalação de novos produtos em
softwares modificados, com ênfase no efeito sobre a missão operacional.
Modelo Cascata (waterfall)

É um antigo modelo linear e sequencial destinado ao desenvolvimento de


software. Também é conhecido como ciclo de vida clássico. Devido às suas
propriedades, certas condições devem ser atendidas, B. uma avaliação de
necessidades pelo cliente para continuar após a conclusão com planejamento,
modelagem, construção, fase de emprego e, finalmente, suporte de software
contínuo.

-Vantagens:

• Disponibiliza o programa somente quando concluído, ou seja, é


devidamente revisado por cada etapa do processo.

• O planejamento é aberto para monitoramento de progresso, por causa da


documentação presente em cada etapa.

• O desenvolvimento do sistema contém requisitos rigorosos de


segurança, confiabilidade e segurança.

-Desvantagens:

• Limitação de recursos quando se tem mudanças não programadas.

• Como se trata de um projeto com diversas etapas contínuas, logo se há


algum problema na etapa prévia, o erro tende a aumentar à proporção que forem
passando nas etapas seguintes.

• Se caso cada tarefa exceder o tempo planejado, logo "trava" o projeto


até que seja concluído a tarefa e assim repassar o projeto para a próxima etapa.
Consequentemente, atrasará a entrega do programa.

• Caso o cliente não passe todas as suas especificações, há uma


dificuldade e incerteza para adequar o início do modelo cascata.
Modelo Incremental

O modelo incremental é um modelo que utiliza abordagens ágeis e é uma


combinação de elementos dos fluxos de processo linear e paralelo, onde aplica
sequências lineares de forma constante, dependendo do andamento do projeto.
Além do foco na entrega de um produto funcional a cada aumento. Cada
sequência linear gera acréscimos do software, sendo o primeiro aumento
considerado o produto essencial ou requisitos básicos do cliente, os demais
aumentos são modificações do produto essencial, com o objetivo de melhorar a
adequação às necessidades do usuário final e a entrega de recursos adicionais.
e funcionalidade (pode haver iterações até a entrega do produto completo).

-Vantagens:

• Útil para projeto com poucas pessoas disponíveis para uma completa
implementação na época de vencimento do prazo estipulado.

• Entrega parcial do projeto no tempo determinado, assim esperando pelo


feedback do cliente para realizar as mudanças necessárias sugeridas por ele.

• A mudança do software durante o projeto, acaba sendo mais fácil e


barata

-Desvantagens:

• Existem diversas versões do software, assim caso haja algum erro não
descoberto pelo cliente, o erro tende a se manter e pode afetar gravemente o
sistema.

• Como se trata de um modelo com mudanças rápidas, logo não é viável a


realização de documentação e consequentemente falta transparência sobre suas
etapas.

• A estrutura do sistema tende a se degradar com a adição dos novos


incrementos.
RAD (Rapid Application Development)

O Rapid Application Development (RAD) é um modelo de desenvolvimento


de software com aspectos incrementais, cujo objetivo é trabalhar com agilidade,
com objetivos definidos e análise de requisitos extremamente alinhados. Também
visa disponibilizar o software de forma rápida e em constante evolução. Existem
várias etapas no processo incremental, nomeadamente o uso de ferramentas de
programação de banco de dados e suporte ao desenvolvimento, como geradores
de tela e relatórios.

Na fase de projeto, essas tarefas são realizadas por várias equipes, e


essas equipes têm pouca experiência e podem reutilizar módulos prontos. É por
isso que o desenvolvimento exige um prazo estrito.

-Vantagens:

• Economia de tempo

• Trabalho com modelos ágeis

• Integração rápida de sistemas

• Feedbacks constante, assim sempre haverá melhoria funcionais.

-Desvantagens:

• Não é adequado para projetos com alto risco técnico ou quando faltam
pessoas na equipe para suprir com a agilidade

• O valor de desenvolvimento do software pode variar diretamente com o


aumento ou decréscimo de interações

• Não é aconselhável produzir um software de larga escala com esse


modelo, devido a existência constante de erros e várias mudanças para
otimização do software
Prototipação

A prototipagem é um modelo amplamente utilizado para projetos rápidos,


em última instância é uma das ferramentas de outros modelos, pois foca no
objetivo geral do software, por isso é impossível determinar os requisitos dos
recursos e funções disponíveis. Primeiro, conduza reuniões com as partes
interessadas do projeto para capturar os objetivos gerais do software, identificar
requisitos conhecidos e descrever quais áreas requerem definições mais amplas.
Depois que o protótipo for concluído, demonstrações de conceito, experimentos
de projeto e problemas e possíveis erros serão descobertos. Logo, ele foi
finalmente reconhecido como um modelo inteligente para o desenvolvimento de
interfaces gráficas de usuário para sistemas de software.

-Vantagens:

• Ajuda a entender melhor os interessados pelo software e compreender


melhor o que está para ser construído.

• Auxilia na validação de requisitos de sistema

• A prototipação é realizada antes do projeto, logo desenvolve melhor as


requisições do cliente e funcionalidades adequadas. Também estuda as soluções
específicas do software, sempre apoiando a interface do usuário

-Desvantagens:

• Impossibilita o ajuste do protótipo para atender os requisitos não


funcionais, como desenvolvimento, tempo, recursos, manutenção a longo prazo.

• Falta de documentação pois os protótipos mudam muito até serem


atendidos os requisitos funcionais do cliente.

• Por ser um modelo ágil, não é verificado os recursos ideias e os padrões


de qualidade organizacional, logo existe a possibilidade do desenvolvimento em
linguagem de programação inadequada e assim deixando o algoritmo ineficaz.
CONCLUSÃO

O relatório destacou dois ciclos de vida diferentes, nomeadamente o ciclo


de vida clássico e o ciclo de vida curto. O curto ciclo de vida pode ser visto como
um modelo para projetos ágeis. Ao considerar a escala do software, você pode
determinar qual método de desenvolvimento de software é mais adequado,
portanto, existem três tipos: pequeno, médio e grande. O modelo em cascata é
mais usado para programas padronizados sem mudanças de rotina. Um dos
obstáculos é a estabilidade relacionada às alterações de software e entrega após
as tarefas terem sido realizadas de maneira linear. Por outro lado, o modelo
incremental é um modelo ágil, portanto, visa desenvolver rapidamente o software
e entregá-lo ao cliente, e receber feedback até certo ponto, onde o cliente está
satisfeito com as diferentes versões do software. Ao mesmo tempo, o modelo de
desenvolvimento rápido de aplicações adota alguns aspectos do modelo
incremental e do modelo de desenvolvimento de protótipos, com o objetivo de
fornecer protótipos de software e sempre obter feedback dos usuários para a
melhoria contínua do software. Por fim, a prototipagem é um modelo que
pretende ser desenvolvido de acordo com as necessidades do cliente, mesmo
que o programa não seja criado por uma ferramenta adequada, por isso se
concentra mais na interface do usuário.
Portanto, devido à redução do tempo de entrega de projetos de software em
alguns aspectos, a redução do número de profissionais nesta área e os requisitos
em constante mudança para funções de software, o uso de métodos ágeis
tornou-se mais evidente no ciclo de vida tradicional. Portanto, o programa deve
ser atualizado de acordo com as necessidades da empresa e a qualidade das
funções deve ser mantida.
Referências

https://pt.wikipedia.org/wiki/ISO/IEC_12207
http://nocoesengsw.blogspot.com/2010/04/modelos-de-processo-de-
software.html
SOMMERVILLE, I. Engenharia de Software. 9.ed. São Paulo: Editora Pearson
Brasil, 2011.
http://engenhariadesoftware.blogspot.com/2007/03/o-modelo-espiral.html
https://pt.wikipedia.org/wiki/Engenharia_de_software_baseada_em_componentes
PRESSMAN, Roger S. Engenharia de software. 7.ed. São Paulo: McGraw-Hill,
ArtMed, 2011.
“Managing the development of large software systems “- W.W.Royce
https://www.treinaweb.com.br/blog/o-que-e-rad-rapid-application-development/
https://www.devmedia.com.br/artigo-engenharia-de-software-13-
desenvolvimentoorientado-a-componentes/12824
https://codebots.com/app-development/what-is-rapid-application-development-rad

Você também pode gostar