Pular para o conteúdo principal

Diferenças entre engenharia de software e as engenharias de artefatos físicos.

As engenharias mais tradicionais lidam com artefatos materiais onde propriedades físicas estão fundamentadas em teorias das ciências.

O software é um artefato intelectual cuja matéria prima é a informação e o conhecimento humanos representados por códigos e linguagens. A sua construção é um processo de transformação e comunicação de representações através de seus códigos e linguagens que envolve todos os stakeholders (clientes, desenvolvedores, usuários). Nenhuma outra engenharia tem estas peculiaridades. Isto torna a ES diferenciada com processos bem particulares.

Nas engenharias tradicionais, o design é tratado separadamente pelas disciplinas de desenho industrial e arquitetura (na civil). Na engenharia de software, o design, isto é a transformação de requisitos em solução, ocorre de forma integra à engenharia de requisitos, à arquitetura de software e ao design de interfaces de usuário.

Nas engenharias tradicionais, o processo de verificação é quase sempre nas qualidades do artefato. O aspecto humano, quando considerado, é tratado pelo profissional de fatores humanos ou ergonomia. Em um software, o ser humano e a sua capacidade de interpretar informações, da racionar sobre elas para interagir e resolver problemas, é parte integrante do produto. Um software interativo não funciona sem o componente humano, tal como um software embutido não funciona sem a máquina na qual ele está embarcado. Dessa forma, a avaliação da interação usuário-sistema precisa ser parte necessária e não complementar da verificação. Métodos de desenvolvimento iterativos, com prototipagem e experimentação com usuário ao longo do ciclo é fundamental.

Por fim, lidar com sistemas legados, robustos e confiáveis, é um grande desafio e um outro aspecto diferencial da engenharia de software. Como o software não se desgasta ou sofre fadiga material, o processo de reforma ou reciclagem também é diferente. Técnicas de migração por transformação de código é algo particular da indústria de software.

Assim, engenharia de software tem em comum com qualquer engenharia a necessidade de compreender problemas, desenvolver soluções criativas e garantir a qualidade do seus produtos, aliada aos aspectos gerenciais e econômicos. Mas as características do artefato software requer uma engenharia com fundamentos, métodos, técnicas e ferramentas próprios.

Comentários

Postagens mais visitadas deste blog

O Modelo Evolutivo

O modelo evolutivo descreve um processo na qual o software deve ser desenvolvido de forma a evoluir a partir de protótipos iniciais. Para entender melhor este modelo é importante entender o que é prototipação (ou prototipagem). Prototipação é uma abordagem baseada numa visão evolutiva do desenvolvimento de software, afetando o processo como um todo. Esta abordagem envolve a produção de versões iniciais - "protótipos" - de um sistema futuro com o qual pode-se realizar verificações e experimentações para se avaliar algumas de suas qualidades antes que o sistema venha realmente a ser construído. Objetivos da Prototipação Num projeto de software várias questões podem ser respondida com a construcão de protótipos. Nas situações típicas de desenvolvimento podemos distinguir entre diferentes objetivos na prototipação: Exploratória - é quando o protótipo é usado para ajudar a esclarecer requisitos dos usuários com respeito ao sistema futuro. Uma prototipação também é exploratória...

Sistemas Computacionais

Um sistema computacional (ou baseado em computador) é aquele que automatiza ou apóia a realização de atividades humanas através do processamento de informações. Um sistema baseado em computador é caracterizado por alguns elementos fundamentais. Hardware Software Informações Usuários Procedimentos ou Tarefas Documentação O hardware corresponde às partes eletrônicas e mecânicas (rígidas) que possibilitam a existência do software, o armazenamento de informações e a interação com o usuário. A CPU, as memórias primária e secundária, os periféricos, os componentes de redes de computadores, são exemplos de elementos de hardware. Um único computador pode possibilitar a existência de diversos sistemas e um sistema pode requisitar diversos computadores. O software é a parte abstrata do sistema computacional que funciona num hardware a partir de instruções codificadas numa linguagem de programação. Estas instruções permitem o processamento e armazenamento de informações na for...

Ciclo de Vida do Software

O ciclo de vida de um software descreve as fases pelas quais o software passa desde a sua concepção até ficar sem uso algum. O conceito de ciclo de vida de um software é muitas vezes confundido com o de modelo de processo (assunto do próximo artigo). Existem várias propostas e denominações para as fases do ciclo de vida de um software. Nossa proposta identifica 4 fases que são delimitadas por eventos típicos em diversos ciclos de vida. Cada fase inclui um conjunto de atividades ou disciplinas que devem ser realizadas pelas partes envolvidas. Essas fases são: Definição Desenvolvimento Operação Retirada Fase de Definição A fase de definição do software ocorre em conjunto com outras atividades como a modelagem de processos de negócios e análise de sistemas . Nesta atividade, diversos profissionais buscam o conhecimento da situação atual e a identificação de problemas para que possam elaborar propostas de solução de sistemas computacionais que resolvam tais problemas. Dentre as propostas...