METODOLOGIAS DE DESENVOLVIMENTO: UM COMPARATIVO ENTRE EXTREME PROGRAMMING E RATIONAL UNIFIED PROCESS

Tamanho: px
Começar a partir da página:

Download "METODOLOGIAS DE DESENVOLVIMENTO: UM COMPARATIVO ENTRE EXTREME PROGRAMMING E RATIONAL UNIFIED PROCESS"

Transcrição

1 1 METODOLOGIAS DE DESENVOLVIMENTO: UM COMPARATIVO ENTRE EXTREME PROGRAMMING E RATIONAL UNIFIED PROCESS MOREIRA, Albert M. 1 RESUMO: Atualmente, no âmbito da engenharia de software, uma boa metodologia de projetos tem se tornado um fator diferencial, visto que influencia diretamente na qualidade do produto final. Este artigo apresenta o histórico do processo de desenvolvimento de software e faz uma comparação entre a metodologia rigorosa Rational Unified Process (RUP) e a ágil Extreme Programming (XP). Finalmente, são mostrados casos de sucesso das duas abordagens. PALAVRAS-CHAVE: Engenharia de Software, Metodologias Rigorosas, Metodologias Ágeis, Extreme Programming, Rational Unified Process. 1. INTRODUÇÃO O que se busca na Engenharia de Software é o incessante melhoramento do processo de desenvolvimento de software. Os prazos e custos estipulados podem não chegar a serem alcançados, mesmo com a crescente evolução da tecnologia, métodos e recursos. Um dos principais motivos é a excessiva formalidade nos modelos de processos colocados nos últimos 30 anos (LARMAN, 2004). Existe então a necessidade de desenvolver software de forma mais rápida, sem que se perca a qualidade. O novo paradigma em desenvolvimento de software é que se pode obter esse resultado por meio da utilização de métodos ágeis. Embora as metodologias ágeis tenham sido apontadas como alternativa às abordagens tradicionais para o desenvolvimento de software, as metodologias tradicionais, conhecidas também como rigorosas, pesadas ou orientadas a planejamentos, possuem utilização garantida no que diz respeito a situações em que os requisitos do sistema são complexos e estáveis e requisitos futuros são previsíveis. Este artigo aborda vantagens e desvantagens de metodologias ágeis e de metodologias rigorosas, particularmente, da metodologia rigorosa Rational Unified Process e da ágil Extreme Programming, além de citar casos de sucesso da aplicação de ambas. Na Seção 2, é apresentado o histórico do processo de desenvolvimento de software, desde o uso restrito das metodologias tradicionais até a criação do Manifesto Ágil. Na Seção 3 e 4, são apresentados conceitos básicos sobre os métodos ágeis e tradicionais, respectivamente, além de suas aplicações. Na Seção 5, é apresentado um comparativo entre o método RUP e o XP e, na sessão 6, casos de sucesso relacionados a estas. Por fim, na Seção 7, estão as considerações finais. 1 Albert Menezes Moreira é graduando do curso de Bacharelado em Sistemas de Informação da Faculdade Ruy Barbosa e realizou este trabalho sob a orientação da professora Izabel Cristina Andion Castro, mestra em redes pela UNIFACS.

2 2 2. HISTÓRICO Baseadas em mainframes e terminais burros, as metodologias tradicionais fizeram parte, inicialmente, de um contexto de desenvolvimento de software muito diferente do atual (ROYCE, 1970). O custo para que modificações fossem feitas era alto, devido às limitações dos computadores e falta de ferramentas modernas para apoiar a criação do software, tais como depuradores e analisadores de código. Sendo assim, o software era antes planejado e documentado para então ser implementado. O modelo Clássico caracterizado como metodologia tradicional é utilizado até hoje. Nos últimos anos, novas metodologias foram aplicadas, sempre visando a rapidez no fornecimento aliada à qualidade do processo e do produto. Surgem, então, os métodos ágeis, popularizados quando Beck et al. (2001) criaram o Manifesto Ágil indicando alguns princípios compartilhados por tais métodos: a) Indivíduos e interações são mais importantes que processos e ferramentas; b) Software funcionando é mais importante do que documentação detalhada; c) Colaboração dos clientes é mais importante do que negociação de contratos; d) Adaptação às mudanças é mais importante do que seguir um plano. Nesta nova abordagem a reutilização de software é uma prática comum durante o desenvolvimento. Os padrões de projeto contribuem para o reuso em situações em que é preciso um nível alto de abstração, sobretudo na fase de análise, na definição da arquitetura do sistema, em questões organizacionais e de otimização dos processos, sendo que esses dois últimos têm por objetivo apoiar a construção do software e melhorar o seu desenvolvimento. O uso de componentes é outro aspecto possível. Deste modo, a integração dos padrões organizacionais e de processo proporciona rapidez e qualidade no desenvolvimento. 3. METODOLOGIAS RIGOROSAS Essas metodologias são assim denominadas porque enfatizam o rigor nas premissas e propostas. Prezam pela documentação detalhada em todas as fases do desenvolvimento. Geralmente são implementadas em ambientes onde se deve exercer controle rígido, como por exemplo quando é grande o número de indivíduos que participam do projeto. Também são conhecidas como metodologias pesadas, uma referência à quantidade de documentos, papéis, atividades e processos considerados necessários para a implementação. O resultado disso é que os desenvolvedores passam boa parte do tempo ocupados com atividades que não são necessariamente ligadas à programação ou seu processo criativo. O modelo Clássico foi o primeiro processo de desenvolvimento de software publicado (PRESSMAN, 2001). É um modelo que apresenta uma seqüência a ser seguida. Cada etapa tem uma documentação que precisa ser aprovada para que se dê início à etapa seguinte. De uma forma geral fazem parte do modelo Clássico as etapas de definição de requisitos, projeto do software, implementação e teste unitário, integração e teste do sistema, operação e manutenção (SOMMERVILLE, 2003). A figura 1 mostra a disposição dessas fases, juntamente com a ordem de aplicação:

