SlideShare uma empresa Scribd logo
1 de 6
DRU – Desenvolvimento para Reuso
Juliana S. Cindra*.
*Instituto Federal de Educação, Ciência e Tecnologia Fluminense -
Campos dos Goytacazes/RJ
jucindra@gmail.com
Abstract. This paper aims to present the process DRU – Reuse Development,
Level C MPS.Br, partially showing how this process has been used in Brazil,
which companies use data and some of Level C. And present also some
techniques or procedures that enable the implementation of this process.
Resumo. Este trabalho tem como objetivo apresentar o processo DRU –
Desenvolvimento para Reuso, do Nível C do MPS.Br, mostrando de forma
parcial como este processo tem sido utilizado no Brasil, quais empresas
utilizam e alguns dados do Nível C. Bem como apresentar também algumas
técnicas ou procedimentos que possibilitam a implantação deste processo.
1. MPS.Br (Melhoria de Processos de Software Brasileiro)
A qualidade de software é um conjunto de atividades relacionadas com garantia da
qualidade de software. E é identificada como umas das áreas de conhecimento da
engenharia de software. O MPS.Br é um modelo brasileiro de qualidade de processo de
software e também um movimento para melhoria da qualidade de software.
Além de se basear na realidade do mercado brasileiro de software, o MPS.Br
também utiliza o CMMI (Integração do modelo de capacidade e maturidade, em
português), e as normas ISO IEC 12207 e 15504 como base.
A graduação da escala de implementação do MPS.BR varia entre os níveis G ao
A, onde o nível G é o menor nível e o nível A é o nível mais elevado da escala. Cada
nível trata de um assunto dentro da qualidade de software, e a cada um deles é atingido
um determinado grau de qualidade. Este trabalho focará no Nível C, mas precisamente
no processo DRU, onde os projetos encontram-se em estado definido, podendo assim
implantar tal processo para reutilização.
Figura dos níveis do MPS.Br
2. O Nível C
O Nível C do MPS.Br equivale ao Nivel 3 do padrão de qualidade CMMI, onde seus
processos são bem definidos. Esses processos do Nível C são a Gerência de Risco –
GRI; a Análise de Decisão e Resolução – ADR; a Gerência de Reutilização – GRU
(evolução); e o Desenvolvimento para Reutilização – DRU.
Pode-se ser observado alguns dados interessantes sobre as empresas que se
encontram nos Nível C do MPS.Br, de acordo com o IMPS (Resultado de desempenho
de organizações que adotaram o modelo MPS) [Softex]:
[http://www.blogcmmi.com.br/avaliacao/lista-de-empresas-mps-br-no-brasil]
Empresas que atingiram o Nível C em 2010:
BRQ – RJ (validade até 25.ago.13)
BRQ – PR (válido até: 25.fev.13)
CAST – SP (validade até 13.ago.13)
FÓTON – DF (válido até: 18.mai.13)
MONTREAL – RJ (validade até 14.dez.13)
PD CASE – MG (validade até 09.set.13)
POWERLOGIC – MG (válido até: 09.mar.13)
SYNAPSIS – RJ e CE (válido até: 01.jul.12)
SYNOS – MG (válido até: 16.jul.12)
[http://www.blogcmmi.com.br/avaliacao/lista-de-empresas-mps-br-no-brasil]
2.1. O caso Powerlogic
Dentre estas empresas citadas acima, apenas a empresa Powerlogic até então,
teria sido aprovada na avaliação da implantação do processo DRU do Nível C do
MPS.Br. Utilizando processos baseados em métodos ágeis (notadamente o Scrum),
altamente pragmáticos. Como destaque de sua certificação foi constatado um alto nível
de automação alcançado com o uso de ferramental próprio de AML (Application
Lifecycle Management), o Powerlogic jAML.
Segundo o site da Powerlogic, ela é uma empresa totalmente brasileira que
desenvolve softwares para o mercado corporativo como também para o governo, e é
percursora do movimento open source no Brasil. Sua área de atuação seria o
fornecimento de soluções JavaEE, e o desenvolvimento de swites de software open
source que abrange todas as áreas do ciclo de vida de um desenvolvimento.
De acordo com estas informações seu domínio é bem definido, daí a
possibilidade de desenvolver para reuso.
3. O processo DRU
O desenvolvimento para reutilização talvez pode ser explicado como a identificação de
oportunidades de reutilização sistemática na organização, e estabelecimento de
programa de reutilização para o desenvolvimento de ativos a partir de engenharia de
domínios de aplicação.
Este processo do Nível C possui alguns resultados esperados para que possa ser
considerado atingigo o objetivo de desenvolver softwares para reutilização, e não
apenas gerenciar o processo de reúso. Além de utilizar soluções já pensadas, prontas, o
objetivo deste processo é transformar de consumidor de soluções reusáveis para
fabricante de tais soluções de reuso. Para isto é nessário que sejam atingidas algumas
metas que são os resultados esperados deste processo, descritos a seguir:
DRU 1. Domínios de aplicação em que serão investigadas oportunidades de
reutilização ou nos quais se pretende praticar reutilização são identificados, detectando
os respectivos potenciais de reutilização;
DRU 2. A capacidade de reutilização sistemática da organização é avaliada e
ações corretivas são tomadas, caso necessário;
DRU 3. Um programa de reutilização, envolvendo propósitos, escopo, metas e
objetivos, é planejado com a finalidade de atender às necessidades de reutilização de
domínios;
DRU 4. O programa de reutilização é implantado, monitorado e avaliado;
DRU 5. Propostas de reutilização são avaliadas de forma a garantir que o
resultado da reutilização seja apropriado para a aplicação alvo;
DRU 6. Formas de representação para modelos de domínio e arquiteturas de
domínio são selecionadas;
DRU 7. Um modelo de domínio que capture características, capacidades,
conceitos e funções comuns, variantes, opcionais e obrigatórios é desenvolvido e seus
limites e relações com outros domínios são estabelecidos e mantidos;
DRU 8. Uma arquitetura de domínio descrevendo uma família de aplicações
para o domínio é desenvolvida e mantida por todo seu ciclo de vida;
DRU 9. Ativos do domínio são especificados; adquiridos ou desenvolvidos, e
mantidos por todo seu ciclo de vida.
4. Desenvolvimento de software para reuso
O reuso de software oferece várias vantagens para as empresas e projetos, como
qualidade, economia, eficiência e agilidade. Que é a otimização das quatro variáveis
determinantes para o sucesso dos projetos de software: qualidade, custo, produtividade e
tempo.
Para que estas vantagens oferecidas pela reutilização de sofware sejam de fato
aproveitadas, é necessário que haja um planejamento estruturado para evitar problemas
que possam desestimular o reuso. Além de fatores técnicos que podem contribuir para a
não utilização do reuso de sofware, como por exemplo o fato de a maioria das
ferramentas CASE ainda não possuirem integração com bibliotecas de componentes,
existe também o fator psicológico de profissionais que preferem reescrever do que
reutilizar código.
A partir do momento que a reutilização de sofwares passa a ser algo mais
natural, ou seja, já ter passado por algumas experiências com reuso de código dando
maturidade neste processo. E já sabendo a área específica de atuação da empresa, que
pode ser determinada através de engenharia de domínio. Pode-se então passar para um
outro nível da reutilização que é não o consumo, mas o desenvolvimento de ativos.
4.1. Técnicas utilizadas
Atualmente as técnicas utilizadas para a reutilização de sofware costumam ser:
Arquitetura Baseada em Serviços (SOA); Desenvolvimento baseado em componentes; e
Linhas de produtos de sofware. A Arquitetura Baseada em Serviços (SOA), estabelece o
reuso na divisão da lógica que é feita no serviço. O desenvolvimento baseado em
Componentes, estabelece o reuso na componentização de recursos de sistemas. E a linha
de produtos de Software, estabelece o reuso no planejamento, onde um sistema é
construido baseado em sistemas de sofware similares.
Um exemplo de reutilização utilizando a Arquitetura Baseada em Serviços
(SOA), são os web services, que é uma solução de comunicação entre aplicações, de
forma que novas aplicações possam interagir com outras já existentes, e sistemas feitos
em plataformas diferentes tornem-se compatíveis. Pela arquitetura SOA ser baseada na
computação distribuída, os recursos reutilizáveis são os serviços oferecidos pelos
sistemas que os implementam, não sendo necessário escrever novamente a mesma
solução, visto que esta encontra-se disponível para os sistemas clientes.
Como exemplo de reutilização para o desenvolvimento baseado em componente,
pode-se citar os plugins, que são pequenas implementações de código que realizam
funções bem específicas, que podem ser adicionados ao sistema, mas que sua ausência
não impacta na funcionalidade original. Para o desenvolvimento de componentes existe
ainda um termo bem utilizado no meio do desenvolvimento para reutilização que são as
'Bibliotecas de Componentes', estas são repositórios onde são armazenados
classificados, e catalogados componentes para reuso.
Por último, para as linhas de produtos de sofwares pode-se citar como um
exemplo simples os frameworks, que são estruturas base de sistemas, um esqueleto, ou
seja, possui características comuns aos sistemas, onde o sistema específico é
desenvovido baseado neste “pré-pronto”. A linha de produto de sofware tem como
característica a similaridade aos processos de produção de fábrica, onde é visado o reuso
e os possíveis múltiplos produtos da mesma família, como em um linha de produção.
Na linha de produto de software todo o código que irá ser reutilizado é planejado,
desenhado, e concebido tendo em vista a possibilidade de modificação e reutilização de
forma a se enquadrar aos vários sistemas.
5. Conclusão
O MPS.Br não impõe as técnicas ou os procedimentos que deverão ser utilizados para
se alcançar as metas de cada processo dos níveis, apenas determina o resultado que deve
ser obtido, desta forma garante a liberdade de escolha dos métodos que serão utilizados
para tal.
A princípio o desenvolvimento para reuso pode parecer algo custoso ou que não
vá valer a pena o trabalho. Mas encarando o desenvolvimento para reuso, assim como o
gerenciamento de recursos reutilizáveis como investimentos de longo prazo, pode-se
num futuro reduzir de forma significativa os custos e o trabalho no desenvolvimento de
sistemas. Como também pode vir a ser uma fonte de renda para a empresa
desenvolvedora dos ativos, podendo disponibilizar as soluções para venda.
Referências
Monteiro, P., Reis M. and Viana, J. (2010) “Integração de Metodologia Ágil com
Modelo de Maturidade de Software”.
Softex (2010) “Mps.Br”, http://www.softex.br/mpsBr/_apresentacoes/apresentacao.asp?
id=2337, Outubro.
http://www.powerlogic.com.br/powerportal/site.do?
evento=portlet&pIdPlc=ecpTaxonomiaMenuPortal&app=site&tax=9244&lang=pt_BR
&pg=6701&taxp=0&
http://www.sensedia.com/br/entrevista/58/claudia-werner-em-entrevista-para-da-insight
http://docs.google.com/viewer?a=v&q=cache:L-
GeHwtZ2HIJ:www.dimap.ufrn.br/~jair/ES/slides/LinhaProdutoSoftware.pdf+linha+
de+produto+de+sofware,+framework&hl=pt-
BR&gl=br&pid=bl&srcid=ADGEESiVo0gUvoQymoUmVpXdjjDKM0BDjeFd-
A7ZnwqXy3uPjVnyH6N3h5F3VbDgUhOnRTBcT-3dtmRU2DIe0s-
9V1xsyyBy4BhwBjUjnPvpC6gRmqnnLkluFxS9R4a1jkI5Pz97JLbp&sig=AHIEtbQ
xtH7nf1COHO-vVmU8jwLkW6cNBQ
http://www.inf.ufsc.br/~ricardo/ine660600.html
http://twiki.fe.up.pt/bin/view/ERSS0607/Reutiliza%e7%e3oDeSoftware#AdHocAnchor
http://www.sensedia.com/br/reuso-de-software
http://docs.google.com/viewer?
a=v&q=cache:ys3mLLYNiWAJ:www.bibliotecadigital.unicamp.br/document/
%3Fview%3Dvtls000392817+desenvolvimento+baseado+em+componentes,
+plugins&hl=pt-
BR&gl=br&pid=bl&srcid=ADGEESikpHl5M_vGbxOu6sUCPa6vb-
inLP_msihfFcPRgC8lvxNNLd_vgnBWBimTM6BvDYIFkPSFuBfCtiji7Z18Ggmqp
Uoq6BPH05TJYipPTd9mJYq4wdGKGwUdkEjgLulBKoHtnzz3&sig=AHIEtbTMx
hqk6_GYPzyNbt_WP1Yr_bS7og

Mais conteúdo relacionado

Mais procurados

Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - WikipediaRobson Silva Espig
 
PMBOK & RUP - UFAM 2012/2 - Gerência de Projetos
PMBOK & RUP - UFAM 2012/2 - Gerência de ProjetosPMBOK & RUP - UFAM 2012/2 - Gerência de Projetos
PMBOK & RUP - UFAM 2012/2 - Gerência de ProjetosUrique Hoffmann
 
201406Carvalho
201406Carvalho201406Carvalho
201406CarvalhoAfonso Pra
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line VariabilitiesMichel Alves
 
Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareThomas Kanzig
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em softwareVictor Hugo
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 
Reuso de software
Reuso de softwareReuso de software
Reuso de softwarerebekinha
 
AAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcambAAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcambMicrosoft Brasil
 
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL GPROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL Gjrnavarro
 
Processos de software
Processos de softwareProcessos de software
Processos de softwareDann Volpato
 
Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...
Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...
Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...Thiago Fraga
 

Mais procurados (20)

Engenharia de Software - Wikipedia
Engenharia de Software - WikipediaEngenharia de Software - Wikipedia
Engenharia de Software - Wikipedia
 
O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012O emprego do_rup_na_uml_-_trabalho_poo_2012
O emprego do_rup_na_uml_-_trabalho_poo_2012
 
PMBOK & RUP - UFAM 2012/2 - Gerência de Projetos
PMBOK & RUP - UFAM 2012/2 - Gerência de ProjetosPMBOK & RUP - UFAM 2012/2 - Gerência de Projetos
PMBOK & RUP - UFAM 2012/2 - Gerência de Projetos
 
201406Carvalho
201406Carvalho201406Carvalho
201406Carvalho
 
Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line Variabilities
 
Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de software
 
MPS.BR
MPS.BRMPS.BR
MPS.BR
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
 
Artigo sd
Artigo sdArtigo sd
Artigo sd
 
Es17 predicao de defeitos em software
Es17   predicao de defeitos em softwareEs17   predicao de defeitos em software
Es17 predicao de defeitos em software
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
 
Documento de requisitos
Documento de requisitosDocumento de requisitos
Documento de requisitos
 
Revista Engenharia de Software n° 44
Revista Engenharia de Software n° 44Revista Engenharia de Software n° 44
Revista Engenharia de Software n° 44
 
Reuso de software
Reuso de softwareReuso de software
Reuso de software
 
AAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcambAAB307 - Frameworks and Application Blocks - wcamb
AAB307 - Frameworks and Application Blocks - wcamb
 
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL GPROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
PROPOSTA DE ADAPTAÇÃO DAS PRÁTICAS DO SCRUM PARA O MPS.BR NIVEL G
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...
Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...
Interação entre MDA e PMBOK para Suporte ao Desenvolvimento de Aplicações Com...
 
Es 09
Es 09Es 09
Es 09
 
Es06 teste de software
Es06   teste de softwareEs06   teste de software
Es06 teste de software
 

Destaque

Engenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em ComponentesEngenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em Componentesigordsm
 
TCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesTCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesJuliano Tiago Rinaldi
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentaisWaldemar Roberti
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componenteselliando dias
 

Destaque (7)

Desenvolvimento baseado em componentes
Desenvolvimento baseado em componentesDesenvolvimento baseado em componentes
Desenvolvimento baseado em componentes
 
Engenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em ComponentesEngenharia De Software Baseada Em Componentes
Engenharia De Software Baseada Em Componentes
 
TCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em ComponentesTCC - Engenharia de Software Baseada em Componentes
TCC - Engenharia de Software Baseada em Componentes
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
Engenharia de Software Baseada em Componentes
Engenharia de Software Baseada em ComponentesEngenharia de Software Baseada em Componentes
Engenharia de Software Baseada em Componentes
 
Reúso
ReúsoReúso
Reúso
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 

Semelhante a DRU - Desenvolvimento para reuso no Nível C do MPS.Br

Trabalho de Reengenharia de Software
Trabalho de Reengenharia de SoftwareTrabalho de Reengenharia de Software
Trabalho de Reengenharia de SoftwareJuliana Cindra
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLAnnkatlover
 
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...Erivan de Sena Ramos
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Fabrica.Software.Concepcao.Licoes.Aprendidas
Fabrica.Software.Concepcao.Licoes.AprendidasFabrica.Software.Concepcao.Licoes.Aprendidas
Fabrica.Software.Concepcao.Licoes.AprendidasAnnkatlover
 
Aula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetosAula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetosThiago Cetroni
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...Rogério Batista
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 

Semelhante a DRU - Desenvolvimento para reuso no Nível C do MPS.Br (20)

Trabalho de Reengenharia de Software
Trabalho de Reengenharia de SoftwareTrabalho de Reengenharia de Software
Trabalho de Reengenharia de Software
 
Artigo23
Artigo23Artigo23
Artigo23
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Artigo
ArtigoArtigo
Artigo
 
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia ...
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
IBM Rational Unified Process
IBM Rational Unified ProcessIBM Rational Unified Process
IBM Rational Unified Process
 
Fabrica.Software.Concepcao.Licoes.Aprendidas
Fabrica.Software.Concepcao.Licoes.AprendidasFabrica.Software.Concepcao.Licoes.Aprendidas
Fabrica.Software.Concepcao.Licoes.Aprendidas
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
RAD
RADRAD
RAD
 
Aula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetosAula 3 desenvolvimento de projetos
Aula 3 desenvolvimento de projetos
 
Aula 05
Aula 05Aula 05
Aula 05
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
RAD - Métodos ágeis
RAD - Métodos ágeisRAD - Métodos ágeis
RAD - Métodos ágeis
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 

Mais de Juliana Cindra

Trabalho de Sistemas Distribuídos
Trabalho de Sistemas DistribuídosTrabalho de Sistemas Distribuídos
Trabalho de Sistemas DistribuídosJuliana Cindra
 
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...Juliana Cindra
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao RestauranteJuliana Cindra
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - ObserverJuliana Cindra
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - AdapterJuliana Cindra
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrJuliana Cindra
 

Mais de Juliana Cindra (9)

Trabalho Web Services
Trabalho Web ServicesTrabalho Web Services
Trabalho Web Services
 
Trabalho de Sistemas Distribuídos
Trabalho de Sistemas DistribuídosTrabalho de Sistemas Distribuídos
Trabalho de Sistemas Distribuídos
 
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
 
Exercicio de UML - Documentacao Restaurante
Exercicio de UML  - Documentacao RestauranteExercicio de UML  - Documentacao Restaurante
Exercicio de UML - Documentacao Restaurante
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - Observer
 
Padrão de Projeto - Adapter
Padrão de Projeto - AdapterPadrão de Projeto - Adapter
Padrão de Projeto - Adapter
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
 
Torre de Hanoi
Torre de HanoiTorre de Hanoi
Torre de Hanoi
 
Rail road
Rail roadRail road
Rail road
 

DRU - Desenvolvimento para reuso no Nível C do MPS.Br

  • 1. DRU – Desenvolvimento para Reuso Juliana S. Cindra*. *Instituto Federal de Educação, Ciência e Tecnologia Fluminense - Campos dos Goytacazes/RJ jucindra@gmail.com Abstract. This paper aims to present the process DRU – Reuse Development, Level C MPS.Br, partially showing how this process has been used in Brazil, which companies use data and some of Level C. And present also some techniques or procedures that enable the implementation of this process. Resumo. Este trabalho tem como objetivo apresentar o processo DRU – Desenvolvimento para Reuso, do Nível C do MPS.Br, mostrando de forma parcial como este processo tem sido utilizado no Brasil, quais empresas utilizam e alguns dados do Nível C. Bem como apresentar também algumas técnicas ou procedimentos que possibilitam a implantação deste processo. 1. MPS.Br (Melhoria de Processos de Software Brasileiro) A qualidade de software é um conjunto de atividades relacionadas com garantia da qualidade de software. E é identificada como umas das áreas de conhecimento da engenharia de software. O MPS.Br é um modelo brasileiro de qualidade de processo de software e também um movimento para melhoria da qualidade de software. Além de se basear na realidade do mercado brasileiro de software, o MPS.Br também utiliza o CMMI (Integração do modelo de capacidade e maturidade, em português), e as normas ISO IEC 12207 e 15504 como base. A graduação da escala de implementação do MPS.BR varia entre os níveis G ao A, onde o nível G é o menor nível e o nível A é o nível mais elevado da escala. Cada nível trata de um assunto dentro da qualidade de software, e a cada um deles é atingido um determinado grau de qualidade. Este trabalho focará no Nível C, mas precisamente no processo DRU, onde os projetos encontram-se em estado definido, podendo assim implantar tal processo para reutilização. Figura dos níveis do MPS.Br
  • 2. 2. O Nível C O Nível C do MPS.Br equivale ao Nivel 3 do padrão de qualidade CMMI, onde seus processos são bem definidos. Esses processos do Nível C são a Gerência de Risco – GRI; a Análise de Decisão e Resolução – ADR; a Gerência de Reutilização – GRU (evolução); e o Desenvolvimento para Reutilização – DRU. Pode-se ser observado alguns dados interessantes sobre as empresas que se encontram nos Nível C do MPS.Br, de acordo com o IMPS (Resultado de desempenho de organizações que adotaram o modelo MPS) [Softex]: [http://www.blogcmmi.com.br/avaliacao/lista-de-empresas-mps-br-no-brasil] Empresas que atingiram o Nível C em 2010: BRQ – RJ (validade até 25.ago.13) BRQ – PR (válido até: 25.fev.13) CAST – SP (validade até 13.ago.13) FÓTON – DF (válido até: 18.mai.13) MONTREAL – RJ (validade até 14.dez.13) PD CASE – MG (validade até 09.set.13) POWERLOGIC – MG (válido até: 09.mar.13) SYNAPSIS – RJ e CE (válido até: 01.jul.12) SYNOS – MG (válido até: 16.jul.12) [http://www.blogcmmi.com.br/avaliacao/lista-de-empresas-mps-br-no-brasil] 2.1. O caso Powerlogic Dentre estas empresas citadas acima, apenas a empresa Powerlogic até então, teria sido aprovada na avaliação da implantação do processo DRU do Nível C do MPS.Br. Utilizando processos baseados em métodos ágeis (notadamente o Scrum),
  • 3. altamente pragmáticos. Como destaque de sua certificação foi constatado um alto nível de automação alcançado com o uso de ferramental próprio de AML (Application Lifecycle Management), o Powerlogic jAML. Segundo o site da Powerlogic, ela é uma empresa totalmente brasileira que desenvolve softwares para o mercado corporativo como também para o governo, e é percursora do movimento open source no Brasil. Sua área de atuação seria o fornecimento de soluções JavaEE, e o desenvolvimento de swites de software open source que abrange todas as áreas do ciclo de vida de um desenvolvimento. De acordo com estas informações seu domínio é bem definido, daí a possibilidade de desenvolver para reuso. 3. O processo DRU O desenvolvimento para reutilização talvez pode ser explicado como a identificação de oportunidades de reutilização sistemática na organização, e estabelecimento de programa de reutilização para o desenvolvimento de ativos a partir de engenharia de domínios de aplicação. Este processo do Nível C possui alguns resultados esperados para que possa ser considerado atingigo o objetivo de desenvolver softwares para reutilização, e não apenas gerenciar o processo de reúso. Além de utilizar soluções já pensadas, prontas, o objetivo deste processo é transformar de consumidor de soluções reusáveis para fabricante de tais soluções de reuso. Para isto é nessário que sejam atingidas algumas metas que são os resultados esperados deste processo, descritos a seguir: DRU 1. Domínios de aplicação em que serão investigadas oportunidades de reutilização ou nos quais se pretende praticar reutilização são identificados, detectando os respectivos potenciais de reutilização; DRU 2. A capacidade de reutilização sistemática da organização é avaliada e ações corretivas são tomadas, caso necessário; DRU 3. Um programa de reutilização, envolvendo propósitos, escopo, metas e objetivos, é planejado com a finalidade de atender às necessidades de reutilização de domínios; DRU 4. O programa de reutilização é implantado, monitorado e avaliado; DRU 5. Propostas de reutilização são avaliadas de forma a garantir que o resultado da reutilização seja apropriado para a aplicação alvo; DRU 6. Formas de representação para modelos de domínio e arquiteturas de domínio são selecionadas; DRU 7. Um modelo de domínio que capture características, capacidades, conceitos e funções comuns, variantes, opcionais e obrigatórios é desenvolvido e seus limites e relações com outros domínios são estabelecidos e mantidos; DRU 8. Uma arquitetura de domínio descrevendo uma família de aplicações para o domínio é desenvolvida e mantida por todo seu ciclo de vida;
  • 4. DRU 9. Ativos do domínio são especificados; adquiridos ou desenvolvidos, e mantidos por todo seu ciclo de vida. 4. Desenvolvimento de software para reuso O reuso de software oferece várias vantagens para as empresas e projetos, como qualidade, economia, eficiência e agilidade. Que é a otimização das quatro variáveis determinantes para o sucesso dos projetos de software: qualidade, custo, produtividade e tempo. Para que estas vantagens oferecidas pela reutilização de sofware sejam de fato aproveitadas, é necessário que haja um planejamento estruturado para evitar problemas que possam desestimular o reuso. Além de fatores técnicos que podem contribuir para a não utilização do reuso de sofware, como por exemplo o fato de a maioria das ferramentas CASE ainda não possuirem integração com bibliotecas de componentes, existe também o fator psicológico de profissionais que preferem reescrever do que reutilizar código. A partir do momento que a reutilização de sofwares passa a ser algo mais natural, ou seja, já ter passado por algumas experiências com reuso de código dando maturidade neste processo. E já sabendo a área específica de atuação da empresa, que pode ser determinada através de engenharia de domínio. Pode-se então passar para um outro nível da reutilização que é não o consumo, mas o desenvolvimento de ativos. 4.1. Técnicas utilizadas Atualmente as técnicas utilizadas para a reutilização de sofware costumam ser: Arquitetura Baseada em Serviços (SOA); Desenvolvimento baseado em componentes; e Linhas de produtos de sofware. A Arquitetura Baseada em Serviços (SOA), estabelece o reuso na divisão da lógica que é feita no serviço. O desenvolvimento baseado em Componentes, estabelece o reuso na componentização de recursos de sistemas. E a linha de produtos de Software, estabelece o reuso no planejamento, onde um sistema é construido baseado em sistemas de sofware similares. Um exemplo de reutilização utilizando a Arquitetura Baseada em Serviços (SOA), são os web services, que é uma solução de comunicação entre aplicações, de forma que novas aplicações possam interagir com outras já existentes, e sistemas feitos em plataformas diferentes tornem-se compatíveis. Pela arquitetura SOA ser baseada na computação distribuída, os recursos reutilizáveis são os serviços oferecidos pelos sistemas que os implementam, não sendo necessário escrever novamente a mesma solução, visto que esta encontra-se disponível para os sistemas clientes. Como exemplo de reutilização para o desenvolvimento baseado em componente, pode-se citar os plugins, que são pequenas implementações de código que realizam funções bem específicas, que podem ser adicionados ao sistema, mas que sua ausência não impacta na funcionalidade original. Para o desenvolvimento de componentes existe ainda um termo bem utilizado no meio do desenvolvimento para reutilização que são as
  • 5. 'Bibliotecas de Componentes', estas são repositórios onde são armazenados classificados, e catalogados componentes para reuso. Por último, para as linhas de produtos de sofwares pode-se citar como um exemplo simples os frameworks, que são estruturas base de sistemas, um esqueleto, ou seja, possui características comuns aos sistemas, onde o sistema específico é desenvovido baseado neste “pré-pronto”. A linha de produto de sofware tem como característica a similaridade aos processos de produção de fábrica, onde é visado o reuso e os possíveis múltiplos produtos da mesma família, como em um linha de produção. Na linha de produto de software todo o código que irá ser reutilizado é planejado, desenhado, e concebido tendo em vista a possibilidade de modificação e reutilização de forma a se enquadrar aos vários sistemas. 5. Conclusão O MPS.Br não impõe as técnicas ou os procedimentos que deverão ser utilizados para se alcançar as metas de cada processo dos níveis, apenas determina o resultado que deve ser obtido, desta forma garante a liberdade de escolha dos métodos que serão utilizados para tal. A princípio o desenvolvimento para reuso pode parecer algo custoso ou que não vá valer a pena o trabalho. Mas encarando o desenvolvimento para reuso, assim como o gerenciamento de recursos reutilizáveis como investimentos de longo prazo, pode-se num futuro reduzir de forma significativa os custos e o trabalho no desenvolvimento de sistemas. Como também pode vir a ser uma fonte de renda para a empresa desenvolvedora dos ativos, podendo disponibilizar as soluções para venda. Referências Monteiro, P., Reis M. and Viana, J. (2010) “Integração de Metodologia Ágil com Modelo de Maturidade de Software”. Softex (2010) “Mps.Br”, http://www.softex.br/mpsBr/_apresentacoes/apresentacao.asp? id=2337, Outubro. http://www.powerlogic.com.br/powerportal/site.do? evento=portlet&pIdPlc=ecpTaxonomiaMenuPortal&app=site&tax=9244&lang=pt_BR &pg=6701&taxp=0& http://www.sensedia.com/br/entrevista/58/claudia-werner-em-entrevista-para-da-insight http://docs.google.com/viewer?a=v&q=cache:L-
  • 6. GeHwtZ2HIJ:www.dimap.ufrn.br/~jair/ES/slides/LinhaProdutoSoftware.pdf+linha+ de+produto+de+sofware,+framework&hl=pt- BR&gl=br&pid=bl&srcid=ADGEESiVo0gUvoQymoUmVpXdjjDKM0BDjeFd- A7ZnwqXy3uPjVnyH6N3h5F3VbDgUhOnRTBcT-3dtmRU2DIe0s- 9V1xsyyBy4BhwBjUjnPvpC6gRmqnnLkluFxS9R4a1jkI5Pz97JLbp&sig=AHIEtbQ xtH7nf1COHO-vVmU8jwLkW6cNBQ http://www.inf.ufsc.br/~ricardo/ine660600.html http://twiki.fe.up.pt/bin/view/ERSS0607/Reutiliza%e7%e3oDeSoftware#AdHocAnchor http://www.sensedia.com/br/reuso-de-software http://docs.google.com/viewer? a=v&q=cache:ys3mLLYNiWAJ:www.bibliotecadigital.unicamp.br/document/ %3Fview%3Dvtls000392817+desenvolvimento+baseado+em+componentes, +plugins&hl=pt- BR&gl=br&pid=bl&srcid=ADGEESikpHl5M_vGbxOu6sUCPa6vb- inLP_msihfFcPRgC8lvxNNLd_vgnBWBimTM6BvDYIFkPSFuBfCtiji7Z18Ggmqp Uoq6BPH05TJYipPTd9mJYq4wdGKGwUdkEjgLulBKoHtnzz3&sig=AHIEtbTMx hqk6_GYPzyNbt_WP1Yr_bS7og