1 Gestão de Desejos Engenharia de Software numa empresa certificada de Telecomunicações José...

Post on 21-Apr-2015

107 views 0 download

Transcript of 1 Gestão de Desejos Engenharia de Software numa empresa certificada de Telecomunicações José...

1

Gestão de DesejosEngenharia de Software numa empresa

certificada de Telecomunicações

José BonnetFCUP, 2003.Mai.19

2

Índice de conteúdos

• Introdução• O problema• A solução• Conclusão

3

Onde estamos ...

4

Como nos organizamos ...

5

A nossa qualidade ...

•34 colaboradores34 colaboradores

•31 com formação superior31 com formação superior

•idade média : 33 anosidade média : 33 anos

6

As nossas competências ...

• Ambientes de Desenvolvimento– Oracle (Developper 2000)– Web

• Tecnologias– Call-Center – Computer Telephony Integration (CTI)– IVR´s– Reconhecimento e síntese de voz

• Sistemas – Billing e Customer Care Systems (BCCS’s) – Operation Support Systems (OSS’s)

7

Índice de conteúdos

• Introdução• O problema• A solução• Conclusão

8

Os desejos do...• … Cliente:– ter tudo o que se lembrar

até ao momento de entrada ao serviço

– gastar pouco (desenvolvimento e manutenção)

• … “Chefe”:– ter tudo o que o cliente se

lembrar até ao momento de entrada ao serviço

– ter as melhores pessoas, sempre motivadas e na equipa

– receber (desenvolvimento e manutenção)

• … Programador:– programar– ter tudo bem percebido

antes de começar a trabalhar

– fazer coisas engraçadas, sempre com a tecnologia ou o produto mais recente

– re-fazer as coisas, optimizando-as

• … Software:– estar correcto e ter

qualidade– ser fácil de usar e manter

9

Evolução do valor do Software

Lançamentodo novo SI

Tempo

Valor do SI

Limiar deactualização do SI

Lançamentode 1 nova

versão

Lançamentode 1 nova

versão

10

Portanto...

• A Engenharia de Software não passa de uma Gestão de Desejos!

11

Índice de conteúdos

• Introdução• O problema• A solução• Conclusão

12

Qualidade de Recursos Humanos

• Há pessoas 10 vezes mais produtivas que outras!

• Diferentes perfis, ambições, etc.– perfil de testes é “destrutivo”– há quem nunca queira deixar de ser

programador, por muita experiência que tenha acumulado!

• Ter em atenção o Princípio de Peter: a evolução na carreira só se dá até se atingir o patamar máximo de incompetência

• Motivar, motivar, motivar!

13

Tarefas de Desenvolvimento de

Software

Tabela 1: Tarefas de desenvolvimento de software.

1. Definição de requisitos 2. Prototipagem 3. Definição da arquitectura

4. Planeamento do projecto 5. Concepção preliminar 6. Concepção detalhada

7. Revisão de concepção 8. Programação 9. Análise de reutilização

10. Aquisição de pacotes 11. Inspecções de código 12. Verificação e validaçãoindependente

13. Gestão de configurações 14. Integração formal 15. Documentação

16. Testes de unidades 17. Testes de funcionalidades 18. Testes de integração

19. Testes de sistema 20. Testes de campo 21. Testes de aceitação

22. Testes independentes 23. Garantia de qualidade 24. Instalação e formação

25. Gestão de projecto

Só os projectos mais exigentes têm todas estas tarefas:Militaresque envolvem risco de vidas

Só a Programação é que garantidamente se faz!

14

Não há UMA metodologia...

• Forma como se encadeiam as diversas tarefas ao longo do tempo

• Pode variar com:– cliente– produto– projecto– tecnologia– equipa desenvolvimento

• Deve ter em conta:– Dinâmica dos requisitos– Entregas frequentes do software

15

Sobreposição de tarefas

0

2 0

4 0

6 0

8 0

1 0 0

1 2 0

1 4 0

1 6 0

1 8 0

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0

S e m a n a

Tota

l de

Hor

as p

or fa

se

G e s tã o d e p ro je c to G e s tã o d e c o n f ig u ra ç õ e s G a ra n t ia d a q u a lid a d e D e fin iç ã o d e re q u is ito s