3 3 Figura 1: Fases do modelo Clássico Adaptado de: SOMMERVILLE, 2003 O problema deste modelo, também chamado de modelo em Cascata, é a impossibilidade de criação de fases intermediárias ou até mesmo revisão de fases anteriores antes que o processo termine. Fred Brooks em seu artigo No Silver Bullet: Essence and Accidents of Software Engineering, sustenta essa idéia na afirmação de que é impossível especificar totalmente um software antes da sua implementação (BROOKS, 1987). Isso dificulta alterações, fator comum no desenvolvimento de um projeto. Sua utilização é feita quando os requisitos estão bem compreendidos. O modelo Clássico ainda perdurou até a década de 90 como forma de desenvolvimento e foi utilizado com sucesso quando os requisitos estavam bem compreendidos Rational Unified Process Atualmente um grande representante das metodologias rigorosas é o RUP, um recurso de Engenharia de Software criado pela empresa Rational Software Corporation que descreve a maneira de desenvolver um software usando técnicas comerciais e objetivando o aumento da qualidade do produto gerado. É classificado também como um processo de engenharia de software que tem como principal objetivo garantir o desenvolvimento de sistemas com qualidade, respeitando os requisitos solicitados pelo cliente, em prazos e custos determinados. Pode ser considerado como um conjunto de experiências e boas práticas adquiridas por diversas pessoas e empresas envolvidas com o desenvolvimento de softwares. Sua primeira versão, o RUP 5.0, surgiu em 1998, oriunda da evolução de projetos anteriores, como o Rational Objectory Process, iniciado em Várias características foram melhoradas e acrescentadas até a versão RUP A aplicação do RUP se dá em variados projetos, sendo tratado como um arcabouço (framework) genérico para os processos de desenvolvimento, considerando a configuração adequada para o tamanho e a necessidade do projeto e os padrões aplicados na empresa. Associada a este modelo, a Rational Software construiu também um conjunto de ferramentas de suporte ao desenvolvimento (RUP, 2007). A Unified Modeling Language - UML, que oferece um conjunto de modelos para auxiliar o desenvolvimento de software, é um exemplo de linguagem que foi criada para apoiar a utilização do RUP.

4 4 Como bases para a criação deste método foram adotadas algumas características de qualidade de software, que permitem atingir os objetivos desejados. Dentre elas, seis características merecem destaque especial: a) O uso de interações com o cliente para desenvolvimento de softwares; b) Gerenciamento de requisitos; c) Utilização de artefatos visuais, a exemplo de modelos UML; d) Controle de qualidade; e) Controle de mudanças; f) A necessidade da utilização de uma metodologia de desenvolvimento de sistemas. No modelo RUP, um projeto é dividido diversas fases, desde a Modelagem do Negócio até o Ambiente. Estas ainda possuem outras 4 subdivisões, que constituem o ciclo de construção de uma versão, como é mostrado na figura 2: Figura 2: Ciclo de construção de uma versão usando RUP Adaptado de: KRUCHTEN, 2000 A fase de Concepção, Inception phase, é onde deve ser definido o escopo da versão, especificando o produto a ser gerado. É nessa etapa que se avaliará a viabilidade do projeto, pois neste momento os requisitos operacionais e os critérios de aceitação serão apresentados. Devem ser levantados os riscos que possam comprometer o andamento do projeto, levando em consideração questões de arquitetura. É pertinente também a aplicação de um cronograma preliminar. Dentre os produtos finais desta fase estão o cronograma, o diagrama de caso de uso inicial, o caso de uso do negócio, que quando aplicado em sistemas comerciais deve fornecer uma estimativa de retorno do investimento e o protótipo preliminar (MAGALHÃES, 2003). O objetivo da fase de Elaboração, Elaboration Phase, é analisar o domínio do problema, criar o plano de projeto, a arquitetura e remover os elementos de alto risco. Tratam-se de riscos de requerimentos, tecnológicos em relação à capacidade das ferramentas disponíveis, de habilidades dos integrantes do projeto e políticos (RUP, 2007). É uma etapa crítica, pois o que for definido nesta fase será utilizado como base para as próximas e à medida que o projeto avança aumenta o custo de modificações.

5 5 A fase de Construção, Construction phase, consiste no desenvolvimento do produto. É a etapa de construção do código, com ênfase no gerenciamento de recursos e controle das operações, adotando medida de redução dos custos. Nesta fase, os componentes gerados são também testados e submetidos aos critérios de aceitação que foram definidos na fase anterior. Ao fim desta fase, o produto estará pronto para ser entregue ao usuário, integrado às plataformas necessárias, com manual de usuários e uma descrição sobre esta versão (MAGALHÃES, 2003). Na fase final do processo que é chamada de Transição, Transition phase, o produto será entregue. Engloba também os procedimentos de treinamento, suporte e manutenção. Esta fase inclui os testes finais de aceitação, no intuito de captar o feedback do usuário a respeito dos resultados, além de comparações com outros sistemas antigos, conversões de banco de dados (se for o caso) e a divulgação do novo produto. As interações mostradas na figura 2 evidenciam o compromisso do RUP com o desenvolvimento incremental, que é construir o código e fazer os testes com componentes do sistema, gerando releases a cada fase. No fim da fase de elaboração, o protótipo da arquitetura está disponível para avaliação. Durante cada iteração da fase de construção, componentes terminados são integrados ao projeto. O ponto chave para este elemento é um conjunto de testes que acompanham a construção do produto (PROBASCO, 2000). O RUP permite a divisão do projeto em partes que serão desenvolvidas através de iterações, ou seja, repetição de todo o ciclo para cada uma das partes que serão integradas e incrementadas até o produto final. O RUP também pode ser utilizado no desenvolvimento e manutenção de projetos de pequeno ou de médio porte. Para que isso seja possível, alguns etapas ou passos podem ser eliminados a depender das características do projeto para simplificar ou diminuir as necessidades de documentação, minimizando a formalização (KOHRELL e WONCH,2005). As diferentes configurações do RUP possibilitam o suporte de equipes grandes e pequenas, além de técnicas de desenvolvimento disciplinadas ou menos formais (KRUCHTEN, 2000). Vale ressaltar que existe a coerência do modelo de processos RUP com os requisitos para certificação do processo de desenvolvimento Capability Maturity Model - CMM, onde as empresas de desenvolvimento podem certificar seu modelo de processo de desenvolvimento no quesito de maturidade e garantia de qualidade dos produtos gerados. Por exemplo, no terceiro nível do CMM, o conceito de processo é fortemente introduzido na organização. A arquitetura implantada do CMM nível 3 servirá como base para a execução das práticas de todas as áreas chave. Essa arquitetura torna-se, então, peça fundamental para a organização dos processos e sucesso do projeto. Com a adoção do RUP uma empresa já possui os prérequisitos para passar para o nível 3 do CMM (PIRES et al., 2007). 4. METODOLOGIAS ÁGEIS Como foi apresentado no segundo capítulo, o termo Metodologias Ágeis se tornou popular quando dezessete especialistas em processos de desenvolvimento de software, estabeleceram conceitos comuns a serem compartilhados por todos esses métodos. Foi então criada por BECK et al. (2007) a Aliança Ágil e instaurado o Manifesto Ágil.

