Engenharia de Software
Por: vanrobson costa • 13/6/2015 • Trabalho acadêmico • 2.020 Palavras (9 Páginas) • 363 Visualizações
Página 1 de 9
Engenharia de Software
Introdução
- Praticamente todos os países hoje em dia dependem de software:
- Infraestrutura e serviços nacionais governamentais (fazenda, INSS, sistema eleitoral, etc.) utilizam sistemas computadorizados;
- A indústria, o comércio e o sistema financeiro dos países desenvolvidos encontram-se hoje plenamente automatizados;
- Maioria dos produtos elétricos lançados atualmente incluem um computador e um software de controle.
Software
- Presente em todas as áreas da economia;
- Representa uma fração significativa do PIB dos países desenvolvidos.
- Em conseqüência disso, produzir e manter software de qualidade dentro de custos e prazos adequados é fundamental para o bom funcionamento da economia das nações.
Características do software
- Abstrato e intangível, não é limitado por materiais nem é controlado pelas leis da física;
- Potencial ilimitado devido a ausência de restrições;
- Ausência de restrições a criação de software favorece a complexidade e dificulta a compreensão do mesmo.
Crise do software
- Tem sua origem na evolução tecnológica, que viabilizou a construção, a custo baixo, de hardware cada vez mais poderoso;
- Aumento do poder computacional viabilizou a construção de aplicações até então consideradas inviáveis;
- Software desenvolvido para aproveitar o novo potencial computacional era várias vezes maior e mais complexo que os sistemas construídos anteriormente.
- Enquanto os custos de hardware caíam, os custos de software aumentavam rapidamente;
- Projetos iniciados não raras vezes eram abandonados sem serem concluídos;
- O software desenvolvido:
- Era entregue com grande atraso;
- Possuía defeitos (bugs);
- Não era confiável;
- Era difícil de manter;
- Custava bem mais caro que o previsto inicialmente.
- A experiência com projetos mal-sucedidos mostrou que o processo informal utilizado anteriormente para construir software não era suficiente para desenvolver os novos sistemas;
- Novas técnicas e métodos eram necessários para controlar a complexidade inerente aos grandes sistemas de software;
- Essas técnicas tornaram-se parte da engenharia de software, sendo amplamente utilizadas hoje em dia.
O que é software?
- Um software consiste de:
- Arquivos de configuração;
- Documentação do software, que descreve a estrutura do sistema, como documento de requisitos e modelos que descrevem o projeto do mesmo;
- Documentação do usuário, necessária para operar corretamente o sistema;
- Programas que realizam as funções de interesse do usuário.
- Podem ser desenvolvidos para um cliente específico ou para o mercado.
Tipos de software
- Genérico:
- São desenvolvidos para venda a diferentes tipos de consumidores;
- Especificação é controlada pela organização que desenvolve o produto;
- Ex: Word, Excel, etc.
- Sob encomenda (customizados):
- Desenvolvidos sob encomenda de um cliente;
- Criados de acordo com a especificação fornecida pelo cliente.
Atributos de um bom software
- Também chamados atributos não funcionais, estão relacionados diretamente a qualidade do software;
- São universais, não estando relacionados diretamente com o que o software faz;
- Dizem respeito tanto ao comportamento do software quando em execução quanto a sua estrutura.
Custo do software
- Responde pela maior parte do custo de implantação de um sistema informatizado;
- O custo do software envolve não apenas o seu desenvolvimento, mas também a sua implantação (estrutura para mantê-lo funcionando, treinamento dos usuários, etc) bem como a evolução do mesmo;
- Uma das metas da engenharia de software é reduzir o custo do software.
Engenharia de software
- Conceito surgiu em 1968, em uma conferência organizada para discutir a ‘crise do software’;
- Ramo da engenharia que se tem como meta o desenvolvimento de software de alta qualidade dentro de prazos e custos adequados;
- Abrange todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema, passando pelo desenvolvimento, entrega ao cliente e evolução (manutenção) do mesmo;
- Não está relacionada apenas com os processos técnicos de construção de software, mas com atividades como o gerenciamento de projeto de software e o desenvolvimento de ferramentas, métodos e teorias que apóiem a produção de software.
Qual a diferença entre Engenharia de software e ciência da computação?
- Ciência da computação:
- Trata das teorias e métodos que constituem a base de computadores e sistemas de software;
- Engenharia de software:
- Utiliza teorias e métodos da ciência da computação, aplicando-os aos problemas práticos da produção de software.
Qual a diferença entre engenharia de software e engenharia de sistemas?
- Engenharia de sistemas:
- Disciplina mais antiga que a engenharia de software, diz respeito a todos os aspectos do desenvolvimento e da evolução de sistemas complexos, nos quais o software desempenha um papel importante;
- Envolve a especificação e construção tanto do hardware como do software.
Custo da engenharia de software
- Aproximadamente 60% dos custos são custos de desenvolvimento e 40% são custos de testes do sistema. Esses valores podem variar dependendo do:
- Tipo de sistema sendo desenvolvido;
- Requisitos do sistema, tais como performance e confiabilidade;
- Processo utilizado na sua construção.
- No caso de softwares customizados, custos de evolução costumam superar os custos de desenvolvimento.
Questões sobre o desenvolvimento de software
- Algumas questões sobre o desenvolvimento de software:
- Porque a construção de um software leva tanto tempo?
- Porque desenvolver programas custa tão caro?
- Porque softwares costumam ser entregues com defeitos (bugs)?
- Porque não é possível encontrar todos os erros antes de entregar o software aos clientes?
- Porque é tão difícil avaliar o progresso do desenvolvimento de um software?
Desenvolvimento de software
- Diferente de produtos físicos, software não é fabricado, mas sim desenvolvido.
- Custos se concentram no desenvolvimento. Produção de cópias extras custa pouco perto do que é gasto com o projeto e construção do programa.
- A construção de produtos manufaturados é feita a partir de componentes padronizados e testados, diminuindo o tempo de desenvolvimento do produto e aumentando a sua confiabilidade;
- Ao construir uma placa de hardware, um engenheiro seleciona as partes (diodos, resistores, chips, etc) que irão compor a placa a partir de catálogos.
- Estes componentes possuem uma interface e uma função bem definida, tendo eficácia comprovada.
- Em caso de defeito em um componente, a sua substituição é simples de ser realizada.
- Diferente do hardware, a maioria dos programas ainda é feita sob encomenda.
- A maior parte do software desenvolvido não costuma ser reutilizado em outros projetos, aumentando o custo e o tempo de desenvolvimento;
- Presença de erros é inevitável quando se produz código novo;
- O conserto é mais difícil (e caro) do que no caso do hardware.
Alguns mitos do desenvolvimento de software
- A especificação dos objetivos do software é suficiente para iniciar o desenvolvimento;
- Uma descrição incompleta dos requisitos é o principal motivo do fracasso de projetos de software.
- Se o desenvolvimento atrasar, basta contratar mais gente para colocá-lo em dia;
- Adicionar mais pessoas a um projeto já atrasado pode atrasá-lo ainda mais.
- O trabalho termina quando produzimos o programa e ele funciona.
- A ausência de documentação tornará ainda mais difícil (e cara) a manutenção do software.
- Mudanças e eventuais correções podem ser deixadas para o final do desenvolvimento, quando o programa estiver pronto.
- A medida que o projeto avança, mais caro e difícil se tornam mudanças e correções.
Métodos de Engenharia de Software
...
Disponível apenas no TrabalhosGratuitos.com