Crise de software2

Preview:

Citation preview

Crise do Software

Crise de Software Primeira Era -» 50-65

Software Customizado; Personalizados sem nenhuma documentação; Batch.

Segunda Era -» 65-75 Multiusuário; Tempo Real; BD, produto de software; Software houses (crise de software).

Crise de Software (Cont.) Terceira Era -» 75-85

Sistemas Distribuídos;; IA; Hardware de baixo custo;

Quarta Era -» 85-… Sistemas especialistas;; Redes Neurais; Computação parela.

Crise de Software (cont.) Primeira geração -» assembley;

Segunda geração -» Fortran, Cobol, Algol;

Terceira geração -» Pascal, Eifel,…;

Quarta geração -» Dbase, lg de consultas SQL, geradores de programa, lg de especificação formal, ferramentas…

Crise de Software (cont.) Dificuldades do desenvolvimento de software frente ao rápido

crescimento da demanda por software, da complexidade dos problemas a serem resolvidos e da inexistência de técnicas estabelecidas para o desenvolvimento de sistemas que funcionassem adequadamente ou pudessem ser validados.

As causas da crise do software estão ligadas a complexidade do processo de software e a relativa imaturidade da engenharia de software como profissão.

Crise de Software (cont.) Os problemas que originaram essa crise tinham relacionamento

directo com a forma de trabalho das equipes. Eram problemas que não se limitavam a "sistemas que não funcionam correctamente", mas envolviam também dúvidas sobre como desenvolver e manter um volume crescente de software e ainda estar preparado para as futuras demandas. Essencialmente, eram sintomas provenientes do pouco entendimento dos requisitos por parte dos desenvolvedores, somados às técnicas e medidas pobres aplicadas sobre o processo e o produto, além dos poucos critérios de qualidade estabelecidos até então.

Crise de Software (cont.) Todos esses factores exigiram respostas e métodos que foram

sendo aprimorados e documentados, dando início à área de Engenharia de Software. A busca por eficiência e competência revelou oportunidades, desafios e perigos que guiaram as tecnologias e apontaram novos rumos para as pesquisas.

Manifestação da crise Projectos estourando o orçamento; Projectos estourando o prazo; Software de baixa qualidade; Software muitas vezes não atingiam os requisitos; Projectos ingerenciaveis e o código difícil de manter; Má qualidade das teorias, metodologias e ferramentas de

desenvolvimento utilizadas; Complexidade dos sistemas, dificuldade de formalização.

Soluções para a crise Análise Económica de Sistemas de Informações; O uso de melhores técnicas, métodos e ferramentas; Mais treinamento e educação: Actualmente não se investe o

suficiente; A mudança de paradigma sobre o que é desenvolver software e como

deveria ser feito; Trabalho em equipa; Combinar métodos para as fases do desenvolvimento; Ferramentas para automatizar esses mesmos métodos; Técnicas para assegurar a qualidade.

Crise de Software: Problemas Software inadequado; Cronogramas e custos imprecisos; Inexistência de dados históricos acerca do processo de

desenvolvimento; Comunicação deficiente; Carência de conceitos quantitativos; Difícil manutenção.

A Crise de Software e a Idade Média

Origens da Crise de Software, pode-se comparar com a história das outras indústrias. Por exemplo, antes da revolução industrial, os sapatos eram feitos de forma muito individual. Nesses tempos mais remotos, os sapateiros faziam cada par de sapatos de forma única para cada cliente, desde a obtenção da matéria prima até o produto final.

As semelhanças com a indústria de software começam logo aí. Primeiro, porque as técnicas de desenvolvimento de software ainda não estão totalmente maduras e consolidadas. Afinal, a variedade de técnicas que surgiram nas últimas décadas é enorme, abrangendo ideias. Em segundo lugar, existe uma tendência muito forte em desenvolver software sem aproveitar o material produzido no passado. E para piorar, além de entregá-lo quase sempre mal documentado, a maior parte do conhecimento envolvido na sua construção permanece apenas na cabeça dos desenvolvedores.

Tipos de erros Sistemas desenvolvidos correctamente a partir de

especificações erradas ou incompletas;

Corte deliberado do escopo do projecto, em razão do estouro do prazo ou da verba do projecto;

Sistemas desenvolvidos incorrectamente a partir de especificações corretas.

