Engenharia de Software Visão Geral



Em primeiro lugar, vamos entender o que é a engenharia de software. O termo é feita de duas palavras, software e engenharia.

Software é mais do que apenas um código de programa. Um programa é um código executável, computacional que serve para alguma finalidade. Software é considerada a coleção do executável código de programação, bibliotecas e documentações. Software, quando feita por uma exigência específica é chamado produto de software.

Engenharia em o outro lado, é tudo sobre o desenvolvimento de produtos, usando bem-definidos, princípios e métodos científicos.

Engenharia de Software

Engenharia de Software é um ramo engenharia associada ao desenvolvimento do produto de software usando bem-definidos princípios científicos, métodos e procedimentos. O resultado da engenharia de software é um software eficiente e confiável.

Definições

IEEE define engenharia de software como:

(1) aplicação de uma forma sistemática, disciplinada,abordagem quantificável para o desenvolvimento, operação e manutenção de software; isto é, a aplicação da engenharia de software.

(2) O estudo de abordagens como a declaração acima.

Fritz Bauer, um cientista da computação alemão define engenharia de software como:

Engenharia de Software é a criação e a utilização de princípios sólidos de engenharia a fim de obter software economicamente que seja confiável e trabalhar de forma eficiente em verdadeiras máquinas.

Evolução do Software

O processo de desenvolvimento de um produto de software engenharia de software utilizando princípios e métodos é referido como evolução do software. Isso inclui o desenvolvimento inicial do software e sua manutenção e atualizações, até desejado produto de software é desenvolvido, que satisfaz os requisitos esperados.

Evolução software

Evolução começa a partir do requisito processo de coleta. Depois que os desenvolvedores a criar um protótipo do software e mostrar que os usuários para obter as suas opiniões no estágio inicial de desenvolvimento de produtos de software. Os usuários sugerem modificações consecutivas em que várias atualizações e manutenção manter a mudar também. Este processo muda para o software original, até que o software desejado é realizada.

Mesmo depois que o usuário tiver software desejada na mão, os avanços tecnológicos e as necessidades de mudança vigor o produto de software para alterar em conformidade. Re-criação de software do zero e ir one-on-one com exigência não é viável. A única solução viável e econômico é a atualização do software existente para que ele corresponda a necessidades mais recentes.

Evolução do Software Legislação

Lehman Brothers deu as leis de evolução do software. Ele dividiu o software em três diferentes categorias:

  • S-type (estática) - Este é um software, que trabalha estritamente de acordo com especificações definidas e soluções. A solução e o método para atingi-lo, ambos são imediatamente compreendidos antes codificação. O s-type software é pelo menos sujeitos a mudanças, portanto, este é o mais simples de todos. Por exemplo, programa de calculadora para cálculos matemáticos.
  • Tipo-P (prático) - Este é um software com um conjunto de procedimentos. Esta é definida por exatamente quais procedimentos podem fazer. Com este software, as especificações podem ser descritos, mas a solução não é óbvia instantaneamente. Por exemplo, softwares de jogos.
  • E-type (embedded-tipo) - Este software trabalha em estreita colaboração com a exigência do ambiente real. Este software tem um alto grau de evolução, há várias mudanças nas leis, impostos, etc. em situações reais. Por exemplo, comércio on-line software.

E-Type evolução do software

Lehman Brothers deu oito leis para E-tipo evolução do software -

  • A mudança - Um E-tipo sistema de software deve continuar a se adaptar ao mundo real as alterações, caso contrário torna-se progressivamente menos útil.
  • Aumento da complexidade - como um E-tipo sistema de software evolui, sua complexidade tende a aumentar se não trabalhar é feito para manter ou reduzir o mesmo.
  • Conservação de familiaridade - a familiaridade com o software ou o conhecimento sobre a forma como ela foi desenvolvida, por que razão foi desenvolvido em que forma particular etc., devem ser mantidas a qualquer custo, para implementar as alterações no sistema.
  • Crescimento contínuo, a fim de que um sistema de tipo destinado a resolver problemas de negócios, o seu tamanho de implementar as mudanças cresce de acordo com as mudanças de estilo do negócio.
  • Diminuir a qualidade - Um sistema de software tipo quedas na qualidade a menos rigorosamente mantidas e adaptadas para um ambiente operacional em mutação.
  • Sistemas de realimentação- o E-type constituem sistemas de software multi-loop, multi-nível e sistemas de realimentação deve ser tratada como tal a ser modificada com sucesso ou melhor.
  • Auto-regulação - E sistema de tipo são processos de evolução auto-regulação com a distribuição do produto e processo medidas próximo ao normal.
  • Estabilidade Organizacional - e a média global efetiva taxa de atividade em uma evolução E sistema de tipo é invariante ao longo da vida útil do produto.

