O documento discute a implementação de software, que envolve a criação da versão executável do software usando linguagens de programação, frameworks ou customização de software existente. A implementação deve seguir diretrizes como minimizar a complexidade, antecipar mudanças, facilitar teste e reuso de código. As ferramentas de construção incluem IDEs, geradores de interface e ferramentas de teste e depuraçã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