23
Engenharia de Software 2011-2 Ciência da Computação ENGENHARIA DE SOFTWARE Prof. Claudinei Dias email: [email protected] Recursos e Cronograma

Ciência da Computação ENGENHARIA DE SOFTWARE · a área de conhecimento tempo do Processo de Planejamento possui os 4 processos Descrição de Atividades Sequenciamento de Atividades

Embed Size (px)

Citation preview

Engenharia de Software 2011-2

Ciência da Computação

ENGENHARIA DE SOFTWARE

Prof. Claudinei Dias

email: [email protected]

Recursos e Cronograma

Engenharia de Software 2011-2

Roteiro

• Introdução;

• Recursos; – Pessoal; – Software; – Hardware; – Outros recursos;

• Cronograma;

– Divisão do esforço no projeto; – Redes de tarefas; – Linha do tempo;

2/23

Engenharia de Software 2011-2

Introdução

• Elaborar escalonamento de atividades

• Alocação de pessoal

• Estimar a necessidade de recursos

– Físicos

– Softwares

– Humanos

• Recursos e Cronograma é tarefa do planejamento do software.

• A disponibilidade de recursos para uma atividade específica deve ser estabelecida o mais cedo possível.

3/23

Engenharia de Software 2011-2

Recursos

• Segundo o PMBOK - "Project Management Body of Knowledge” a área de conhecimento RH do Processo de Planejamento possui 2 processos:

Planejamento Organizacional

Montagem de Equipe

Processos

4/23

Engenharia de Software 2011-2

Recursos

• Pessoas

– Habilidades necessárias

– Disponibilidade

– Duração das tarefas

– Início

• Devem-se avaliar as habilidades necessárias da equipe

• Quantidade de desenvolvedores e suas habilidades técnicas e não técnicas.

• Avaliar a necessidade de novas contratações, terceirização, quarteirização e treinamento.

• O número de pessoas deve ser determinado somente após a estimativa de esforço de desenvolvimento estiver completa.

5/23

Engenharia de Software 2011-2

Recursos

• Ferramentas de Hw/Sw

– Descrição

– Disponibilidade

– Duração

– Data da entrega

• As ferramentas de hardware e software devem sustentar os recursos humanos que irão desenvolver o projeto.

• O hardware pode ser dividido em propósito geral (impressoras, scanners, mouse, teclado), de desenvolvimento (ambiente de testes e desenvolvimento) e de produção, que é onde o software será executado quando estiver pronto.

6/23

Engenharia de Software 2011-2

Recursos

• Planejamento organizacional

• Considerando que um processo de desenvolvimento de software vai ocupar uma equipe de n pessoas com uma duração de k anos, é possível comentar algumas opções organizativas:

– n indivíduos são alocados a m diferentes tarefas com pequeno grau de interação, sendo que a coordenação da equipe fica a cargo do gerente de projeto;

– n indivíduos são alocados a m diferentes tarefas, com m n, formando equipes informais de desenvolvimento, com um responsável em cada equipe, sendo que a coordenação entre as equipes é da responsabilidade do gerente do projeto;

– n indivíduos são organizados em x equipes, cada equipe sendo alocada para uma ou mais tarefas; a organização de cada equipe é específica a ela própria, a coordenação ficando a cargo da equipe e do gerente do projeto.

7/23

Engenharia de Software 2011-2

Recursos - Exemplo

O núcleo de uma equipe vai ser composto dos seguintes elementos:

• um engenheiro sênior (ou programador sênior), responsável pelo planejamento, coordenação e supervisão das atividades relativas ao desenvolvimento do software;

• o pessoal técnico, de dois a cinco membros que realizam as atividades de análise e desenvolvimento;

• um engenheiro substituto, que atua no apoio ao engenheiro sênior e que pode, eventualmente, substituí-lo sem grandes prejuízos ao desenvolvimento do software.

A equipe de desenvolvimento pode ter a colaboração dos seguintes elementos:

• um conjunto de especialistas (telecomunicações, bancos de dados, interface homem-máquina, etc...);

