PROCESSO DE DESENVOLVIMENTO DE SOFTWARE E SEU USO NO EXÉRCITO BRASILEIRO



Documentos relacionados
Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

O Processo Unificado

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Processos de gerenciamento de projetos em um projeto

PROVA DISCURSIVA (P )

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

3. Fase de Planejamento dos Ciclos de Construção do Software

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Engenharia de Software

METODOLOGIA DE PROMOÇÃO DA SUSTENTABILIDADE PELO GERENCIAMENTO DE PROJETOS

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Concurso da Prefeitura São Paulo. Curso Gestão de Processos, Projetos e Tecnologia da Informação. Tema: Gestão de Projetos - Conceitos Básicos

TRANSIÇÃO DAS CERTIFICAÇÕES DOS SISTEMAS DE GESTÃO DA QUALIDADE E SISTEMAS DE GESTÃO AMBIENTAL, PARA AS VERSÕES 2015 DAS NORMAS.

Apresentar os conceitos básicos da metodologia de desenvolvimento Processo Unificado, utilizando como aporte o Processo Unificado Rational RUP

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI

Processos de Software

Nota Técnica 113/2007 SRD/SRE/ANEEL Metodologia para Projeção de Investimentos para o Cálculo do Fator X Contribuição da Audiência Publica 052/2007

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Introdução ao Processo Unificado (PU)

ENGENHARIA DE SOFTWARE I

RUP Rational Unified Process

Conjunto de recursos (humanos e materiais), processos e metodologias estruturados de forma semelhante à indústria tradicional.

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Projeto 914 BRA PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 03

A NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE

Gerenciamento de Projetos Modulo VIII Riscos

Projeto de inovação do processo de monitoramento de safra da Conab

Gerência de Projetos Prof. Késsia Rita da Costa Marchi 3ª Série

2 Engenharia de Software

Experiência de contratação de empresa de contagem de Pontos de Função para auxílio na gestão de contrato administrativo

Gerenciamento de Projetos Modulo III Grupo de Processos

Por que sua organização deve implementar a ABR - Auditoria Baseada em Riscos

A Disciplina Gerência de Projetos

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini

DESENVOLVENDO O SISTEMA

ESTRUTURA DE GERENCIAMENTO DO RISCO OPERACIONAL

Gerenciamento de Projetos Modulo IX Qualidade

PROCEDIMENTOS DE AUDITORIA INTERNA

3 Qualidade de Software

POLÍTICA DE GESTÃO DE RISCO - PGR

Planejamento e Gestão Estratégica

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

4.1. UML Diagramas de casos de uso

Ouvir o cliente e reconhecer o problema: ingredientes essenciais à gestão de projetos

Política de Gestão de Riscos das Empresas Eletrobras

Questionário de Avaliação de Maturidade Setorial: Modelo PRADO-MMGP

ITIL v3 - Operação de Serviço - Parte 1

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Política de Gerenciamento de Risco Operacional

REQUISITOS DE SISTEMAS

Visão Geral Parte 1. O que é engenharia de software?

POLÍTICA DE GESTÃO DE RISCOS DAS EMPRESAS ELETROBRAS

Anexo IX METODOLOGIA DE DESENVOLVIMENTO DE SOFTWARE. 1. FINALIDADE. O objetivo deste documento é apresentar uma visão resumida do processo RUP-BNB.

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

XX SNPTEE SEMINÁRIO NACIONAL DE PRODUÇÃO E TRANSMISSÃO DE ENERGIA ELÉTRICA GRUPO - IX GRUPO DE ESTUDO DE OPERAÇÃO DE SISTEMAS ELÉTRICOS - GOP

Utilização da modelagem UML em um sistema de gerenciamento de uma franquia do setor de alimentação

Eduardo Bezerra. Editora Campus/Elsevier. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição

PRESIDÊNCIA DA REPÚBLICA SECRETARIA DE DIREITOS HUMANOS PROJETO BRA/10/007

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Rational Unified Process

RUP Rational Unified Process

UNIVERSIDADE PAULISTA UNIP INSTITUTO DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE ENGENHARIA COMPUTAÇÃO

MINISTÉRIO DA EDUCAÇÃO FUNDO NACIONAL DE DESENVOLVIMENTO DA EDUCAÇÃO DIRETORIA DE GESTÃO, ARTICULAÇÃO E PROJETOS EDUCACIONAIS

Processos de Gerenciamento de Projetos. Planejamento e Controle de Projetos 5 TADS FSR. Processos

