Você está na página 1de 10

UNIVERSIDADE PEDAGÓGICA

ESCOLA SUPERIOR TÉCNICA

DEPARTAMENTO DE ENGENHARIAS

LICENCIATURA EM ENGENHARIA ELECTRÓNICA

CADEIRA DE ENGENHARIA DE SOFTWARE

Discente: João Kelvin Horácio Zunguza

Docente: MSc. Sheila Sitoe

Tema: Crises de Software.

RESUMO

A crise de Software está impedindo o crescimento do campo de computação devido à enorme


lacuna entre desenvolvimentos de hardware e fazendo uso dele através da não disponibilidade de
sistemas de software e pessoal de desenvolvimento de software competente. Tantos problemas
têm reforçado o surgimento da disciplina tipo cognitivo de engenharia de software e sua
persistência para não cumprir a lacuna imposta. Uma ênfase especial é dada para identificar os
problemas que estão sendo enfrentados que precisam de ser endereçados para fornecer soluções
para superar a crise do software. A menos que os problemas no nível da indústria de software são
resolvidos, nenhum número de técnicas e ferramentas de gerenciamento de projetos podem ser
de muita ajuda na superação da crise de software. O autor examina a existência da crise do
software, suas causas e seu impacto sério em cada caminhada da vida.

Questões como educação, profissionalização, produtividade do programador e fatores humanos


são discutidas.

INTRODUÇÃO

Software é muitas vezes muito complexo para ser totalmente compreendido por um único
indivíduo. Podemos tentar gerenciar a complexidade dividindo o sistema em subsistemas, mas, à
medida que os sistemas crescem, a interação entre subsistemas aumenta não linearmente.
É difícil estabelecer um conjunto adequado e estável de requisitos para um sistema de software.
A interacção entre as diferentes partes de um sistema torna a mudança difícil. O software é
essencialmente coisas do pensamento (isto é, o resultado de um processo do pensamento) e
muito do que é importante sobre o software não se manifesta nos próprios programas.

A gestão da complexidade do Software depende de uma capacidade de documentar os


parâmetros e funcionalidade dos módulos envolvidos. Para manter o controlo das alterações é
importante documentar o que exatamente foi alterado. O software pode ser tornado mais visível
descrevendo objectos não materiais, como o design geral de um programa.

A fim de tornar os programas mais descritos e mais previsíveis, diferentes tipos de padrões foram
criados. Mas a indústria de software ainda é muitos anos longe de se tornar uma disciplina de
engenharia madura.

Mesmo na sociedade de hoje, o software é visto com suspeita por muitos indivíduos, como
gerentes sênior e clientes, como algo semelhante à magia negra. O resultado é que o software é
um dos objectos mais difíceis do mundo moderno para desenvolver e construir. Tudo isso nos
leva a um novo conceito chamado "crise de software".

CRISE DE SOFTWARE

A dificuldade de escrever o código para um programa de computador que é correto e


compreensível é referido como crise de software. O termo crise de software, gira em torno de
três conceitos: complexidade, mudança e as expectativas.

Uma série de problemas no desenvolvimento de software foram identificados nos anos 1960,
1970 e 1980. Os problemas que os projetos de software encontraram foram: os projetos correram
sobre o orçamento, causou danos à propriedade, mesmo para a vida. Apesar do nosso rápido
progresso, a indústria de software é considerada por muitos como estando em crise. Há 40 anos
atrás, o termo “Software Crisis “ surgiu para descrever a incapacidade da indústria de software
para fornecer aos clientes produtos de alta qualidade no cronograma.

Em geral, refere-se a mal escrito, difícil de ler, software propenso a erros que muitas vezes
carece de boa documentação.
A crise de software também é referida a incapacidade de contratar programadores qualificados o
suficiente. Os sintomas mais visíveis da crise do software são a entrega tardia, sobre o
orçamento; O produto não atende aos requisitos especificados, documentação inadequada. À
medida que o mundo se torna cada vez mais dependente de computadores e como a
complexidade dos sistemas de software continua a aumentar, a crise só pode piorar.

FACTORES QUE CONTRIBUEM PARA A CRISE DO SOFTWARE

Os factores que contribuem para a crise do software são numerosos. Se nós examiná-los em
detalhe, então encontramos que eles caem em quatro categorias diferentes que, quando
combinados destacam a gravidade da crise. Estes principais factores são nomeados da seguinte
forma:

 Cronograma e budgets de superação;


 Problemas de produtividade;
 Problemas de qualidade;
 Problema de manutenção de software.

ANÁLISE DOS FACTORES

