MODELAGEM DE UM NOVO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE COM BASE EM METODOLOGIAS ÁGEIS.

Documentos relacionados
22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

MODELO DE PROCESSO PARA MICRO E PEQUENAS EMPRESAS DE SOFTWARE COM BASE EM METODOLOGIAS ÁGEIS

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROF. MSC. EMILIANO MONTEIRO

ENGENHARIA DE SOFTWARE

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

Modelagem da Interação do Usuário no Desenvolvimento Ágil

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Prof. Luiz A. Nascimento. As práticas denominadas ágeis vêm sendo cada vez mais utilizadas na gerência de projetos de software.

Scrum Foundations. Fundamentos de Scrum

Scrum. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Engenharia de Software

Desenvolvimento Ágil de Software

Metodologias Ágeis de Desenvolvimento. Fernando Trinta

USP UNIVERSIDADE DO ESTADO DE SÃO PAULO

Introdução a Engenharia de Software

Professor Emiliano S. Monteiro

Visão Geral do RUP.

Processos de Software

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

Processos de Desenvolvimento de Software

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

METODOLOGIA ÁGEIS FDD FEATURE DRIVEN DEVELOPMENT. Prof. Fabiano Papaiz IFRN

Gerenciamento e Planejamento de Projetos de Software Usando Metodologias Ágeis: Um Estudo de Caso

Análise e Projetos de Sistemas - INF014

Processos Ágeis de Desenvolvimento de Software

Aula 3.1 Introdução e Visão Geral do Processo Unificado

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Processos de. Desenvolvimento de Software

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Análise e Projeto de Sistemas de Informação (APSI)

Engenharia de Software. Arthur Mariano L NETO Aula 04

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Desenvolvimento ágil de software

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

RUP RATIONAL UNIFIED PROCESS CONCEITOS CHAVES. Prof. Fabiano Papaiz IFRN

Processos de software Leitura: Sommerville / Pressman / Ariadne

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Métodos Ágeis e o SCRUM. Bruno Henrique Oliveira

Análise e Projeto Orientados a Objetos Professora: Elisa Yumi Nakagawa PAE: Cristiane Aparecida Lana 2 semestre de 2015

Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP)

Introdução ao RUP Rational Unified Process

Engenharia de Software. Herbert Rausch Fernandes

Processo Unificado. Leonardo Gresta Paulino Murta

Processos de Software

Manifesto Ágil Princípios

Processos de Software: Conceitos Básicos

A utilização de metodologias, práticas e métricas ágeis no processo de desenvolvimento de software na região sul do Brasil: Uma revisão sistemática

Processos de software RUP

RUP Unified Process. Profª Jocelma Rios

Scrum e Extreme Programming

Processos de software Leitura: Cap3 Sommerville / Cap1: Pressman - Ariadne

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Informática I. Aula Aula 21-29/11/06 1

Extreme Programming: Valores e Práticas

Modulo I Introdução ao XP

Engenharia de Software II

Desenvolvendo Objetos de Aprendizagem Utilizando um Processo Adaptado para Software Educativo

Desafios do desenvolvimento de Software (Desenvolvimento Tradicional x Desenvolvimento Ágil)

Comparativo entre Processos Ágeis. Daniel Ferreira

SISTEMAS DE INFORMAÇÃO UML UMA VISÃO GERAL

XP EXTREME PROGRAMMING. AGO106 - Gestão

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Processos de software

Anotações sobre métodos ágeis no setor público i

A análise de negócios aplicada à melhoria do processo de levantamento de requisitos baseada em métodos ágeis

GESTÃO DA TECNOLOGIA DA INFORMAÇÃO. 3ª SEMANA ACADÊMICA CSTGTI - Florianópolis CLEVERSON TABAJARA VIANNA

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Processos Ágeis de Desenvolvimento de Software. Yuri Pereira

Hélio Engholm Jr. Novatec

PDS. Aula 1.7 Métodos Ágeis. Prof. Dr. Bruno Moreno

Model Driven Development (MDD)

Papel do PO Métodos Ágeis. Fonte: Adaptworks

Proposta do desenvolvimento de um software para apoio ao ensino da disciplina de programação orientada a objetos

Disciplina - Requisitos. Grupo Yuni Luiz Eduardo Káthia