6 6 O objetivo do Manifesto Ágil não é desconsiderar processos, ferramentas, documentação, negociação de contratos ou planejamento, mas mostrar o valor secundário que estes possuem diante dos indivíduos e interações, do bom funcionamento do software, da colaboração do cliente e das respostas velozes às modificações. Esses conceitos estão mais relacionados à forma que as pequenas e médias empresas trabalham, devido a estarem habituadas a mudanças. A mais conhecida dentre as metodologias ágeis é a Extreme Programming Extreme Programming A Extreme Programming - XP - é uma metodologia ágil voltada às equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que se alteram com rapidez (BECK, 1999). As principais diferenças da XP em relação às outras metodologias são feedback constante e abordagem incremental. A figura 3 mostra algumas das características da Extreme Programming: Figura 3: Características da XP Adaptado de: XP, 2007 Nesta prática, é interessante que haja comunicação entre os indivíduos. O projeto C3, da Chrysler, foi o primeiro a usar a XP. Depois de anos tentando outras metodologias sem resultado, o uso da nova metodologia trouxe resultados satisfatórios em pouco mais de um ano. (HIGHSMITH et al., 2000). Grande parte das regras aplicadas á metodologia XP podem não fazer sentido à primeira vista, no entanto o diferencial são as partes que se complementam, o conjunto. A preocupação maior é com o rápido de desenvolvimento e satisfação do cliente, cumprindo as estimativas de tempo e custo. Os valores aplicados na Extreme Programming oferecem um ambiente propício para o progresso no trabalho. De acordo com definições da metodologia XP (2007), seus principais valores são: comunicação, simplicidade, feedback e coragem. O objetivo da comunicação é criar e manter o melhor relacionamento possível entre cliente e provedor de serviços, dando preferência, neste caso, a conversas pessoais do que através de outros meios. É encorajada também a comunicação entre desenvolvedores e gerente do

7 7 projeto. Este se caracteriza como um dos fatores principais na XP: conversar ao máximo pessoalmente, evitando o uso do telefone e mensagens de . A simplicidade visa a minimizar do código, desprezando funções consideradas desnecessárias ou não essenciais. Isto quer dizer que deve ser implementado o menor número de classes e métodos. Deve-se também estar sempre procurando atender os requisitos emergenciais, evitando adicionar funcionalidades ligadas à evolução do produto. O importante é ter em mente que os requisitos são mutáveis. Sendo assim, o interessante na prática da Extreme Programming é implementar apenas que é estritamente necessário. O contato incessante com o cliente a respeito do projeto é o que se pode chamar de feedback constante. Informações sobre o código são dadas por testes periódicos, os quais indicam erros tanto individuais quanto do software integrado. Além disso, o cliente terá sempre uma parte do software funcional para avaliar. Com isso, novas características e informações são repassadas aos desenvolvedores, que por sua vez devem implementá-las nas próximas versões. Desta maneira, o que se pretende é entregar o software de acordo com as expectativas do cliente. A coragem se encaixa na implantação dos três valores anteriores. São necessários profissionais comunicativos e com facilidade de se relacionar. A coragem auxilia a simplicidade, quando a possibilidade de simplificar o software é detectada. Por fim, a coragem é necessária para garantir que o feedback do cliente ocorra com freqüência, pois esta abordagem implicará na possibilidade de mudanças constantes do produto. A orientação para o perfil das equipes no XP é de programadores experientes, já que é necessária a boa utilização do tempo de desenvolvimento do projeto. No que diz respeito à certificação CMM, a metodologia XP não possui os pré-requisitos necessários para sua implementação. 5. COMPARATIVO ENTRE RUP E XP E SUAS APLICAÇÕES No que diz respeito ao quesito tempo, é provável que o que é gasto pelas versões usando XP coincida com as iterações do RUP. Tal ocorrência não se aplica a projetos grandes, por se caracterizarem pela grande duração de suas iterações. Em projetos maiores, as equipes no RUP são geralmente divididas para se desenvolver paralelamente, cada uma com um subsistema. Embora a XP aplique a programação em duplas, o projeto é tratado como um todo, não em subsistemas. Na visão de Kruchten (2000), artefato é uma parte de uma informação produzida, modificada ou usada por um processo. São exemplos de artefato modelos, documentação, código fonte e arquivos executáveis. No Rational Unified Process, a comunicação é feia por meio de artefatos. A XP é baseada em comunicação oral, direta, restringindo ou limitando o uso da XP em projetos nos quais os desenvolvedores se encontram geograficamente dispersos. A partir da premissa de que os artefatos da XP possuem foco em estórias de usuário e código, o risco de projeto pode aumentar. Neste momento, a confiança recíproca é um fator vital. Acerca das atividades e dos papéis dentro do desenvolvimento do projeto, o RUP divide as tarefas de forma específica, ao passo que a divisão da XP não distingue funções específicas dentro das atividades. Isto quer dizer que o programador de um projeto que adote a Extreme

8 8 Programming não está necessariamente preso a determinada atividade, podendo se encaixar em outra, caso seja necessário. O RUP especifica a utiliza softwares da IBM, como o Rational Rose, embora já existam várias ferramentas que podem ser utilizadas. Por outro lado, a XP não especifica uma ferramenta para o processo, ainda que possa utilizar ferramentas livres como o Junit e o XPlanner (XP, 2007). Para tratar o código, o Rational Unified Process o subdivide em subsistemas (quando se trata de um sistema grande), delegando também membros responsáveis para cuidar de cada uma das partes (IBM, 2007). O XP trata o código coletivamente, permitindo que qualquer programador modifique o código caso encontre algum problema ou solução de otimização. Para garantir a veracidade do conhecimento nas metodologias, existem as certificações, que têm como finalidade atestar publicamente e por escrito que o produto, serviço, sistema, ou neste caso, o indivíduo, está em conformidade com as normas, requisitos ou regulamentos. No caso do RUP, o Rational Unified Process v2003 Certification test é considerado o ponto de partida, por ser a certificação base desta metodologia (IBM, 2007). Por outro lado, de acordo com Brewer (2007), não existe entidade certificadora para a Extreme Programming, não havendo, então, um teste para abordar conhecimentos desta metodologia. A tabela 1 apresenta algumas características presentes nas metodologias RUP e XP: Tabela 1: Comparativo entre RUP e XP. Adaptado de: RAWSTHORNE, 2007 Prática ou conceito RUP XP Iterativo e incremental SIM SIM Voltado para a arquitetura SIM NÃO Voltado para a validação NÃO SIM Interação desenvolvedor/cliente NÃO SIM Interação desenvolvedor/gerente SIM NÃO Interação desenvolvedor/suporte SIM SIM Gerenciamento de risco SIM SIM Qualidade de código NÃO SIM Gerenciamento dos pontos-chave SIM NÃO Equipes grandes SIM NÃO Equipes pequenas NÃO SIM Projetos complexos SIM NÃO Casos de uso SIM SIM De acordo com as comparações da tabela 1, pode-se concluir que ambas as abordagens têm pontos fortes e fracos (MOLPECERES, 2007). Enquanto o foco do Rational Unified