Para examinar detalhadamente a questão da crise do software, é necessário determinar os


factores que contribuem para cada conjunto de problemas.

Cronograma e orçamento sobre tiro: o desenvolvimento de aplicações de software é um


negócio próspero. O dinheiro investido em tecnologia de software nos EUA sozinho é de bilhões
de dólares anualmente; em 1986, este foi estimado em 30 Biliões de dólares. A taxa de
crescimento anual média estimada desde 1980 foi de cerca de 12%. Hoje, o custo do software é
tipicamente cerca de 80% do custo de um sistema de computador completo, em contraste com a
situação no final da década de 1950, quando o custo do hardware foi o principal ingrediente do
custo total do sistema. O negócio agora está se aproximando da situação em que o hardware
representa o "núcleo" barato cercado pelas camadas de software precioso.

Um designer altamente qualificado será bem pago e seu envolvimento em um projeto introduz
altos custos de trabalho.
O processo de desenvolvimento de software é trabalho intensivo e tipicamente necessita de um
alto nível de homens qualificados ao tempo. Qualquer aumento no factor de tempo produz mais
custo para o produto. O usuário é complementar ao designer. O usuário usa o sistema e goza da
utilidade do sistema que é projetado. Não há sentido em conceber e implementar um sistema que
não será posto em prática. Às vezes o usuário fornece exigências irreais e mais ambiciosas ao
desenhador e uma boa quantidade de tempo do desenhador pode ser envolvida em identificação a
invalidez das exigências de usuário. O tempo necessário para executar a verificação de
viabilidade dos requisitos do usuário também é normalmente incluído na agenda. Mesmo um
ligeiro desvio do cronograma pode levar a aumentos de custos.

A colecção de ferramentas para cada projeto custa dinheiro que contribui para a despesa de
desenvolvimento e aumenta o custo do produto.

Além disso, qualquer variação no ambiente em que uma ferramenta opera ou qualquer mau
funcionamento da ferramenta causa atrasos que, em última análise, significa mais custo.

As más estimativas de recursos e o planeamento financeiro inadequado contribuem também para


custos mais elevados; a qualidade pobre e os recursos baratos são raramente de confiança e
custam tipicamente o dinheiro.

Normalmente, os atrasos na produção dos sistemas de software são no orçamento ou atraso na


entrega do sistema. Em tais ocasiões, o usuário se recusa a aceitar o produto devido à sua má
qualidade. Além disso, as vantagens potenciais ocorrem em bater os mercados antes que os
concorrentes façam.

PROBLEMAS DE PRODUTIVIDADE

O principal desafio para os desenvolvedores de software hoje é aumentar a produção por período
de tempo de cada trabalhador.

Com as realizações relacionadas à revolução industrial no século XVIII, tornou-se possível para
um trabalhador produzir a mesma quantidade de trabalho com uma máquina como centenas
tinham feito previamente com suas mãos. Para criar uma revolução de informação de um tipo
semelhante, é necessário que um trabalhador seja empregado para um efeito ainda maior na
produção de código. Isso se torna possível se as fábricas de software de computador forem
estabelecidas para produzir software de qualidade em massa, facto este que não acontece. Assim,
muitos cientistas de forma de esforço e engenheiros de software são gastos. As principais
vertentes da questão da produtividade do software são as pessoas, o processo, o produto e as
máquinas.

O número de factores que conspiram para reduzir a produtividade é grande e inúmeras causas
estão inter-relacionadas. Os problemas decorrentes dos indivíduos são devidos às suas limitações
em capacidades, anos de experiência, experiência linguística e experiência com problemas
semelhantes; a produção de grandes sistemas por uma equipe de designers oferece um conjunto
adicional de problemas. Factores individuais, factores de equipa e os factores que são devidos à
natureza e grau de comunicação entre os membros de uma equipe influenciam a extensão da
produtividade. Selecção errada de linguagens, metodologias de desenvolvimento inadequadas,
falta de atenção à verificação, validação e ao ambiente do sistema-todos estes limitam a
produtividade em um nível considerável. Os problemas associados com o produto em si são: o
tipo de software, os requisitos de qualidade e a interface humana. Um produto de software
de má qualidade não é atraente para o usuário. Além disso, para produzir software de alta
qualidade precisa de tempo, comprometimento e outros recursos (por exemplo, ferramentas) que
afetam o nível de produtividade. Se o produto não é aceite pelo usuário então o tempo de um
desenhador hábil é desperdiçado.

Um aspecto importante disso é a disponibilidade ou outro sábio de ferramentas e a adequação