Resolução da lista de exercícios de casos de uso

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

O modelo unificado de processo. O Rational Unified Process, RUP.

REPRESENTAÇÃO DE REQUISITOS VARIÁVEIS COM UML, SEGUINDO O MÉTODO ICONIX

METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS

Processo Unificado (RUP)

Categorias Temas Significados Propostos

Gerenciamento de Riscos no RUP. Hermano Perrelli

GERÊNCIA DE PROJETOS DE SOFTWARE. Introdução

CARTA DE SÃO PAULO SOBRE SAÚDE BUCAL NAS AMÉRICAS

Sessão 4: Avaliação na perspectiva de diferentes tipos de organizações do setor sem fins lucrativos

MÉTODOS E TÉCNICAS DE AUTOAPRENDIZAGEM

A efetividade da educação à distância para a formação de profissionais de Engenharia de Produção

Project Management Body of Knowledge

Gestão de impactos sociais nos empreendimentos Riscos e oportunidades. Por Sérgio Avelar, Fábio Risério, Viviane Freitas e Cristiano Machado

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Qualidade de Software

Engenharia de Software I

Manual de Risco Operacional

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Questionário de Avaliação de Maturidade Setorial: Modelo de Maturidade Prado-MMGP

Auditoria de Segurança e Saúde do Trabalho da SAE/APO sobre Obra Principal, Obras Complementares, Obras do reservatório e Programas Ambientais

APLICAÇÃO DA METODOLOGIA MGD TURMA PILOTO NA INFRAERO

UM SISTEMA WEB PARA TORCEDORES EM CAMPEONATOS ESPORTIVOS ESTUDANTIS

TÉCNICAS DE PROGRAMAÇÃO

A Análise dos Custos Logísticos: Fatores complementares na composição dos custos de uma empresa

Transcrição:

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE E SEU USO NO EXÉRCITO BRASILEIRO LAURO DE SOUZA SILVA * Resumo: O presente trabalho versa sobre a importância de um processo de desenvolvimento padronizado na instituição e suas principais vantagens e problemas de não se utilizá-lo. Apresenta também uma proposta para a utilização e padronização de um processo de desenvolvimento no Exército Brasileiro. É proposto o uso do processo de desenvolvimento Rational Unified Process (RUP). São abordadas as principais características e práticas do RUP e também as particularidades de modo generalista das diversas Organizações do Exército. A partir desse levantamento sugere-se uma configuração do RUP objetivando seu uso no Exército de acordo com a unidade e tamanho de projeto de software ali desenvolvido. Palavras-chave: Processos de Desenvolvimento, RUP, Engenharia de Software, Análise de Sistemas, Exército Brasileiro Abstract: The current paper talks about the importance of a development process standardized at the institution and its advantages and problems that occur when it's not used. It also presents a proposal to the utilization and standardization of a development process at the Brazilian Army. It's proposed the use of the Rational Unifed Process (RUP) development process. The main RUP characteristics and practices are mentioned and also the particularities in a general way of the several Army Organizations. From this data collect we can suggest a RUP configuration that aims its use at the Brazilian Army according to the unit and project size of the software developed there. Keywords: Development Processes, RUP, Software Engineering, System Analysis, Brazilian Army 1 Introdução O trabalho de desenvolvimento de software tem como objetivo obter um produto final que atenda os requisitos propostos em sua concepção. Para atender esse objetivo tem-se criado diversas metodologias de desenvolvimento. O Exército Brasileiro, ao longo dos anos tem também buscado a evolução tecnológica. Na área de informática e computação criou o Centro de Desenvolvimento de Sistema, os Centros de Telemática de Área e os Centros de Telemática. Apesar dos esforços realizados ainda não existe uma metodologia de desenvolvimento padronizada na Força. Neste trabalho foi realizado uma revisão bibliográfica sobre o tema, abordando o processo de desenvolvimento Rational Unified Process (RUP) que pode ser utilizado nas diversas Organizações Militares. Partindo de fatos simples como a relação entre os processos de desenvolvimento e recursos humanos disponíveis e o escopo ou grandeza do projeto, tem-se por objetivo chegar a uma conclusão generalista e ampla para a utilização do RUP pelo Exército Brasileiro. 2 Processo de Desenvolvimento O termo crise do software tem se tornado popular nos últimos anos, no entanto, foi utilizado pela primeira vez em 1969 para * Tecnólogo em Informática e Especialista em Projeto e Desenvolvimento de Sistemas Orientados a Objetos. Escola de Administração do Exército (EsAEx), Salvador/BA - email: laurodesouza@gmail.com