Paradigmas Software

Software paradigmas consulte os métodos e etapas, que são tomadas ao projetar o software. Há muitos métodos propostos e estão no mercado de trabalho hoje, mas temos de ver onde a engenharia de software estes paradigmas. Estes podem ser combinados em diversas categorias, embora cada um deles está contido em um outro:

Evolução software

Programação paradigma é um subconjunto da Software design paradigma que ainda é um subconjunto do Software paradigma de desenvolvimento.

Paradigma de desenvolvimento Software

Esse paradigma é conhecida como engenharia de software paradigmas onde todos os conceitos de engenharia relativos ao desenvolvimento de software são aplicados. Ele inclui várias pesquisas e a exigência que os ajuda a coleta do produto de software para construir. Ela consiste em -

  • Requisito encontro
  • Projeto de Software
  • Programação

Paradigma de Projeto Software

Este paradigma é uma parte do Desenvolvimento de Software e inclui -

  • Design
  • Manutenção
  • Programação

Paradigma Programação

Este paradigma está estreitamente relacionadas à programação aspectos do desenvolvimento de software. Isso inclui -

  • Codificação
  • Teste
  • Integração

Necessidade de Engenharia de Software

A necessidade da engenharia de software surge por causa da maior taxa de mudança de requisitos do usuário e do ambiente em que o software está funcionando.

  • Software de grande porte - é mais fácil de construir um muro de uma casa ou edifício, da mesma forma, à medida que o tamanho do software tornaram-se grandes engenharia tem para o passo a dar-lhe um processo científico.
  • Escalabilidade- se o processo de software não foram baseados em conceitos científicos e de engenharia civil, seria mais fácil para re-criar novo software de escalar um já existente.
  • Custo- como indústria de hardware tem mostrado as suas habilidades e enorme produção tem preço baixo ele de computador e equipamento eletrônico. Mas o custo do software permanece elevada, se o processo não está adaptado.
  • Natureza dinâmica- o sempre crescendo e adaptando sua natureza de software altamente depende do ambiente em que o usuário trabalha. Se a natureza do software que está sempre a mudar, novos aprimoramentos precisam de ser feito no já existente. Este é o local onde engenharia de software desempenha um bom papel.
  • Gestão da Qualidade - Um melhor processo de desenvolvimento de software proporciona uma melhor qualidade e produtos de software.

Características de um bom software

Um produto de software pode ser julgado por aquilo que ele oferece e como ele pode ser utilizado. Este software deve cumprir com os seguintes fundamentos:

  • Operacional
  • Título transitório
  • Manutenção

Bem-projetado e concebido para software é esperado para ter as seguintes características:

Operacional

Isso nos mostra quão bem software funciona nas operações. Ele pode ser medido na:

  • Orçamento
  • Usabilidade
  • Eficiência
  • Exactidão
  • Funcionalidade
  • Confiabilidade
  • Segurança
  • Segurança

Título transitório

Este aspecto é importante no momento em que o software for movido de uma plataforma para outra.

  • Portabilidade
  • Interoperabilidade
  • Reutilização
  • Adaptabilidade

Manutenção

Este aspecto informa sobre o quão bem um software tem a capacidade de se manter no ambiente em constante mudança.

  • A modularidade
  • Manutenção
  • Flexibilidade
  • Escalabilidade

Em suma, engenharia de Software é um ramo da ciência da computação, que usa bem-definidos conceitos de engenharia necessária para produzir eficiente, durável, escalável, de orçamento e de produtos de software.

Advertisements