das técnicas para alcançar a produtividade. Assim, os sistemas de controlo de fonte, bases de
dados, instalações de compilação separadas são todos os aspectos dessas preocupações.

PROBLEMAS DE QUALIDADE

A ênfase deve ser sobre a qualidade do produto de software; na verdade, a presença de qualidade
é um objetivo primordial da engenharia de software. Uma definição simples da qualidade está
contida em [Ratcliff 1987], onde uma aproximação é adotada que seja baseada na observação de
definição é a qualidade dos produtos de software como seu total uso para os usuários.

CRISE DE SOFTWARE EM TERMOS DE ESTATÍSTICAS EM 1990

 31% dos projectos cancelados;


 52,7% custam uma média de 189% sobre o orçamento;
 84% de atraso ou excesso de orçamento (91% para grandes companhias);
 O sistema médio é entregue sem 58% das funcionalidades propostas;
 $81 Biliões em 1995 para projectos cancelados;
 $51 Biliões em 1995 para projectos de orçamento superior. Apenas 16,2% dos projectos
de software são completados à tempo e no orçamento. Em grandes empresas, um escasso
9% dos projetos tecnológicos vêm em tempo e no orçamento. Além disso, cerca de ⅓ de
todos os projetos serão cancelados antes que eles nunca sejam concluídos. Outros
resultados indicam que 53% dos projetos vão custar uma média de 189% de suas
estimativas originais. Em termos financeiros, essa análise revelou que mais de $100
Biliões em cancelamentos e $60 Biliões em execuções orçamentárias ocorrem no sector
de software anualmente.

CAUSAS

A engenharia de software hoje está em grave crise. A situação é particularmente desagradável


porque esta crise não é amplamente reconhecida pela indústria de desenvolvimento de software.
As causas da crise de software estão ligadas à complexidade geral do processo de software e à
relativa imaturidade da engenharia de software como profissão. A principal razão para a crise é a
falta de uma metodologia de construção de software de qualidade com a qual gerenciar a alta
complexidade das aplicações modernas.

 O custo de possuir e manter o software na década de 1980 foi duas vezes mais caro do
que o desenvolvimento do software;
 Durante a década de 1990, o custo de posse e manutenção aumentou 30% em relação à
década de 1980. Em 1995, as estatísticas mostraram que metade dos projetos de
desenvolvimento pesquisados estavam operacionais, mas não foram considerados bem-
sucedidos;
 O projecto de software médio supera sua agenda pela metade;
 ¾ de todos os produtos de software grandes entregues ao cliente, são falhas que são ou
não é usado em todos os, ou não cumprem as exigências de cliente.
As despesas que as organizações em todo o mundo estão incorrendo em compras de software em
comparação com aqueles em compras de hardware têm mostrado uma tendência preocupante ao
longo dos anos.

Não só os produtos de software se tornar mais caro do que o hardware, mas eles também
apresentam uma série de outros problemas para os clientes: produtos de software são difíceis de
alterar, depurar e melhorar; utilizar os recursos de forma otimizada; frequentemente não
cumprem as exigências de usuário; estão longe de serem fiáveis; quebras frequentes; e muitas
vezes são entregues tardiamente. Entre estes, a tendência de aumentar os custos de software é
provavelmente o sintoma mais importante da actual crise de software.

CRISE DE SOFTWARE: O CENÁRIO ATUAL

A crise de software começou há 4 décadas e continua hoje. Nos anos 60, começamos a falar de
uma "crise de software ". A 30 anos de duração a "crise " estava começando. Um esforço de
pesquisa em todo o mundo também começou. Hoje, a situação é bem diferente. Temos uma
ciência da programação. Sabemos muito sobre como projetar e documentar software, mas o
"software Crisis " continua inquebrável!

A crise de software, continua porque a comunicação entre cientistas da computação e aqueles


que escrevem software, incluindo os engenheiros, tem sido muito pobre. Os padrões atuais de
software são fracos, superficiais e não são baseados na ciência de software.

SOLUÇÃO

Uma das soluções possíveis para a crise de software é o estudo da engenharia de software. A
única solução satisfatória para a atual crise de software pode vir de uma propagação de práticas
de engenharia de software entre os engenheiros, juntamente com novos avanços na própria
disciplina de engenharia de software. A engenharia de Software está preocupada com todos os
aspectos da produção de software desde os estágios iniciais da especificação do sistema até a
manutenção do sistema depois de ter entrado em uso. Como solução para esta crise de software,
devemos aplicar um talento disciplinar; usando ferramentas que nos ajudem a gerenciar essa
complexidade. O engenheiro de sistemas qualificados, pode através do uso dessas técnicas e pela
aplicação de métodos de engenharia de sistemas e habilidades de gerenciamento de projetos,
reduzir as demandas colocadas em engenheiros de software, reduzindo assim o esforço da
engenharia de software e também reduzindo o custo total de desenvolvimento. Basicamente é a
nossa incapacidade humana de lidar com a complexidade que está na raiz da crise do software.

