Você está na página 1de 20

Programao Pragmtica

Carla Maria Pinheiro

Agenda

O que Programao Pragmtica? Programador Pragmtico Antes da Implementao... Tracer Code Boas Prticas de Programao Testes Bibliografia
Tpicos Avanados Engenharia de Software 3 05/11/2004

O que Programao Pragmtica?


Criada por Andrew Hunt e David Thomas Boas prticas de programao Voltada para o programador e para a equipe de programao No tem um processo definido em fases

Tpicos Avanados Engenharia de Software 3

05/11/2004

Programador Pragmtico

Curioso por tcnicas e tecnologias

Investimento no aprendizado (aulas, cursos)

Inquisitivo Crtico Realista Assume responsabilidades


Assume seus erros Prov opes para resolv-los


Tpicos Avanados Engenharia de Software 3

05/11/2004

Antes da Implementao...

Levantamento de Requisitos

Trabalhe com o usurio para pensar como ele Dicionrio de dados em reunies com usurios Especificao de mini-linguagem Use Cases

Documentao formal ou informal? Poucos detalhes

Template para caso de uso - Cockburn


Tpicos Avanados Engenharia de Software 3 05/11/2004

Template
1. CHARACTERISTIC INFORMATION

Goal in context Scope Level Preconditions Success end condition Failed end condition Primary actor Trigger
Tpicos Avanados Engenharia de Software 3 05/11/2004

Template
2. MAIN SUCCESS SCENARIO 3. EXTENSIONS 4.VARIATIONS 5. SCHEDULE 6. OPEN ISSUES

Tpicos Avanados Engenharia de Software 3

05/11/2004

Template
8.RELATED INFORMATION

Priority Performance target Frequency Superordinate use case Subordinate use cases Channel to primary actor Secondary actor Channel to secondary actor
Tpicos Avanados Engenharia de Software 3 05/11/2004

Tracer Code

Usado, principalmente, em sistemas novos no mercado Construo de parte do esqueleto do sistema

Adio de funcionalidades

Tpicos Avanados Engenharia de Software 3

05/11/2004

Tracer Code

Viso do sistema prxima da realidade

No um prottipo

O tracer code ser preenchido e corrigido com o desenrolar do sistema Prottipos, em geral, so descartveis

Tpicos Avanados Engenharia de Software 3

05/11/2004

Tracer Code

Usurios vem algo funcionando (demonstraes) Desenvolvedores constroem estrutura Plataforma de integrao Melhor sentimento de progresso
Tpicos Avanados Engenharia de Software 3 05/11/2004

Boas Prticas de Programao

Janela Quebrada

Projetos ruins, decises erradas, cdigo pobre Bugs encontrados -> Bugs corrigidos! Maior facilidade de correo no incio do desenvolvimento

Tpicos Avanados Engenharia de Software 3

05/11/2004

Boas Prticas de Programao

DRY Principle Dont Repeat Yourself

Toda parte do conhecimento deve ter uma simples e no-ambgua representao dentro do sistema!

Evite duplicao de Informao

Documentao em cdigo

Cdigos ruins precisam de comentrios!? Desatualizao dos comentrios

Tpicos Avanados Engenharia de Software 3

05/11/2004

Boas Prticas de Programao

Ortogonalidade

Componentes com funcionalidades bem definidas Mudanas localizadas Facilita o reuso Reduz risco do desenvolvimento

Tpicos Avanados Engenharia de Software 3

05/11/2004

Boas Prticas de Programao

Scripts

Tarefas Repetitivas

Editores de Texto

Uso de editores como IDE!!!

Controle de Cdigo Fonte


Tpicos Avanados Engenharia de Software 3

05/11/2004

Boas Prticas de Programao

Gerao de Cdigo

Geradores Passivos Geradores Ativos

Tpicos Avanados Engenharia de Software 3

05/11/2004

Boas Prticas de Programao

Refactoring

Refactoring automtico

Ferramentas

Wizards

No use se voc no entende o cdigo produzido!!

Tpicos Avanados Engenharia de Software 3

05/11/2004

Testes

Unitrios

Componentes

Integrao

Subsistemas
Dados Regresso Cause bugs
Tpicos Avanados Engenharia de Software 3

Validao e Verificao

Teste os testes!!!

05/11/2004

Bibliografia

Andrew Hunt, David Thomas, The Pragmatic Programmer, Addison-Wesley, 2000 www.pragmaticprogrammer.com http://alistair.cockburn.us/

Tpicos Avanados Engenharia de Software 3

05/11/2004

Programao Pragmtica