Análise e Projeto Orientado a Objetos

1.3 - Modelagem Ágil com UML. Professor: Júlio Cesar da Silva Msc.

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Engenharia de Software

FURBUP: UM PROCESSO DE SOFTWARE PARA USO ACADÊMICO BASEADO NO OPENUP. Acadêmico: João Paulo Pedri Orientador: Everaldo Artur Grahl

2. Quantas iterações precisa-se?

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE PELOTAS PRÓ-REITORIA DE GRADUAÇÃO PLANO DE ENSINO. Semestre letivo. 1. Identificação Código

METODOLOGIAS DE DESENVOLVIMENTO DE SOFTWARE: UMA ANÁLISE NO DESENVOLVIMENTO DE SISTEMAS NA WEB

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Métodos Ágeis e Programação Extrema (XP)

ENGENHARIA DE SOFTWARE

Aplicativos Móveis para Consulta de Informações de Gerência Ágil de Processos utilizando LPS

ALUNO: ALCIDES WENNER FERREIRA BASTOS IFMA- INSTITUTO FEDERAL DO MARANHÃO DE CIÊNCIAS E TECNOLOGIA TÉCNICO EM INFORMÁTICA

Engenharia de Software

Visão Geral do RUP (Rational Unified Process)

Conhecendo um pouco sobre RUP

Rational Unified Process (RUP)

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Transcrição:

MODELAGEM DE UM NOVO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE COM BASE EM METODOLOGIAS ÁGEIS. WESLEY NOVAES FIOREZE COSTA 1 RESUMO A maioria das micro e pequenas empresas (MPEs 2 ) não utilizam processos formalizados para o desenvolvimento de software, pois estas iniciativas demandam custos e, muitas vezes, burocratizam o serviço. Todavia, muitas delas reconhecem a importância de se utilizar tais processos. Visto isso, este trabalho tem por objetivo analisar metodologias ágeis, a fim de averiguar a possibilidade de reutilização de práticas para criação de um novo modelo de processo de desenvolvimento de software. Em linhas gerais, metodologias ágeis, minimizam a documentação a ser criada durante o desenvolvimento do software por meio da ênfase na comunicação entre os envolvidos no processo, inclusive o cliente. Entretanto, algumas tem maior ênfase na implementação do software enquanto outras enfatizam a gestão do projeto. Como resultado dessa pesquisa foi proposto o MB-DS (Model Beginnger of Software Development). PALAVRAS-CHAVE: Metodologia ágil, processo de software, SCRUM, Programação extrema. ABSTRACT Most micro and small companies do not use formal methods for software development. These initiatives require costs and often bureaucratise service. However, many recognize the importance of using such processes. The objective of this study is to analyze agile methodologies to investigate the possibility of reuse of some practices for creating a new model of software development process. Agile methodologies minimize the documentation to be created during the software development through an emphasis on communication between those involved in the process, including the client. However, some have more emphasis on software implementation while others focus on project management. As a result of this research was the proposed MB-DS (Beginner Model of Software Development). KEY-WORDS: Agile methodologies, software process, SCRUM, Extreme programming. 1 Graduando em Análise e Desenvolvimento de Sistemas pelo IFSP Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Presidente Epitácio SP. wesley_wwl@hotmail.com 2 Segundo o Estatuto da Micro e Pequena Empresa de 1999: É considerada microempresa aquela cuja receita bruta anual é igual ou inferior a R$ 433.755,14 e empresa de pequeno porte aquela cuja receita bruta anual é superior a R$ 433.755,14 e igual ou inferior a R$ 2.133.222,00.

