Fábrica de Software III
Resposta à RFP do IEC
Breno Costa
Gerente de Negócios
Agenda









Problema Apresentado
Proposta de solução da Fábrica III
Metodologia
Fases x Artefatos
Organização da Fábrica
Métrica de Estimativa de Esforço
Desenvolvimento Baseado em Componentes
Ferramentas
Acordo de Nível de Serviço (SLA)
Problema Apresentado
Alocação automática de recursos
humanos e físicos para definição de
horário e consultas
 Sugestão de solução: Job Shop
Problem e Time Scheduling

Investigações Fábrica III

Job Shop não é adequado para o problema
 Timetabling é mais indicado
 Diversas abordagens e variações para
solucionar timetabling
 Abordagem e algoritmo serão definidos no
início da fase de Desenvolvimento de
Componentes
Atores e Casos de Uso
Atores

Gerente de alocações

Usuário comum
Casos de Uso







Manter cadastro de
professores/alunos
Manter cadastro de
disciplina
Manter cadastro de
recurso físico
Realizar alocação
Alterar/Cancelar
alocação
Solicitar sugestão de
alocação
Consultar alocação
Cálculo do esforço
Atores
1
2
Gerente de alocações
Usuário comum
Total de Atores
Peso Total
Complexidade
S
M
C
0
0
1
0
0
1
0
0
2
6
Casos de Uso
1
2
3
4
5
6
7
Manter cadastro de professores/alunos
Manter cadastro de disciplinas
Manter cadastro de recurso físico
Realizar alocação
Alterar/Cancelar alocação
Solicitar sugestão de alocação
Consultar alocação
Total
Peso Total
Pontos de Casos de Uso Não
Ajustados (PCUNA)
Complexidade
S
M
C
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
4
2
55
1
61
Peso
Valor
Peso
x
Valor
2
0
0
1
4
4
1
1
1
1
3
3
1
0
0
0,5
0
0
0,5
0
0
2
0
0
1
1
1
2
1
2
T11 Inclui características
1
especiais de segurança
Fornece acesso direto
T12
1
para terceiros
T13 facilidades de
1
Total dos Fatores Técnicos
Fatores de Complexidade
0
0
0
0
0
0
#
T1
T2
T3
T4
T5
T6
T7
T8
Fatores Técnicos
Sistema distribuído
Objetivos de
performance relativos
à tempo de resposta e
vazão
Eficiência para o
usuário (online)
Processamento interno
complexo
Reutilização de código
Facilidade na
instalação
Facilidade na utilização
Portabilidade
T9 Manutenabilidade
T10 Concorrência
11
0,71
Cálculo do esforço
Peso
Valor
x
Valor
#
Fatores Ambientais
Peso
FA1
Familiaridade com o RUP (ou o
processo de desenvolvimento
utilizado)
1,5
4
6
FA2
Experiência na aplicação
0,5
5
2,5
FA3
Experiência em orientação a objetos
1
5
5
FA4
capacidade de liderança do analista
líder
0,5
4
2
FA5
Motivação
1
4
4
FA6
Requisitos estáveis
2
4
8
FA7
Trabalhadores part-time
-1
5
-5
-1
0
0
FA8
Dificuldade na linguagem de
programação
Total dos Fatores Ambientais
Fatores Ambientais (FA)
22,5
0,725
Cálculo do esforço
RESULTADOS
31,4
Pontos de Casos de Uso (PCU)
Estimativa de Esforço (homens-hora)
A . Se QFA <= 2
565,1955
Esforço total: 565 horas
dias
70,6494
Prazo de entrega
6 semanas a partir da aprovação da
proposta

Caso proposta seja aprovada em
21/07/2003, o prazo de entrega será
01/09/2003

Metodologia
Baseada no RUP
 Metodologia de desenvolvimento
dividida em 4 fases:

