Baixe o app para aproveitar ainda mais
Prévia do material em texto
7ºAula Objetivos de aprendizagem Ao término desta aula, vocês serão capazes de: entender os conceitos da Rational Unified Process saber os principais papéis e os principais artefatos do RUP entender o ciclo de vida do RUP Olá pessoal, como vão indo seus estudos? Prosseguindo nossos estudos sobre as metodologias de desenvolvimento de software, vamos ver um dos processos mais consagrados da Engenharia de Software, a Rational Unified Process – RUP. Essa metodologia possui mais de vinte anos de existência, mas mesmo com todo esse tempo e consolidada na indústria de software, é um processo de constante evolução, sendo que, em 2006, passou por uma revisão que adequava essa metodologia ao Manifesto ágil. Veremos aqui uma introdução sobre essa metodologia. Se tiverem qualquer dúvida, entrem em contato via quadro de avisos, certo? Vamos lá? Bons estudos! 191 48Met. para de Desenvolvimento de Software Seções de estudo 1 - Introdução 1. Introdução 2. Disciplinas do RUP 3. Papéis 4. Artefatos 5. Ciclo de Vida do RUP A Rational Unified Process, também denominado de RUP ou apenas de UP, é um processo consolidado da Engenharia de Software, criado pela Rational Corporation. Ele oferece uma série de práticas de desenvolvimento de software, onde pode ser adaptado de acordo com a necessidade das empresa. O RUP, além de ser um processo, é tratado pela Rational Corporation como um produto. Ele é associado a diversos produtos da companhia, como o Rational Method Composer e o Rational Rose UML. Porém, o RUP pode ser usado sem o emprego dessas ferramentas. A base do processo no RUP é o iterativo/incremental, como é visto nos Métodos Ágeis. O RUP surgiu como uma fusão de diversos processos e práticas criadas pela Rational e por outras empresas que a Rational comprou nas décadas de 1980 e 1990. Porém, apenas dois processos formaram a base para a criação do RUP: a Rational Approach e a Objectory Process (criado pela Objectory AB, adquirida pela Rational em 1995). Além disso, o RUP prega o uso dos diagramas UML, que como você viu na aula 3, foram criados por funcionários da própria Rational. Em 1998, foi criada a primeira versão do processo sob o atual nome de Rational Unified Process. Em 2003, a IBM comprou a Rational Corporation, tornando-a uma divisão da sua empresa. 1.1 - RUP e o Manifesto Ágil Apesar de o RUP ter sido criado bem antes do Manifesto Ágil, o RUP tem algumas semelhanças com as metodologias ágeis. A primeira delas, como já falamos, é que o processo se estrutura em iterações, onde em cada iteração é seguida uma fase do ciclo de vida dessa metodologia. Podemos também citar como semelhança a racionalização do uso da documentação, como descreve Booch, Rumbaugh e Jacobson (2012): As atividades do Rational Unified Process dão ênfase à criação e manutenção de modelos no lugar de documentos impressos. Os modelos - principalmente aqueles especificados com a utilização da UML - proporcionam representações semanticamente ricas de software em desenvolvimento. Essas representações podem ser visualizadas de várias maneiras e as informações representadas podem ser capturadas instantaneamente e controladas eletronicamente. O caráter racional subjacente ao foco em modelos no lugar de documentos impressos, empregado pelo Rational Unified Process, consiste em minimizar a sobrecarga associada à geração e manutenção de documentos e maximizar o conteúdo das informações relevantes (BOOCH, RUMBAUGH, Além disso, na versão 7.0, lançada em 2006, foram realizadas várias mudanças no processo para se adaptar ao Manifesto Ágil. A principal revisão foi a troca da seção “Melhores Práticas do RUP” pela seção “Princípios Chave para Desenvolvimento Orientado para Negócios”, que abordam os seguintes pontos: Adaptar o processo: Afirma que deve ser feito um dimensionamento correto do processo de desenvolvimento e seus aspectos relacionados, como Equilibrar as prioridades dos investidores: Prega um gerenciamento de requisitos de uma forma efetiva, priorizando de forma efetiva as necessidades de negócios e investidores. A priorização é uma Colaborar através de equipes: Assim como diz o primeiro valor do Manifesto Ágil, prega uma comunicação efetiva das equipes de desenvolvimento, através de uma adequada organização das equipes e do processo, criando um ambiente de sinergia e Demonstrar valor iterativamente: Informa da necessidade do uso do desenvolvimento iterativo, para que o processo sempre receba o feedback dos clientes e que as mudanças sejam sempre bem-vindas Elevar o nível de abstração: Esse princípio prega a elevação do nível de abstração, conseguido por meio da redução da complexidade e da quantidade de documentação necessária ao projeto através da Focalizar continuamente na qualidade: Prega que a qualidade deve ser sempre alcançada e acompanhada durante todo o ciclo de vida do processo, sempre aproveitando as oportunidades de feedback que o ciclo incremental oferece. Vamos ver agora, as disciplinas que o RUP utiliza durante o seu processo. 2 - Disciplinas do RUP O RUP estrutura suas atividades em disciplinas, que são relacionadas a uma grande área de responsabilidade do projeto. O RUP estrutura suas atividades em nove disciplinas, que são: Se encarrega em 2. Requisitos: Agrupa as atividades relacionados à 3. Análise e Design: Tem como objetivo transformar os requisitos em um design de operação do sistema, descrevendo 4. Implementação: Agrupa as atividades relacionadas à codificação dos requisitos, criação dos testes de aceitação e 5. Teste: Encarrega-se de todos os testes do sistema, da detecção de falhas na documentação do sistema e da verificação se as funções do software correspondem aos 192 49 6. Implantação (chamado também de Entrega): Tem como foco a entrega do software para o cliente, através da 7. Gerência da Configuração e Mudanças: Cuida do versionamento do sistema e as modificações, mantendo a integridade dos artefatos do projeto e das atividades de 8. Gerenciamento de Projetos: Gerencia todo o projeto, através do planejamento, monitoramento, execução e 9. Ambiente: Cuida das ferramentas que serão utilizadas para implementar o software, ou seja, cuida de toda a infraestrutura necessária. 3 - Papéis O RUP específica diversos papéis. Cada papel, especifica diversas responsabilidades, podendo ser representado por uma ou mais pessoas, e cada pessoa pode acumular um ou mais papéis, dependendo da situação do projeto. Cada papel está ligado a uma disciplina da metodologia, de acordo com a sua responsabilidade. Assim, o RUP tem como papéis: Descobre todos os casos de uso do Detalha um conjunto de casos de uso de Analista de Sistemas (Requisitos): Descobre todos Especificador de Requisitos (Requisitos): Detalha Arquiteto de Software (Análise e Design): Decide Designer (Análise e Design): Detalha a análise e o Integrador (Implementação): Cria o plano de build, onde mostra quais classes serão integradas no Implementador (Implementação): Codifica o sistema, podendo ser um conjunto de classes ou um Gerente de Testes (Testes): Gerencia a qualidade de um processo de testes, para que o procedimento Analista de Testes (Testes): Decide quais aspectos Designer de Testes (Testes): Decide quais testes serão feitos de forma manual e quais serão Testador (Testes): Gerente de Implantação (Implantação): Escritor Técnico, Desenvolvedor de Cursos, Artista Gráfico (Implantação): Criam materiais diversos para o processo de implantação, por exemplo: Gerente de Projetos (Gerenciamento de Projetos): Ele é encarregado de criar o caso de negócios, decide os rumos do projeto, planeja e gerencia os riscos de Engenheiro de Processos (Ambiente): Especifica Especialista de Ferramentas (Ambiente): Cria Gerente de Configuração (Gerência de Configuração e Mudança): Configura o gerenciamento de mudanças, políticas e plano, cria uma unidade de implantação, reporta o statusda Gerente de Controle de Mudanças (Gerência de Configuração e Mudança): Estabelece o processo de controle de mudanças e gerencia pedidos de mudanças do sistema. Não se assuste pela variedade de papéis que a metodologia RUP especifica, pois você não é obrigado a usar todos os papéis, pois o processo prega a adaptação como um princípio chave. A seguir, você estudará os artefatos que a metodologia RUP utiliza. 4 - Artefatos São os produtos de trabalho que são gerados durante o processo, podendo servir de entradas para determinadas atividades do processo. Podem servir de referência para consultas futuras ou para entregar ao cliente como parte do acordo de desenvolvimento de software. O principal tipo de artefato existente na metodologia RUP são os modelos, que consistem em uma simplificação da realidade, para auxiliar na compreensão do sistema que está sendo desenvolvido. Segundo Booch, Rumbaugh e Jacobson (2012), o conjunto desses modelos especifica todas as decisões importantes para visualização, especificação, construção e documentação de um sistema complexo de software. Os artefatos que a Rational Unified Process utilizam, segundo Booch, Rumbaugh e Jacobson (2012), são: Estabelece : Estabelece o Modelo de caso de uso: Estabelece os requisitos Modelo de análise: Estabelece um projeto Modelo de projeto: Estabelece o vocabulário do Modelo de dados: Indica a representação dos dados que serão armazenados em um banco de dados comum ou em outros repositórios, ele é um Modelo de implantação: Especifica qual é a Modelo de implementação: Indica as partes utilizadas para montar o sistema físico. Para finalizarmos nossos estudos, na próxima seção falaremos sobre o ciclo de vida do RUP. 193 50Met. para de Desenvolvimento de Software 5 - Ciclo de Vida do RUP O ciclo de vida do RUP tem três divisões de tempo: Iterações, Fases e Ciclos de Desenvolvimento. Estudaremos sobre eles agora. 5.1 - Iterações É a menor unidade de tempo em que o ciclo de vida é desenvolvido. Envolve atividades em algumas disciplinas, tem um tempo curto e predefinido (normalmente, de uma a duas semanas). Kruchten (2003) elenca as características para que uma iteração seja considerada exitosa: 2. Uma iteração tem uma capacidade planejada 3. Uma iteração é concluída dentro de um marco menor, onde o resultado dessa iteração é avaliado de acordo 5. Durante as iterações, o sistema é integrado e testado como um todo. Em cada iteração é executado um ciclo completo de desenvolvimento, que terminará com uma parte do produto a ser desenvolvido, que progredirá iteração após iteração. 5.2 - Fases A unidade intermediária do ciclo de vida do RUP são as fases, que “é um período de tempo entre dois importantes marcos de progresso do processo em que um conjunto bem definido de objetivos é alcançado, artefatos são concluídos e decisões são tomadas em relação à passagem para a fase 489). O RUP estrutura o projeto em quatro fases, que são: 1. Concepção (Inception): Nessa fase é estabelecida a visão para o sistema e o escopo do projeto é delimitado, através dos casos de negócio, requisitos de alto nível (ou seja, não possuem detalhes) e o plano de projeto inicial (artefato que descreve os critérios de sucesso, a avaliação de riscos, a estimativa dos recursos necessários e um plano para as iterações). Esses artefatos são usados para avaliar qual seria a utilidade do sistema, para que seja definido se o projeto é viável ou não. Se for definido que sim, o projeto avança para 2. Elaboração (Elaboration): Nessa fase, o problema do sistema é compreendido, a maioria dos requisitos são determinados e é criada a arquitetura do sistema que será desenvolvido. No final, é decidido se o projeto é viável para 3. Construção (Construction): Nessa etapa, o sistema é construído e testado em uma série de iterações. Para isso, o restante dos requisitos são entendidos e os critérios de aceitação são especificados. Ao final, é decidido se o software 4. Transição (Transition): É feita a entrega do sistema aos usuários. Nessa etapa, podem ser ministrados treinamentos e workshops para a apresentação do sistema e a resolução de dúvidas com os clientes e usuários. Esta etapa é chamada de transição, pois ao final da entrega do sistema, é avaliado se os objetivos do projeto foram alcançados, quais foram às lições aprendidas para serem seguidas nos próximos projetos e é decidido se é necessário iniciar um novo ciclo de desenvolvimento (veremos a seguir sobre isso). No RUP, cada fase trabalha mais fortemente com uma ou mais disciplinas, de acordo com os seus objetivos. Por exemplo, a fase de construção, cujo objetivo é o desenvolvimento, lida muito com as atividades relacionadas à disciplina de implementação. Para os momentos em que uma disciplina é mais exigida. Por causa das 5.3 - Ciclos de Desenvolvimento É o período de tempo em que o projeto passa pelas quatro fases do ciclo de vida do RUP, e é encerrado com um software pronto, funcionando e disponibilizado aos clientes. Na metodologia RUP, um software evolui para a sua próxima geração através de uma iteração completa nas quatro fases. Encerramos aqui a nossa introdução sobre a Rational Unified Process. Na próxima (e última) aula, estudaremos uma das metodologias ágeis mais populares: O framework Scrum. Retomando a aula 194 51 1. Introdução A Rational Unified Process (RUP) é um processo mantido pela Rational Corporation, uma divisão da IBM. Ela se originou de diversos outros processos. Possui semelhanças com vários métodos ágeis, como o desenvolvimento incremental e a racionalização da documentação. Em 2006, passou por uma revisão, para que se torne mais alinhada ao Manifesto Ágil. 3. Disciplinas do RUP A RUP estrutura suas atividades em nove disciplinas, que são: Modelagem de Negócios, Requisitos, Análise e Design, Implementação, Teste, Implantação (chamado também de Entrega), Gerência da Configuração e Mudanças, Gerenciamento de Projetos e Ambiente. 3. Papéis A RUP especifica uma variedade de papéis, onde cada papel possui suas atribuições e sua disciplina que corresponde a esse papel. Vale lembrar que o gerente pode escolher os papéis que o projeto mais necessitar. 4. Artefatos Assim como nos papéis, a RUP especifica uma série de artefatos. O principal tipo desses artefatos são os modelos, que consistem em uma simplificação da realidade, para auxiliar na compreensão do sistema que está sendo desenvolvido. 5. Ciclo de Vida do RUP O ciclo de vida da RUP se estrutura em iterações. Em cada iteração há uma série de atividades que são feitas. Cada iteração faz parte de uma fase, e em cada fase são estabelecidos marcos no projeto. As fases do RUP são Iniciação, Elaboração, Construção e Transição. A evolução de um software consiste em ciclos que passam nessas quatro fases. ANICHE, Mauricio. Test-Driven Development: Teste e Design no Mundo Real. São Paulo: Casa do Código, 2014a. SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson Addison Wesley, 2014. PRESSMAN, Roger S. Engenharia de software : uma BASSI, Dairton. Programação Extrema (XP). In: Métodos Ágeis para Desenvolvimento de Software. Porto Alegre: Bookman, 2014. p. 37–57. Cap. 4 TELES, Vinícius Manhães. Extreme Programming: Aprenda como encantar seus usuários desenvolvendo software com agilidade e alta qualidade. São Paulo: Novatec Editora, 2014. WILDT, Daniel et. al. eXtreme Programming: Práticas para o dia Vale a pena Vale a pena ler ANICHE, Maurício. TDD. [S.l.:] Caelum, 2014b. Disponível em: <http://tdd.caelum.com.br/>. Acesso em: 06 out. 2017. GOMES, André Faria. Programação em Par. [S.l.:] André Faria Gomes, 2008. Disponível em: <http://blog.andrefaria. com/programacao-em-par>. Acesso em: 06 out. 2017. MEDEIROS, Higor. Introdução ao Extreme Programming (XP). [S.l.:] Devmedia, 2013. Disponível em: <http://www. devmedia.com.br/introducao-ao-extreme-programming- xp/29249>. Acessoem 06 out. 2017. FONSECA, Daniel. Conceitos básicos sobre Metodologias Ágeis para Desenvolvimento de Software (Metodologias Clássicas x Extreme Programming) [S.l.:]. DevMedia, s.d. Disponível em: <http://www. devmedia.com.br/conceitos-basicos-sobre-metodologias-ageis- para-desenvolvimento-de-software-metodologias-classicas-x- extreme-programming/10596>. Acesso em: 06 out. 2017. TELES, Vinícius Manhães. Programação em Par | XP. [S.l.:] DesenvolvimentoAgil.com.br, 2006. Disponível em: <http:// www.desenvolvimentoagil.com.br/xp/praticas/programacao_ par>. Acesso em: 06 out. 2017. Vale a pena acessar a dia no desenvolvimento ágil de software. São Paulo: Casa do Código, s.d.. RUP 7.0 aos valores do movimento ágil. Revista E-Tech: Tecnologias para Competitividade Industrial-ISSN-1983-1838, v. 1, n. 1, p. 4-17, 2008. Minhas anotações 195
Compartilhar