• pessoal de apoio (secretárias, editores técnicos, desenhistas, etc...);

• um bibliotecário, o qual será responsável da organização e catalogação de todos os componentes do produto de software (documentos, listagens, mídia magnética, coleta de dados relativos ao projeto, módulos reutilizáveis, etc...).

8/23

Engenharia de Software 2011-2

Cronograma

• Segundo o PMBOK - "Project Management Body of Knowledge” a área de conhecimento tempo do Processo de Planejamento possui os 4 processos

Descrição de Atividades

Sequenciamento de Atividades

Estimativa de Duração de Atividades

Desenvolvimento do Cronograma

Processos

9/23

Engenharia de Software 2011-2

Cronograma

• Descrição das atividades

• Descrever cada tarefa do projeto de forma a estabelecer relacionamentos, para isto, basta que um gerenciamento dos recursos necessários a cada tarefa (recursos humanos, recursos de software, etc...) seja feito de forma eficiente.

• A possibilidade de se realizar determinadas tarefas em paralelo é um mecanismo interessante como forma de economia de tempo na realização de qualquer trabalho de engenharia.

• Sendo assim, as tarefas a serem realizadas durante um projeto de desenvolvimento de software podem ser expressas na forma de uma rede (rede de tarefas) a qual apresenta todas as tarefas do projeto, assim como as suas relações em termos de realização (paralelismo, seqüência, pontos de encontro, etc...)

10/23

Engenharia de Software 2011-2

Cronograma

• Sequenciamento de atividades

11/23

Engenharia de Software 2011-2

Cronograma

• Duas formas de definir:

– Prazo de entrega pré-estabelecido; – Prazo negociado com planejamento detalhado.

• Pontos importantes para definir um cronograma:

– Relação tempo-esforço; – Quantidade de tarefas e paralelismo; – Medir o progresso; – Distribuir esforço; – Métodos para determinar os prazos; – Representar e acompanhar o progresso o cronograma.

12/23

Engenharia de Software 2011-2

Cronograma

• Definição das tarefas:

– Sempre vai existir um conjunto de tarefas adequado para cada problema;

– Alcançar qualidade e não sobrecarregar a equipe.

– Extrair o máximo grau de paralelismo;

– Difícil prever todos problemas (ou tarefas) e os recursos necessários.

13/23

Engenharia de Software 2011-2

Cronograma

• Distribuição de tarefas:

– Dividir projeto em tarefas;

– Alocar tempo e recursos para cada tarefa (Regra 40-20-40);

– Estabelecer margem de segurança mínima;

– Mostrar de forma gráfica.

Análise eProjeto

(40-50%)

Testes

(30-40%)

Codif.

(15-20%)

14/23

Engenharia de Software 2011-2

Cronograma

• Estimativas de duração de atividades

• As tarefas a serem feitas são identificadas e mensuradas;

• O esforço é então estimado e são geradas interdependências entre as tarefas.

• Com base nesses fatos são gerados gráficos de otimização, que tornam claro onde é possível o paralelismo entre as tarefas, e onde será preciso o uso de mais recursos (geralmente chamado de caminho crítico).

• Durante o andamento do projeto, o gerente deve monitorar e controlar o cumprimento das atividades dentro do prazo estimado.

• Caso haja algum problema (e eles certamente surgirão), é preciso atacá-lo, redirecionando recursos, reordenando as tarefas ou até mesmo modificando prazos com o cliente antecipadamente, a fim de não comprometer o projeto.

15/23

Engenharia de Software 2011-2

Cronograma

• Desenvolvimento do cronograma

• A definição do cronograma é uma das tarefas mais difíceis de definir na etapa de planejamento do software.

• O planejador deve levar em conta diversos aspectos relacionados ao desenvolvimento, como:

– a disponibilidade de recursos no momento da execução de uma tarefa,

– as interdependências das diferentes tarefas,

– a ocorrência de possíveis estrangulamentos do processo de desenvolvimento e as operações necessárias para agilizar o processo,

– identificação das principais atividades,

– revisões e indicadores de progresso do processo de desenvolvimento, etc.

