Processos de Software


Estudando o livro Engenharia de Software – Ian Sommerville – 8ª Edição – capítulo 4

O processo de software é o conjunto de atividades envolvidas na produção de um produto de software.

Os processos de software são complexos, intelectuais e criativos. Por depender da criatividade e do julgamento humano não podem ser totalmente automatizados. Atualmente as ferramentas utilizadas pela engenharia de software são para apoiar as atividades o processo.

Modelos de processo de software

Modelo cascata: este modelo é dividido em fases (análise e definição de requisitos, projeto de sistemas de software, implementação e testes de unidade, integração e testes de sistemas, operação e manutenção) e a próxima fase só pode ser iniciada após a conclusão da fase anterior.

A desvantagem deste modelo é que se acontecer uma mudança de requisito na fase de testes de unidade, por exemplo, é necessário retornar todo o processo para a primeira fase, causando um retrabalho significativo.

As vantagens deste modelo são as documentações produzidas em cada fase e a sua aderência a outros modelos de processo.

Desenvolvimento Evolucionário: esse modelo utiliza as fases do desenvolvimento intercaladas e procura trabalhar, em todas as fases, com o feedback do usuário, desenvolvendo várias versões até alcançar o sistema adequado.

É um modelo difícil de ser usado em sistemas complexos de grande porte e de longo ciclo de vida, quando existem diversas equipes trabalhando no seu desenvolvimento. Neste caso é recomendado utilizar o modelo de processo misto (o melhor do modelo cascata + o melhor do evolucionário).

Engenharia de software baseada em componentes (reuso): basicamente é o desenvolvimento utilizando um software, ou linhas de códigos, já existentes. Está prática tem se tornado cada vez mais utilizada.

Iteração do processo

O desenvolvimento iterativo é fundamental por que os requisitos, as prioridades e as tecnologias mudam consideravelmente durante o processo. Existem dois modelos para apoiar a iteração do processo: incremental e espiral.

Desenvolvimento incremental: o sistema é entregue por partes ao cliente, de acordo com suas necessidades. Os módulos são desenvolvidos separadamente priorizando os requisitos do cliente.

Desenvolvimento espiral: o processo é representado por uma espiral onde cada volta é uma fase do processo. As fases não são fixas, elas são escolhidas de acordo com o que é requerido.

Atividades do processo

Especificação de software (ou engenharia de requisitos): é o processo de compreender e definir quais os serviços necessários, identificar as restrições de operação e de desenvolvimento do sistema. Este é um estágio crítico, pois os erros aqui inevitavelmente causam problemas posteriormente no projeto e na implementação do sistema.

As fases principais do processo são:

Estudo de viabilidade: é avaliado se as necessidades do cliente podem ser atendidas, se o custo do sistema será adequado e se ele pode ser desenvolvido de acordo com o orçamento existente.

Elicitação e análise de requisitos: é a derivação de requisitos através da observação de sistemas existentes, de discussão com usuários e compradores, análise de tarefas, etc.

Especificação de requisitos: passar as informações coletadas para um documento que define um conjunto de requisitos (requisitos de usuário e requisitos de sistema).

Validação de requisitos: verifica os requisitos em relação ao realismo, consistência e abrangência.

Projeto e implementação de software: é a conversão de uma especificação de sistema em um sistema executável que envolve processos de projeto, de desenvolvimento e, dependendo da abordagem utilizada, pode envolver o refinamento da especificação de software.

O projeto de software inclui as seguintes atividades:

Projeto de arquitetura

Especificação abstrata

Projeto de interface

Projeto de componente

Projeto de estrutura de dados

Projeto de algoritmo

Validação de software: o sistema é verificado e validado para mostrar que está em conformidade com sua especificação e que atende as expectativas do cliente. Isso é feito em cada estágio do processo, desde a definição dos requisitos, o desenvolvimento do programa até a fase após a implementação, com os testes do sistema operacional.

Os estágios do processo de testes são:

Teste de componente (unidade)

Teste de sistema

Teste de aceitação

Evolução de software: é a manutenção do sistema depois de implantado. O software é continuamente alterado ao longo de sua vida, em resposta às mudanças de requisitos e às necessidades do cliente.

Anúncios
Esta entrada foi publicada em Software Engineering com as etiquetas . ligação permanente.

Uma resposta a Processos de Software

  1. Podemos aprender muito com o livro do Sommerville e tomar medidas e ações no dia a dia. A engenharia de softwares é repleta de processos complexos. Sommerville demostra com ênfase que desenvolver softwares necessita um passo a passo bem definido para agregar valores e conhecimento.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s