A n á lis e e C o n c e p ç ã o D o c u m e n ta ç ã o Im p le m e n ta ç ã o T e s te s

A c e ita ç ã o D is p o n ib iliz a ç ã o à p ro d u ç ã o

D e fin iç ã o R e q u is i to s A n á l is e e C o n c e p ç ã o Im p le m . e te s te s A c e ita ç ã o e p a s s a g e m à p ro d u ç ã o

F ig u r a 1 : E x e m p lo d e e s f o r ç o ( to ta l d e h o r a s tr a b a lh a d a s) p o r c a d a u m a d a s f a s e s d ed e s e n v o lv im e n to d e u m p r o je c to d e so f tw a r e .

16

Tarefas iterativas

Análise

Definiçãode requisitos

Concepção

17

Arquitectura

• Forma como os diversos “componentes” do sistema se organizam e comunicam

• “spaghetti” vs. “ravioli”• Deve ser:

– simples: 7±2– fácil de entender por todos os envolvidos– robusta– flexível

• Inexistência implica difícil evolução e altos custos de manutenção do software

18

Estimativas• Dimensão, esforço, calendário• Quase adivinhação: não usar datas

rigorosas• Depende das métricas:

– linhas de código: desenho de ecrãs? Tabelas de bases de dados?

– Functional points: difícil interpretaçãoCusto projecto

(esforço edim ensão)

Calendárioprojecto

Conceitoinicial doproduto

Conceitoaprovado

do produto

Especificaçãode requisitos

Especificaçãoda concepção

do produto

Especificaçãodetalhada daconcepção

Produtocom pleto

4x

2x

0,25x

0,5x

1,0x

1,6x

0,6x

1,0x

1,25x

0,8x

19

Gestão de riscos

• Diferentes probabilidades• Diferentes impactos• Gestão activa: perseguir o risco

Descrição do risco r Probabilidade(r) Importância(r)

(semanas)

Impacto(r)

(semanas)

Calendarização demasiado optimista 50% 5 2,5

Adição de um requisito que permitaactualizações completamente automáticas apartir do mainframe

5% 20 1,0

Características (ainda indefinidas) adicionaissolicitadas pelo marketing

35% 8 2,8

Interface instável com o subsistema deformatação de gráficos

25% 4 1,0

Concepção desajustada – trabalho extra derevisão

15% 15 2,25

20

Garantia da qualidade

• Testes– Especificação e execução– Detecção e correcção de defeitos, custos:

• 200 vezes + mais caro corrigir um defeito nos testes de aceitação do que na especificação!

– Muitos tipos: unitários, integração, sistema, aceitação, campo

– não são muito eficazes por si só:• mais usados: unitários, só 50% defeitos detectados• mais eficazes: campo (com dados reais), só 65%

defeitos detectados mas em geral caros

• Inspecções, leitura acompanhada

21

UML

• Porquê?– É uma norma: é cada vez mais conhecida

universalmente– é orientado a objectos: facilita a análise,

reutilização– é “configurável”: estereótipos, ...

• …mas é muito complicado?– Não! Deve usar-se “QB”– 90% utilizadores usa apenas

• Diagramas de Casos de Uso• Diagramas de Classes

22

Padrões de desenho• Descrevem “soluções simples e elegantes para

problemas específicos da concepção de software orientado a objectos” [“Design Patterns: Elements of Reusable Object-Oriented Software”, Gamma, Helm, Johnson, Vlissides. Addison Wesley,1994]

• Estas soluções evoluíram no tempo, reflectindo necessidades de reutilização e aumento de flexibilidade

• Outros tipos de padrões: anti-padrões, padrões de análise, padrões de organização, ...

23

Índice de conteúdos

• Introdução• O problema• A solução• Conclusão

24

Conclusão

• É muito complicado gerir os desejos de todos os intervenientes num processo de desenvolvimento de software

• Há cada vez mais ferramentas auxiliares...– “mentais”, independentes de um produto ou

vendedor– baseadas em normas (UML, …)– tecnologias evoluíram muito (internet, Java, …)

• …mas ainda estamos longe do “karma” da ES: fazer software com “engenho”, e não só com “arte”!