1. INTRODUÇÃO Existem vários modelos de processo de software que propõem sistemáticas para o desenvolvimento de software, tais como cascata, incremental, espiral, processo unificado, entre outros. Esses têm um grande enfoque na documentação, o que é considerado um fator crítico para muitos analistas/desenvolvedores. Com isso, surgiram metodologias ágeis que têm o enfoque na comunicação entre as pessoas e, por consequência, a minimização de documentação (SOMMERVILLE, 2003). Segundo Sommerville (2003), geralmente, as metodologias ágeis contam com uma abordagem iterativa para especificação, desenvolvimento e entrega de software, e foram criadas principalmente para apoiar o desenvolvimento de aplicações de negócios nas quais os requisitos de sistema mudam rapidamente durante o processo de desenvolvimento. Alguns exemplos de metodologias ágeis são Extreme Programming (XP), SCRUM, FDD (Feature-Driven Development), DSDM (Dynamic Systems Development Method), ASD (Adaptative Software Development). Atualmente, as metodologias XP e SCRUM são bastante comentadas. Conforme Habra et al.(2008 apud BERNI, 2010), faltam recursos nas micro e pequenas empresas3 (MPE), tanto humanos quanto financeiros, atrelados ao processo de produção. Estas empresas têm, por definição, pequenas equipes e as pessoas envolvidas são pressionadas por prazos apertados para finalização das tarefas a elas atribuídas. Pequenas empresas de software têm dificuldades em definir um processo padrão de desenvolvimento de software para ser seguido por todos, a partir de modelos de processo prescritivos, uma vez que esses têm como característica a forte ênfase em controle e documentação, o que pode burocratizar a empresa em demasia, engessando-a. Em um ambiente de desenvolvimento de software onde os requisitos sofrem constante modificação, onde velocidade de resposta e entrega de produtos é o diferencial competitivo, um modelo de processo adaptável e flexível torna-se mais adequado às pequenas empresas de software. Nesse contexto, as metodologias ágeis são indicadas. 2. MATERIAS E MÉTODOS Para composição deste trabalho foram utilizados métodos dedutivos de pesquisa, pois este se baseou em fontes de revisão bibliográfica de trabalhos já publicados. Esta pesquisa classifica-se como básica ou pura, visto que buscou gerar conhecimentos úteis para o avanço da ciência, sem necessária aplicação prática imediata. Quanto a abordagem do problema, a pesquisa é qualitativa, pois a apresentação de seus resultados não se deu de forma estatística. Quanto aos objetivos da pesquisa, é uma pesquisa exploratória, pois investiga e analisa as práticas das metodologias ágeis, em especial Extreme Programming e SCRUM. Para tanto, o procedimento técnico utilizado foi a pesquisa bibliográfica. Para a elaboração deste trabalho foram realizadas as seguintes etapas: Etapa 1. Revisão bibliográfica; Etapa 2. Análise do SCRUM e Extreme Programming; Etapa 3. Proposição de um modelo de processo que utilize práticas do XP e SCRUM. Etapa 4. Implementação de ferramenta capaz de cadastrar projetos e equipes de desenvolvimento, auxiliando-as na definição etapas e releases.

3. RESULTADOS E DISCUSSÃO 3.1 Práticas do XP e SCRUM A partir de pesquisas fez-se a análise e o teste das metodologias ágeis XP e SCRUM, listando as principais práticas de ambas, descritas abaixo. Práticas do XP: O cliente deve sempre estar presente nas reuniões e no dia a dia do projeto, porém o cliente cuida da parte de negócios e os desenvolvedores do sistema em si. Escrever estórias de usuários que devem ser registradas em cartões com texto curtos e são escritas pelo próprio cliente. Programação em par: dois programadores desenvolvem suas tarefas em um mesmo computador, enquanto um digita o outro analisa e identifica possíveis erros e mudanças, porém é importante que esses programadores também invertam os papéis. Práticas do SCRUM: Os projetos são divididos em iterações (sprint). Fazer reunião de planejamento para se iniciar cada sprint (fixada em 8 horas de planejamento), na qual se define o objetivo, os membros da equipe, o sprint backlog, e uma data para a apresentação da sprint. Criar product backlog (lista de requisitos), de acordo com as necessidades do cliente. Cada item do backlog é chamado de estória. O product backlog deve ser priorizado de acordo com o product owner, que é o responsável pelo product backlog. Ao examinar as práticas do XP e do SCRUM, fica visível que por se tratarem de metodologias ágeis ambas tem práticas comuns, como medir velocidade de desenvolvimento, dividir o projeto em iterações, realizar reuniões ao início das iterações, entre outras. Porém, pode-se chegar à conclusão de que o XP tem algumas práticas que não são cobertas pelo SCRUM; essas práticas são pertinentes à programação do código-fonte. Mesmo que o XP contenha a maioria das práticas do SCRUM, há algumas específicas do XP voltadas à atividade de programação, o que permite o uso do XP junto ao SCRUM,uma vez que o SCRUM descreve práticas que dão um enfoque maior no planejamento e organização. KNIBERG (2010). Com isso conclui-se que mesclar as especificidades do XP com as de enfoque gestor do SCRUM resulta na composição ideal de práticas para o MB-DS.

