Professional Documents
Culture Documents
Os estgios da engenharia de software compem um ciclo que pode ser dividido em duas grandes
etapas: a anlise do problema e a sntese da soluo.
Considere: uma disciplina que se ocupa de todos os aspectos da produo de software, desde os
estgios iniciais de especificao do sistema at a manuteno desse sistema, depois que ele entrou
em operao. Seu principal objetivo fornecer uma estrutura metodolgica para a construo de
software com alta qualidade. A definio refere-se engenharia de software.
Em relao aos modelos de processos de software, pode-se dizer que os modelos incremental e
evolucionrio possuem a caracterstica de serem iterativos. Assinale a alternativa que melhor
descreve um modelo de produo de software iterativo.
A abordagem iterativa possibilita desenvolver um sistema de software de forma incremental,
permitindo ao desenvolvedor tirar vantagem daquilo que foi aprendido durante a fase inicial de
desenvolvimento de uma verso do sistema. O aprendizado ocorre simultaneamente tanto para o
desenvolvedor, quanto para o usurio do sistema.
De acordo com a engenharia de software, como todo produto industrial, o software possui um ciclo
de vida. Cada fase do ciclo de vida possui divises e subdivises. Em qual fase avaliamos a
necessidade de evoluo dos softwares em funcionamento para novas plataformas operacionais ou
para a incorporao de novos requisitos? Fase de retirada;
O ciclo de vida de um software descreve as fases pelas quais o software passa desde a sua
concepo at ficar sem uso algum. Segue abaixo a classificao de 4 fases que so delimitadas por
diversos eventos tpicos em diversos ciclos de vida.
Fase de definio: Busca-se a identificao de problemas para que possam elaborar propostas de
soluo de sistemas computacionais que resolvam tais problemas.
Fase de desenvolvimento: Inclui todas as atividades que tem por objetivo a construo do produto.
Ela inclui principalmente o design, a implementao e a verificao e validao do software.
Fase de operao: Envolve diferentes tipos de atividades como (Distribuio e entrega; Instalao
e configurao; Utilizao e Manuteno)
Fase de retirada: Trata da substituio de softwares legados por plataformas com tecnologia mais
atual.
Fonte:
http://engenhariadesoftware.blogspot.com.br/2007/02/ciclo-de-vida-do-software-parte1.html?m=1
Dos diferentes modelos para o ciclo de vida de desenvolvimento de um software correto afirmar
que o modelo em cascata o menos flexvel e mais simples.
O modelo em cascata (ciclo de vida clssico), sugere uma abordagem sistemtica e sequencial para
o desenvolvimento de softwares. Prev cinco fases: Comunicao, Planejamento, Modelagem,
Construo e Implantao.
Item por item:
O modelo espiral envolve conceitos como iteraes e incrementos e faz parte dos modelos
evolucionrios, que passaram a existir apenas depois dos modelos sequenciais e incrementais.
No modelo em cascata uma fase depende da outra para comear e quando uma fase termina, no
possvel retornar para ela. O modelo simples pois foi o primeiro a ser criado, no havendo muitos
estudos sobre esse assunto naquela poca, e faz parte dos modelos sequenciais.
No existe um software sem requisitos, mesmo que eles j sejam conhecidos, seu gerenciamento
dever ser feito.
Observe a figura, que representa uma ferramenta de processo, conhecida como Ciclo de Vida de
Sistema. Devido ao encadeamento de uma fase com outra, esse modelo conhecido como
cascata. Observe.
Um das fases prev a execuo de atividades que envolvem a identificao e a descrio das
abstraes fundamentais do sistema de software e suas relaes e o estabelecimento de uma
arquitetura geral para o sistema como um todo. Essa fase denomina-se projeto de sistema e
software.
A imagem apresentada na questo est no livro Princpios de Anlise e Projeto de Sistemas com
UML, Eduardo Bezerra, p. 33.
O modelo apresentado na figura o ciclo de vida iterativo e incremental. Nessa abordagem, o
desenvolvimento do produto de software dividido em ciclos. Ao contrrio da abordagem em
cascata, na qual as fases de projeto, implementao e testes so realizadas apenas uma vez, o
desenvolvimento iterativo e incremental repete essas fases a cada ciclo. Nesse contexto, Bezerra at
cita que cada iterao considerada uma "minicascata". Na figura possvel observar que cada
incremento desenvolvido em cascata.
Um ciclo define um subconjunto de requisitos. Cada vez que ele executado, um novo incremento
do sistema produzido. Dessa forma, o desenvolvimento do software evolui em verses, onde
novas funcionalidades so acrescentadas at que se alcance a verso final.
Bezerra resume da seguinte forma:
"No modelo de ciclo de vida incremental e iterativo, um sistema de software desenvolvido em
vrios passos similares (iterativo). Em cada passo, o sistema estendido com mais funcionalidades
(incremental)."
Segundo Pressman:
MODELO DE PROCESSO ESPIRAL
- um modelo de processo de software evolucionrio que acopla a natureza iterativa da prototipao
com os aspectos sistemticos e controlados do modelo em cascata.
-Os RISCOS so considerados medida que cada revoluo realizada.
-Usa a prototipao como mecanismo de reduo de riscos.
-Cada loop espiral est dividido em 4 (quatro) fases: (fonte: Sommerville)
DEFINIO DE OBJETIVOS
AVALIAO E REDUO DE RISCOS
DESENVOLVIMENTO E VALIDAO
PLANEJAMENTO
O modelo de processo denominado em espiral combina as atividades de desenvolvimento
com o gerenciamento de riscos, de modo a minimiz-los e control-los.
Na Engenharia de Software, h diversos modelos de ciclo de vida, definidos com variados
nveis de formalidade. O modelo prototipagem evolutiva entrega uma verso inicial do
sistema, que considera requisitos j definidos com o cliente.
Pressman define os seguintes modelos de processo prescritivo:
MODELO EM CASCATA (SEQUENCIAL)
-O modelo em CASCATA, algumas vezes chamado de ciclo de vida clssico, sugere uma abordagem
sequencial e sistemtica.
-Os requisitos de um problema so bem compreendidos.
-Diviso inflexvel do projeto em estgios distintos (uma etapa s inicia aps a anterior).
-Deve ser usado apenas quando os requisitos forem bem compreendidos e houver pouca
probabilidade de mudanas radicais durante o desenvolvimento do sistema.
-O software s entregue na fase final do ciclo de vida (manuteno).
MODELO DE PROCESSO(INCREMENTAL)
-Rpido fornecimento de um determinado conjunto funcional aos usurios.
-Combina elementos dos fluxos de processos lineares e paralelos.
-O fluxo de processo de qualquer incremento pode incorporar o paradigma da prototipao.
-O primeiro incremento um produto essencial, tambm chamado de ncleo do produto.
-O modelo de processo incremental tem seu foco voltado para a entrega de um produto operacional
com cada incremento.
-Incrementos podem ser planejados para administrar riscos tcnicos.
-Objetiva a elaborao de um produto funcional.
MODELOS DE PROCESSO EVOLUCIONRIO (PROTOTIPAO E ESPIRAL)
PROTOTIPAO
-Frequentemente, o cliente define uma srie de objetivos gerais para o software, mas no identifica,
detalhadamente, os requisitos para funes e recursos.
-A prototipao pode ser utilizada como um modelo de processo stand-alone, porm mais utilizada
como uma tcnica no contexto dos demais modelos.
- til quando os requisitos so obscuros.
-Na sua forma ideal o prottipo atua como um mecanismo para identificar os requisitos do software.
-Os prottipos podem ser descartveis ou evolucionrios.
-Problemas: o cliente pode acreditar que o prottipo uma verso operacional do software e o
engenheiro pode utiliz-lo, de forma inadequada, como base de novas verses.
ESPIRAL
- um modelo de processo de software evolucionrio que acopla a natureza iterativa da prototipao
com os aspectos sistemticos e controlados do modelo em cascata.
Idealizada e a curva real se referem taxa de falhas do software. A curva real mostra que as
sucessivas alteraes do software tendem a introduzir mais erros antes da estabilizao dos erros de
alteraes anteriores, ocasionando a tendncia crescente do ndice de falhas.
O conceito desta questo se encontra no livro do Pressman:
Durante sua vida, o software passar por alteraes. medida que estas ocorram, provvel que
sejam introduzidos erros, fazendo com que a curva de taxa de defeitos se acentue, conforme
mostrado na "curva real". Antes que a curva possa retornar taxa estvel original, outra alterao
requisitada, fazendo com que a curva se acentue novamente. Lentamente, o nvel mnimo da taxa
comea a aumentar - o software est deteriorando devido modificao.
Pressman, Roger. Engenharia de Software - Uma Abordagem Profissional - 7a edio - pg. 33.
Existem diversos tipos de ciclo de vida de software, dentre eles se destacam o ciclo de vida em
cascata, em espiral e incremental.
As fases do ciclo de vida guardam entre si semelhanas entre diversos modelos, de forma que o fato
do enunciado no especificar a qual ciclo de vida ele est se referindo no interfere na resoluo da
questo.
Tomando Pressman como referncia, podemos entender duas etapas comuns nos ciclos de vida de
software:
- Anlise de requisitos: O objetivo dessa etapa entender e mapear as necessidades do software que
se deseja construir, entender o domnio da aplicao, as funes requeridas, o comportamento e a
performance esperada. Nessa etapa os requisitos so documentados e revisados com o cliente. O
Foco da anlise entender o que o software deve fazer.
- Projeto ( Design ): O objetivo dessa etapa projetar a estrutura de dados, a arquitetura do
software, os detalhes procedimentais e a caracterizao da interface. A fase de projeto traduz os
requisitos definidos previamente em uma representao de software. O Foco do projeto definir
como o software ir fazer.
Como podemos ver, o enunciado da questo troca os conceitos de Anlise e Design, portanto,
questo errada
Fonte : Pressman, Roger S. Software Engineering: A Practiotioners Approach. Fifth Edition
Segundo os autores mais renomados de engenharia de software as seguintes fases no ciclo de vida
so:
Para Pressman
1-Comunicao
2-Planejamento
3-Modelagem
4-Construo
5-Implantao
Para Sommerville
1. Definio de Requisitos
2. Projeto de sistema e software
3. Implementao e teste de unidade
4. Integrao e teste de sistema
5. Operao e manuteno
O ciclo de vida de um software pode ser descrito com base em modelos. Um deles, proposto por
Barry Boehm em 1988, apresenta-se como um modelo onde cada fase precedida por uma anlise
de risco e sua execuo realizada incrementalmente. O nome dado ao modelo descrito por Barry
Boehm em 1988 modelo Espiral.
O modelo espiral para a Engenharia de Software foi desenvolvido acrescentando-se novos
elementos as melhores caractersticas de outros modelos. Segundo o modelo espiral, a determinao
dos objetivos, alternativas e restries est relacionada atividade de planejamento.
O termo Modelo de Ciclo de Vida utilizado para descrever um grupo de atividades e a forma
como elas se relacionam. Considerando o Modelo de Ciclo de Vida de Sistemas por Prototipagem
Evolucionria, afirma-se que no h uma forma de saber de antemo o nmero de iteraes que
sero necessrias.
Essa questo foi retirada do livro do Sommerville, 8 edio, captulo 4 - Processos de software,
pgina 48:
"Em vez de representar o processo de software como uma sequncia de atividades com algum
retorno entre uma atividade e outra, o processo representado como uma espiral. Cada loop na
espiral representa uma fase do processo de software. Dessa forma, o loop mais interno pode estar
relacionado viabilidade do sistema; o prximo loop, definio de requisitos; o prximo, ao
projeto de sistema e assim por diante."
No modelo em espiral do processo de software cada loop na espiral representa uma fase do
processo.
medida que se avana pelo modelo ocorre uma iterao e o software evolui para estgios
superiores, normalmente com aumento da complexidade. Cada iterao est provida das atividades
determinadas pelos quadrantes planejamento, avaliao de alternativas e riscos, desenvolvimento do
software e avaliao do cliente. No ciclo de vida de desenvolvimento de software, trata-se da
propriedade do modelo Espiral.
As atividades do modelo espiral de Engenharia de Software so: Planejamento, Anlise dos Riscos,
Engenharia e Avaliao feita pelo cliente.
Cascata;
Segundo Pressman:
"apesar da prototipagem poder ser usada como um modelo de processo independente, ela mais
comumente usada como uma tcnica que pode ser implementada dentro do contexto de qualquer um
dos modelos de processo mencionados neste captulo".
Logo, isso leva a concluso que possvel o uso de prottipos, como tcnica, no modelo cascata.
O modelo em cascata consiste de fases e atividades que devem ser realizadas em seqncia, de
forma que uma atividade requisito da outra.
Segundo Pressman, o modelo de Prototipagem muito utilizado quando nem todos os requisitos so
definidos de maneira clara pelo cliente. A caracterstica principal desse modelo gerar prottipos do
sistema com definies de requisitos dadas pelo cliente e que ento testado pelo cliente para
validar as suas funcionalidades.
De acordo com Rezende (2005), o modelo espiral foi desenvolvido para abranger melhor as
caractersticas do ciclo de vida e prototipao, acrescentando anlise de riscos, considerando as
seguintes fases:
Planejamento: determinao dos objetivos, alternativas e restries.
Anlise de Riscos: anlise de alternativas e identificao ou resoluo dos riscos.
Engenharia: desenvolvimento do produto.
Avaliao: avaliao dos resultados feita pelo usurio.
A Engenharia de Software uma rea da computao que visa abordar de modo sistemtico as
questes tcnicas e no tcnicas no projeto, implantao, operao e manuteno no
desenvolvimento de um software.
Um analista desenvolve um software e identifica que os seus requisitos iniciais esto razoavelmente
bem definidos, mas o escopo geral do desenvolvimento no permite um processo puramente linear.
Ele sabe que precisa, em curtssimo prazo, prover um conjunto limitado de funcionalidades do
software para os usurios, que sero refinadas e expandidas em verses futuras.
Qual o modelo de ciclo de vida de desenvolvimento de software mais adequado a esse caso?
Incremental
Segundo o professor Pedrosa...
a) Cascata no gera verses.
b) O Espiral, apesar de iterativo e incremental, no vai gerar um produto em "curtssimo" prazo,
pois ele ainda tem um certo formalismo, principalmente em se tratando de Anlise de Riscos
(quadrante obrigatrio do modelo).
c) Mtodo Formal custoso, lento.
e) Prototipao poderia ser uma resposta aceitvel... principalmente se pensarmos em Prototipao
Evolucionria (comear dos requisitos mais fceis para entregar verses rpidas ao usurio). Mas,
como eu falo em sala de aula, normalmente quando se fala "Prototipao", estamos nos referindo
Prototipao Descartvel, que muito mais uma tcnica de elicitao de requisitos do que um
modelo de ciclo de vida.
Gabarito E. Segundo Pressman: "um fluxo de processo iterativo repete uma ou mais das atividades
antes de prosseguir para a seguinte", logo no sequencial (linear).
(Fonte: Livro Engenharia de Software, Pressman, 7ed, pag 54)
No modelo de desenvolvimento de software em espiral, cada loop na espiral representa uma fase do
processo de software.
O modelo em espiral difere principalmente dos outros modelos de processo de software
por reconhecer explicitamente o risco.