descrever as dificuldades e as conseqüentes frustrações que o desenvolvimento e a manutenção de softwares trouxeram, e ainda trazem, para as grandes empresas. Desde então, vem-se procurando estratégias efetivas para combater esses problemas. Com o surgimento da engenharia de software onde o software é encarado como um produto houve um considerável melhora na área pois foram adquiridos conhecimento técnico e científico da área industrial. A partir daí iniciou-se o uso dos processos também no desenvolvimento, como coloca ORTENCIO(1992): A Adoção desta analogia permitiu que um grande acervo de conhecimento técnico e científico da área industrial fosse incorporado e adaptado para produção de software. Até bem pouco tempo, a ênfase tem sido na conscientização e emprego de técnicas, ferramentas, boas práticas, demandando portanto uma metodologia que cada organização adota ou desenvolve, dedicando um esforço hercúleo para implantar, adaptar e consolidar. Um processo de desenvolvimento de software é um conjunto de atividades ordenadas com a finalidade de obter um produto de software. Engloba atividades de especificação, projeto, implementação e testes, caracterizando-se pela interação entre pessoas, ferramentas e métodos. O processo estabelece também como sistematizar e controlar as atividades relacionadas à construção de sistemas computacionais. Um bom processo deve ser estruturado em disciplinas que possibilitem o gerenciamento dos aspectos mais críticos de um projeto de software onde cada disciplina focaliza uma determinada complexidade do processo e define uma abordagem de como organizar, conduzir e avaliar os procedimentos relacionados a estes aspectos críticos, minimizando os riscos associados a um projeto de software (BARTIE,2006). A utilização de um processo de desenvolvimento de software fornece uma padronização em todas as etapas de desenvolvimento. Facilitando, dessa forma, a comunicação e o entendimento entre os envolvidos no processo e contribuindo para o intercâmbio de conhecimento e a otimização das tarefas. 3 Desenvolvimento de Software no EB O Exército Brasileiro não tem uma tradição em pesquisa computacional como a que é feita nas forças dos países desenvolvidos. Grande parte do seu orçamento é destinado a manutenção da atividade fim da Força, mais de 80% é destinado a despesas com pessoal, o que dificulta ou inviabiliza o investimento maciço em pesquisas. Porém é importante ressaltar o grande valor da pesquisa computacional no meio militar, pode ser citado como frutos dessas pesquisas a rede mundial de computadores (internet) e o modelo CMMI. Contudo, a pesquisa tecnológica brasileira, conforme diretriz do governo federal, deve focar-se no domíno das tecnologias-chave (SOCINFO, 2000, p.8) ou seja, no conhecimento das tecnologias em uso, já desenvolvidas, logo cabe ao Exército utilizar tecnologias e soluções já consagradas. O Exército Brasileiro, possui diversas Organizações Militares espalhadas por todo o Brasil, onde muitas delas desenvolvem para uso nos mais diferentes segmentos sistemas computacionais. Ocorre que muitos desses sistemas são feitos sem seguir qualquer metodologia e não raro encontramos sistemas sem documentação alguma. A quantidade de pessoas disponível para atividades relacionadas ao desenvolvimento também é bastante variada. Existem OM as quais a atividade fim é o desenvolvimento de sistemas e algumas outras as quais o desenvolvimento é uma atividade sazonal. Para efeito de classificação nesse trabalho podemos categorizar as OM

