Upload
tiago-pinhao
View
201
Download
2
Embed Size (px)
Citation preview
Optimização de Software
Software Programas de computador; Entidade abstracta; Ferramentas pelas quais:
Exploramos os recursos do hardware; Executamos determinadas tarefas; Resolvemos problemas; Interagimos com a maquina; Tornamos o computador operacional.
Software (Cont.) Instruções que executam uma função desejada;
Estrutura de dados para manipular informação;
Documentos para desenvolver, operar e manter os programas.
Software:Componentes Série de conversões que atendem a exigências pré determinadas;
Projecto;
Estrutura, atributos e requisitos relacionados aos dados;
Forma de linguagem;
Instruções executáveis.
Os componentes são caracterizados como
Atributos
Operações
Restrições estruturais e operacionais
Acontecimentos
Multi-interfaces por cenário
Propriedades não-funcionais
Software Software aplicativo;
Software gratuito;
Software livre.
Software Aplicativo Resolvem problemas comerciais ou prestam serviços de
processamento de dados;
Não se compra um produto mas sim uma licença de uso;
Não se modifica, apenas se usa.
Software gratuito Possui a fonte aberta;
São distribuídos gratuitamente;
Software proprietário;
Software livre Uso;
Cópia;
Modificação;
Redistribuição ;
"Software Livre" é uma questão de liberdade, não de preço;
O software livre é uma questão de liberdade dos usuários de executar, copiar, distribuir, estudar, mudar e melhorar o software.
Software livre (Cont.) Liberdade de executar o programa, para qualquer propósito;
Liberdade de estudar como o programa funciona e altera-lo para ele fazer o que pretender;
Liberdade de distribuir copias de modo a ajudar o próximo;
Software livre (Cont.) Este software pode e deve estar disponível para ser
comercializado. O desenvolvimento comercial de software é comum e tais são muito importantes. Pode pagar-se para receber copias do software ou obtê-las por custo zero e para alem disso, tem sempre a liberdade de copiar e modificar o software ate mesmo para vender copias.
Ciclo de Vida
Características Software É um elemento lógico, não físico;
Maior abstracção;
Custos concentrados no desenvolvimento e não na manufactura;
O processo de gerenciamento e o relacionamento entre as pessoas são diferentes;
Características Software (Cont.) Diferentes abordagens;
Deteriora-se com o uso, não se desgasta;
Não há peças de reserva;
Não é construído através de componentes prontos.
História Em 1968 ocorreu a Conferência da OTAN sobre Engenharia de Software na
Alemanha. O principal objetivo dessa reunião era estabelecer práticas mais maduras para o processo de desenvolvimento, por essa razão o encontro é considerado hoje como o nascimento da disciplina de Engenharia de Software.
Em 1986, Alfred Spector, presidente da Transarc Corporation, foi co-autor de um artigo comparando a construção de pontes ao desenvolvimento de software. A sua premissa era de que as pontes normalmente eram construídas no tempo planejado, no orçamento, e nunca caiam. Em contramão, os softwares nunca ficavam prontos dentro do prazo e do orçamento, e, além disso, quase sempre apresentavam problemas.
História (Cont.) Em 1995, a organização The Standish Group publicou um estudo
analisando as estatísticas sobre sucesso e fracasso dos projetos de desenvolvimento de software: o Chaos Report. Foi revelado que 84% dos projetos de software são mal-sucedidos, sejam sendo cancelados ou apresentando falhas críticas. Considerando apenas os projetos mal-sucedidos, o custo real foi 189% maior que o estimado, e o tempo de conclusão 222% maior. Estimou-se que nesse ano, as agências governamentais e companhias privadas estadunidenses tenham gasto 81 bilhões apenas em projetos cancelados, e mais 59 bilhões em projetos concluídos fora do tempo previsto.
História (Cont.) A Standish Group continuou a publicar regularmente o seu relatório nos
anos seguintes, e a apesar de 35% dos projetos de software iniciados em 2006 terem obtido sucesso, ainda é assustador saber que dois terços de todos eles fracassam.
Os 50 anos de experiência no desenvolvimento de software não bastaram para melhorar efetivamente a qualidade do software, a despeito da evolução na área de engenharia de software e do ferramental disponível. O metodologista Grady Booch, um dos pais da UML resumiu a história toda: “uma doença que dure tanto tempo quanto esta, francamente, deveria ser chamada de normalidade”.