





















































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
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
1 / 61
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Belo Horizonte 2012
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
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
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:
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.
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
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:
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:
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