9 9 Programming são projetos complexos, onde são necessárias especificações maiores do projeto, a Extreme Programming possui seu foco em projetos mais simples, nos quais a burocracia e o excesso de documentos se caracterizam como perda de tempo. O objetivo futuro dos representantes das metodologias ágeis é eliminar os pontos fracos, como por exemplo a falta de análise de riscos, sem que isso as tornem metodologias pesadas. Não está no escopo da Extreme Programming a preocupação formal com o planejamento de riscos. Visto que riscos acontecem com freqüência em projetos desenvolvimento de software, a falta de análise de risco torna-se um fator negativo (SOARES, 2004). Outro aspecto é que para tornar as metodologias ágeis soluções para grandes empresas e equipes, visto que nestas empresas cada vez mais os indivíduos que participam de equipes se encontram dispersos geograficamente será importante resolver os problemas de comunicação. 6. CASOS DE SUCESSO Os tópicos abaixo apresentam dois casos de sucesso. O primeiro deles do sistema de desenvolvimento para negócio da empresa Ford Moto Credit, usando o RUP. O segundo do sistema de apoio a RH, na Assembléia Legislativa do Estado de São Paulo, desenvolvido pelos membros da AgilCoop - formada por professores e alunos da USP - usando a XP A empresa Ford Motor Credit padroniza metodologia de desenvolvimento usando IBM Rational Unified Process Ford Motor Credit é uma das maiores empresas de financiamento de automóveis do mundo, com operações em 36 países. Promove financiamento para produtos de montadoras como Ford, Aston Martin, Jaguar, Land Rover, Mazda, dentre outros. O departamento de TI da Ford Motor Credit estava procurando por um software de processo de desenvolvimento consistente. Cada equipe do projeto usou sua metodologia própria, dificultando o compartilhamento de conhecimento e rodízio entre as equipes. Além disso, os processos estabelecidos ofereciam suporte pobre ao desenvolvimento em Java 2 Enterprise Edition - J2EE, o que resultou em riscos de projeto (IBM, 2007). Como solução a companhia adotou o Rational Unified Process, personalizando para as necessidades específicas. O departamento de TI também implantou um programa para prover treinamento e servir como guia para equipes de projeto. Desta forma a Ford Motor Credit padronizou suas iniciativas de TI para desenvolvimento de software na metodologia IBM Rational Unified Process. Tomando como base um viés similar ao de outras empresas, o RUP foi customizado de acordo com as necessidades específicas. A equipe utilizou a metodologia RUP com gerentes de projetos, times de serviço e experts para customizá-la e adequá-la às suas necessidades. Com base em Java 2 Enterprise Edition, o departamento de TI implantou a Metodologia de Entrega de Soluções Unificada - Unified Solution Delivery Methodology (USDM), para seus projetos de software. Para viabilizar a adoção da USDM, a qual é baseada na abordagem iterativa característica do RUP, a empresa criou um detalhado programa de treinamento. Durante o processo, os instrutores ensinavam ao time de desenvolvimento os primeiros passos para usar a nova metodologia. Depois que os membros das equipes adquirem experiência com um ou dois projetos com a ajuda dos

10 10 instrutores, eles já se tornam preparados para desenvolver sem acompanhamento (IBM, 2007). Para lidar com os riscos de projeto foi criada uma ferramenta para mapeamento de caso de uso para riscos. Dirigindo-se a riscos precocemente no ciclo de vida do desenvolvimento, e dando prioridade aos casos do uso baseados no retorno no investimento, as equipes do desenvolvimento da Ford Motor Credit estabeleceram uma arquitetura estável, dando mais prioridade à entrega das funcionalidades críticas. Com isso, o departamento de TI da Ford Motor Credit passou a identificar e endereçar os riscos de projeto com mais rapidez no processo de desenvolvimento e as equipes passaram a entregar as soluções a tempo e atingir os padrões de qualidade Assembléia Legislativa do Estado de São Paulo: Assessoria e capacitação em desenvolvimento de software Durante o ano de 2005, uma equipe professores e alunos da AgilCoop, uma empresa de desenvolvimento formada por alunos e professores da USP que utiliza metodologias ágeis, prestaram uma assessoria à Assembléia Legislativa do Estado de São Paulo - ALESP. Iniciouse o desenvolvimento de um projeto para a área de Recursos Humanos. Por se tratar de um projeto de grande complexidade, com diversas especificações, foi preciso fazer antes uma minuciosa análise de requisitos. Ao invés de entender e documentar a lógica do negócio, o grupo optou por desenvolver este entendimento ao mesmo tempo em que capacitava a equipe, através de um treinamento intensivo. Depois de três meses de treinamento já se começava a notar os primeiros resultados, explicitados nas linhas de código iniciais. Após oito meses de assessoria, com o uso dos princípios da XP, o projeto foi entregue com resultados satisfatórios (AGILCOOP, 2007). No período de 2006, foi expandida a parceria com a ALESP: são mais membros da AgilCoop e alunos da USP implementando métodos ágeis na criação e manutenção do sistema de Recursos Humanos, do portal e do sistema de apoio ao legislativo. Este projeto conta com a participação de programadores experientes, dentre os quais Alfredo Goldman e Fabio Kon, professores doutores do departamento de ciência da computação da Universidade de São Paulo (AGILCOOP, 2007). Isso mostra que o desenvolvimento usando a XP demanda profissionais com considerável conhecimento em programação. 7. CONSIDERAÇÕES FINAIS O objetivo deste artigo não é apontar um método nem mostrar que um anula o outro, visto que suas características devem ser adotadas em situações de desenvolvimento diversas. É importante para o desenvolvedor conhecer o que há de melhor nos dois mundos e suas limitações a fim de que a adoção de um método possa atender suas expectativas de gerenciamento, custo e prazo. Para que surja interesse nas grandes organizações pela abordagem dos métodos ágeis muitas respostas ainda devem ser obtidas como por exemplo: como gerenciar o risco, como viabilizar a comunicação em locais dispersos, como garantir a certificação, dentre outras. Todo novo