– Comercial
– Planejamento e Gerenciamento
– Desenvolvimento de Componentes
– Testes e Validação
Fases da Metodologia
Comercial
Planejamento e
Gerenciamento
Desenvolvimento
Testes
Levantar
Necessidade
s do Cliente
Elaborar
Proposta
Técnica
Elaborar Plano
de Projetos
Preliminar
Definir o
Controle do
Projeto
Estimar Esforço do
Projeto
Acompanhar e
Gerenciar o
Projeto
Elaborar
Proposta
Comercial
Comunicar
Evolução do
Projeto
Definir
Problema
Especificar
Componentes
Projetar
Componentes
Implementar
Componentes
Elaborar
Plano de
Testes
Implementar
Testes
Realizar
Testes
Avaliar
Testes
Validar o
Projeto
junto ao
Cliente
Executar
Testes de
Aceitação
Metodologia - Fases
1. Fase Comercial
Levantar
Necessidades
do Cliente
Elaborar
Proposta
Técnica
Estimar
Esforço do
Projeto
Elaborar
Proposta
Comercial
2. Fase Planejamento e Gerenciamento
Elaborar Plano
de Projetos
Preliminar
Definir o
Controle do
Projeto
Acompanhar e
Gerenciar o
Projeto
Comunicar
Evolução do
Projeto
Validar o
Projeto junto
ao Cliente
Metodologia - Fases
3. Fase Desenvolvimento de Componentes
Definir
Problema
Especificar
Componentes
Projetar
Componentes
Implementar
Componentes
4. Fase Testes e Validação
Elaborar
Plano de
Testes
Implementa
r Testes
Realizar
Testes
Avaliar
Testes
Executar
Testes de
Aceitação
Fases x Artefatos
Fase
Comercial
Artefatos
1.
2.
3.
Planejamento e
Gerenciamento
1.
2.
3.
4.
5.
6.
7.
Desenvolvimento de
Componentes
1.
2.
3.
Testes e Validação
1.
2.
3.
Proposta Técnica
Planilha de Estimativa de Esforço
Proposta comercial
Plano de Projeto
Ata de Reuniões
Formulário de Controle de
Mudanças
Formulário de Validação do
Cliente
Relatório Avaliando Processo de
Desenvolvimento
Avaliações periódicas
Formulário de Controle de
Impactos
Documento de Requisitos
Documentos gerados no
MVCASE
Código-fonte
Plano de Testes
Relatório de Avaliação dos Testes
Componentes de Testes
Organização da Fábrica

Perfis que compõem a Fábrica III

Gerente de Negócios
 Gerente de Projetos
 Analista de Sistemas
 Analista de Qualidade
 Engenheiro de Software
 Engenheiro de Testes
 Líder de Equipe
Organização da Fábrica
Gerente de Negócios
Gerente de Projetos
Líder de Equipe
Engenheiro de Software
Analista de Sistemas
Engenheiro de Testes
Analista de Qualidade
Lider de Equipe
Engenheiro de Software
Analista de Sistemas
Engenheiro de Testes
Organização da Fábrica

Equipe X Perfil
Breno Costa
Gerente de Negócios e Engenheiro de
Testes
Carlos Andreazza
Engenheiro de Testes e Engenheiro de
Software
Carlos Júnior
Analista de Qualidade e Engenheiro de
Software (líder)
Clarissa Borba
Gerente de Negócios e Engenheiro de
Testes (líder)
Eduardo Almeida
Analista de Qualidade e Engenheiro de
Testes
Fábio Ferreira
Analista de Sistemas e Engenheiro de
Software
Luiz Eduardo Leite
Analista de Sistemas e Engenheiro de
Software
Mônica Priscila França
Analista de Sistemas e Engenheiro de
Testes
Taciana Vanderlei
Analista de Sistemas e Engenheiro de
Software
Vanessa Bittencourt
Gerente de Projeto e Engenheiro de
Testes
Vivianne Medeiros
Gerente de Projetos e Engenheiro de
Software
Métrica de Estimativa de Esforço

Breve Histórico [Kirsten Ribu 01]
–
–
–
–
Ponto de equilíbrio entre investimento e precisão
Estimativa de Especialista
Analogia
FPA
Por que Pontos de Caso de Uso?
 Benefícios

– Facilidade de uso
– Experiência da empresa no desenvolvimento O-O
Pontos de Caso de Uso [Gustav Karner 93]
Passos Necessários:
1. Identificar Atores e Casos de Uso
2. Categorizar Atores e Casos de Uso
3. Calcular PCU Desajustados
4. Calcular Fator Complex. Técnica
5. Calcular Fator Complex. Ambiental
6. Calcular PCU Ajustados
7. Converter PCUA para HH - [Schneider and Winters 98]
Pontos de Caso de Uso
Experiência com a métrica

Registro do esforço estimado x esforço
realizado
 Ajustes baseados em dados históricos
 Novo fator de conversão
Horas por PCU (realizado): 350/22,272 = 15,7148
Novo Fator: 18
Reutilização de Software
Software reuse is the use of existing
software knowledge or artifacts to build
new software artifacts [Frakes, 1995]
 Vantagens

– Qualidade
– Tempo de desenvolvimento
– Redução nos custos de desenvolvimento,
testes, documentação e manutenção
Artefatos Reutilizáveis [D’ Souza, 1999]
Código compilado [fonte]
 Casos de testes
 Modelos e projetos: frameworks e
padrões
 Interface de usuário
 Planos, estratégias e regras
arquiteturais


Desenvolvimento Baseado em
Componentes (DBC)
Visão anterior
– Blocos monolíticos
– Grande número de partes inter-relacionadas
– Relacionamentos implícitos

Necessidade de “quebrar” esses blocos
– Surgimento do DBC
– Redução da complexidade e custo de
desenvolvimento