• A forma de representação dos cronogramas depende da política de desenvolvimento adotada

• As unidades de tempo consideradas no projeto (dias, semanas, meses, etc...) são anotadas na linha superior da folha de cronograma.

16/23

Engenharia de Software 2011-2

Cronograma

• Desenvolvimento do cronograma

• As tarefas do projeto, as atividades e os indicadores de progresso são definidos na coluna da esquerda.

• O traço horizontal permite indicar o período durante o qual determinada atividade será realizada, o tempo necessário sendo medido em unidades de tempo consideradas.

• Quando atividades puderem ser realizadas em paralelo, os traços vão ocupar unidades de tempo comuns.

• O cronograma deve explicitar as atividades relevantes do desenvolvimento e os indicadores de progresso associados. É importante que os indicadores de progresso sejam representados por resultados concretos (por exemplo, um documento).

• A disponibilidade de recursos deve também ser representada ao longo do cronograma. O impacto da indisponibilidade dos recursos no momento em que eles são necessários deve também ser representado, se possível, no cronograma.

17/23

Engenharia de Software 2011-2

Lista de Tarefas

Tarefas Duração (DIAS) Dependências

T1 8

T2 15

T3 15 T1

T4 10

T5 10 T2,T4

T6 5 T1,T2

T7 20 T1

T8 25 T4

T9 15 T3,T6

T10 15 T5,T7

T11 7 T9

T12 10 T11

Cronograma

18/23

Engenharia de Software 2011-2

start

T2

M3T6

Finish

T10

M7T5

T7

M2T4

M5

T8

4/7/94

8 days

14/7/94 15 days

4/8/94

15 days

25/8/94

7 days

5/9/94

10 days

19/9/94

15 days

11/8/94

25 days

10 days

20 days

5 days25/7/94

15 days

25/7/94

18/7/94

10 days

T1

M1 T3

T9

M6

T11

M8

T12

M4

Cronograma

Lista de Tarefas em Rede - o caminho crítico

esta em destaque

19/23

Engenharia de Software 2011-2

4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

T4

T1

T2

M1

T7T3

M5

T8

M3

M2

T6

T5

M4

T9

M7

T10

M6

T11

M8

T12

Start

Finish

Cronograma

Lista de Tarefas em Gráfico

20/23

Engenharia de Software 2011-2

4/7 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

T4

T8 T11

T12

T1

T3

T9

T2

T6 T10

T7

T5

Fred

Jane

Anne

Mary

Jim

Cronograma

Alocação de Pessoal

21/23

Engenharia de Software 2011-2

Bibliografia

BIBLIOGRAFIA BÁSICA:

PRESSMAN, R.S. Engenharia de Software. Mc Graw Hill, 5ª Edição 2001.

SOMMERVILLE,I. Engenharia de Software. Addison Wesley, 6ª Edição 2003.

REZENDE,D.A. Engenharia de Software e Sistemas de Informação. Brasport, 2ª edição.

BIBLIOGRAFIA COMPLEMENTAR:

WEBER,K.C. et all. Qualidade e produtividade em Software. Makron Books, 1999.

ROCHA,A.R.C et all; Qualidade de Software. Editora Linarth, 1999.

Anais do SBES - Simpósio Brasileiro de Engenharia de Software.

SEI. SOFTWARE ENGINEERING INSTITUTE. CMMI for Development (CMMI-DEV), Version 1.2, Technical report

CMU/SEI-2006-TR-008. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2006.

SOFTEX. MPS.BR - Melhoria de Processo do Software Brasileiro. Guia Geral, versão 1.2. 2007.

ABNT – ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 12207 – Tecnologia de informação -

Processos de ciclo de vida de software. Rio de Janeiro, 1998.

ISO/IEC - The International Organization for Standardization and The International Electrotechnical Commission,

ISO/IEC TR 15504 Software Process Assessment. 1998.

22/23

Engenharia de Software 2011-2

Ciência da Computação

ENGENHARIA DE SOFTWARE

Prof. Claudinei Dias

email: [email protected]

Recursos e Cronograma