Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

Apresenta a engenharia de software, destacando sua importância no cenário atual de crescimento econômico mundial e apontando a necessidade de educação continuada de engenheiros de software.

Para que serve

Conscientizar o engenheiro de software da necessidade de criar uma ‘cultura’ de engenharia de software que prioriza documentação adequada de software para apoiar rastreabilidade, manutenibilidade e reuso de artefatos de software. Recomenda engenharia reversa e arquitetura de software como componentes para sua formação.

Em que situação o tema é útil

O artigo identifica diversos fatos e tendências do segmento de TI, discute cenário atual e apresenta recomendações para os profissionais de engenharia de software que visam atender a demanda de desenvolvimento de sistemas de software que satisfaçam restrições de custo, tempo (de desenvolvimento) e qualidade.

Ao longo das últimas décadas o software deixou de ser uma parte ínfima e de custo desprezível dos sistemas para se tornar parte determinante e dispendiosa. Hoje em dia, tudo o que você ‘toca’ tem software, seja no uso doméstico quanto nas organizações. Você encontra software nos caixas das farmácias, no mercado da esquina, naquelas pequenas máquinas que permitem milhões de transações com cartão de crédito e nos aviões que levam a pessoas pelos quatro cantos do mundo.

Incrível e intangível é o software. Isso mesmo, software é um produto intangível, o qual é difícil descrever bem como avaliar. Por outro lado, comparativamente ao hardware é facilmente modificado, tornando as manutenções sejam elas de caráter corretivo ou evolutivo também mais fáceis. Mas, isso é apenas verdade se o software tiver seu projeto bem documentado. Documentação de um projeto é essencial para permitir a manutenção e evolução de um sistema de software. Para tanto, torna-se imprescindível ter ou, se ainda não tiver, criar uma cultura (de engenharia de software) para adotar boas práticas da engenharia de software que compreendem os pilares do desenvolvimento de software de modo a atender às suas premissas básicas: custo, tempo de desenvolvimento e qualidade.

Engenharia de Software

De acordo com o documento IEEE Std 610.12-1990 que apresenta o IEEE Standard Glossary of Software Engineering Terminology (http://standards.ieee.org/findstds/standard/610.12-1990.html), Engenharia de software é definida como “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.”

Sabe-se que software não é uma entidade física e, portanto, não sofre qualquer tipo de desgaste (físico) como geralmente acontece com o hardware. Entretanto, apesar de não sofrer desgaste físico como o hardware, software está sujeito a modificações que ocorrem durante o ciclo de vida. Essas modificações podem acontecer devido à inserção de defeitos decorrentes do desenvolvimento os quais são geralmente corrigidos antes da entrega do produto. Mas, observe que novos defeitos ainda podem ser (e geralmente são) inseridos devido às modificações que o software sofre devido a sua evolução. Por exemplo, toda vez que uma nova funcionalidade é desejada ou solicitada pelo cliente, torna-se necessário adicionar e/ou modificar as instruções já existentes no software. Como resultado dessas mudanças, novos defeitos podem ser introduzidos e, portanto, pode também causar a deterioração na qualidade do software.

Fases genéricas no desenvolvimento de software

Dentro do contexto discutido acima, é importante observar que a manutenção é uma das fases que certamente o software irá lidar. Outras duas fases são definição e desenvolvimento, como ilustrado na ...

Quer ler esse conteúdo completo? Tenha acesso completo