11 11 paradigma exige um tempo de maturação, em que os pioneiros acreditam na idéia e quebram barreiras no intuito de adquirir a confiança do mercado. 8. REFERÊNCIAS AGILCOOP. Assembléia Legislativa do Estado de São Paulo: Assessoria e capacitação em desenvolvimento de software. Disponível em: < Acesso em: 18/03/07. BECK, K. et al. Manifesto for Agile Software Development Disponível em: < Acesso em: 15/03/07. BREWER, J. Extreme Programming FAQ. Disponível em: < Acesso em: 24/03/07. BROOKS, F. No Silver Bullet: Essence and Accidents of Software Engineering. Proc. IFIP, IEEE CS Press, pp ; reprinted in IEEE Computer, pp , Apr CAMPELO, R.E.C. XP-CMM2: Um Guia para Utilização de Extreme Programming em um Ambiente Nível 2 do CMM. Dissertação de Mestrado HIGHSMITH et al. Extreme Programming. E-Business Application Delivery, Feb., pp. 4-17, IBM. Rational Unified Process. Disponível em: < Acesso em: 16/03/07. KOHRELL, D.; WONCH, B. Using RUP to manage small projects and teams. Rational Software White Paper KRUCHTEN, Philippe. The Rational Unified Process An Introdution. Massachusetts, Addison Wesley, LARMAN, C. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. 3. ed. Prentice Hall, MAGALHÃES, A.P.F. RUXP: Integrando o RUP e o XP em uma metodologia para o desenvolvimento de software. Monografia de Especialização MOLPECERES, A. Procesos de Desarollo: RUP, XP y FDD. Disponível em: < Acesso: 18/03/07. PIRES, C. G. et al. Uma Arquitetura de Processos para SW-CMM Nível 3 Baseada no RUP. Disponível em: <

12 12 Acesso em: 23/03/07. PRESSMAN, R. Engenharia de Software. McGraw-Hill, PROBASCO, L. The Ten Essentials of RUP: The Essence of an Effective Development Process. Rational Software White Paper RAWSTHORNE, D. Comparing/Combining RUP, XP and Scrum Disponível em: < Acesso em: 18/03/07. ROYCE, W.W. Managing the development of large software systems: concepts and techniques. Proc. IEEE Westcon, Los Angeles, CA. SMITH, J. A Comparison of the IBM Rational Unified Process and Extreme Programming. Rational Software White Paper SOARES, M. S. Metodologias Ágeis Extreme Programming e Scrum para o Desenvolvimento de Software. Revista Eletrônica de Sistemas de Informação, SOMMERVILLE, I. Engenharia de Software. Editora Addison-Wesley XP. Extreme Programming. Disponível em: < Acesso em: 24/03/07.

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

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata Processo de Desenvolvimento Também chamado de ciclo de vida do software Reflete os passos necessários para se construir um produto de software Existem vários modelos de ciclo de vida Cascata (1956) Iterativo

Leia mais

Rational Unified Process (RUP)

Rational Unified Process (RUP) Rational Unified Process (RUP) A Rational é bem conhecida pelo seu investimento em orientação em objetos. A empresa foi à criadora da Unified Modeling Language (UML), assim como de várias ferramentas que

Leia mais

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

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis Professor Ariel da Silva Dias RUP e Modelos Ágeis Modelo de processo de software proprietário. Desenvolvido pela empresa Rational Software Corporation. Em 2003 a empresa foi adquirida pela IBM. Então O

Leia mais

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

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado) Processo UP Unified Process (Processo Unificado) Conjunto de passos que tem como objetivo atingir uma meta Processo de software na ES, processo que visa a produzir o software - de modo eficiente e previsível

Leia mais

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

! Introdução.  Motivação para Processos de Software. ! Processo Unificado (USDP)  Definições  RUP x USDP  Características do Processo Unificado Agenda Rodrigo Reis Cleidson de Souza! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados!

Leia mais

Visão Geral do RUP (Rational Unified Process)

Visão Geral do RUP (Rational Unified Process) Visão Geral do RUP (Rational Unified Process) Objetivos deste módulo Apresentar as características do RUP Discutir os conceitos que existem no RUP: fases, fluxos de atividades (worklows), iterações, responsáveis,

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 4 http://www.ic.uff.br/~bianca/engsoft2/ Aula 4-03/05/2006 1 Modelos Prescritivos de Processo Modelo em cascata Modelos incrementais Modelo incremental Modelo RAD Modelos

Leia mais

Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação

Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação - Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Visão Geral do Processo de Desenvolvimento de Software Introdução aos Sistemas de Informação COM06852 - Introdução aos SI Prof.

Leia mais

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

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome: Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Nome: 1. A figura abaixo representa, simplificadamente, as fases do Modelo de Ciclo de Vida Cascata.

Leia mais

Conhecendo um pouco sobre RUP

Conhecendo um pouco sobre RUP Aluno: Rainei Santos Costa Prof :Marcio Borges Faculdade Santíssimo Sacramento (FSSS) Alagoinhas -BA -Brasil R.Mal. Deodoro, 118 - Centro, Alagoinhas - BA, 48005-020 Turma de Sistemas De Informação IV

Leia mais

RUP Unified Process. Profª Jocelma Rios

RUP Unified Process. Profª Jocelma Rios RUP Unified Process Profª Jocelma Rios Nov/2012 O que pretendemos: Reforçar os aspectos que caracterizam o processo iterativo e incremental Identificar como atingir os objetivos dos projetos de software

Leia mais

Visão Geral do RUP.

Visão Geral do RUP. Visão Geral do RUP hermano@cin.ufpe.br Objetivos Apresentar as características RUP Discutir os conceitos da metodologia: fases, fluxos de atividades (workflows), iterações, responsáveis, atividades e artefatos

Leia mais

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions Introdução ao RUP Livar Correia de O. C. Cunha livarcocc@gmail.com 1 Rational Unified Process (RUP) É um framework de processo de desenvolvimento de software Uma metodologia é uma instanciação dos processos

Leia mais

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

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Processos de Software

Processos de Software Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de software é uma representação abstrata de um processo de

Leia mais

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP INF014 Análise e Projeto de Sistemas Processos Unificado -RUP Maurício Pitangueira antoniomauricio@ifba.edu.br Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CI 221 DISCIPLINA: Engenharia de Software AULA NÚMERO: 3 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos básicos como processo, projeto, produto, por que

