Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Aplicabilidade de técnicas de estimativa de projetos de software em projetos de processos, Notas de estudo de Engenharia de Software

Um estudo que investiga se as técnicas existentes para estimar projetos de software podem contribuir para projetos de desenho e redesenho de processos, propondo um método para estimar projetos de processos baseado nas técnicas de software. O estudo realiza uma busca sistemática na literatura sobre estimativas de esforço em projetos de modelagem de processos de negócios e desenvolvimento de software, propõe a customização de métricas de software para área de modelagem de processos de negócios e testa a aplicabilidade dessas técnicas em projetos já finalizados e implantados.

Tipologia: Notas de estudo

2022

Compartilhado em 07/11/2022

Rio890
Rio890 🇧🇷

4.8

(22)

221 documentos

1 / 61

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Leila Ribeiro de Oliveira
IMPLEMENTAÇÃO DE PROCESSOS: O USO DE TÉCNICAS
DE ESTIMATIVAS DE PROJETOS DE SOFTWARE PARA
ESTIMAR PROCESSOS DE NEGÓCIO
Belo Horizonte
2012
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d

Pré-visualização parcial do texto

Baixe Aplicabilidade de técnicas de estimativa de projetos de software em projetos de processos e outras Notas de estudo em PDF para Engenharia de Software, somente na Docsity!

Leila Ribeiro de Oliveira

IMPLEMENTAÇÃO DE PROCESSOS: O USO DE TÉCNICAS

DE ESTIMATIVAS DE PROJETOS DE SOFTWARE PARA

ESTIMAR PROCESSOS DE NEGÓCIO

Belo Horizonte 2012

Leila Ribeiro de Oliveira

IMPLEMENTAÇÃO DE PROCESSOS: O USO DE TÉCNICAS

DE ESTIMATIVAS DE PROJETOS DE SOFTWARE PARA

ESTIMAR PROCESSOS DE NEGÓCIO

Projeto de dissertação submetido para qualificação no curso de mestrado profissional em sistemas de informação e gestão do conhecimento da Faculdade de Ciências Empresariais da Universidade FUMEC.

Orientador: Prof. Dr. Fernando Silva Parreiras

Mestrado Profissional em Sistemas de informação e Gestão do Conhecimento Faculdade de Ciências Empresariais Universidade FUMEC

Belo Horizonte 2012

SUMÁRIO

Lista de Figuras

