Upload
vera-penha-coelho
View
214
Download
2
Embed Size (px)
Citation preview
Melhoria da Qualidade do Processo em Fábricas de Software Open Source através do Personal Software Process
Julio Maravitch Maurício Neto [email protected]
VI Encontro CIn sobre Qualidade, Processos e Gestão de Software 27/03/2007
Agenda
• Modelo Open Source de Desenvolvimento• Fábricas de Software Open Source• Personal Software Process• Utilizando PSP em Fábricas OS• Conclusões e Trabalhos Futuros
Objetivo
• Entender como funciona o ecossistema OS
• Atender às necessidades do ambiente– Promover a melhoria da qualidade do
processo de desenvolvimento – Pode ser melhorado?– Como?
Free Software Projects
• Nascem como iniciativa isolada e particular
• Usuários são co-desenvolvedores
• Divulgação “boca-a-boca”• Teste massificado pelos usuários• Gerência de versões é complexa
e “bem-definida”
Open Source Projects
• (Sun apr 16 00:10:21 BRT 2006) 133,421 projects!• Communications (13469)• Database (5388)• Desktop Environment (2822)• Education (3252)• Formats and Protocols (1292)• Games/Entertainment (12694)• Internet (21951)• Multimedia (11518)• Office/Business (6136)• Other/Nonlisted Topic (2065) • Printing (417) • Religion and Philosophy (274)• Scientific/Engineering (9942)• Security (2494)• Sociology (355)• Software Development (18587)• System (17790)• Text Editors (2436)
Open Source Projects
• (Tue mar 27 11:57:45 BRT 2007) 184,564 projects!• Communications (18433)• Database (6942)• Desktop Environment (3760)• Education (4920)• Formats and Protocols (2870)• Games/Entertainment (17237)• Internet (28264)• Multimedia (15505)• Office/Business (9655)• Other/Nonlisted Topic (2560)• Printing (511)• Religion and Philosophy (333)• Scientific/Engineering (14895)• Security (3274)• Sociology (429)• Software Development (28149)• System (22952)• Terminals (688)• Text Editors (3187)
Causas de Descontinuidade de Projetos SW Livre
• Falta de interesse, tempo ou motivação– mudança de liderança nos projetos impactam
sua continuidade• Code Forking
– cada usuário tem acesso ao código e pode alterá-lo e redistribuí-lo sem o conhecimento do líder do projeto
Free Software EngineeringResume
• “A Field to Explore”• “is still in its infancy” (2003!)• “How to create free software? Issues:
– Classification of free software projects– Creation of a methodology– Methods + classification + models ++
Simulation (intelligent agents) = Free SW Engineering”
The OSS model
• Three dimensions:– structure, process and culture
structure culture
process
Eletronic communication
Multicultural community
Values: reciprocity, gift giving, reputation, ideology
Core assumptions
Division of labour
Co-ordination mechanisms
Distribution od decision-making
Organizational boundaries
Informal structure
Political structure
Legitimate basis of authority
OSS development process
• Problem discovery• Finding volunteers• Solution identification• Code development and testing• Code change review• Code commit and documentation• Release management
building a software factory...[Making the software factory work... 1990-1999]
http://www.cin.ufpe.br/~in953/papers/MakingTheSoftwareFactoryWorkLessonsFromADecadeOfFactory.pdf
1. to define a detailed software development process2. staff members were given extensive training in the
new process3. process specification separated from process
execution4. data collection and analysis
1. interviews2. software process assesments3. process attributes for each project4. configuration management system5. project tracking data
o PROCESSO é complexo!
(c) MERX LLC
Elaborado: OJS - Revisão: CAB, JPML, GMR - Aprovado: CAB - Versão 0
Fábrica de Software da Ampla Consultoria em Informação
Prospecção
Execução
PLT
Execução
Proposta
Proposta
Encerramento
Garantia
Execução
PPPP
PC
PCPP PP
PROT
PPF
PT
DR
PC
PC PROTDRPTPPF
MER
DR
PPF
PT
PC
PPF
PP
PT
MER
UC
MER
UC
DR
DRDR
MER
UC
DR
PROT
DR
DRPROT
DR
UC
AR
MER
PROT
N
S
N
S
S
N
OK?
RevisarRequisitos,
interfaces, casosde uso e MER
Gc
Criar PropostaComercial
Líder Equipe 2
Validar requisitos
Criar PropostaTécnica e Plano
de Projeto
Validar interfacese requisitos
Técnicos
Cl
Líder Equipe 1
Gc
Gerente de Projetos
Di
Agendar visitaspara apresentaçãoe/ou elicitação de
requisitos
Diretor
Identificardemandas que
possam seratendidas pelas
áreas deconhecimento
Gp
Projetar interfaces
Técnicos
Gc
Cliente
Requisitos/escopoestão claros?
Gp
Prototiparinterfaces
Projetarinterfaces?
1
Técnicos
De
Gerente ComercialGerente de Tecnologia
Gerente de Processos e Qualidade
Início
Gp
Líder Equipe n
Análise de Pontosde Função
Gc Di
Gc Gp
GcCl Gp
Gp
Gp Gc
Gp
N
S
S Revisões?
Projetoaprovado? C
1
Registrarsuspensão do
projeto
Apresentar PC,PT e DR
Revisar DR, PT,PPF, PC e PROT.
Di GpGc
Gp
N
S Renegociar?
Revisarcronograma
Revisar PropostaComercial
Avaliar riscos
Preparar ambientede
desenvolvimento
Lp
Lp
Reavaliarnecessidades de
treinamento
Lp
Gp
Reavaliar recursoshumanos,software ehardware
LpGp
Lp
Gp GcDi
S
S
N
S
N
S
N
N
S
S N
Fim
PP
OK?
MER MER
DR
Implementar
A
Projetar banco dedados
PT
Apresentarrequisito paradesenvolvedor
PC
DS (o)
BIntegrar?
Corrigir
Preparar Plano deTeste
Lp
B
Solicitação demudanças
PLT
SM
Selecionarrequisito
Cl
Avaliar solicitação
DR
PLT
Problemas naimplementação?
Realizar Teste deUnidade
Comunicar Líderdo Projeto
PC
Revisar requisitos,plano de projeto
De
Realizar casos deuso
De
DI (o) Nãoconformidades?
PP
DS (o)
Agendar reuniãocom cliente
MER
PT
B-1
PC
Aprovarmudanças?
PLT
DR
Lp
PP
A
DI (o)
PP
Revisar requisitose plano de projeto
3
DR
Renegociar
PT
Lp
PT
Pode ser resolvidointernamente?
A-1
B-2
Encerrarsolicitação
DC
B-2
Especif icar casosde teste de
unidade
A-2
PC
RIT
Lp
Gp
DC
GpSM
Início
De
Gc
SM
Lp
Gp Gc
Gp Gc
LpCl
Di
GpLp
Lp
De
De
S
N
S
N
PP
B
Nãoconformidades?
PP
PP
3
RIT
Analisar nãoconformidades e
planejarimplementação
Gp
RIT
DeGq
Analisar nãoconformidades e
planejarimplementação
B
Realizar Teste deSistema
Realizar Teste deIntegração
Nãoconformidades?
NS
N
S
S
N
Iniciar período degarantia(90 dias)
Analisar
Gq
PP
Preparar materialde treinamento
PO
PP
B
DR
De
Agendartreinamento
Gp
B
Realizartreinamento
DRProblema
encontrado?
PT
Gp
PC
Instalar econfigurarsoftware
Aceitação totalou parcial?
Procede?
Analisar
DR
De
AR
Teste deaceitação
(com cliente)
De
DeGp
Realizar pesquisade opinião
C
Reunião deencerramento
(equipe)
RM
KB
De
Gp
AR
Di
Gp
Avaliar resultadosdo projeto
Gq
Lp
Registrarencerramento do
projeto
Fim
PO
Gp
Artefato
Artefato fonte
Artefato produzido
Fluxo do processo
Processo
Ponto de decisão
Responsabilidade
Di DiretorCl ClienteGc Gerente ComercialGt Gerente de TecnologiaGp Gerente de ProjetosGq Gerente de Processos e QualidadeLp Líder do ProjetoDe Desenvolvedor
Atores
Artefatos
AR_<Cód. do Projeto>_<aaaammdd> Ata de ReuniãoDR_<Cód. do Projeto>_V<99>.<99> Documento de RequisitosPT_<Cód. do Projeto>_V<99>.<99> Proposta TécnicaPC_<Cód. do Projeto>_V<99>.<99> Proposta ComercialPP_<Cód. do Projeto>_V<99>.<99> Plano de ProjetoMER_<Cód. do Projeto>_V<99>.<99> Modelo de Entidades e RelacionamentosPLT_<Cód. do Projeto>_V<99><99> Plano de TesteRIT_<Cód. do Projeto>_V<99><99> Relatório de Incidentes de TesteMU_<Cód. do Projeto>_V<99>.<99> Manual do UsuárioPO_<Código do Projeto> Pesquisa de OpiniãoPROT_<aaaammdd> Protótipo (Na pasta I)SM_<Cód. do Projeto>_V<99>.<99> Solicitação de MudançasUC_<Cód. do Projeto>_V<99>.<99> Caso de UsoPPF_<Código do Projeto>_V<99>.<99> Pontos por FunçãoDC_<Código do Projeto>_V<99>.<99> Diagrama de ClassesDS_<Código do Projeto>_V<99>.<99> Diagrama de SequênciaDI_<Código do Projeto>_V<99>.<99> Diagrama de InteraçãoRA_<Código do Projeto>_V<99>.<99> Relatório de AceitaçãoRM_<Código do Projeto>_V<99>.<99> Relatório de Melhorias no ProcessoKB Knowledge Base
(o) = Opcional
Gp DeGq
GpCl
GpGq
Gq
Gq Gp De
Gq
PP
RA
Encerramento
MER
DR
PPF
PT
PC
PPF
PP
PT
MER
UC
MER
UC
DR
DRDR
MER
UC
DR
ReviseRequirements,
interfaces, E-Rand Use Cases
Gc
Build CommercialProposal
Build TechnicalProposal and
Project Plan
DiGc
Gp
1
Gp
Function PointAnalysis
Gp Gc
Gp
Contrato
Execução
Entrega
Prospecção
processo é complexo... Ex.: Amplaprocesso é complexo... Ex.: Ampla
To do an effective job, you need to...
• Plan your work• Do your work according to this plan• Strive to produce the highest quality
products
Personal Software Process (PSP)
• It is a disciplined way of writing software which can lead to dramatic improvements in– the quality of the software you write– your productivity– the quality of your plans and estimates.
• Following a discipline like this can lead to greater self-knowledge, a valuable thing in itself
Personal Software Process (PSP)
• It shows how to apply advanced engineering methods to their daily tasks
• Provides detailed estimating and planning methods
• Shows how to track sw engineers' performance against these plans
• Explains how defined process can guide their work• Will lead you away from random hacking and
towards professional software eng.
PSP is not...
• a Silver Bullet solution• a radically different approach to
development
PSP is
• a framework that allows detailed planning and tracking of project status
• a vehicle to collect “in process” metrics to provide insight and opportunities to improvement
• a way to protect development steps needed to “build in” quality
What does PSP provide?
• Measurements– Size– Time– Defects
Time estimating error
Defect Level Improvement
Productivity Results
PSP processes
PSP Process Flow
Benefits
• PSP has the potential to increase your effectiveness as a programmer dramatically
• The data you collect and the conclusions you infer from them can empower you in negotiations with your boss
• Deeper benefits are possible too. Any self-knowledge has the potential to lead to personal growth
Best practices
• Task breakdown (detailed planning)• Time alloted to Design• Size estimation methods• Time alloted to Review/Inspection• Time tracking• Defect tracking• Metric analysis• Coding standards
Why are we doing all this?• The quality of a software system is determined by the
quality of its worst components.• The quality of a software components is determined by
the quality of its developer’s knowledge, discipline, and commitment.
• As software professionals you should now how to measure, track, and analyze your own performance.
• You should be able to learn from your past failures and improve your personal practices.
Utilizando PSP em OS
• Dificuldades das Fábricas OS– Motivação dos participantes
• Melhoria pessoal – Configuraçao inconstante no espaco-tempo– Coordenacao de atividades de forma isolada
e assíncrona• Modelos tradicionais se mostraram ineficientes• Alternativa bottom-up
Utilizando PSP em OS
• Metodologia– Definição de um processo de
desenvolvimento de fábricas OS– Execução do processo {caos...}– Identificação das necessidades de fábricas
OS – Busca por alternativas de melhoria {PSP}
• Casamento de melhorias oferecidas com as necessidades requeridas
Conclusions & Future Work
• Open Source é um oceano azul a ser explorado• A qualidade deve acontecer de forma bottom-up• Indicativamente, PSP pode auxiliar OSS na
busca por melhoria da qualidade
• Estudos Empíricos– Desenvolvedor– Gerente– Cliente
ReferênciasAlvaro, A., Santos, T., Andrade, P., Vasconcelos, J. Albuquerque, J. and Meira, S. (2004) “Lições Aprendidas na Criação de uma
Fábrica de Software Open-Source”, 5o Workshop de Software Livre, WSL’2004, Porto Alegre, RS.Baker, E. (2001) “Wich way, SQA?”, IEEE Software 18(1), pp. 16-18Belleza, C., Levi, F., Ochner, J., Maravitch, J., Vieira, H. and Marcuschi, R. (2006) “Fases de Criação de uma Fábrica de Software
Open Source Distribuída”, Universidade Federal de PernambucoCavalcanti, A., Lucena, L., Lucena, R., Moraes, A., de Fernandes, D., Pereira, S., Albuquerque, J. and Meira, S. (2005) “Towards
an Open Source Software Factory”, In: 2nd Experimental Software Engineering Latin American Workshop, Uberlândia, MG, 2005.
Crowston, K., Annabi, H., Howison, J. and Masango, C. (2004) “Effective Work Practices for Software Engineering: Free/Libre Open Source Software Development”, WISER.
El Emam, K., Shostak, B. and Madhavji, N. (1996) “Implementing Concepts from the Personal Software Process in an Industrial Setting”, In: Proceedings of the 4th International Conference of Software Process, Brighton, England
Fabriks (2005) “An Experience of Modelling and Implementing an Open Source Software Factory Methodology”, SIMS2005 X Simpósio de Informática. SBC – Sociedade Brasileira de Computação, Uruguaiana – RS.
Fagan, M. (1986) “Advances in Software Inspections”, IEEE Transactions on Software Engineering 12(7), pp. 744-751Feller, J. and Fitzgerald, B. (2002a) “Understanding Open Source software Development”, London: Addison-Wesley Feller, J. and Fitzgerald, B (2002b) “A further investigation of open source software: community, co-ordination, code quality
and security issues”, Information Systems Journal, 12(1), pp. 3-7 Finkelstein, A. and Kramer, J. (2000) “Software Engineering: A Roadmap”, ICSE.Frank, P., Hamlet, R., Littlewood, B., Strigini, L. (1998) “Evaluating Testing Methods by Delivered Reliability”, IEE Transactions
on Software Engineering 24(8), pp. 586-601Ferguson, P., Humprey, W., Khajenoori, S., Macke, S. and Matvya, A. (1997) “Introducing the Personal Software Process: Three
Industry Cases”, IEEE Computer 30(5), pp. 24-31 de Groot, A., Kugler, S., Adams, P.J. and Gousios, G. (2006) “Call for Quality: Open Source Quality Observation”, In: IFIP
International Federation for Information Processing, Volume 203, Open Source Systems, eds. Damiani, E., Fitzgerald, B., Scacchi, W., Scotto, G., (Boston: Springer), pp. 57-62
Goth, G. (2005) “Open Source Business Models: Ready for Prime Time”, Disponível em:http://www.computer.org/portal/cms_docs_software/software/content/promo/promo4.pdf. Acessado em: 07/05/2006.
ReferênciasGosh, R., Glott, R., Krieger, B. and Robles, G. (2002) “Free/Libre and Open Source Software: Survey and Study”, Part 4: Survey
of Developers, International Institute of Infonomics, University of Maastricht Harris, B. (2006). “Virtual man chooses Internet over office”, DesMoinesRegister.com.Hayes, W. and Over, J. (1997) “The Personal Software Process (PSP): An Empirical Study of the Impact of PSP on Individual
Engineers”, CMU/SEI-97-TR-001.von Hippel, E. and von Krogh, G. (2003) “Open source software and the private-collective innovation model: Issues for
organization science”. Organization Science, 14(2), pp. 209-223 Humprey, W. (1989) “Managing the Software Process”, The SEI Series in software engineering. Addison-WesleyHumprey, W. (1994) “A Discipline for Software Engineering”, Addison-Wesley.Humprey, W. (1996) “Introduction to the Personal Software Process”, Addison-Wesley.Johnson, P. and Disney, M. (1998) “The Personal Software Process: A Cautionary Case Study”. IEEE Software, 15(6).Johnson, P. and Disney, M. (1999) “A Critical Analysis of PSP Data Quality: Results from a Case Study”, Empirical Software
Engineering: An International Journal.Krishnamurthy, S. (2003) “An Analysis of Open Source Business Models”, University of Washington.Lessig, L. (2002) “The Future of Ideas: The Fate of the Commons in a Connected World”, New York: Vintage Books.Michlmayr, M. and Hill, B. (2003) “Quality and Reliance on Individuals in Free Software Projects”, In: Proceedings of the 3rd
Workshop on Open Source Engineering, Portland, USA: ICSE, pp.105-109.Michlmayr, M. (2004) “Managing Volunteer Activity in Free Software Projects”, In: Proceedings of the 2004 USENIX Annual
Technical Conference, FREENIX Track, Boston, USA, pp. 93-102Mockus, A., Fielding, R. and Herbsleb, J. (2000) “A Case Study of Open Source Software Development: the Apache Server”, In:
The 22nd International Conference on Software Engineering, pp. 263-272.Mockus, A., Fielding, R. and Herbsleb, J, (2002) “Two Case Study of Open Source Software Development: Apache and Mozilla”,
ACM Transactions on Software Engineering and Methodology, Vol. 11, No. 3, pp. 309-346Morisio M. (2000) “Applying the PSP in industry”, IEEE Software, 17(6), pp. 90-95O’Connor, R., Duncan, H., Coleman, G., Morisio, M., McGowan, C., Mercier, C. and Wang, Y., “Improving Professional Software
Skills in Industry - A Training Experiment", Technical Report CA-0201, Dublin City University, 2001OpenBRR (2005) “Modelo de Levantamento para Avaliação de Preparo para Negócios”, Disponível em:
http://www.openbrr.org, Acessado em: 18/02/2007.OSMM (2005) “Making the Open Source Ready for the Enterprise: The Open Source Maturity Model”, Disponível em:
http://www.navicasoft.com/Newsletters/OSMMWhitepaper.pdf, Acessado em: 18/02/2007.
ReferênciasPerens, B. (1999) “The open source definition. in Open Sources: Voices from the OpenSource Revolution” C. Dibona, S. Ockman, and M. Stone, Eds., O’Reilly,Sebastopol, Calif., 171–188.Perry, D., Staudenmayer, P., Votta, L. (1994) “People, Organizations, And Process Improvment”, IEEE Software 11(4), pp. 36-
45Prechelt, L. and Unger, B. “An Experiment Measuring the Effect of Personal Software Process (PSP) Training”, IEEE
Transactions on Software EngineeringPorter, A., Votta, L. (1995) “Comparing Detection Methods for Software Requirements Inspections: A Replication Using
Professional Subjects”, Empirical Software Engineering: An International Journal 3(4), pp. 355-379Raymond, E. (1999) “The Cathedral and the Bazaar”. 1st. O'Reilly & Associates, Inc.Raymond, E. (2001) “The Cathedral and the Bazaar. Musgins on Linux and Open Source by an Accidental Revolutionary”,
revised edn, Sebastopol, CA: O’Reilly & Associates, Inc.Rothermel, G., Harrold, M. (1996) “Analyzing Regression Test Selecion Techniques”, IEEE Transaction on Software Engineering
22(8), pp. 529-551Schulmeyer, G., McManus, J. (1999) “Handbook of Software Quality Assurance”, Prentice hallSison, R., Diaz, D., Lam, E., Navarro, D. and Navarro, J. (2005) “Personal Software Process (PSP) Assistant”, In: Proceedings of
the 12th Asia-Pacific Software Engineering Conference (APSEC’05) Stallman, R. (1999) “The GNU Operating System and the Free Software Movement”, In:Open Sources: Voices from the Open Source Revolution, O’Reilly, Sebastopol,Calif., 53–70.Turkle, S. (1985) “The Second Self: Computers and the Human Spirit”, New York: Simon and Schuster.Wu, S. (2004) “The Impact of Open Source Software”, Disponível em: http://www2.cs.uh.edu/~schwu/nOSS_TermPaper1.pdf.
Acessado em: 07/05/2006.Yang, C. (2006) “Problems in Quality Assurance under Open Source Development Model”, Freie Universitat, Berlin Zhao, L. and Elbaum, S. (2003) “Quality Assurance under the Open Source Development Model”, The Journal of Systems and
Software, volume 66, pp. 65-75
Melhoria da Qualidade do Processo em Fábricas de Software Open Source através do Personal Software Process
Julio Maravitch Maurício Neto [email protected]
VI Encontro CIn sobre Qualidade, Processos e Gestão de Software 27/03/2007