O que é Engenharia de Software? Definição, Noções Básicas, Características
O que é engenharia de software?
A engenharia de software é definida como um processo de análise dos requisitos do usuário e, em seguida, projetar, construir e testar aplicativos de software que satisfaçam esses requisitos.
Vejamos as várias definições de engenharia de software:
- O IEEE, em seu padrão 610.12-1990, define engenharia de software como a aplicação de uma abordagem sistemática, disciplinada e computável para o desenvolvimento, operação e manutenção de software.
- Fritz Bauer definiu-o como “o estabelecimento e uso de princípios de engenharia padrão. Ajuda você a obter, de forma econômica, um software confiável e que funcione eficientemente nas máquinas reais.
- Boehm define engenharia de software, que envolve “a aplicação prática do conhecimento científico ao design criativo e à construção de programas de computador. Também inclui documentação associada necessária para desenvolvê-los, operar e mantê-los.'
Por que Engenharia de Software? Crise de software e sua solução
Qual foi a crise do software?
- Foi no final da década de 1960 que muitos projetos de software falharam.
- Muitos softwares ultrapassaram o orçamento. O resultado foi um software não confiável e de manutenção cara.
- Softwares maiores eram difíceis e muito caros de manter.
- Muitos softwares não são capazes de satisfazer as crescentes necessidades do cliente.
- As complexidades dos projetos de software aumentaram sempre que a capacidade do hardware aumentou.
- A demanda por novo software aumentou mais rapidamente em comparação com a capacidade de gerar novo software.
Todas as questões acima levam à “crise de software”.
A Solução
A solução para o problema foi transformar o esforço de codificação desorganizado em uma disciplina de engenharia de software. Esses modelos de engenharia ajudaram as empresas a simplificar as operações e fornecer software que atendesse aos requisitos dos clientes.
- O final da década de 1970 viu o uso generalizado dos princípios de engenharia de software.
- Na década de 1980, assistimos à automação do processo de engenharia de software e ao crescimento da (CASE) Engenharia de Software Auxiliada por Computador.
- A década de 1990 viu uma ênfase crescente nos aspectos de 'gestão' dos padrões de qualidade e processos de projetos, assim como a ISO 9001
Por que a engenharia de software é popular?
Aqui estão razões importantes por trás da popularidade da engenharia de software:
- Software grande – Na nossa vida real é muito mais confortável construir um muro do que uma casa ou edifício. Da mesma maneira, à medida que o tamanho do software aumenta, a engenharia de software ajuda você a construir software.
- Escalabilidade- Se o processo de desenvolvimento de software fosse baseado em conceitos científicos e de engenharia, seria mais fácil recriar um novo software para dimensionar um já existente.
- Adaptabilidade: Sempre que o processo de software é baseado em ciência e engenharia, é fácil recriar um novo software com a ajuda da engenharia de software.
- Custo- A indústria de hardware mostrou suas habilidades e a enorme produção reduziu o custo do computador e do hardware eletrônico.
- natureza dinâmica– Sempre crescendo e adaptando a natureza do software. Depende do ambiente em que o usuário trabalha.
- Gestão da Qualidade: Oferece melhor método de desenvolvimento de software para fornecer produtos de software de qualidade.
Relação da Engenharia de Software com Outras Disciplinas
Aqui, como a engenharia de software se relaciona com outras disciplinas:
- Ciência da Computação: Fornece a base científica para o software, já que a engenharia elétrica depende principalmente da física.
- Ciência da Gestão: A engenharia de software é um trabalho trabalhoso que exige controle técnico e gerencial. Portanto, é amplamente utilizado na ciência da gestão.
- Economia: Neste setor, a engenharia de software auxilia na estimativa de recursos e controle de custos. O sistema informático deve ser desenvolvido e os dados devem ser mantidos regularmente dentro de um determinado orçamento.
- Engenharia de Sistemas: A maior parte do software é um componente de um sistema muito maior. Por exemplo, o software de um sistema de monitoramento industrial ou o software de voo de um avião. Métodos de engenharia de software deverão ser aplicados ao estudo deste tipo de sistemas.
Desafios da Engenharia de Software
Aqui estão alguns desafios críticos enfrentados pelos engenheiros de software:
- Em áreas críticas para a segurança, como o espaço, a aviação, as centrais nucleares, etc., o custo da falha de software pode ser enorme porque há vidas em risco.
- Aumento das demandas do mercado por tempos de resposta rápidos.
- Lidar com a crescente complexidade da necessidade de software para novas aplicações.
- A diversidade de sistemas de software deve comunicar-se entre si.
Atributos para produtos de software
As características de qualquer produto de software incluem recursos que são exibidos pelo produto quando ele é instalado e colocado em uso.
Eles não são os serviços fornecidos pelo produto. Em vez disso, eles estão relacionados ao comportamento dinâmico do produto e ao uso que ele faz.
Exemplos desses atributos são:
Efficiency, reliability, robustness, maintainability, etc.
Contudo, a importância relativa destas características varia de um sistema de software para outro.
Características do Medicamento | Descrição |
---|---|
Manutenção | O software deve evoluir para atender às novas demandas dos clientes. |
Confiança | A confiabilidade inclui várias características. Um software confiável nunca deve causar nenhum dano físico ou econômico no momento da falha do sistema. |
Eficiência | O aplicativo de software deve abusar dos recursos do sistema, como memória e ciclo do processador. |
Usabilidade | O aplicativo de software deve ter UI e documentação específicas. |
Otimizar o atributo acima é muito desafiador. Por exemplo, oferecer uma UI melhor pode reduzir a eficiência do sistema.
Características de um bom software
Qualquer software deve ser julgado pelo que oferece e pelos métodos que o ajudam a utilizá-lo.
Todo software deve satisfazer os seguintes atributos:
- Soluções de
- Transitório
- Manutenção
Aqui estão algumas características importantes de um bom software desenvolvido por profissionais de software
Soluções de
Essa característica nos permite saber o quão bem o software funciona nas operações que podem ser medidas em:
- Faça o orçamento
- Eficiência
- Usabilidade
- Confiança
- Correção
- Funcionalidade
- Segurança
- Segurança
Transitório
Este é um aspecto essencial quando o software é movido de uma plataforma para outra:
- Interoperabilidade
- Reutilização
- Portabilidade
- Adaptabilidade
Manutenção
Este aspecto fala sobre quão bem o software tem a capacidade de se adaptar ao ambiente em rápida mudança:
- Flexibilidade
- Manutenção
- Modularidade
- Escalabilidade
Resumo
- Engenharia de software é um processo de análise dos requisitos do usuário e, em seguida, projetar, construir e testar aplicativos de software que satisfaçam esses requisitos.
- Razões importantes para usar a engenharia de software são: 1) Software grande, 2) Escalabilidade 3) Adaptabilidade 4) Custo e 5) Natureza Dinâmica.
- No final da década de 1960, muitos softwares ultrapassaram o orçamento. Portanto, oferece software não confiável e de manutenção cara.
- O final da década de 1970 viu o uso generalizado dos princípios de engenharia de software.
- Conceito de engenharia de software 1) Ciência da Computação 2) Ciência de Gestão 3) Engenharia de Sistemas e 4) Economia
- O aumento da demanda do mercado por tempos de resposta rápidos é o maior desafio da área de engenharia de software.
- 1) Manutenção, 2) Confiabilidade, 3) Eficiência e 4) Usabilidade são os atributos mais importantes dos produtos de software.
- As três características mais importantes de um bom software são 1) Operanacional 2)Transicional 3)Manutenção.