3.2 MB-DS (Model Beginner of Software Development) Utilizando as práticas apresentadas, foi possível criar um modelo de processo de desenvolvimento de software intitulado MB-DS, com base nas práticas das metodologias ágeis XP e SCRUM. Para a elaboração deste modelo foi usado o framework Rational Unified Process (RUP) que, segundo Sommerville(2003), é um exemplo de modelo de processo moderno que foi derivado do trabalho sobre UML e do Processo Unificado de Desenvolvimento de Software. O modelo de processo MB-DS apresenta suas fases (com base nas fases do RUP) e pode ser visualizado na Figura 1. Figura 1 - Modelo de Processo Ágil de Desenvolvimento de Software (MB-DS) As fases do MB-DS são: Concepção (CP), Elaboração (E), Construção (CT) e Transição (T). O projeto se inicia na fase de concepção, onde é dividido em partes menores, as releases, que serão decompostas em partes menores ainda, as sprints, que são as iterações do processo. As fases de elaboração e construção formam uma espécie de looping, já que pode-se passar por essas fases várias vezes durante a realização de um projeto. O projeto se encerra na fase de transição, na qual as releasessaem do ambiente de produção e são colocadas em funcionamento em seu ambiente real. Cada fase do modelo de processo MPA-DS é composta por atividades. Recomenda-se que essas atividades sejam seguidas cronologicamente, porém algumas devem ser realizadas diariamente, ou sempre que for possível e necessário.

4. CONCLUSÃO Micro e pequenas empresas (MPEs) ainda encontram dificuldades na utilização de modelos de processo existentes. Muitas vezes, essas dificuldades referem-se ora à forte ênfase na documentação do sistema sugerida pelos modelos tradicionais e ora à falta de detalhamento das atividades a serem realizadas. Na tentativa de contornar essas dificuldades, este trabalho propôs a utilização das metodologias ágeis XP e SCRUM em conjunto, tendo como resultado o Modelo de Processo Ágil de Desenvolvimento de Software MB-DS. Por utilizar as metodologias ágeis, o modelo MB-DS propõe a minimização da documentação por meio da ênfase na comunicação entre os envolvidos no projeto. Além disso, esse modelo fornece um maior detalhamento das atividades do processo por meio da definição de tarefas a serem realizadas, de entradas necessárias para a realização das atividades, de saídas resultantes da realização das atividades. REFERÊNCIAS ANDRADE, Maria Margarida de. Introdução à metodologia do trabalho científico: elaboração de trabalhos na graduação. 8 ed. São Paulo: Atlas, 2007. IMPROVE IT. SCRUM (2009). Disponível em: <http://improveit.com.br/scrum>. Acesso em: 8 jun.2010. KNIBERG, Henrik. Scrum e XP direto das trincheiras: Como nós fazemos Scrum (2007). Disponível em < http://infoq.com/br/minibooks/scrum-xp-fromthe-trenches>. Acesso em: 30 abr.2010. KOSCIASNKI, André ; SOARES, Michel dos Santos. Qualidade de software: Aprenda as metodologias e técnicas mais modernas para o desenvolvimento de software. São Paulo: NovatecEditora, 2007. SEBRAE. Critérios e conceitos para classificação de empresas. Disponível em: <http://www.sebrae.com.br/customizado/estudos-e-esquisas/integra_bia?ident_unico=97>. Acesso em: 16 out. 2010. SEVERINO, Antonio Joaquim. Metodologia do trabalho científico. 23 ed. São Paulo: Cortez, 2007. SOMERVILLE, Ian. Engenharia de Software. 6 ed. São Paulo: Addison Wesley, 2003. TELES, Vinícius Manhães. Extreme Programming: Aprenda como encantar seus usuários desenvolvendo software com agilidade e alta qualidade. São Paulo: Novatec, 2006. WELLS, Don. The Rules of Extreme Programming (1999). Disponível em: <http://www.extremeprogramming.org/rules.html>. Acesso em: 30 mai. 2010.