O impactocustos e prazos

Grande mais de 50% de aumento em custos/prazos Moderado de 11 a 50% de aumento em custos/prazos Pequeno de 0 a 10% de aumento em custos/prazos

Causas de erros

A- 44% Definição inicial falha B- 36% Novas aplicações desconhecidas dos usuário C-23% Projecto tão longo que os requisitos mudaram durante o

desenvolvimento D- 22% Falhas/dificuldades em administrar a expectativa dos

usuários E- 19% Dificuldade em envolver os usuários nos estágios iniciais do

projecto F- 19% Dificuldade em empregar técnicas de prototípico ou

desenvolvimento conjunto

Técnicas para superar A- 63% Projectar aplicações conjuntamente usuários e

desenvolvedores B- 25% Usar prototípico para obter definição de requisitos C- 23% Buscar requisitos D- 23% Usar ferramentas de controle e gerência de projectos E- 16% Dizer “NÃO” às solicitações de alteração dos requisitos,

depois de iniciado o projecto

Dificuldades Saber quais os requisitos;

Ferramentas e linguagem;

Tempo e custos;

Prever falhas;

Cuidar da manutenção e versões.

Engenharia de Software Abordagem sistemática para o desenvolvimento;

Aplicação pratica de conhecimento científico no software;

Disciplina que usa princípios de engenharia para produzir e manter softwares.

Engenharia de Software:Objectivos

Melhorar a qualidade do software;

Aumentar a produtividade;

Satisfazer profissionalmente engenheiros de software.

Engenharia de Software:Princípios

Reduzir inconsistências;

Apenas aspectos importantes, ignorar os detalhes;

Lidar com complexidade;

Reutilizar;

Flexibilizar.

Fonte: modificado de The Standish Group International Inc (2006).

Fonte: modificado de The Standish Group International Inc (2006).

Exercícios O que seria necessário aplicar para evitar a Crise do Software?

O uso de melhores técnicas, métodos e ferramentas; Mais treinamento e educação: Actualmente não se investe o suficiente; A mudança de paradigma sobre o que é desenvolver software e como deveria ser feito.

Estamos ainda numa Crise de Software? Sim, a engenharia de software ainda precisa evoluir para

atingir patamares similares a outras engenharias. Os projectos de software ainda estão sujeitos a fracassos e é importante que sejam mantidas pesquisas com o objectivo de gerar novos processos e padrões para facilitar seu desenvolvimento.

Exercícios (Cont.) Segundo a Engenharia de Software, o que é um software de

baixa qualidade? Software sem documentação e com código desorganizado

que não permite a extensibilidade.

O facto do Software ser feito sob encomenda é um complicador? Torna a construção, de certa forma, artesanal? Cada software deve ser construído de forma única. Ele é

desenvolvido através do conhecimento e experiência dos analistas, projectistas e programadores. A criatividade é peça fundamental neste desenvolvimento.

Portabilidade de uma aplicação Uma aplicação portátil é um programa que pode ser levado

connosco para qualquer parte num aparelho portátil como um disco externo, PEN USB, iPod. Estes programas não necessitam que seja instalado software adicional, apenas é necessário fazer o donwload da aplicação, extrair e já está pronta a funcionar.

É uma óptima maneira de termos sempre á mão ferramentas de Office, editor de imagem, Web Browser, Chat, etc…

1º Passo:

Escolher o programa que quer tornar portátil. Eu, escolhi o MP3 Rocket..Para o fazer, precisarás de uns programas próprios, no meu caso eu escolhi o 7-zip e o Universal Extractor. É também necessário criar uma pasta e colocar lá o ficheiro 7zS que deve ser sacado.Instala-los!

2º Passo:

Depois de todos os programas instalados, no ficheiro do programa escolhido para tornar portátil, clique no botão direito do rato e escolha a opção:”UniExtract para Subdirectoria”. Para o fazer, é necessário também o programa Win Rar instalado.

3º Passo:

Seleccionar todos os ficheiros extraídos e com o botão direito do rato, escolher a opção 7-zip – adicionar ficheiros. Aparecerá esta janela. Grave numa pasta onde colocou o ficheiro 7zS.

4º Passo:

Ambos os ficheiros devem estar colocados na mesma pasta.

ProntoO programa está pronto a correr!

Recommended