Leia mais

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp web@cercomp.ufg.br 1. Introdução É um processo proprietário de Engenharia de software criado pela Rational Software Corporation,

Leia mais

Escolhendo um Modelo de Ciclo de Vida

Escolhendo um Modelo de Ciclo de Vida Escolhendo um Modelo de Ciclo de Vida Ciclos de Vida 1 Ciclo de Vida de um Produto Qualquer desenvolvimento de produto inicia com uma idéia e termina com o produto pretendido. O ciclo de vida de um produto

Leia mais

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

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia Engenharia de Software Processos Desenvolvimento de Software Tradicionais 2014/2 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR Processos Um conjunto estruturado de atividades necessárias para o desenvolvimento

Leia mais

Engenharia de Software. Herbert Rausch Fernandes

Engenharia de Software. Herbert Rausch Fernandes Engenharia de Software Herbert Rausch Fernandes O Processo Unificado É uma tentativa de unir os melhores recursos e características dos modelos convencionais; Reconhece a importância da comunicação com

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático RUP (Rational Unified Process) PRAXIS Introdução Foi proposto como uma resposta aos problemas

Leia mais

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

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil Análise de Sistemas Prof. Filipe Arantes Fernandes filipe.arantes@ifsudestemg.edu.br 2 Vale a pena ver de novo Modelo de Processo:

Leia mais

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

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU) Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU) Prof. Seiji Isotani (sisotani@icmc.usp.br) Modelos de Processo de

Leia mais

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

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS 1. Com relação à engenharia de software, julgue os itens seguintes. Engenharia de software não está relacionada

Leia mais

RUP/PSDS. Introdução e Comparação

RUP/PSDS. Introdução e Comparação RUP/PSDS Introdução e Comparação Agenda RUP Introdução Mlehores Práticas Estrutura Tempo Conteúdo Contraponto PSDS Introdução Objetivos Promover planejamento, medição e controle dos projetos Reduzir riscos

Leia mais

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

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS Tereza Gonçalves Kirner Apresentação elaborada com base em: Hoffer, Jeffrey A., George, Joey F. Modern Systems Analysis and Design (Capítulo 1), Pearson,

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE CURSO TÉCNICO DE INFORMÁTICA Módulo A ENGENHARIA DE SOFTWARE Processos de Software O PROCESSO É LENTO... Todo software deve ser construído de forma organizada, através de processos. Um processo pode ser

Leia mais

MODELAGEM DE SISTEMAS Unidade 5 Ciclo de Vida Iterativo e Incremental. Luiz Leão

MODELAGEM DE SISTEMAS Unidade 5 Ciclo de Vida Iterativo e Incremental. Luiz Leão Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático Apresentação Etapas e Disciplina Técnicas e modelos aplicados Definição de iterações Introdução Foi proposto como uma resposta

Leia mais

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

Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP) Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP) Fundamentos de Engenharia de Software PPGIA Carlos G. Vasco, Marcelo H. Vithoft, Paulo R. Estante Design and programming

Leia mais

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

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Modelos de Processo de Software Desenvolver software é geralmente uma tarefa complexa e sujeita

Leia mais

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Processos de Software Professor: Charles Leite O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa

Leia mais

RUP RATIONAL UNIFIED PROCESS

RUP RATIONAL UNIFIED PROCESS O que é RUP? É um metodologia para gerenciar projetos de desenvolvimento de software que usa a UML como ferramenta para especificação de sistemas. Ele é um modelo de processo híbrido Mistura elementos

Leia mais

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 09289 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 3. Especificação e Análise de Requisitos

Leia mais

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

Análise e Projeto. Prof. Erinaldo Sanches Nascimento Análise e Projeto Prof. Erinaldo Sanches Nascimento Objetivos Apresentar o ciclo de vida de desenvolvimento de sistemas. Descrever as metodologias de desenvolvimento de sistemas. 2 Introdução Programação

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 Para Sommerville a arquitetura de sistemas descreve o sistema em termos de um conjunto de unidades

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Prof. André Luiz Ribeiro Prof. Jorge Luis Pirolla Introdução à Computação Engenharia de Software Tópicos O que é Engenharia de Software? Engenharia de Software em camadas Processo

Leia mais

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias Fábricas de Software Processos de Software Jorge Dias Um processo estruturado, controladoe melhoradode forma contínua, considerando abordagens de engenharia industrial, orientado para o atendimento a múltiplas

Leia mais

Requisitos de Sistemas

Requisitos de Sistemas Requisitos de Sistemas Unidade II - Processos de Negócio Identificação Conceitos Modelagem - BPM - UML Processos x Requisitos 1 Processo de negócio CONCEITO Um processo de negócio, processo organizacional

Leia mais

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

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla UML 2.0 Método, Linguagem e Ferramenta Prof. Cesar Augusto Tacla Conteúdo do Curso MÉTODO RUP FERRAMENTA Visual Paradigm Enterprise Architect LINGUAGEM UML UML: Unified Modeling Language Linguagem padrão

Leia mais

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

Informática I. Aula Aula 21-29/11/06 1 Informática I Aula 21 http://www.ic.uff.br/~bianca/informatica1/ Aula 21-29/11/06 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

INTRODUÇÃO A ENGENHARIA DE SOFTWARE Universidade Estadual Vale do Acaraú AGENDA INTRODUÇÃO A ENGENHARIA DE SOFTWARE Processos Modelos de Desenvolvimento de Software Engenharia de Requisitos Projeto de Interface com o Usuário Projeto Arquitetural

Leia mais

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

Aula 3.1 Introdução e Visão Geral do Processo Unificado PDS Aula 3.1 Introdução e Visão Geral do Processo Unificado Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Definição O Processo Unificado (Unified Process, UP) é um tipo de processo de desenvolvimento de

Leia mais

Processos de Software

Processos de Software DCC / ICEx / UFMG Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Processos Procedimentos e métodos definindo relação entre tarefas PROCESSO Pessoas com habilidades, treinadas

Leia mais

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software ENGENHARIA DE SOFTWARE Aula 03 Processos de Software AGENDA Modelos de processo de software Atividades do processo Lidando com mudanças Rational Unified Process (RUP) 14/03/2017 IFPR QUEDAS DO IGUAÇU -

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Antes de qualquer

Leia mais

Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução

Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução 1 Processo Unificado (PU) 1.1 Bibliografia Autoria:Aristófanes

Leia mais

