Aula de apresentação do projeto

De MediaWiki do Campus São José
Revisão de 09h20min de 11 de maio de 2012 por Moecke (discussão | contribs) (Criou página com '=Modelo do ciclo de vida de software= A maioria dos modelos de ciclo de vida do software incluem os seguintes processos: ;Engenharia de Requisitos Durante este processo, os des...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Modelo do ciclo de vida de software

A maioria dos modelos de ciclo de vida do software incluem os seguintes processos:

Engenharia de Requisitos

Durante este processo, os desenvolvedores e clientes se reúnem para discutir idéias para o novo produto de software. Os desenvolvedores usam uma variedade de técnicas, a fim de avaliar as reais necessidades do cliente. Uma dessas técnicas é prototipagem rápida em que um programa protótipo é construído que pode imitar a funcionalidade do software desejado. Usando este protótipo, os clientes podem entender melhor como o produto final irá se comportar e pode determinar se esse comportamento é o que eles realmente precisam. A menos que o processo de engenharia de requisitos é feito corretamente, o software resultante não será útil para o cliente, embora possa funcionar corretamente. O processo de engenharia de requisitos é concluída quando as especificações para o novo produto de software são escritos em um documento formal, chamado de documento de especificação de requisitos.

Projeto

Durante este processo, os desenvolvedores decidem como irão construir o software para que ele atenda as especificações acordadas no documento de especificação de requisitos. Normalmente, o desenho do software passa por várias etapas em que se torna progressivamente mais detalhada. Esta abordagem de design é chamado de refinamento passo a passo, e permite os desenvolvedores gerenciar a complexidade do software, adiando decisões dos detalhes para mais tarde possível, a fim de se concentrar em outras questões importantes do projeto. Quando o projeto é completo, fica registrado no documento de especificação do projeto.

Implementação/Programação

Durante este processo, as equipes de programadores escrevem o código real do software. O software é dividido em unidades separadas chamados módulos, a fim de lidar com a complexidade do processo de programação. As equipes não são apenas responsáveis ​​pela codificação de seus módulos, mas também ​​pela devida documentação do código e teste para garantir exatidão.

Integração

Durante este processo, os módulos individuais do produto de software são combinados para formar o produto de software integrado. Uma vez que os módulos foram desenvolvidos separadamente, o teste é crucial no processo de integração. Mesmo com um bom projeto, incompatibilidades entre os módulos podem existir. Esses problemas precisam ser identificados e corrigidos para completar a integração.

Entrega

Durante este processo, os programadores entregam o software completado para os clientes. Normalmente, os clientes irão realizar testes de aceitação do software para determinar se cumpre ou não as especificações acordadas no documento de especificação de requisitos. Uma vez que o software seja aceito, ele é instalado e utilizado pelo cliente.

Manutenção

Durante este processo, o software passa por várias mudanças após seu lançamento inicial, a fim de corrigir bugs, adicionar novas funcionalidades, portar o software para novas plataformas, ou adaptar o software às novas tecnologias. Embora possa parecer que o software deve estar concluído após após seu lançamento inicial, isso está longe de ser verdade. Todos os produtos de software de sucesso evoluem com o tempo para atender às novas necessidades dos clientes.

Você pode se surpreender ao descobrir que de todos estes processos, a manutenção chega a 67% do custo do ciclo de vida de um software. Por isso, muitos desenvolvedores estão começando a usar abordagens de projeto que resultam em software que é mais fácil de manter.

Muitos modelos diferentes foram criados para representar o ciclo de vida do software. Embora estes modelos utilizam vários nomes para os processos do ciclo de vida, todos eles incluem de algum modo os seis processos acima descritos. Além disso, estes modelos geralmente enfatizam algum outro aspecto do desenvolvimento de software, tais como uma técnica de projeto particular (por exemplo, prototipagem rápida video), uma técnica de gestão (por exemplo, gestão de risco), ou um modelo para descrever um domínio limitado de desenvolvimento de software (por exemplo, software de tempo real).

FONTE: http://courses.cs.vt.edu/csonline/SE/Lessons/LifeCycle/index.html (tradução)


O modelo em cascata (Waterfall)

O modelo em cascata é o clássico modelo de ciclo de vida do software. Este modelo foi aceito até o início de 1980, representa o ciclo de vida de software utilizando processos e produtos. Cada processo transforma um produto para produzir um novo produto como saída. Em seguida, o novo produto torna-se a entrada do processo seguinte. A tabela abaixo lista os processos e produtos do modelo cascata.

Entrada de Produto Processo Saída de Produto
comunicação dos Requisitos Engenharia de Requisitos Documento de Especificação de Requisitos
Documento de Especificação de Requisitos Projeto Documento de Especificação do Projeto
Documento de Especificação do Projeto Implementação/Programação Módulos de software executáveis
Módulos de software executáveis Integração Módulos integrados no produto
Módulos integrados no produto Entrega Produto de software entregue
Produto de software entregue Manutenção Requisitos alterados

Para entender melhor estes processos e produtos, ver a animação do modelo Waterfall.

Especificação de Requisitos

Benefícios de uma boa especificação

  • Estabelece uma base para o acordo entre o cliente e o fornecedor do sistema;
  • Reduz o esforço de desenvolvimento;
  • Estabele uma base para determinação de custos e tempo de desenvolvimento (e cronograma);
  • Facilita a adaptação do software para outros contextos;
  • Base para refinamentos futuros: foco no produto;

O que deve conter um Documento de Especificação

  • Funcionalidade: O QUE o sistema faz;
  • Interfaces externas: como o sistema interage com usuários e sistemas externos;
  • Aspectos de Desempenho: tempo de resposta, tempo de recuperação após uma falha;
  • Atributos: portabilidade, segurança, facilidades de manutenção;
  • Limitações: limitações de recursos, limitações impostas por padrões, linguagens a serem usadas, ambientes de operação;