de acordo com a sua participação na área de computação conforme abaixo: de Desenvolvimento: são unidades onde a atividade fim é o desenvolvimento de sistemas computacionais para uso na Força, geralmente são construídos sistemas corporativos. Possui disponibilidade de um efetivo especializado para a atividade. de Suporte: são as OM responsáveis pelo suporte a sistemas implantados na força, possui equipe de desenvolvimento, ocasionalmente desenvolve sistemas para uso regional. Possui algumas pessoas especializadas em desenvolvimento. Comando de área e brigadas: são OM onde existe uma seção de informática, com uma demanda de desenvolvimento pequena, com um efetivo pequeno para desenvolvimento, geralmente comandos militares e brigadas. Unidade: OM geralmente nível batalhão, onde existe uma seção de informática, porém os serviços na área computacional são geralmente voltados ao suporte a redes e computadores. Raramente são desenvolvidos sistemas, e quando o são é para uso na unidade somente, existem um ou dois militares em condições de executar a tarefa. Existem duas dimensões no RUP, uma espacial, que representam as disciplinas agrupadas por natureza, e a temporal, que representa os aspectos do ciclo de vida a medida que se desenvolve conforme Ilustração 1. Ilustração 1: Gráfico de Baleias Por ser um processo iterativo, ele possibilita a entrega de várias versões do produto, fazendo com que as partes interessadas possam ir validando o sistema a medida que é construído, conforme Ilustração 2. 4 RUP O RUP é um refinamento do Processo Unificado (PU) que é um processo iterativo popular para o desenvolvimento de software visando a construção de sistemas orientados a objetos (LARMAN, 2007, p.46). De acordo com IBM(2000) o RUP oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organização de desenvolvimento. Sua meta é garantir a produção de software de alta qualidade que atenda às necessidades dos usuários dentro de um cronograma e de um orçamento previsíveis. Ilustração 2: Processo Iterativo O RUP, é um processo de desenvolvimento criado pela Rational Software Corporation, adquirida pela IBM, fornece técnicas a serem seguidas pelos membros da equipe de desenvolvimento de software com o objetivo de aumentar a sua produtividade. O RUP foi concebido utilizando o paradigma de orientação a objetos e a notação UML. É um processo considerado pesado e preferencialmente aplicável a grandes equipes de desenvolvimento e a grandes

projetos, porém o fato de ser amplamente customizavel torna possível que seja adaptado para projetos de qualquer escala. Para a gerência do projeto o RUP provê uma solução disciplinada de como assinalar tarefas e responsabilidades dentro de uma organização de desenvolvimento de software. O RUP é, por si só, um produto de software. É modular e automatizado, e toda a sua metodologia é apoiada por diversas ferramentas de desenvolvimento integradas. O desenvolvimento de software efetuado através do RUP é incremental e cada incremento é desenvolvido utilizando-se quatro fases: iniciação, elaboração, construção e transição. A isto se chama ciclo de desenvolvimento. Após a fase de transição, o produto pode voltar a percorrer cada uma das fases, constituindo a fase de evolução, na qual se produz uma nova versão do produto. Na fase Iniciação é realizado um entendimento do problema e da tecnologia através da definição dos casos de uso mais críticos. Ao final, tem-se definido o escopo e riscos e a viabilidade do projeto. Após a iniciação, tem inicio a fase de Elaboração, na qual é descrita a arquitetura do produto, nessa fase são estimados custos e elaborado cronogramas. A fase de Construção é a construção do software propriamente dita, além de código são gerados os planos de teste e documentação. A fase de Transição é onde os treinamentos de usuários são realizados. O conceito de Artefatos definido pelo manual do RUP é são produtos de trabalho finais ou intermediários produzidos e usados durante os projetos (IBM, 2000). Eles são utilizados na captura e transmissão de informações do projeto. Exemplos de artefatos são, documentos, modelos e elementos do modelo. Os artefatos são agrupados em nove conjuntos: Modelagem de negócio; Requisitos; Análise e Design(Projeto); Implementação; Teste; Implantação Gerenciamento do Projeto; Gerenciamento de Configuração e Mudança; Ambiente. O processo RUP é dividido em fluxos de trabalho, descritos abaixo: A Modelagem de negócio provê um entendimento comum entre as partes envolvidas sobre quais os processos de negócio que devem ser apoiados. A modelagem dos processos de negócio é feita através dos casos de uso de negócio. Os Requisitos objetivam capturar as necessidades do cliente para que sejam satisfeitas pelo produto de software que será entregue. Nas fases de iniciação e elaboração, a ênfase será maior neste fluxo de trabalho, pois o objetivo destas fases é o entendimento e a delimitação do escopo do produto de software. Na Análise e projeto, o objetivo é compreender mais precisamente os casos de usos definidos, produzindo um modelo voltado para a implementação. A Implementação é propriamente escrever os códigos de classes e objetos em termos de componentes. O Teste objetiva a realização de casos de testes para atestar se os requisitos foram atendidos. Na Entrega é fechado uma nova versão do produto e entregue ao usuário final. Pode incluir atividades de teste e migração de dados. Outra característica importante do RUP é que os riscos do projeto são maiores nas fases iniciais do projeto, a medida que o projeto caminha o risco tende a ser menor. Dessa maneia é possivel eliminar ou diminuir