Processo Unificado. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Processo Unificado. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Processo Unificado Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Medeiros, E. Desenvolvendo Software com UML 2.0: Definitivo, Makron Books,

Leia mais

Engenharia de Software

Engenharia de Software PLANO DE AVALIAÇÕES Engenharia de Software 1ª AP: 08 de setembro 2ª AP: 13 de outubro 3ª AP: 10 de novembro NAF: 17 de novembro Referência bibliográfica: SOMMERVILLE, I. Engenharia de Software. 8ª ed.

Leia mais

UNIVERSIDADE FEDERAL DE PERNAMBUCO. Aplicando a Abordagem GQM para Avaliar o Impacto da Adoção da Metodologia Ágil Scrum

UNIVERSIDADE FEDERAL DE PERNAMBUCO. Aplicando a Abordagem GQM para Avaliar o Impacto da Adoção da Metodologia Ágil Scrum UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2012.1 Aplicando a Abordagem GQM para Avaliar o Impacto da Adoção da Metodologia Ágil Scrum PROPOSTA DE TRABALHO

Leia mais

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Modelo

Leia mais

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins. Bibliografia Quais são os problemas? 4 A sofisticação do software ultrapassou nossa capacidade de construção. 4 Nossa capacidade de construir programas não acompanha a demanda por novos programas. 4 Nossa

Leia mais

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira Projeto de Desenvolvimento Software Extreme Programming Prof.: Ari Oliveira O Extreme Programming (XP) é uma metodologia de desenvolvimento de software que auxilia na produção de sistemas de maior qualidade,

Leia mais

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas Análise de Sistemas Prof. Filipe Arantes Fernandes filipe.arantes@ifsudestemg.edu.br Nome da disciplina:

Leia mais

Processo Unificado (PU) Unified Process

Processo Unificado (PU) Unified Process Processo Unificado (PU) Unified Process 10 de junho de 2011 Adonai Canêz One comment Introdução O Processo Unificado (PU) surgiu para realizar o desenvolvimento de software visando a construção de sistemas

Leia mais

Engenharia de Software II

Engenharia de Software II Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 07 (rogerio@fct.unesp.br) Conceitos Básicos do Rational Unified

Leia mais

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

RUP RATIONAL UNIFIED PROCESS CONCEITOS CHAVES. Prof. Fabiano Papaiz IFRN RUP RATIONAL UNIFIED PROCESS CONCEITOS CHAVES Prof. Fabiano Papaiz IFRN Conceitos Chaves do RUP Fases Iterações Disciplinas (ou Workflow / Fluxo de Trabalho) Papéis Atividades / Tarefas Artefatos / Produtos

Leia mais

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP

METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP Tecnologia em Análise e Desenvolvimento de Sistemas METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP Definição, aplicações, vantagens e desvantagens Marcelo Buratti de Freitas Vitor Matheus Buratti

Leia mais

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROF. MSC. EMILIANO MONTEIRO

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROF. MSC. EMILIANO MONTEIRO PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROF. MSC. EMILIANO MONTEIRO CONTEÚDO Conceitos básicos Caracterização de um processo Estágios básicos Linha do tempo Cascata Espiral Prototipação Modelo-V Orientado

Leia mais

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software Engenharia de Software Aula 03 Perguntas da Aula 2 Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 12 Março 2012 Inconsistente: perguntei laranjas, respondeu

Leia mais

Análise e Projeto Orientado a Objetos

Análise e Projeto Orientado a Objetos Análise e Projeto Orientado a Objetos Contextualizando Por que Análise e Projeto? Análise versus Projeto Análise e Projeto OO Processo de Desenvolvimento de Software Alguns Processos de Desenvolvimento

Leia mais

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome: ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Estudos Disciplinares Campus: Data: / / Nome: RA: Turma: Questão 1: Assinale a função correta de engenharia de requisitos:

Leia mais

Modelos de Gestão de Projetos

Modelos de Gestão de Projetos Modelos de Gestão de Projetos Gestão de Projetos Tradicionais Criados para situações de baixo risco e incertezas, já existe conhecimento sobre o que será desenvolvido, o escopo envolvido e o objetivo proposto

Leia mais

Engenharia de Software Processo de Desenvolvimento de Software

Engenharia de Software Processo de Desenvolvimento de Software Engenharia de Software Processo de Desenvolvimento de Software Prof. Elias Ferreira Elaborador por: Prof. Edison A. M. Morais Objetivo (1/1) Conceituar PROCESSO E CICLO DE VIDA, identificar e conceituar

Leia mais

Problemas e Práticas Recomendadas no Desenvolvimento de Software

Problemas e Práticas Recomendadas no Desenvolvimento de Software Problemas e Práticas Recomendadas no Desenvolvimento de Software Objetivos deste módulo Levantar problemas enfrentados na prática do desenvolvimento de software Discutir boas práticas para o desenvolvimento

Leia mais

Disciplina - Requisitos. Grupo Yuni Luiz Eduardo Káthia

Disciplina - Requisitos. Grupo Yuni Luiz Eduardo Káthia Disciplina - Requisitos Grupo Yuni Luiz Eduardo Káthia RUP(Rational Unified Process) 1. Introdução. 2. Introdução a disciplinas no RUP. 3. Requisitos. 4. Gerenciamento de Requisitos. 5. Relação com outras

Leia mais

Processo de Desenvolvimento de Software

Processo de Desenvolvimento de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático desta aula Fases do Processo. Ciclo de vida do processo. Processo Unificado Orientado por Casos de Uso, surgiu para realizar o

Leia mais

Processos Ágeis de Desenvolvimento de Software

Processos Ágeis de Desenvolvimento de Software Processos Ágeis de Desenvolvimento de Software -Focono XP - Rodrigo Rebouças de Almeida rodrigor@rodrigor.com Processo Conjunto de atividades ordenadas, restrições e recursos que produzem um resultado

Leia mais

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua

Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua Modelagem de Processos de Negócio Prof.: Clarindo Isaías Pereira da Silva e Pádua Gestus Departamento de Ciência da Computação - UFMG Bibliografia Eriksson, H-E; Penker, M. Business Modeling with UML:

Leia mais

Desenvolvimento Ágil de Software

Desenvolvimento Ágil de Software DCC / ICEx / UFMG Desenvolvimento Ágil de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Agenda Métodos ágeis Histórico e Motivação Manifesto ágil Desenvolvimento dirigido a planos e ágil

Leia mais

Introdução ao RUP Rational Unified Process

