quinta-feira, 25 de outubro de 2012

Processo de Software


Há quatro atividades de processo básicos que são aplicáveis ​​a todos os processos de software.

1) Especificação de software:

O software deve definir a funcionalidade do software e constrangimentos ao seu funcionamento.

2) O desenvolvimento de software:

O software deve ser desenvolvido de acordo com sua especificação.

3) validação do programa:

O software deve executar todas as funções que o cliente quer.

4) Evolução do Software:

O software deve desenvolver para atender às necessidades de mudança do cliente.

Em processo de software não existe tal coisa como um "direito" ou caso "errado". Diferentes processos de software dividir estas actividades de diferentes maneiras. O momento eo resultado da atividade de cada um varia de acordo com processo de software. Usando processos diferentes tipos de produto de software pode ser produzido por uma organização. No entanto, pode possível que, para a aplicação particular, alguns processos são mais adequados do que os outros tipos de processos. Se o processo de errado é usado, isso irá provavelmente reduz a qualidade ou a utilidade do produto de software a ser desenvolvido.



Uma vez que existem um número de processos diferentes modelos são usados, é impossível produzir dados fiáveis ​​para a distribuição de custos entre estas actividades. No entanto, o software de mudança normalmente leva-se mais de 60% dos custos totais de software. Esta percentagem está subindo como mais e mais software é produzido e tem de ser mantido. Concepção de software para a mudança é vital.

Processos de software complexos envolvem uma variedade de atividades. Processos tem as seguintes atributos ou características:

1) Compreensibilidade:

A que nível é o processo explicitamente definido e como é que é fácil de entender a definição do processo?

2) Visibilidade:

Será que a atividade do processo culminam em resultados claros para que o progresso se o processo é visível externamente.

3) Capacidade de suporte:

Até que nível pode ser atividades do processo de ser apoiada por ferramentas CASE

4) Aceitabilidade:

É o processo aceitável e utilizável pelos engenheiros responsáveis ​​pela produção do produto de software?

5 Confiabilidade)

É o processo desenvolvido de tal forma que os erros do processo são evitados ou preso antes que resultar em erros de produtos?

6) Robustez:

O processo pode continuar, apesar de problemas inesperados?

7) Manutenção:

Pode o andamento do processo para refletir mudanças nos requisitos organizacionais ou melhorias de processos identificados?

8) Rapidez:

Como rapidamente pode o processo de transferência de um sistema a partir da especificação dado ser concluída

É impossível para otimizar todos os atributos do processo simultaneamente. Se um processo de desenvolvimento rápido é necessário, então pode ser necessário diminuir a visibilidade do processo, fazendo com que um processo de produção de documentos significa visível em intervalos regulares. Isto irá retardar o processo.

Existem variedades de diferentes modelos gerais ou paradigmas de desenvolvimento de software:

1) A abordagem em cascata:

Isso leva as ações acima e representa-los como fase do processo separado, como especificação de requisitos, projeto de software, implementação, teste e assim por diante. Após cada etapa for especificado é "assinado" e do desenvolvimento vai para a fase seguinte.

Este é o primeiro modelo explícito do processo de desenvolvimento de software foi derivado do processo de engenharia. Este foi entusiasticamente aceito pela gestão de projetos de software. É oferecida uma forma de tornar o processo de desenvolvimento mais visível. Devido a cascata de uma fase para outra, este modelo é conhecido como o "modelo em cascata".

2) Desenvolvimento evolucionário:

Esta abordagem intercala as ações de desenvolvimento, especificação e validação. Um sistema inicial é rapidamente desenvolvido a partir de definições muito abstratas. Este é, então, definida com a entrada do cliente para produzir um sistema que satisfaça a necessidade do cliente. O sistema pode, então, ser transportado. Alternativamente, ele pode ser re-executado usando uma abordagem mais planeada para produzir um sistema mais robusto e de fácil manutenção.

Desenvolvimento evolutivo baseado na idéia de projetar uma implementação inicial, expondo isso para comentário do usuário e refinando estes através de muitas versões até que um sistema adequado tenha sido desenvolvido. Ao invés de ter acções distintas de desenvolvimento, especificação e validação, estas são realizadas simultaneamente com feedback rápido através destas atividades.

3) transformação formal:

Esta abordagem é baseada no desenvolvimento de uma especificação do sistema matemático formal e transformando esta especificação, utilizando métodos matemáticos para um programa. Essas conversões são "correção preservar ', isso significa que pode ter certeza que o programa desenvolvido atender sua especificação.

4) Sistema de montagem de componentes reutilizáveis:

Esta técnica supõe que as partes do sistema que já existe. O processo de desenvolvimento do sistema se concentra na integração destas partes, em vez de desenvolvê-los a partir do zero.

O punho duas dessas abordagens, nomeadamente abordagem cachoeira e desenvolvimento evolutivo são agora amplamente utilizados para o desenvolvimento de sistemas de prática. Alguns sistemas foram construídos utilizando correção de preservação transformações mas isso ainda é um processo experimental....

Nenhum comentário:

Postar um comentário