Motivação
– Desenvolvimento da Internet
– Evolução: Mainframes .... Objetos Distribuídos
– Surgimento de Padrões – OMG, DCOM
Desenvolvimento Baseado em
Componentes
Home-Page e Ferramentas

http://www.cin.ufpe.br/~vnm/fabrica3
(acompanhamento)
 JBuilder (implementação)
 MVCASE [3] (modelagem)
 CVS [4] (controle de versões)
 Bugzilla [5] (reportar bugs)
 Project (gerenciador de cronograma)
 Word (documentação)
 PostgreSQL (armazenamento de dados)
 Twiki [6](compartilhamento de conhecimento)
Acordo de nível de serviço (SLA)
[Naomi Karten]

Serviço: desenvolvimento de software
 Indicadores:
– I1 - Problemas não-previstos
– I2 - Total de dias de atraso
– I3 - Relatórios semanais de status não-enviados
 Metas
 Fórmula: Saldo = (I1-1) + (I3) + (I2-3)
 Penalidade: Saldo x 10 horas
 Bônus: Saldo x 0,1 (conceito)
 Aplicação do SLA apenas para o próximo projeto
 Revisão do SLA é possível e indicada
Referências Utilizadas
[1] I. Aaen, P. Botcher, L. Mathiassen, Software Factories. Oslo, 1997 .
[2] H. P. Siy, J. D. Herbsleb, A. Mockus, M. Krishnan, G. T. Tucker, Making the
Software Factory Work: Lessons from a Decade of Experience.
[D’Souza, 1999] D’Souza, D., F., Wills, C., A. Objects, Components, and
Frameworks with UML – The Catalysis Approach. Addison-Wesley, 1999.
[Frakes, 1995] Frakes, W., B., Fox, C., J. Sixteen Question about Software
Reuse. Communications of the ACM. June 1995.
 [3] http://www.recope.dc.ufscar.br/mvcase/.
 [4] http://www.cvshome.org/.
 [5] http://bugzilla.mozilla.org/.
 [6] http://www.natalnet.br/twiki/.
[Gustav Karner 93], Resource Estimation for Objectory Projects. Copyright
Rational Software, Inc, 1993.
[Kirsten Ribu 01], Estimating Object-Oriented Software Projects with Use
Cases, Master of Science Thesis, University of Oslo, 2001.
[John Smith 99], The estimation of Effort based on Use Cases, Rational
Software White Paper, 1999.
[Schneider and Winters 98]. Applying Use Cases. Addison-Wesley, 1998.
[Naomi Karten], Establishing Service Level Agreements, 2001.
Referências Utilizadas
[Jain98] Jain, A., Meeran, S. "A state-of-the-art review of job-shop scheduling
techniques". Technical report, University of Dundee, Dundee, 1998.
[Schaerf95] Schaerf, A., "A survey of automated timetabling,", Report, CWI,
Amsterdam, 1995.
[Terra01] Terra, I., "Uma Solução para a Confecção do Horário Acadêmico".
Dissertação de Mestrado. Universidade Federal de Minas Gerais, 2001.
[Gröbner02] Gröbner, M., Wilke P.,"A General View on Timetabling Problems",
4th International Conference on the Practice and Theory of Automated Timetabling,
2002,
[Caldeira97] Caldeira, P., Agostinho, R., "School Timetabling Using Genetic
Search", Practice and Theory of Automated Timetabling, Toronto, 1997.
[Holland75] Holland J., Adaptation in Natural and Artificial Systems, University
of Michigan Press, 1975.
[Fang94] Fang, H., "Genetic Algorithms in Tametabling Problems", PhD Thesis,
University of Edinburgh, 1994.
[Fernandes02] Fernandes, C., Caldeira, J., "Infected Genes Evolutionary
Algorithm for School Timetabling", WSES, 2002.
Referências Utilizadas
[Souza01] Souza, F., Ochi, S., Maculan, N., "A GRASP-Tabu Search Algorithm to
solve a School Timetabling Problem", Metaheuristics International Conference MIC, July 2001
[Aarts97] Aarts, E., Lenstra K., Local Search in Combinatorial Optimization,
Wiley, 1997.
[Feo95] Feo, T., Resende, M., "Greedy randomized
procedures". Journal of Global Optimization, 1995.
adaptive
search
[Abramson92] Abramson, D., Abela, J., "A Parallel Genetic Algorithm for
Solving the School Timetabling Problem", 15 Australian Computer Science
Conference, 1992.
[Ribeiro01] Ribeiro, G., Lorena, L., "A Constructive Evolutionary Approach to
School Timetabling", EvoCOP2001 - First European Workshop on Evolutionary
Computation in Combinatorial Optimization, 2001
Download

Resposta a RFP