Extração de dados sobre
requisitos/riscos de evolução
em um ambiente colaborativo de
desenvolvimento de software
Aluno: Alexandre L. Silva
Agenda
• Introdução
• Estudo sobre ambientes colaborativos
• Avaliação de um projeto com método ágil
• Riscos antes, durante e depois do projeto
• Hipótese observada
• Hipótese de solução técnica
• Estado da arte
• Objetivo
• Conclusão
• Bibliografia
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
2
Introdução
• Gerenciamento do ciclo de vida de aplicativos
– Gestão entre pessoas, processos e informações, através do uso de
ferramentas
– Benefícios:
• Aumento de produtividade
• Aumento de qualidade
• Melhora a interatividade
• Acelera o desenvolvimento
• Reduz o tempo de manutenção
• Maximiza os investimentos em
competência, processos e tecnologias
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
3
Introdução
• Gerenciamento de configuração
– Identificar mudanças convenientes e rastrear os impactos das
mudanças aceitas
– Antecipar riscos e prever as ações para minimizar os impactos
– Atividades principais:
• Planejamento de gerenciamento de configurações
• Gerenciamento de mudanças
• Gerenciamento de versões
• Construção de sistemas
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
4
Introdução
• Ciclo de vida colaborativo
• Riscos existentes:
– Envolvimento coordenado
entre os membros da equipe
– Restrição política: Divergência de
interesses
– Pilares:
– Restrição tecnológica:
Planejamento de arquitetura
• Colaboração/Cooperação
• Comunicação
• Distribuição
• Automação
05/11/2015
– Restrição financeira: Visibilidade do
investimento
• Melhoria contínua
– Restrição de recursos humanos:
Equipes heterogêneas
• Rastreabilidade
– Restrição em processos: Burocracia
Alexandre L. Silva © LES/PUC - Rio
5
Estudo sobre ambientes colaborativos
• Gerência em ambientes colaborativos:
– As pessoas colaboram. As equipes se autoorganizam.
– Os processos facilitam o fluxo de eventos, além de indicar qual demanda foi
entregue e quando.
– O planejamento define o escopo das demandas e quem as realizará.
– As informações são compartilhadas em repositórios.
– As ferramentas são especificas para as tarefas do usuário.
• Importância da colaboração:
– Empenho na colaboração: Políticas de colaboração, organização e princípios
– Acessibilidade:
• Visibilidade sobre o ciclo de vida do artefato
• Melhoramento contínuo
– Responsabilidade de todos:
• Os participantes devem se adaptar ao meio
• Os participantes devem promover a integração dos demais
– Inspeção: Deve-se ter conhecimento do trabalho dos outros
– Melhoria: Os participantes devem incentivar a qualidade no trabalho
Estudo sobre ambientes colaborativos
• Importância das ferramentas no apoio à gerência:
– Diminuem a distância entre os envolvidos
• Equipes distribuídas geograficamente ou em locais diferentes dentro da
empresa
– Visibilidade:
• Os itens de trabalho e o código fonte estão acessíveis
• Identificação da saúde do projeto
• Análise de mudanças e impactos
– Transparência:
• Auditoria
• Facilita a tomada de decisões
Estudo sobre ambientes colaborativos
• Importância das informações/métricas:
– Ser facilmente coletada
– Pertencer a um conjunto pequeno de métricas e diagnósticos
– Fornecer feedback frequente e regular
– Responder uma pergunta específica para uma pessoa real
– Seguir tendências e não números
– Incentivar a comunicação
– Revelar, ao invés de esconder, seu contexto e suas variáveis
Gráfico de burndown
Figura 7: Gráfico de burndown
Avaliação de um projeto com método ágil
• Cliente:
– Empresa de comércio eletrônico
– A empresa detém o domínio do conhecimento de negócio
• Objetivo:
– Gerar uma versão web de um sistema vital
• Expectativa:
– Gerar um sistema flexível e de fácil manutenção, com uma
arquitetura corporativa, através de componentes reutilizáveis
• Início do projeto em maio/2010
Avaliação de um projeto com método ágil
• Histórico resumido
– O desenvolvimento começou com requisitos definidos com poucos
detalhes
– Durante esse trabalho, foi preciso treinar a equipe que estava
distante
– Em alguns momentos, houve conflito de versões no controlador de
versões, com consequente perda de código pronto
– Depois de alguns meses de trabalho, a arquitetura foi modificada
– Com a nova arquitetura, foram adicionadas novas tecnologias ao
projeto
– O projeto passou a ser dividido entre outras equipes de
desenvolvimento
– As mudanças eram constantes no banco de dados
Avaliação de um projeto com método ágil
• Análise de riscos durante o projeto:
– Falta de visão a médio e longo prazo
– Falta de detalhamento de requisitos
• Definição dos requisitos através da descrição existente e mockup de telas
– Demora na definição da arquitetura do sistema
• Ao estabilizar a arquitetura, já havia muito código pronto, gerando
retrabalho inútil
– A equipe distante era muito novata
• O tempo de aprendizagem sobrecarregou alguns integrantes da equipe
local
– Estimativas com métricas variáveis
• Não havia uma métrica coerente para a avaliação de esforço
– Expectativa grande X Pouco tempo e equipe reduzida
• Entrega imediata X Eng. De Software
Riscos antes, durante e depois do projeto
• Antes:
– Faça a análise de viabilidade
– Avalie a compatibilidade com métodos ágeis
– Identifique os interessados
– Motive as equipes
• Durante
– Proponha a análise de requisitos de maneira simples
– Antecipe a proposta de arquitetura
– Faça primeiro os itens que agregam mais valor ao negócio
– Mantenha pontos contínuos de revisão
– Revise os objetivos das próximas iterações
– Indique o que será alterado, construído e testado
– Avalie o crescimento do desempenho das equipes
Riscos antes, durante e depois do projeto
• Depois:
– Avaliar a organização do projeto
– Provavelmente vai ocorrer evolução ou manutenção do sistema
– A natureza dos projetos de manutenção está próxima do ambiente de
desenvolvimento iterativo
Hipótese observada
• Manutenção ou melhoria são mudanças
• Caminho natural das demandas: as demandas geram mudanças
no escopo dos requisitos
Hipótese de solução técnica
• Realizar a gestão de requisitos/impactos através de matriz de
rastreabilidade
REQ1
REQ2
REQ3
REQ1
CDU1
Classe 1
CDU2
Classe 2
CDU3
Classe 3
REQ2
REQ3
• Geração de matrizes nos projetos:
– Não existe geração
– Geração manual
– Geração semiautomática
Dificuldade de análise de riscos
Estado da arte
• Rastreabilidade:
– Mesmo em projetos pequenos ou de tamanho moderado, o
estabelecimento de elos de rastreabilidade, entre artefatos-chave e
modelos, continua sendo uma tarefa desafiadora e cara. (Neumuller;
Grunbacher, 2006)
– Embora a rastreabilidade seja legalmente requerida na maioria das
aplicações de segurança crítica, e seja reconhecida como um componente
de muitas iniciativas de melhoria em processos de software, as
organizações ainda lutam para implementá-la de modo que ofereça um
bom custo-benefício. (Cleland-Huang, 2006)
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
17
Estado da arte
• Mineração de repositórios de software:
– O campo da mineração de repositórios de software está amadurecendo
graças à facilidade de acesso e à quantidade de informações disponíveis
nos repositórios de software. (Hassan, 2008)
• Riscos
– Toda mudança é considerada no contexto de risco pois essa mudança
pode introduzir defeitos no software. (Cordy, 2008)
• MSR 2012 - The 9th Working Conference on Mining Software
Repositories (junto com a ICSE)
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
18
Objetivo
• Aprimorar a gerência de riscos e mudanças através de
rastreabilidade automatizada e transparente
• Realizar a mineração de repositórios de software das bases de
svn no laboratório, com o objetivo de gerar matrizes de
rastreabilidade, para apoiar a gestão de mudanças em requisitos
de software
Ferramentas de controle de versão
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Microsoft Visual SourceSafe
SourceGear Vault
Perforce
Borland StarTeam
BitKeeper
Monotone
OpenCM
GNU Arch
Serena PVCS Version Manager
MKS Source
CVS (Concurrent Version System)
and TortoiseCVS
Subversion and TortoiseSVN
Microsoft Team Foundation System
(TFS)
IBM Rational ClearCase
Comportamento no tempo
Visão geral da mineração de repositórios de software
REQ1
REQ2
REQ3
CDU1
CDU2
CDU3
REQ1
Classe 1
Classe 2
Classe 3
REQ2
REQ3
Conclusão
• Antecipar a proposta de arquitetura:
– Revisar alguns requisitos não funcionais
• Identificar o perfil dos interessados:
– Aliar interesse com expectativas
– Promover a transparência aos interessados
• Promover a colaboração:
– A responsabilidade é diluída
• Toda iteração é um mini projeto:
– No início de cada iteração, a gerência de configuração avalia o
impacto dos requisitos
• Observar constantemente as ferramentas:
– Alguns sintomas são percebidos facilmente
Bibliografia
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
AMBLER, S. W. The Agile System Development Life Cycle (SDLC)
AMBLER, S. W. Effective Practices for Modeling and Documentation
AMBLER, S. W. The Disciplined Agile Delivery (DAD) Lifecycle
AMBLER, S. W. A Manager's Introduction to The Rational Unified Process (RUP)
AMBLER, S. W. Justifying a Software Development Project
BACKES, J. Rastreabilidade Semi-Automática Através de Mapeamento de Entidades
BRADLEY, A., MURPHY, G., Supporting Software History Exploration
CLELAND-HUANG, J. Just Enough Requirements Traceability
COHN, M., KEITH, C. How to Fail with Agile
Cordy, J. Comprehending Reality - Practical Barriers to Industrial Adoption of Software Maintenance
Automation
COLLINS-SUSSMAN, B., FITZPATRICK, B., PILATO, C. Version Control with Subversion
DOSHI, H. Sprint Burndown says a lot about your scrum team...
GOTTESDIENER, E. RAD Realities: Beyond the Hype to How RAD Really Works
Hassan, A.E. The road ahead for Mining Software Repositories.
IBM Corporation. Melhorando o desempenho dos projetos com processos comprovados e adaptáveis
MIRANDA, P. Auditoria de Sistemas
NEUMULLER, C.; GRUNBACHER, P. Automating Software Traceability in Very Small Companies: a case study
and lessons learned.
PACHECO, D. Seja inteligente e não use Agile
SOMMERVILLE, Ian. Software Engineering
SATO, D. Métricas de Acompanhamento para Metodologias Ágeis
Tortoisesvn Project Home
WIKIPEDIA.ORG. IBM Rational Unified Process
WIKIPEDIA.ORG. Dynamic Systems Development Method
05/11/2015
Alexandre L. Silva © LES/PUC - Rio
23
Download

Alexandre2011.2 - (LES) da PUC-Rio