Introdução ao RUP Rational Unified Process Introdução ao RUP Rational Unified Process UML Diagramas de Classes v.1.1, João Pascoal Faria, 2001 1 O que é Um processo (de engenharia) de software é a definição de um conjunto completo de actividades

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE Curso: Sistemas de Informação Profª: Janaide Nogueira ENGENHARIA DESOFTWARE APRESENTAÇÃO Formação Técnica: Informática(IFCE-Campus Tianguá-CE) Secretária Escolar(FDR) Graduação:

Leia mais

Processos de. Desenvolvimento de Software

Processos de. Desenvolvimento de Software Processos de Desenvolvimento de Software O processo de software Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento de um sistema de software

Leia mais

Análise de Sistemas. Aula 5

Análise de Sistemas. Aula 5 Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles

Leia mais

Paradigmas de Software

Paradigmas de Software Paradigmas de Software Objetivos Introdução aos paradigmas de software. Descrição de modelos genéricos e sua aplicabilidade. Descrição dos processos de requisitos, desenvolvimento, teste e evolução. Modelo

Leia mais

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix Introdução A produção de Software é uma atividade build and fix. 1 Introdução build 2 Introdução fix 3 1 Introdução 4 P s Só pessoas motivadas e comprometidas com o projeto garantem o respectivo sucesso;

Leia mais

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno PDS Aula 1.6 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Tipos de Modelos Modelo em Cascata; Prototipação; RAD; Modelo Incremental; Desenvolvimento Evolucionário; Desenvolvimento

Leia mais

Processos de Software

Processos de Software Processos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos profs. Márcio Cornélio, Vinicius

Leia mais

1.1. Melhoria Contínua

1.1. Melhoria Contínua 1 Introdução Um dos desafios enfrentados pela Engenharia de Software é o de criar instrumentos para que um produto de software possa ser desenvolvido com qualidade e de forma eficiente, consumindo o mínimo

Leia mais

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema. Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Ciclo de Vida - Fluxos Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre

Leia mais

Metodologias Ágeis de Desenvolvimento. Fernando Trinta

Metodologias Ágeis de Desenvolvimento. Fernando Trinta Metodologias Ágeis de Desenvolvimento Fernando Trinta Contextualização A Engenharia de software vêm recorrentemente enfrentando o cenário onde... as aplicações são cada vez mais complexas... o tempo de

Leia mais

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS Prof. Fabiano Papaiz IFRN O RUP recomenda as seguintes práticas que devem ser utilizadas no desenvolvimento de um software: 1. Desenvolver de forma iterativa

Leia mais

APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA

APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA APLICAÇÃO DA ENGENHARIA DE REQUISITOS E ESPECIFICAÇÃO DE REQUISITOS NA IDENTIFICAÇÃO DE ESCOPO DE SISTEMA Guilherme de Souza Ferreira Discente do curso Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam: Prof. Edson dos Santos Cordeiro 1 Tópico: Objetivo: Introdução a Ciclo de Vida do Software Conhecer os principais conceitos relacionados a ciclo de vida do software. Bibliog. Base: McCONNEL, Steve. Rapid

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE EMENTA ENGENHARIA DE SOFTWARE DISCIPLINA: Estrutura e Fluxo de Informação EMENTA: A disciplina Estrutura e Fluxo de Informação se propõe a capacitar o aluno sobre os fundamentos da Gestão da Informação

Leia mais

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno

PDS. Aula 1.5 Modelos de Processo. Prof. Dr. Bruno Moreno PDS Aula 1.5 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Tipos de Modelos Modelo em Cascata; Prototipação; RAD; Modelo Incremental; Desenvolvimento Evolucionário; Desenvolvimento

Leia mais

Reuso de Software Aula Maio 2012

Reuso de Software Aula Maio 2012 Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Componentes Modelos de Componentes

Leia mais

RATIONAL UNIFIED PROCESS RUP

RATIONAL UNIFIED PROCESS RUP RATIONAL UNIFIED PROCESS RUP Criado na década de 90 (a partir do Objectory [ver Jacobson, 1990] e utilizando os conceitos do Modelo em Espiral [ver Boehm, 1988]) como alternativa para resolução dos problemas

Leia mais

Halison Miguel Edvan Pontes

Halison Miguel Edvan Pontes Halison Miguel Edvan Pontes Apresentação Surgimento; Conceitos; Características; Elementos Básicos; Estrutura; Disciplina. Surgimento O Processo Unificado Aberto, do inglês Open Unified Process (OpenUP)

Leia mais

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

Análise e Projeto Orientados a Objetos Professora: Elisa Yumi Nakagawa PAE: Cristiane Aparecida Lana 2 semestre de 2015 Professora: Elisa Yumi Nakagawa PAE: Cristiane Aparecida Lana 2 semestre de 2015 Agenda Modelos de Processos de Software Desenvolvimento Iterativo Incremental Processo Unificado PU Rational Unified Process

Leia mais

Modelos Prescritivos de Processo

Modelos Prescritivos de Processo "Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE." Engenharia de Software Modelos Prescritivos de Processo Givanaldo Rocha de Souza givanaldo.rocha@ifrn.edu.br http://docente.ifrn.edu.br/givanaldorocha

Leia mais

PROCESSO DE SOFTWARE

PROCESSO DE SOFTWARE PROCESSO DE SOFTWARE Allan Senna Costa dos Santos Discente do Curso Tecnologia em Análise e Desenvolvimento de Sistemas Faculdades Integradas de Três Lagoas (AEMS) Jhonatan Ricardo Ferraris da Silva Discente

Leia mais

Engenharia de Software II

Engenharia de Software II Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Engenharia de Software II Aula 04 (rogerio@fct.unesp.br) 2 Conteúdo: Parte 1: Gerenciamento

Leia mais

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje 1 Introdução Testar é o conjunto de tarefas ou passos executados para verificar se um produto ou serviço atende à sua proposta. Dessa forma, a execução de testes em um programa contribui para a melhoria

Leia mais

Desenvolvimento de Projetos

Desenvolvimento de Projetos Desenvolvimento de Projetos Aula 1.3 Modelos de Processo Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br Tipos de Modelos Modelo em Cascata; Prototipação; Modelo Incremental; Desenvolvimento Evolucionário;

Leia mais

Desenvolvimento ágil de software

Desenvolvimento ágil de software Desenvolvimento ágil de software Prof. Cristiane Aparecida Lana slide 1 Bibliografia utilizada: Mais opções visite meu site, clique aqui para acessá-lo. slide 2 2011 Pearson 2011 Pearson Prentice Prentice

Leia mais