os efeitos dos riscos logo no início do projeto reduzindo os custos e evitando o desperdício, a Ilustração 3 demostra essa relação. Ilustração 3: Relação Risco x Tempo 5 Análise de Adequabilidade O RUP por ser altamente customizável pode ser utilizado em qualquer tamanho de projeto. Nesse artigo o autor busca propor uma configuração para utilizar o processo nas mais diversas OM do Exército Brasileiro. Os projetos foram classificados em três tamanhos: Pequenos (P); Médios (M); e Grandes(G). A configuração proposta aqui é somente em nível de artefatos, mantendo o ciclo de desenvolvimento original proposto pelo RUP. As OM também foram classificadas quanto às suas atribuições. desenvolvimento (1); suporte (2); comando de área e brigadas (3); unidade (4) O objetivo é que se utilize um só processo de desenvolvimento em todo Exército, para que se possa ter um protocolo nessa área. Parte-se do pressuposto também que projetos grandes só serão desenvolvidos em OM especificas para isso. Nas OM tipo 4 só serão desenvolvidos projetos pequenos. Foi dado uma maior ênfase nas atividades de requisitos, objetivando para que não se afaste da metodologia proposta pelo RUP, onde os riscos devem ser identificados e mitigados logo no inicio do projeto, dessa forma até mesmo nos projetos pequenos é dado ênfase nesses artefatos. Na Tabela 1 encontra-se uma representação dessa proposta, onde é especificado os tipos de OM definidos no artigo, os conjuntos de artefatos e quais seriam confeccionados dependendo do tamanho do projeto. Modelagem de Negócios Tipo OM Requisitos Análise e Projeto Conjunto de Artefatos Implementação Teste Implantação Gestão de Projeto Gestão de Configuração Ambiente 1 G PMG PMG PMG MG MG MG MG MG 2 PMG PMG PMG MG MG G G G 3 PM PM PM M 4 P P P Tabela 1: Proposta de Adequação Observa-se também que em projetos pequenos os artefatos de teste não são produzidos, porém os testes devem ser realizados durante a atividade de implementação, mas sem produzir artefatos. 5 Conclusão A utilização de um processo é de fundamental importância no desenvolvimento de sistemas. A padronização, um dos principais benefícios da utilização de um processo, é de fundamental importância principalmente em uma instituição do porte do Exército Brasileiro com unidades espalhadas por todo o Brasil. A informática por sua vital importância na atualidade, necessita, no âmbito do Exército Brasileiro, de uma

padronização, assim como a que já é feita em diversas outras áreas da Força. A padronização facilita não só no entendimento do problema, mas também na continuidade dos sistemas já implantados, ou que estão em desenvolvimento. O RUP se destaca por sua flexibilidade, seria possível ao Exército configurar o processo adequando-o as necessidades de cada projeto. Definindo os artefatos que seriam necessários para cada tipo de projeto, os quais poderiam ser categorizados por tamanho. A escolha do RUP neste artigo se deve a sua grande adaptabilidade a diversos tamanhos de projetos. O autor acredita ser esta a realidade do Exército, onde são desenvolvidos desde sistemas de uso por toda a Força até sistemas para uso em nível de uma companhia. Em trabalhos futuros seria interessante o estudo de mecanismos para que o Exército Brasileiro pudesse mensurar o tamanho de seus projetos baseados em experiências anteriores na própria instituição ou um levantamento junto a grandes estatais como o Serviço Federal de Processamento de Dados (SERPRO) e a Informática do Paraná (CELEPAR). E também a definição de modelos para os artefatos que seriam gerados com o RUP. Referencias LARMAN, Craig; Utilizando UML e Padrões Uma Introdução a Análise e ao Projeto Orientado a Objetos e ao Desenvolvimento Interativo. 3ª ed. Porto Alegre: Bookman, 2006. BRASIL, Sociedade da Informação no; Livro Verde. Brasília: Ministério da Ciência e Tecnologia, 2006. BARTIE, Alexandre; Inovação do Processo de Software. Disponível em <http://www.imasters.com.br/artigo/3834/des _de_software/inovacao_do_processo_de_soft ware/> Acesso em 29/06/2007 IBM; Manual do RUP. Acompanha o Produto. IBM. ORTENCIO, Vanderlei Vilhanova: Processo de Desenvolvimento de Software. Disponível em: <http://www.pr.gov.br/batebyte/edicoes/1992 /bb16/processo.htm> Acesso em 30/07/2007