Afinal, o que é Engenharia de Software?

A Engenharia de Software é uma área da computação voltada à especificação, desenvolvimento e manutenção de sistemas de software, em relação a todos os aspectos da produção de software. É ela que irá dar os caminhos necessários para o engenheiro de sistemas trilhar, seguindo especificações vindas do cliente, e também as normas e bons costumes que a mesma emprega como modelos de sistemas.

Os fundamentos da Engenharia de Software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter o sistema de software, avaliando e dando garantia de sua qualidade.

Em resumo, a Engenharia de Software é uma matéria que serve de base para o começo da criação de um sistema, sendo este qualquer que seja, para qualquer tipo de cliente. Mais a frente veremos os exemplos de modelos de software e como cada um deles ajuda na iniciação de um projeto de software. 

O Processo de Software e seus Modelos

Um processo de software é, basicamente, um conjunto de atividades cuja meta é o desenvolvimento ou evolução de software, ou seja, uma sequência coerente de práticas que objetiva o desenvolvimento ou evolução de sistemas de software. As atividades genéricas que devem ser seguidas em todos os processos inicias de “fabricação” de um software são: 

♦Especificação – o que o sistema deve fazer e suas restrições de desenvolvimento.

♦Desenvolvimento – produção do sistema de software.

♦Validação – verificação de que o software é o que o cliente deseja.

♦Evolução – mudança do software em resposta às demandas de mudança.

 Já os modelos de processo de desenvolvimento de software, que são vistos como representações ou abstrações dos objetos e atividades envolvidas no processo de software, possuem os respectivos tipos: 

♦Sequencial ou Cascata – é o modelo que gerencia as fases de produção do software distintamente separadas (especificação dos requisitos, levantamento do projeto e desenvolvimento do sistema).

♦Evolucional ou Prototipação – é o modelo específico que trabalha com a especificação de requisitos, levantamento do projeto e desenvolvimento do sistema baseado em protótipos do sistema.

♦Espiral – modelo que é representado como uma espiral, com as fases de desenvolvimento do software sendo independentes uma das outras, sem ter uma sequência correta de etapas a serem seguidas.  

Processo de Engenharia de Requisitos 

Resumidamente, o processo de engenharia de requisitos é um processo que engloba todas as atividades que contribuem para a produção de um documento de requisitos e sua manutenção ao longo do tempo. Este processo de engenharia de requisitos é composto por quatro atividades de alto nível e essenciais em um processo de produção de software, são elas: 

♦Estudo de Viabilidade – processo no qual o engenheiro de software estuda se é viável para a empresa ou para seu objetivo próprio a produção do sistema proposto pelo cliente.

♦Elicitação e Análise dos Requisitos – é a parte em que o engenheiro de software levanta os requisitos do sistema de acordo com a solicitação do cliente. Nesta etapa podem ser usadas várias formas de levantamentos de requisitos, como entrevistas abertas ou fechadas, questionários (caso seja um grupo de clientes requisitando o software), etc. Em seguida é feita a análise desses requisitos levantados anteriormente, para poder começar a se ter uma ideia de como o sistema será, o que irá fazer, seu principal objetivo e suas restrições.

♦Especificação de Requisitos – nesta fase é que se dá a produção propriamente dita da documentação de especificação dos requisitos. Em todos os tipos de especificações, há 2 tipos de requisitos a se considerar: os requisitos funcionais e os requisitos não funcionais. Os requisitos funcionais descrevem a funcionalidade que o sistema deverá disponibilizar aos usuário, de uma forma completa e consistente. Os requisitos não funcionais referem-se aos aspectos não funcionais do sistema, como restrições na qual o sistema deve operar ou propriedades emergentes do sistema.

♦Validação dos Requisitos – fase onde os requisitos levantados inicialmente são validados junto ao cliente, isto é, são apresentados ao cliente em forma de protótipo de telas do sistema feitas em papel, também pode-se utilizar diagramas de caso de uso para melhor compreensão do que o sistema irá fazer e apresenta-lo junto ao cliente. Etapa onde o cliente determina se aquilo que o engenheiro pensou do sistema é o que o cliente estava desejando. 

Podemos concluir com este breve artigo que a Engenharia de Software é essencial e praticamente obrigatória na construção de um sistema de software, pois ela guia o engenheiro desde as primeiras entrevistas feitas com o cliente até a entrega do sistema e a manutenção do mesmo. Ainda existem vários outros assuntos que existem dentro deste tópico da Engenharia de Software, mais eu quis trazer neste artigo o básico da Engenharia, e mostrar que ela é parte essencial quando se vai começar um projeto de software.

 Fonte: 

Wikipedia

http://pt.wikipedia.org/wiki/Engenharia_de_software

http://pt.wikipedia.org/wiki/Engenharia_de_requisitos 

Livro

Sommerville, Ian.Engenharia de Software, 8ª Edição. Addison Wesley Editora, 2007.