aula 07 ferramentas de desenvolvimento - puc-rioinf1628/docs/2016_2/inf1301_aula07_ferramen… ·...
Post on 28-Sep-2020
0 Views
Preview:
TRANSCRIPT
Aula 07Ferramentas de desenvolvimento
Alessandro Garcia
Alexander Chávez
LES/DI/PUC-Rio
Setembro 2016
Setembro 2016 2 / 40Alexander Chávez López - LES/DI/PUC-Rio
Especificação
• Objetivo dessa aula
– Apresentar algumas das ferramentas utilizadas ao desenvolver
programas modulares.
Referências complementares:
– Ierusalimschy, R.; Programming in Lua; Rio de Janeiro:
Lua.org; 2004.
– Staa, A.v.; Utilitário GMAKE: Gerador de diretivas MAKE; LES -
Laboratório de Engenharia de Software, Departamento de
Informática, PUC-Rio; 2006
Especificação
• Ambientes de engenharia de software.
• Atividades do desenvolvimento modular.
• A ferramenta MAKE.
• A ferramenta GMAKE.
• Ferramentas “feitas em casa”.
Setembro 2016 3 / 40Alexander Chávez López - LES/DI/PUC-Rio
Setembro 2016 4 / 40Alexander Chávez López - LES/DI/PUC-Rio
Ambientes de engenharia de software
• Processos de desenvolvimento
– documentos descrevendo, passo a passo, o que e quando deve
ser realizado
• Procedimentos (métodos)
– documentos descrevendo como devem ser realizadas as
atividades do processo
• Padrões
– conjuntos de regras, recomendações e diretrizes a serem
obedecidas ao desenvolver determinada classe de artefatos
• Técnicas
– formas de apresentar ou habilidades de fazer algo
Setembro 2016 5 / 40Alexander Chávez López - LES/DI/PUC-Rio
Ambientes de engenharia de software
• Plataformas de desenvolvimento
– hardware
– rede
– sistema operacional
– software de suporte
– . . .
• Repositórios
– arquivos organizados contendo todas as informações relativas
aos sistemas objetivo
• Ferramentas
– software de apoio ao desenvolvimento
– CASE – Computer aided software engineering
Setembro 2016 6 / 40Alexander Chávez López - LES/DI/PUC-Rio
Ambientes de engenharia de software
• Papéis
– descrições das funções a serem desempenhadas por pessoas.
• Pessoas com
– proficiência
- experiência professional
- formação
- know how
- habilitação
Setembro 2016 7 / 40Alexander Chávez López - LES/DI/PUC-Rio
Atividades do desenvolvimento modular
Setembro 2016 8 / 40Alexander Chávez López - LES/DI/PUC-Rio
Ferramentas básicas
• Editor de texto
– editor convencional
– editor sensível à sintaxe
• Editor de linguagens de representação gráficas
– editor de diagramas
• Processador de linguagem
– compilador de programas, pode gerar:
- linguagem nativa
- byte code
• Interpretador
– puro, ex. batch;
– byte code
Processo de compilação simples
Setembro 2016 9 / 30Alexander Chávez López - LES/DI/PUC-Rio
Setembro 2016 10 / 40Alexander Chávez López - LES/DI/PUC-Rio
Ferramentas básicas
• Bibliotecas e frameworks
– Framework de apoio aos testes
• Compositor de bibliotecas (LIB)
– compõe uma biblioteca de módulos objeto
• Ligador (LINK)
• MAKE
– controla a reconstrução de artefatos compostos
• Depurador (debugger)
– executa um programas compilado de modo que se possa
controlar, visualizar e modificar o progresso da execução
• Backup
Setembro 2016 11 / 40Alexander Chávez López - LES/DI/PUC-Rio
Make
• Problema
– tenho 1000 módulos, altero o módulo m512 o que fazer para
reconstruir o programa?
• Recompilar tudo é
– muito caro
– desnecessário: grande parte dos componentes não varia de
uma compilação para outra
Setembro 2016 12 / 40Alexander Chávez López - LES/DI/PUC-Rio
Make
• Problema
– tenho 1000 módulos, altero o módulo m512.c o que fazer para
reconstruir o programa?
- recompilar m512
- ligar tudo
– tenho 1000 módulos, altero o módulo m512.h o que fazer para
reconstruir o programa?
- procurar todos os clientes de m512 e recompilá-los
- recompilar m512
- ligar tudo
– Risco: não recompilar todos que deveriam ser recompilados
– Risco: recompilar vários que não deveriam ser recompilados
– Custo: trabalho para descobrir quem deve ser recompilado
• Que tal desenvolver uma ferramenta?
Setembro 2016 13 / 40Alexander Chávez López - LES/DI/PUC-Rio
Make
Setembro 2016 14 / 40Alexander Chávez López - LES/DI/PUC-Rio
Make
Exemplo de um arquivo make 1 / 3
Setembro 2016 15 / 30Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de um arquivo make 2 / 3
Setembro 2016 16 / 30Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de um arquivo make 3 / 3
Setembro 2016 17 / 30Alexander Chávez López - LES/DI/PUC-Rio
Processo de compilação simples
Setembro 2016 18 / 30Alexander Chávez López - LES/DI/PUC-Rio
Setembro 2016 19 / 40Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de um arquivo make: .build
• Diretivas .build são utilizadas pelo linker
• Exemplo
Março 2016 20 / 40Alexander Chávez López - LES/DI/PUC-Rio
GMAKE - Gerador de script de make
• Redigir um script de make tende a ser enfadonho e sujeito a
erros
• Solução:
– desenvolver uma ferramenta que gere o script make a partir de:
- um script de composição (específico para um construto)
– um script de plataforma de desenvolvimento (genérico para
todos os construtos de um projeto)
Setembro 2016 21 / 40Alexander Chávez López - LES/DI/PUC-Rio
GMAKE exemplo de composição
GMAKE exemplo de composição
• [Diretorios]: Seção obrigatória e necessariamente a
primeira seção do arquivo <ArqConst>. Define o nome do
construto e a estrutura padrão de diretórios.
• [Modulos]: Seção obrigatória. Contém a lista de arquivos
origem (em geral arquivos contendo módulos de
implementação), a partir dos quais deve ser gerado o
construto.
• [BuildInicio]: Seção opcional. As diretivas desta seção
contém as linhas do script que devem anteceder a lista de
módulos componentes do artefato a ser composto pelo LINK
ou LIB. Estas diretivas serão gravadas no arquivo
<construto>.build. Estas diretivas informam tipicamente os
parâmetros de composição a serem utilizados pelo LINK ou
LIB.
Setembro 2016 22 / 40Alexander Chávez López - LES/DI/PUC-Rio
Setembro 2016 23 / 40Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de script make gerado
Setembro 2016 24 / 40Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de script make gerado
Setembro 2016 25 / 40Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de script make gerado
Setembro 2016 26 / 40Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de script make gerado
Setembro 2016 27 / 40Alexander Chávez López - LES/DI/PUC-Rio
Exemplo de script make gerado
Ferramentas “feitas em casa”: .bat
• O que é um arquivo Batch (.bat)?
Setembro 2016 28 / 40Alexander Chávez López - LES/DI/PUC-Rio
Setembro 2016 29 / 40Alexander Chávez López - LES/DI/PUC-Rio
Ferramentas “feitas em casa”: .bat
• Exemplo de batch file
Novo projeto
• Visual Studio 2008 ou 2010 – Editor
– Criar Projeto > Aplicação de Console – Win32
– Importar Arquivos
• ArcabouçoTeste.lib
• CESPDIN.H
• CONTA.H
• GENERICO.H
• LERPARM.H
• TST_ESPC.H
• MODULO - .H, .C e TST.C
– Build da Aplicação
– \debug\.exe
• GMake – Compilação via prompt
Setembro 2016 30 / 40Alexander Chávez López - LES/DI/PUC-Rio
Aula 07Ferramentas de desenvolvimento
Alessandro Garcia
Alexander Chávez
LES/DI/PUC-Rio
Setembro 2016
top related