Prévia do material em texto
Curso: Bacharelado em Sistemas de Informação Turma BSI11 Disciplina: Engenharia de Software I Professora: Cátia dos Reis Machado PRODUTO E PROCESSO DE SOFTWARE Ana Paula Reinecke¹; Larissa Rozza Peluso2 RESUMO O presente artigo tem por objetivo apresentar alguns principais aspectos sobre produto e processo de software, analisando a relação entre eles, o processo de engenharia de requisitos, as atividades presentes no processo de software e como melhorar esse processo, e os níveis de maturidade do processo; no produto de software são abordados os seguintes tópicos: tipos de produtos de software e suas especificações, os testes realizados no software (que garantem o correto funcionamento do sistema) e seus estágios de testes. Palavras-chave: produto – processo – software – qualidade 1 INTRODUÇÃO Para facilitar o controle das tarefas desenvolvidas durante o modo produtivo, o processo de software é de fundamental importância, pois este é uma estratégia que define a ordem em que as atividades envolvidas na produção do sistema de software serão executadas, no qual o produto (software) é o resultado final desse processo, ou seja, o processo influencia no produto (se o processo for ruim ou se houver problemas no decorrer do mesmo, possivelmente, o produto gerado sofrerá consequências). Torna-se necessário, também, no âmbito do desenvolvimento de sistemas, definir métricas de avaliação de qualidade, para que haja um padrão qualitativo a ser seguido, em que os prazos de entrega do produto são cumpridos corretamente, o software consegue atender a todos os requisitos solicitados pelo usuário, além deste software ser fácil de usar, altamente extensível e adaptável, e, principalmente, que satisfaz a necessidade do cliente. Produto e Processo de Software não podem ser tratados isoladamente, porque há uma forte relação entre eles na análise da qualidade. 2 PROCESSO DE SOFTWARE O processo de software é um conjunto de atividades bem definidas organizadas na produção do sistema de software em uma ordem de execução das tarefas. Os sistemas podem ser desenvolvidos com base em diversos modelos de desenvolvimento de software, de acordo com a necessidade de cada organização, dos quais podemos citar: Cascata, Espiral, Prototipação, Scrum, Extreme Programming (XP), Rational Unified Process (RUP), V e Balbúrdia. _____________________ 1 Acadêmica da Turma BSI11, aninhareinecke@hotmail.com 2 Acadêmica da Turma BSI11, larissa.rozza1993@hotmail.com 2.1 Processo de Engenharia de Requisitos Na especificação do software a ser desenvolvido é preciso definir quais serviços são necessários a ele, identificando as restrições operacionais e de desenvolvimento do sistema. Há quatro tópicos importantes no processo de engenharia de requisitos, são eles: Estudo de viabilidade, Elicitação e análise de requisitos, Especificação de requisitos e Validação de requisitos. Estudo de viabilidade: É um estudo que indica se vale a pena o esforço para desenvolver a ideia, visando tanto à tomada de decisão, quanto a sugestão de possíveis alternativas de solução, ou seja, nesse estudo é analisado se o produto pode ser feito ou não, se o produto final beneficiará os usuários interessados, e inclusive, se há conhecimento suficiente e ferramentas necessárias para o desenvolvimento do produto, além de ser feito uma análise de custos (manutenção, instalação, dentre outros). Elicitação e análise de requisitos: A elicitação pode ser denominada descoberta de requisitos, que objetiva descobrir o domínio de aplicação, os serviços a serem fornecidos, como também, as restrições, envolvendo stakeholders (usuários finais, gerentes, especialistas no domínio, pessoal envolvido na manutenção). Após esta etapa, é feita a análise desses requisitos, para entender melhor o que foi especificado. Especificação de requisitos: Na especificação de requisitos, são definidos, cuidadosamente, todos os requisitos a serem utilizados no sistema ou em parte do sistema, visando obter produtos de software de melhor qualidade, e que satisfaça as necessidades dos clientes no prazo correto e com orçamento adequado, isto é, ao especificar os requisitos, é preciso compreender exatamente o que deve ser feito e o que é esperado como resultado. Os erros na definição dos requisitos podem afetar todo o restante do projeto. Validação de requisitos: Para validar os requisitos é preciso demonstrar que estes requisitos definidos no sistema estão de acordo com o que o cliente realmente deseja. Figura 1. Processo de engenharia de requisitos. 2.2 Atividades de Processo de Software Especificação de Software: Clientes e engenheiros definem que software deve ser produzido e suas restrições sobre o funcionamento. Desenvolvimento de Software: É a implementação do software, no qual este é projetado e programado. Validação de Software: O software é verificado para garantir que este atenda as necessidades do cliente. Evolução de Software: O software é modificado para refletir mudanças de requisitos do cliente e do mercado. 2.3 Níveis de Maturidade do Processo Nível 1: Nível inicial – Caos (essencialmente descontrolada). Nível 2: Repetível – Os processos que gerenciam produtos são definidos e usados. Nível 3: Definido – O gerenciamento de processos e estratégias são definidos e usados, ou seja, já existe um processo e uma estratégia definidos, que são usados posteriormente. Nível 4: Gerenciado – Estratégias que gerenciam a qualidade são definidas e usadas – Processos são bem geridos. Nível 5: Otimizando – Estratégias para otimizar processos são definidas e usadas. 2.4 Melhoria no Processo de Software As melhorias no processo de software ocorrem a partir do correto entendimento desses processos existentes, alterando-os para que aumente a qualidade do produto e/ou reduza custos e tempo de desenvolvimento. 3 PRODUTO DE SOFTWARE Figura 2. Estrutura de conceitos. É considerado produto, o software desenvolvido, que pode ser utilizado em diversas áreas do conhecimento, e atender as mais variadas necessidades, bem como as atividades de gerenciamento de informações. 3.1 Tipos de Produtos de Software 3.1.1 Produtos Genéricos Os produtos genéricos são sistemas autônomos comercializados e vendidos a qualquer cliente que deseja comprá-los, como por exemplo, os softwares para PC (programas gráficos; ferramentas de gerenciamento de projetos; software CAD; software para propósitos específicos, como os sistemas de registros odontológicos). 3.1.2 Produtos sob Encomenda O produto sob encomenda é o software encomendado por um cliente específico para suprir suas próprias necessidades, como por exemplo, os sistemas de controle integrado, software de controle de tráfego aéreo, sistemas de monitoramento de tráfego. 3.2 Especificação dos Produtos de Software Nos produtos genéricos a especificação do que deve ser feito pelo software, além das posteriores decisões sobre as mudanças, é de propriedade do desenvolvedor de software. Já nos produtos sob encomenda, quem especifica o que precisa ser feito no software é o cliente, e, inclusive, é ele quem toma decisões sobre as mudanças necessárias no software. 3.3 Testes de Software É importante sempre realizar os testes de software ao final do desenvolvimento de sistemas, pois a partir desses testes, os programadores podem descobrir os defeitos no programa e removê-los no processo de debugging, garantindo que o sistema funcionará corretamente, ou seja, o produto precisa ser entregue em perfeito estado ao cliente, por isso é necessário testar o sistema antes da entrega final. Abaixo segue um exemplo de processo de debugging. Figura 3. Processo de debugging. 3.3.1 Processo de Testes de Software O processo de testes de software pode serdividido em três estágios, que são: teste de componente, teste de sistema e teste de aceitação. Teste de componente: Os componentes (ou funções) são testados individualmente, e, depois, integrados com o restante do projeto. Teste de sistema: O sistema é testado como um todo, no qual, é particularmente importante testar as propriedades emergentes. Teste de aceitação: O teste no sistema é feito com os dados do cliente para verificar se o mesmo atende às suas necessidades. Figura 4. Processo de teste. 4 CONCLUSÃO Concluímos que o produto e o processo de software são fortemente relacionados, no qual a qualidade do produto vai depender de como o processo ocorre, ou seja, caso este processo seja ruim, o produto, consequentemente, será ruim, o que torna importante a existência de melhorias no processo, para que seu resultado seja qualitativo. É de suma importância, primeiramente, descobrir quais são os requisitos do sistema a ser desenvolvido, antes de começar sua implementação, analisando-os com cuidado (verificando se os mesmos estão de acordo com o que o cliente deseja), pois se estes tiverem erros, todo o projeto poderá ser afetado futuramente. Torna-se necessário, inclusive, fazer um estudo detalhado sobre tudo que vai ser utilizado durante o desenvolvimento de software, bem como os custos totais do projeto, para que este não precise ser interrompido, o que, consequentemente, gera problemas em relação ao tempo de produção. Sobre os testes de software, podemos concluir, também, que estes tem grande importância no desenvolvimento, pois garantem o correto funcionamento do sistema, evitando surpresas desagradáveis com os devidos erros que podem surgir. REFERÊNCIA [NASCIMENTO, R]. Produto x Processo x Projecto. 2012. Disponível em: <https://docs.google.com/viewer?a=v&q=cache:ouJmele6uUEJ:w3.ualg.pt/~rnascimento/aula sES-2006/aula4.ppt+&hl=pt-BR&gl=br&pid=bl&srcid=ADGEESguJfG4qaKXTLXQBav- Q84C-QKMpoPNren4xr_Y54BsJ4G2Kc7D2xxWo1ZwxJd5CkYUSxR- cMT6voDKz8BrxEeb0IyA4qbwh6nDvCYqwcjZhZiQW- pDdBIR1UMJ1tSJeOW9q6Rs&sig=AHIEtbR6imMQeptRmelQSL3Ia8-qWAD4wA>. Acesso em: 20 nov. 2012. SOMMERVILLE, Ian. Processos de Software. 2007. Disponível em: <http://www.ifc- camboriu.edu.br/~catia/BSI11/CAP04.pdf>. Acesso em: 19 nov. 2012. SOMMERVILLE, Ian. Capítulo 26 Melhoria de Processos. 2011. Disponível em: <http://www.ifc-camboriu.edu.br/~catia/BSI11/Capitulo_26_melhoria_processo.pdf>. Acesso em: 19 nov. 2012. VASCONCELOS, Alexandre. Engenharia de Requisitos. Disponível em: <https://docs.google.com/viewer?a=v&q=cache:_jArceq0Q5QJ:www.cin.ufpe.br/~if682/aula s/04%2520-%2520Requisitos.ppt+&hl=pt- BR&gl=br&pid=bl&srcid=ADGEESiuIEZ1M0rybEHZfxdQBdYVdGo6mcJsCY48lSMVND wRqCrXSLjYrpTFYvfUQ4ZOH8y2T3RCkRLcDw0V3xfYYpQN5mzc5WPhnOR_KRDaxB ywDv5PT2v64kQRpGpvMD- YCSjFiqIc&sig=AHIEtbSFnr_VDncI8fmUVEHCRGd9I_R3gg>. Acesso em: 18 nov. 2012. MACORATTI, José Carlos. Conceitos: Especificação de requisitos. Disponível em: <http://www.macoratti.net/07/12/net_fer.htm>. Acesso em: 18 nov. 2012.