Modelo de Maturidade de Software – Introdução à Engenharia de Software


Software

Vamos começar a nossa aula com uma pergunta simples: a Engenharia de Software é uma engenharia ou uma arte?

Certamente muitos responderam que é uma engenharia, tão somente. Mas vamos tentar entender como a relação engenharia e arte funciona bem para a Engenharia de Software.

Software: arte ou engenharia?

Com o passar do tempo foram desenvolvidas técnicas e métodos para a programação, análise e projeto de software. Essas técnicas foram amplamente testadas e incorporadas nas organizações, tornando-se as melhores práticas em computação nos dias atuais. Mas hoje uma questão importante é se desenvolvemos software utilizando somente as técnicas disponíveis ou se precisamos também envolver a arte no desenvolvimento. Vamos entender melhor o que precisamos saber para desenvolver software.

Cientistas de computação e pesquisadores em engenharia de software estudam sistemas computacionais e teorias sobre como tornar o software mais produtivo e eficientes. Isso é a Engenharia no desenvolvimento. E eles também projetam sistemas computacionais e escrevem programas para realizar tarefas nesses sistemas. O que é uma arte no desenvolvimento de software.

Então desenvolver software é uma engenharia e uma arte também. Para desenvolver software precisamos conhecer as funções do computador e as teorias, as quais estão descritas nos fundamentos da ciência da computação. Precisamos também conhecer o problema, as necessidades dos clientes e as técnicas e ferramentas da Engenharia de Software.

Software arte ou engenharia

Definição de software

Um conceito muito importante que todos devem saber é o de software, o que é realmente um software e quais são os seus componentes. Um Software é composto das seguintes partes:

Instruções: são os programas de computador que quando executadas produzem a função e o desempenho desejados;

Estruturas de dados: possibilitam que os programas manipulem adequadamente os dados que estão sendo tratados;

Documentos: os quais descrevem a operação e o uso dos programas.

Portanto, software é muito mais do que somente instruções, do que somente código. Ele é composto por um elemento muito importante que são as documentações. Quando compramos um software devemos receber toda a documentação necessária sobre ele, como: nota fiscal, licença de uso, manual de operação, manual de instalação e configuração, dentre outros.

Evolução do software

Vamos entender agora como ocorreu a evolução do software desde o surgimento da computação, no final da década de 1940 e início da década de 1950. A evolução do software está dividida em eras, que são:

1950 a 1965

A Primeira era do desenvolvimento de software

1963 a 1974

A segunda era do desenvolvimento de software

1973 a 1978

A terceira era do desenvolvimento de software

 

1985 aos dias atuais

A quarta era do desenvolvimento de software

LEIA MAIS: https://codigoecafe.com/2013/05/17/resumo-do-livro-engenharia-de-software-de-ian-sommerville-8o-ed/

Classificação do software

Vamos entender agora quais são os diferentes tipos de software existentes e a sua classificação. O software está classificado nos seguintes tipos:

Definição de engenharia de software

No início da computação a preocupação era com o hardware e o software, nada mais era do que uma reflexão posterior. Entretanto, essa visão mudou e com ela gerentes e técnicos se fazem as seguintes perguntas:

A resposta para todas essas perguntas é: a não adoção de práticas de engenharia de software para o desenvolvimento de software, ou seja, devemos desenvolver software como uma engenharia, da mesma forma que utilizamos a engenharia civil para construir prédios ou utilizamos a engenharia aeronáutica para construir aviões.

A Engenharia objetiva analisar, projetar, construir, verificar e gerenciar entidades técnicas e/ou sociais. Quando a entidade a ser construída com a engenharia é software, temos a Engenharia de Software.

Então podemos definir Engenharia de Software como: o estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais (PRESSMAN, 2006).

Também podemos definir da seguinte forma: Engenharia de Software é a aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software (IEEE STANDARD 610.12).

Objetivo e características da engenharia de software

A engenharia de Software tem como objetivo projetar e desenvolver software com maior qualidade em menos tempo e com o menor custo possível para resolver problemas de forma eficiente e eficaz. A qualidade envolve desenvolver softwares mais eficientes, mais precisos, fáceis de modificar, de usar ou de entender. Essas são características importantes que devem ser priorizadas em um software.

A Engenharia de Software é uma disciplina de engenharia que está envolvida com todos os aspectos do desenvolvimento de produtos de software. Os produtos de software consistem de programas desenvolvidos, estruturas de dados e documentação associada. Essa engenharia não está voltada para a programação individual, mas para abordagens provendo mecanismos para que grupos possam lidar com complexidade e mudança na construção de um software.

Fatore que afetam a prática da engenharia de software

A Engenharia de Software tem uma série de fatores que afetam a viabilidade de entrega de produtos de software. Os fatores são:

Fatore que afetam a prática da engenharia de software

Tecnologia em camadas

A Engenharia de Software é uma tecnologia em Camadas. Para que um problema seja resolvido, a solução deve empregar um conjunto variado de métodos ou técnicas, ferramentas e processos utilizando um paradigma de desenvolvimento específico. É muito importante que no desenvolvimento de um software haja um compromisso organizacional com a qualidade, que leva ao desenvolvimento de abordagens cada vez mais amadurecidas para a Engenharia de Software.

FERRAMENTAS

MÉTODOS

PROCESSOS

 

LEIA MAIS: http://imasters.com.br/artigo/7909/linguagens/estudo-sobre-engenharia-de-software/

 

Atividade proposta

Faça uma comparação entre a Engenharia de Software e a Engenharia Civil, enfatizando a importância de cada uma destas engenharias para desenvolver um software e para construir um prédio.

R: Chave de resposta: Ambas devem ser vistas como engenharias e necessárias para que todas as técnicas sejam utilizadas para construir um software de qualidade e para a construção de um prédio com segurança e qualidade.

 

Referências

Base: Pós em Engenharia de Software – Estácio (EAD), com várias adaptações e melhorias.

PRESSMAN, Roger S. Engenharia de software – uma abordagem profissional. 7. ed. São Paulo: MCGRAW-HILL BRASIL, 2011.

SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson (livros universitários), 2011.

PFLEEGER, Shari Lawrence. Engenharia de software – teoria e prática. 2. ed. São Paulo: Pearson (livros universitários), 2003.

 

Lista de Exercícios

Lista de Exercícios de Modelo de Maturidade de Software – Lista 2

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.