Observou-se frequentemente que estamos enfrentando uma crise de software, caracterizada pela
nossa incapacidade de produzir software correto e confiável dentro do orçamento e no tempo.

O engenheiro de sistemas qualificados, pode através do uso dessas técnicas e pela aplicação de
métodos de engenharia de sistemas e habilidades de gerenciamento de projetos, reduzir as
demandas colocadas em engenheiros de software, reduzindo assim o esforço de engenharia de
software e também reduzindo o custo total de desenvolvimento. Na engenharia de software, a
possível solução para métricas de software é o uso de métricas de software adequadas e a
utilização adequada dessas métricas. Para a implementação desta solução para o problema da
crise de software alguns pré-requisitos estão lá.

São eles:

1. Conhecimento de estatísticas básicas e desenho experimental.


2. Noções básicas de modelos de ciclo de vida de software comummente usados;
3. Experiência trabalhando como membro da equipe em um projeto de desenvolvimento de
software.

Para os projectos que são entregues tardiamente deve adoptar a seguinte metodologia:

PLANEJAMENTO DE PROJETOS E AGENDAMENTO

Planejamento de projeto significa criar detalhamento de trabalho e, em seguida, alocar


responsabilidades para os desenvolvedores ao longo do tempo. O planejamento do projeto
consiste na construção de várias tarefas, cronogramas e caminhos essenciais, incluindo gráficos
de Gantt e gráficos PERT e diferentes planos escritos para várias situações. É impossível que um
projeto possa ser completado de forma eficiente desde o estágio de planejamento até a fase de
implementação. A atribuição de funções e responsabilidades deve ser claramente definida. O
agendamento adequado também é necessário antes do início do projeto. Ele inclui o
agendamento de tempo, agendamento de equipas.
Para os projectos em execução fora do orçamento, a metodologia de estimativa de custos
deve ser aplicada:

ESTIMATIVA DE CUSTO

A estimativa de custos envolve principalmente o custo do esforço para produzir o projeto de


software. Mas não se limita apenas ao esforço. Também inclui o custo de hardware e software,
treinando os funcionários e clientes, viajando para o cliente, Networking e custos de
comunicação. A estimativa de custo deve ser feita como parte do modelo de processo de
software. A estimativa de custos deve ser feita bem antes do início do desenvolvimento do
projeto.

O fracasso do orçamento para o custo do projeto resulta em desastre completo. Ferramentas de


desenvolvimento, custo e custo de hardware também precisam ser estimados primeiro.

A fim de lidar com a complexidade crescente do sistema, a gestão de riscos deve ser
aplicada:

GESTÃO DE RISCOS

É um factor importante para a falha do projeto de software se não for gerenciado em tempo hábil
e efetivamente. Como nenhum risco pode ser previsto, temos de tomar as medidas necessárias no
presente para tomar qualquer situação incerta no futuro. A gestão de riscos significa lidar com
uma preocupação antes de se tornar uma crise. Os gerentes de projecto têm que identificar as
áreas onde o risco pode afectar o desenvolvimento do projeto. O risco pode ser de natureza
técnica ou não técnica. Depois que o risco é identificado há uma necessidade de fazer as
categorias desse risco. A análise de risco é o processo de examinar os resultados do projeto e os
produtos entregues após a análise de risco e aplicar a técnica para diminuir o risco. Após o risco
ser analisado, o próximo passo é a prioridade do risco, focalizando no risco mais severo e no
menos severo mais tarde. Gerenciar o risco para alcançar os resultados desejados e os
entregáveis, é feito através do controle do risco no seu melhor.

CONCLUSÃO
Assim, discutimos a crise de software, suas causas, o status atual e a possível solução para esta
crise. A engenharia de software parece ser uma das poucas opções disponíveis para enfrentar a
crise de software. A engenharia de software é a aplicação de uma abordagem sistemática,
disciplinada e quantificável para o desenvolvimento, operação e manutenção de software; ou
seja, a aplicação de engenharia para software.

Acredita-se que a única solução satisfatória para a atual crise de software pode vir de uma
propagação de práticas de engenharia de software entre os engenheiros, juntamente com novos
avanços para a disciplina de engenharia de software em si.

Você também pode gostar