Prof. Marcelo H. Yamaguti (1)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Implementação
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (2)
Referências
• Estude para aprofundamento no conteúdo:
– SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São
Paulo: Pearson, 2011. – Capítulo 7
– PFLEEGER, Shari Lawrence. Engenharia de Software: teoria
e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulos 7
– IEEE. Guide to the Software Engineering Body of Knowledge.
SWEBOK. Version 3. IEEE Computer Society. 2014. –
Chapter 3
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (3)
Implementação
• Implementação (Construção):
– Criação da versão executável do software:
• Desenvolvimento de software com linguagens de
programação; ou
• Customização/adaptação de software de prateleira; ou
• Integração de componentes de software.
Implementação
Introdução à Engenharia de Software
Software
implementado
Projeto
detalhado
Componentes
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (4)
Implementação
• Fundamentos:
– Minimizar a complexidade (criar módulos com função bem
definida)
– Antecipar a mudança (definir estruturas flexíveis e
adaptáveis)
– Construir para a verificação (facilitar o teste)
– Padrões na construção (de codificação, de formatos de
dados, etc.).
– Reuso (reaproveitar software: bibliotecas, componentes,
frameworks, produtos)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (5)
Implementação
• Reuso:
– Pode ocorrer em vários níveis:
• Reuso de especificação.
• Reuso de código (bibliotecas, API – Application Programming
Interface).
• Reuso de componentes e frameworks (conjunto de objetos).
• Reuso de sistemas (COTS – Commercial-Off-The-Shelf, software de
prateleira).
– Pode ter dois focos:
• Implementar com reuso: visa a reutilização de software existente.
• Implementar para reuso: visa a criação de software que possa ser
reutilizado.
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (6)
Implementação
• Diretrizes de programação:
– Algoritmo (lógica de programação)
– Estruturas de dados (armazenamento de dados no programa)
– Estruturas de controle (controle do fluxo de execução do
programa)
– Tratamento de exceção (controle de possíveis erros/falhas)
– Documentação (interna e externa do código)
– Nomenclatura dos elementos (nomes significativos para
variáveis, classes, métodos, etc.)
– Tabulação (endentação) do código
– Refatoração (melhoria do código, remoção de redundância)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (7)
Implementação
• Linguagens de Programação:
– O paradigma de programação pode influenciar a definição da
arquitetura, projeto e implementação do software.
– Há diversos paradigmas e linguagens de programação:
• Procedural (Ex.: FORTRAN, COBOL, C, Pascal, BASIC)
• Orientado a objetos (Ex.: Smalltalk, C++, Java, C#)
• Funcional (Ex.: LISP, ML)
• Lógica (Ex.: PROLOG)
Introdução à Engenharia de Software
PUCRS - FACIN
Prof. Marcelo H. Yamaguti (8)
Implementação
• Ferramentas de construção:
– IDE (Integrated Development Enviroment). Ex: BlueJ,
Eclipse, Visual Studio
– Geradores de GUI (Graphical User Interface)
– Ferramentas de teste unitário
– Ferramentas de depuração (debugging)
– Geradores de código
– Geradores de aplicação (MDA-Model Driven Architecture)
– Geradores de documentação
– Gerenciador de configuração (versionamento, integração,
rastreabilidade)
Introdução à Engenharia de Software
Prof. Marcelo H. Yamaguti (9)
Pontifícia Universidade Católica do Rio Grande do Sul
Faculdade de Informática
Prof. Marcelo H. Yamaguti
Introdução à Engenharia de
Software
DESENVOLVIMENTO DE
SOFTWARE
Implementação

Implementação

  • 1.
    Prof. Marcelo H.Yamaguti (1) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Implementação
  • 2.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (2) Referências • Estude para aprofundamento no conteúdo: – SOMMERVILLE, Ian. Engenharia de Software. 9ª ed. São Paulo: Pearson, 2011. – Capítulo 7 – PFLEEGER, Shari Lawrence. Engenharia de Software: teoria e prática. 2ª ed. São Paulo: Prentice-Hall, 2004. - Capítulos 7 – IEEE. Guide to the Software Engineering Body of Knowledge. SWEBOK. Version 3. IEEE Computer Society. 2014. – Chapter 3 Introdução à Engenharia de Software
  • 3.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (3) Implementação • Implementação (Construção): – Criação da versão executável do software: • Desenvolvimento de software com linguagens de programação; ou • Customização/adaptação de software de prateleira; ou • Integração de componentes de software. Implementação Introdução à Engenharia de Software Software implementado Projeto detalhado Componentes
  • 4.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (4) Implementação • Fundamentos: – Minimizar a complexidade (criar módulos com função bem definida) – Antecipar a mudança (definir estruturas flexíveis e adaptáveis) – Construir para a verificação (facilitar o teste) – Padrões na construção (de codificação, de formatos de dados, etc.). – Reuso (reaproveitar software: bibliotecas, componentes, frameworks, produtos) Introdução à Engenharia de Software
  • 5.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (5) Implementação • Reuso: – Pode ocorrer em vários níveis: • Reuso de especificação. • Reuso de código (bibliotecas, API – Application Programming Interface). • Reuso de componentes e frameworks (conjunto de objetos). • Reuso de sistemas (COTS – Commercial-Off-The-Shelf, software de prateleira). – Pode ter dois focos: • Implementar com reuso: visa a reutilização de software existente. • Implementar para reuso: visa a criação de software que possa ser reutilizado. Introdução à Engenharia de Software
  • 6.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (6) Implementação • Diretrizes de programação: – Algoritmo (lógica de programação) – Estruturas de dados (armazenamento de dados no programa) – Estruturas de controle (controle do fluxo de execução do programa) – Tratamento de exceção (controle de possíveis erros/falhas) – Documentação (interna e externa do código) – Nomenclatura dos elementos (nomes significativos para variáveis, classes, métodos, etc.) – Tabulação (endentação) do código – Refatoração (melhoria do código, remoção de redundância) Introdução à Engenharia de Software
  • 7.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (7) Implementação • Linguagens de Programação: – O paradigma de programação pode influenciar a definição da arquitetura, projeto e implementação do software. – Há diversos paradigmas e linguagens de programação: • Procedural (Ex.: FORTRAN, COBOL, C, Pascal, BASIC) • Orientado a objetos (Ex.: Smalltalk, C++, Java, C#) • Funcional (Ex.: LISP, ML) • Lógica (Ex.: PROLOG) Introdução à Engenharia de Software
  • 8.
    PUCRS - FACIN Prof.Marcelo H. Yamaguti (8) Implementação • Ferramentas de construção: – IDE (Integrated Development Enviroment). Ex: BlueJ, Eclipse, Visual Studio – Geradores de GUI (Graphical User Interface) – Ferramentas de teste unitário – Ferramentas de depuração (debugging) – Geradores de código – Geradores de aplicação (MDA-Model Driven Architecture) – Geradores de documentação – Gerenciador de configuração (versionamento, integração, rastreabilidade) Introdução à Engenharia de Software
  • 9.
    Prof. Marcelo H.Yamaguti (9) Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Prof. Marcelo H. Yamaguti Introdução à Engenharia de Software DESENVOLVIMENTO DE SOFTWARE Implementação