Segundo Sommerville,
Um processo de software é um conjunto de atividades relacionadas que levam à produção de um produto de software
Segundo Pressman,
Processo de software é definido como uma metodologia para as atividades, ações e tarefas necessárias para desenvolver um software de alta qualidade.
Existem diferentes maneiras de organizarmos as atividades que juntas levam a construção de software. Assim, é possível montar diferentes processos de software. Apesar disso, Sommerville aponta que qualquer que seja esse processo, ele deve incluir quatro atividades fundamentais. Assim, note que podemos mapear os diversos processos de software em um modelo genérico tomando por bases essas quatro atividades.
Segundo Sommerville, essas quatro atividades são:
- Especificação do software: A funcionalidade do software e as restrições a seu funcionamento devem ser definidas.
- Projeto e implementação de software: O software deve ser produzido para atender às especificações
- Validação de software: O software deve ser validado para garantir que atenda às demandas do cliente
- Evolução de software: O software deve evoluir para atender às necessidades de mudança dos clientes.
Perceba que todo processo de software pode ser mapeado em um modelo genérico com essas quatro atividades: especificação, projetos e implementação, validação e evolução.
Quando falamos em especificar o software, estamos preocupados em enumerar o que esse software deve fazer. Além disso, também queremos deixar claro quais restrições devem ser atendidas. Por exemplo, um software pode ser responsável por realizar um determinado cálculo (direção que o volante de um carro automático deve girar), mas esse cálculo tem que ser feito em até 2ms (acima disso, irá provocar acidentes). Ou seja, nesse exemplo, além dizer o que o programa deve fazer, também colocamos uma restrição de tempo.
Restrições podem vitais para a funcionalidade de um software. Por exemplo, o valor atual de uma ação é fundamental para que um programa que tratar de cotações seja efetivo. Se o programa informar o valor de uma ação, mas com atraso tal que o ativo já não corresponda ao valor informado, o software não cumpre seus requisitos e é totalmente inútil.
Quando falamos em projeto estamos falando da definição da arquitetura geral do sistema. Já a implementação é codificação de fato do programa. Essa implementação também inclui os testes para verificar o atendimento das especificações.
Quando falamos em validação, estamos com foco na demanda do cliente. Ou seja, não basta termos um software sem “bugs”. Esse programa deve atende as demandas do cliente. Ou seja, ele faz o que o cliente deseja. Esse processo é chamado de validação.
Por fim, o software é uma entidade “viva”. As demandas do cliente não são estáticas. Assim, esse programa deve evoluir à medida que as necessidades do cliente vão sendo alteradas.
Vejamos agora como esse tema já foi cobrado em provas de concursos:
(FADESP/Analista de Sistemas/COSANPA/2017) Seja o seguinte texto sobre um projeto de TI:
“A equipe de desenvolvimento de software da Companhia de Saneamento de um estado da federação decidiu realizar a implantação de um processo de trabalho que permita o desenvolvimento de suas aplicações de forma organizada e estruturada, com as atividades e resultados definidos. Desta forma, foi formada uma equipe que teve como objetivo realizar a modelagem e a definição dos processos internos necessários para o desenvolvimento de seus softwares”
São atividades imprescindíveis neste processo interno
a) Especificação, Projeto e Testes, Validação de Software e evolução.
b) Especificação, Projeto e Implementação, Homologação e evolução.
c) Especificação, Projeto e Implementação e evolução.
d) Especificação, Projeto e Implementação, Validação de Software e evolução.
Letra D
Com vimos, segundo os ensinamentos de Sommerville, as quatro atividades que devem estar incluídas em qualquer processo de software são: especificação, projetos e implementação, validação e evolução.
(Aeronáutica/ Análise de Sistemas/CIAAR/2016) De acordo com Sommerville (2011), existem muitos processos de software diferentes, mas todos devem incluir quatro atividades fundamentais para a engenharia de software, são elas:
a)Especificação do software; Projeto do software; Validação do software; Fim do projeto de software.
b)Especificação do software; Projeto e implementação do software; Validação do software; Evolução do software.
c)Escopo; Programação e Homologação do software; Implementação e Validação do software; Fim do projeto de software.
d) Análise de Requisitos; Programação e Implementação do software; Testes de cansaço do software; Evolução do software.
Letra B.
Novamente uma questão direta e ainda citando o explicitamente o Sommerville. Como vimos, as quatro atividades estão na letra A.
Participe da conversa