Figura 1 - Camadas da Engenharia de Software (Fonte: Pressman, 2006) .............................. 16 Figura 2 - Modelo Cascata (fonte: Pressman, 2006) ................................................................ 19 Figura 3 - Modelo Incremental (fonte: Pressman, 2006).......................................................... 20 Figura 4 - Modelo de Prototipagem (fonte: Pressman, 2006) .................................................. 21 Figura 5 - Processo de desenvolvimento de Protótipos (fonte: Sommerville, 2003) ............... 21 Figura 6 - Modelo Espiral (fonte: Pressman, 2006) ................................................................. 22 Figura 7 - Fases do Processo Orientado ao Reuso (fonte: Sommerville, 2003) ....................... 23 Figura 9 - Processo de medição (fonte: Sommerville, 2003) ................................................... 27 Figura 10 - Resumo histórico dos métodos e abordagens em processos (HARMON, 2005; PAIN, 2008; JESTON e nelis, 2008 a apud Barros) ................................................................ 29 Figura 11 - Ciclo PDCA – (fonte: http://www.indg.com.br/sobreoindg/metodopdca.asp, acesso em 06.out.2012) ............................................................................................................ 31 Figura 12 – DMAIC – (fonte: http://br.kaizen.com/artigos-e-livros/artigos/dmaic.html, acesso em 06.out.2012) ........................................................................................................................ 33 Figura 13 - Comparação de do DMAIC de Melhorias com o PDCA de Melhorias. (fonte: Aguiar, 2006) ............................................................................................................................ 33 Figura 14 – Esquema de detalhamento de funções - (fonte: http://www.numa.org.br/transmeth/ferramentas/ffmapeam.htm, acesso em 06.out.2012) ...... 35 Figura 15 - Ciclo de vida de BPM (Fonte: CBOK, 2010) ........................................................ 37 Figura 16 - Comparação entre características básicas dos dois modelos COCOMO - extraído de Trindade, Pessoa e Spinola (1999) ...................................................................................... 45 Figura 17 - Complexidade Ciclomática – McCabe - extraído de Pressman (2001) ................. 47 Figura 18 – Modelo de Rastreabilidade entre os processos de negócio e os requisitos – extraído de Garcia (2000) ......................................................................................................... 49 Figura 19 - Modelo de processo de medição PSM - (Fonte: Modelo de Processo do PSM. Adaptado de Borges [Borges, 2003] e McGarry e outros [McGarry et al., 2002]. .................. 53 Figura 20 - Fases da Macro-Atividade Planejar Medição - extraído de PSM Measurement Process (PSM GUIDE 4.0B.PART 1.1) e adaptado pela autora ............................................. 55

Resumo

A tualmente, as organizações têm voltado sua atenção na busca por melhoria continua de processos que satisfaçam suas necessidades e as tornem mais competitivas frente ao mercado. Várias iniciativas, para identificar e monitorar estratégias e redesenhar processos organizacionais são criadas, porém ainda é percebível a dificuldade que se tem em realizar um controle de tais projetos e principalmente de estimar o custo e o prazo para implementação destes. A prática de gerenciamento de projetos tem-se tornado uma forma de minimizar os impactos causados pela falta de planejamento específico, uma forma de monitorar, acompanhar e organizar os projetos de processos. Porém, como os clientes estão cada vez mais exigentes com a qualidade das entregas, os prazos e principalmente com o custo, observa-se a necessidade de melhor estimar projetos de processos. De forma a contribuir nesta linha de pesquisa, o presente estudo procurará verificar a seguinte questão: “Técnicas de estimativa de processo de software são aplicáveis em projetos de processo?”. Para isso o estudo irá abordar algumas técnicas e trabalhos sobre estimativa de esforço já apresentadas na pesquisa do Departamento de Informática Aplicada da UNIRIO e na pesquisa de Kanjan Thammarak entre outros autores renomados, cujos pontos positivos possibilitam a aplicação da estimativa em projetos de processos. O objetivo deste trabalho será investigar e verificar se as técnicas existentes para estimar projetos de software podem contribuir para projetos de desenho e redesenho de processos e propor uma estimativa, baseada nos pontos levantados, voltada para projetos de processos, realizando testes em projetos de redesenho de processos já finalizados e implantados. O presente estudo propõe um levantamento das estimativas que poderiam contribuir para projetos de processos, criação de uma técnica baseada nessas estimativas e a sua aplicação em um ambiente controlado, ou seja, realização de testes em projetos de redesenho de processos já finalizados e implantados. Em seguida, serão comparadas as estimativas realizadas de custo, escopo e prazo reais com a proposta deste projeto. Para melhor compreensão do estudo, este trabalho seguirá uma metodologia fundamentada e utilizada por órgão reconhecido mundialmente - o Practical Software Measurement (PSM) - realizando adaptações quando necessário. O tipo de pesquisa será descritiva (qualitativa) e os métodos e técnicas utilizados serão: Pesquisa bibliográfica e análise documental; Realização de Experimento; Variável controlada = modelo de estimativa proposto; Variável independente =série histórica com os

dados de projetos passados (previsto e realizado); Comparação das estimativas de projetos passados com os valores resultantes do método proposto. O experimento será realizado em organizações que já identificaram a necessidade de redesenhar seus processos organizacionais por analistas que já trabalharam pelo menos com uma técnica ou método de mensuração de projetos. Entende-se que para melhor compreensão do estudo, este trabalho deve seguir uma metodologia fundamentada e utilizada por órgãos reconhecidos mundialmente. Logo este estudo seguirá o modelo da o Practical Software Measurement ( PSM) realizando adaptações quando necessário.

Palavras Chaves: Estimativas de Software, Estimativa de Processos, Gerenciamento de Processos, Gerenciamento de Projetos, Métricas.

De forma a contribuir nesta linha de pesquisa, o presente estudo procurará verificar a seguinte questão: “Técnicas de estimativa de processo de software são aplicáveis em projetos de processo?”. Para isso o estudo irá abordar algumas técnicas e trabalhos sobre estimativa de esforço já apresentadas na pesquisa do Departamento de Informática Aplicada da UNIRIO e na pesquisa de Kanjan Thammarak entre outros autores renomados, cujos pontos positivos possibilitam a aplicação da estimativa em projetos de processos. O presente estudo propõe um levantamento das estimativas que poderiam mais contribuir para projetos de processos, criação de uma técnica baseada nessas estimativas e a sua aplicação em um ambiente controlado, ou seja, realização de testes em projetos de redesenho de processos já finalizados e implantados. Em seguida, serão comparadas as estimativas realizadas de custo, escopo e prazo reais com a proposta deste projeto. Para melhor compreensão do estudo, este trabalho seguirá uma metodologia fundamentada e utilizada por órgão reconhecido mundialmente - o Practical Software Measurement (PSM) - realizando adaptações quando necessário.

1.1. Justificativa

Atualmente, as organizações têm voltado sua atenção na busca por melhoria continua de processos que satisfaçam suas necessidades e as tornem mais competitivas frente ao mercado. Várias iniciativas, para identificar e monitorar estratégias, e redesenhar processos organizacionais são criadas, porém ainda é percebível a dificuldade que se tem em estimar o custo e o prazo para implementação de tais projetos.

Em geral, um projeto de processos parte de um novo escopo e contexto e espera-se uma solução única dentro do prazo e custo programado que satisfaça a necessidade do cliente. Logo, de maneira geral, práticas de gerência de projetos são utilizadas também para estes tipos de projetos e estimativas de esforço precisam ser especificadas tanto no inicio quanto na fase de análise de viabilidade do projeto. Sabe-se que problemas com prazos, custo e escopo em projetos, principalmente T.I, constituem um fator crítico de insucesso e, normalmente isso ocorre por problemas nas estimativas iniciais dos projetos. Os prazos e o custo devem ser pelo menos proporcionais ao escopo definido para o projeto e consequentemente ao tamanho da equipe e recursos disponíveis. Projetos de processos estão sujeitos aos mesmos problemas e

riscos. Rovai, Silva e Campanário (2004), no primeiro congresso internacional de Gestão de Tecnologia e Sistemas de Informação (CONTECSI) na USP/São Paulo, cita Goldberg et al, (1998) ao apontar a criticidade das estimativas em projetos de TI. De acordo com esses autores, Goldberg (1998) destaca em seu trabalho alguns riscos e restrições de projetos de TI, conforme abaixo:

  • Complexidade e indefinições de escopo;
  • Criticidade de prazos;
  • Orçamentos com estimativas irrealistas ou não devidamente parametrizadas;
  • Perda ou inversão de prioridade;
  • Descontrole de escopo, ou falta de um sistema de controle de configuração e alterações de escopo;
  • Conflitos entre prioridades e disputa entre recursos de projetos concorrentes;
  • Problemas relativos à determinação da produtividade dos desenvolvedores e sua respectiva qualificação e graduação;
  • E principalmente a não utilização de metodologias estruturadas para o processo de estimativas do uso de recursos. Tais problemas apresentados, também aparecem em projetos de processos de negócio. Assim, utilizar métodos e técnicas eficazes para estimar de maneira mais precisa os projetos de processos afetará de forma significativa os resultados esperados em cada entrega e sabe-se que atualmente várias técnicas existem para estimativas de esforço, porém para projetos de desenvolvimento de software. A questão a ser investigada nesse trabalho será “Técnicas de estimativa de processo de software são aplicáveis em projetos de processo?”.

O objetivo deste trabalho será investigar e verificar se as técnicas existentes para estimar projetos de software podem contribuir para projetos de desenho e redesenho de processos e propor um método para estimar (nova estimativa), baseado nos pontos levantados, voltada para projetos de processos, realizando testes em projetos de redesenho de processos já finalizados e implantados.

A Figura 1 apresenta graficamente a organização do pré-projeto em capítulos.

METODOLOGIA

FUNDAMENTAÇÃO TEÓRICA

PROBLEMA: Técnicas de estimativa de processo de software são aplicáveis em projetos de processo?

HIPÓTESE: É possível que técnicas para estimar projetos desoftware atenda a projetos de processos.

SOLUÇÃO PROPOSTA Implementação de método voltado para estimarprojetos de processos (nova estimativa), baseado nas técnicas para estimar projetos de software.

3 – Metodologia e condução do experimento

Principais conceitos, ciclo de vida^ 2 – Engenharia de Software e aplicabilidade.

Principais conceitos, ciclo de vida^ 2 – Engenharia de Processos e aplicabilidade.

Principais conceitos e^ 2 – Estimativas aplicabilidade.

Principais conceitos, ciclo de vida^ 2 – Métricas e aplicabilidade.

2 – Técnicas estudadas

CAPITULO 2

FUNDAMENTAÇÃO TEÓRICA

2.1. Engenharia de Software

As organizações têm voltado sua atenção na busca por melhoria continua de processos que satisfaçam suas necessidades e as tornem mais competitivas frente ao mercado. O desenvolvimento de software nesse sentido torna-se uma atividade de grande importância nessa corrida para o sucesso. A adoção de metodologias para padronização e gerência nos processos de desenvolvimento de software com o intuito de buscar qualidade nos processos e produtos de software proporciona ganho de competitividade frente ao mercado, pois garante serviços ou produtos de forma rápida, com custos mais baixos e com mais qualidade e segurança. De acordo com Maffeo (1992), a engenharia de software tem como objetivo primário o aprimoramento da qualidade dos produtos de software e o aumento da produtividade dos engenheiros de software, além do atendimento aos requisitos de eficácia e eficiência, ou seja, efetividade. Logo, a engenharia de software veio para auxiliar as organizações a produzirem com rapidez, com maior qualidade e custo mais baixos, garantindo assim, um ganho frente ao mercado.

Através da engenharia de software é possível padronizar a forma de metrificar e gerar estimativas, além de auxiliar na definição de quando medir e quando estimar, aprimorando assim a qualidade nas entregas, no custo e nos prazos estabelecidos. Segundo Sommerville (2011), a engenharia de software é uma disciplina da engenharia que se preocupa com todos os aspectos da produção de software desde o início da especificação do sistema até a manutenção do sistema após esse estar sendo usado. De acordo com Pressman (2002), engenharia de software é a união de três elementos fundamentais: métodos, ferramentas e procedimentos. Os métodos especificam como desenvolver o software, as ferramentas possibilitam o meio para construção do software de forma automatizado ou semi- automatizado apoiando o método; e os procedimentos constituem o elo entre os métodos e as ferramentas. Da mesma forma que desenvolver um software, a forma de estimar projetos, também necessita de um método, uma ferramenta e um procedimento e um auxilia o outro, pois se um produto é bem medido sua qualidade conseqüentemente tende a aumentar. Segundo Pressman (1995, p. 56):

Figura 1 - Camadas da Engenharia de Software (Fonte: Pressman, 2006)

Os processos de software, de acordo com Pressman (2006), formam a base para o controle gerencial de projetos de software e estabelece o contexto no qual os métodos técnicos são aplicados, os produtos de trabalho são produzidos, os marcos são estabelecidos, a qualidade é assegurada e as modificações são adequadamente geridas. Já os métodos fornecem a técnica de “como fazer” para construir softwares. Os métodos abrangem um amplo conjunto de tarefas que incluem comunicação, análise de requisitos, modelagem de projeto, construção de programas, testes e manutenção. E as ferramentas fornecem apoio automatizado ou semi-automatizado para o processo e para os métodos. Para Sommerville (2007), processo de software é um conjunto estruturado de atividades necessárias para o desenvolvimento de um sistema de software. O autor observa que embora existam muitos processos de software diferentes, todos possuem algumas atividades em comum, como:

  • Especificação: onde os clientes e engenheiros definem o software que deve ser produzido e as restrições sobre o seu funcionamento, ou seja, nessa atividade, a funcionalidade do software e as restrições sobre sua operação devem ser definidas;
  • Projeto e implementação: o software é projetado e programado;
  • Validação: o software deve ser validado para garantir de atender ao que o cliente necessita;
  • Evolução: O software é modificado para refletir as mudanças de requisitos do cliente e do mercado, ou seja, o software deve evoluir para em resposta a mudanças nas necessidades do cliente.

Pressman (2006, p.19), também entende que independente do modelo de processo utilizado, um arcabouço de processos genéricos é aplicável a grande maioria dos processos de software, independente de seu tamanho ou complexidade. Da mesma forma Sommerville (2007), Pressman enfatiza que o arcabouço de processos engloba um conjunto de atividades guarda-chuva que são aplicáveis durante todo o processo de software e a forma de organizar e utilizar as atividades, ou seja, em sequência ou intercaladas, podem variar de acordo com o

modelo de desenvolvimento de software utilizado e independente do modelo processo de software utilizado, algumas atividades podem ser utilizadas de forma genérica:

  • Comunicação: envolve alta comunicação e colaboração com o cliente e outros interessados e abrange o levantamento de requisitos e outras atividades relacionadas.
  • Planejamento: estabelece um plano para o trabalho de desenvolvimento do software, ou seja, descrevem as tarefas técnicas a serem conduzidas, os riscos do projeto, os recursos necessários, os artefatos a serem produzidos e um cronograma de trabalho;
  • Modelagem: cria os modelos que permitem entender melhor os requisitos do software e o projeto que vai satisfazer esses requisitos. É a representação de engenharia do software que vai ser construído;
  • Construção: combina a geração do código-fonte, que deve implementar as funcionalidades especificadas, e os testes necessários para descobrir os erros na função, no comportamento e no desempenho do software;
  • Implantação: entrega do software ao cliente, que avalia o produto e fornece feedback com base na avaliação.

Sendo assim, pode-se dizer que para se construir um produto de software, independente do modelo de software utilizado, é necessário seguir modelos padronizados, ou seja, atividades pré-estabelecidas para transformar requisitos em produtos finais, dentro de um escopo de trabalho pré-definido com o objetivo de atingir um resultado com qualidade e em um tempo previsto.

2.1.2. Modelos de Desenvolvimento de Software

Um modelo de processo de software (ciclo de vida), é uma descrição simplificada de um processo de software, é uma representação abstrata de um processo para explicar as diferentes abordagens de desenvolvimento (Sommerville, 2003). De acordo com o PMBOK (2008), um ciclo de vida pode ser documentado como uma metodologia e consiste nas fases do projeto que geralmente são sequenciais

Figura 2 - Modelo Cascata (fonte: Pressman, 2006)

2.1.2.2. Modelos Incrementais

O modelo incremental entrega uma série de versões chamadas de incrementos, que fornecem progressivamente mais funcionalidades para os clientes à medida que cada incremento é entregue. De acordo com Pressman (2006, p.40), o modelo incremental combina elementos do modelo cascata aplicado de maneira iterativa. O primeiro incremento frequentemente é chamado de núcleo do produto e nele estão contidos os requisitos básicos do sistema. O núcleo do produto é usado pelo cliente ou passa por uma revisão detalhada e um plano é desenvolvido para o próximo incremento como resultado do uso e/ou avaliação. O plano visa o aperfeiçoamento do núcleo do produto para melhor satisfazer às necessidades do cliente. Os próximos incrementos desenvolvidos agregarão os requisitos do núcleo do produto e dos incrementos anteriores. O modelo incremental tem o objetivo de apresentar um produto operacional a cada incremento, e é particularmente útil quando não há mão- de-obra e/ou recursos técnicos disponíveis para a implementação completa, dentro do prazo comercial de entrega estabelecido para o projeto. Este modelo é um melhoramento do modelo em cascata, pois permite a alteração dos requisitos durante o desenvolvimento do software.

Figura 3 - Modelo Incremental (fonte: Pressman, 2006)

2.1.2.3. Modelos Evolucionários

Modelos evolucionários de processo produzem uma versão cada vez mais completa do software a cada iteração. De acordo com Pressman (2006), os modelos evolucionários de processo reconhecem a natureza iterativa da maioria dos projetos de engenharia de software e são projetados para acomodar as modificações necessárias, expondo o resultado ao cliente e refinando esse resultado por meio de várias versões, para que então seja desenvolvido o sistema capaz de atender as necessidades do cliente. Esses modelos podem ser adotados para serem aplicados ao longo de todas as atividades de engenharia de software. São exemplos de Modelos Evolucionários: o modelo de prototipagem e o modelo espiral.

2.1.2.3.1. Prototipagem

A prototipação é uma técnica para ajudar engenheiros de software e clientes a entender o que está sendo construído quando os requisitos não estão claros. Com este