Ambientes de Desenvolvimento de Software Giordano Cabral [email protected] Baseado em conteúdo de Ceça Moraes Conteúdo Definição de Ambiente de Desenvolvimento Instalação Plataformas2 IDE’s 2 Ambiente de Desenvolvimento de Software Conjunto de ferramentas de apoio ao longo de todo o processo de desenvolvimento do software Compostos por: Editor de código fonte, compilador, depurador (debugger) e bibliotecas auxiliares Exemplos: Eclipse, Matlab, NetBeans, JCreator, Delphi, IDLE 3 Motivação Conferência de Garmish, 1968 Crise do Software • Dificuldades no desenvolvimento de software • Rápido crescimento da demanda • Alta complexidade dos problemas • Inexistência de técnicas para o desenvolvimento de sistemas 4 Motivação Consequências da crise: orçamento e/ou finalizados acima do tempo esperado • Projetos realizados acima do • Produtos de software: • de baixa qualidade • sem atender aos requisitos do cliente não gerenciáveis • com código difícil de manter • projetos 5 Motivação Melhorando a crise do software: • Uso de melhores métodos (estrutural, OO) e ferramentas • Mudança de paradigma sobre o que é desenvolver como deve ser feito Ambientes de desenvolvimento de Software, software e buscando • Qualidade do produto • Aumento na produtividade • Cumprimento dos prazos • Redução na alocação de recursos 6 Ferramentas CASE CASE = Computer-Aided Software Engeneering Engenharia de Software Auxiliada por Computador Ferramentas para o auxílio em uma ou mais etapas do ciclo de desenvolvimento de software 7 Ferramentas CASE Exemplos Funcionalidade Controle de Versão Ferramentas CVS, Subversion Gerência de Projetos Microsoft Project, dotProject Eclipse, NetBeans Edição Ferramentas de Prototipagem Automação de tarefas Testes Geração de Código Documentação JBuilder, Delphi Apache Ant, Apache Maven Junit,Cunit Velocity, Transformica Javadoc 8 Ambientes de Desenvolvimento de Software Linguagem C (estruturada, variáveis) • http://www.bloodshed.net/devcpp.html 9 Dev C++ 10 Dev C++ 11 Dev C++ 12 Dev C++ 13 Python Python (interpretada, orientada a objetos) • http://python.org 14 Python 15 Python 16 Plataforma da Linguagem Python Implementação do Python em: • CPython – Linguagem C (http://pt.wikipedia.org/wiki/CPython) • IronPython – C#, na plataforma . NET (http://pt.wikipedia.org/wiki/IronPython) • Jython – Linguagem Java (http://pt.wikipedia.org/wiki/Jython) 17 Java JSDK (Java Software Development Kit) Ferramentas para desenvolvimento de aplicações Java usam o JSDK como base: • Eclipse • Netbeans • Borland JBuilder 18 JSDK Dois componentes: • A linguagem de programação Java • A plataforma Java • Java Virtual Machine – JVM (Máquina Virtual Java) • Java Applicaton Programming Interface (API Java) 19 Java 20 Plataforma Java 21 Java Virtual Machine Assegura a independência das aplicações entre diferentes plataformas Traduz comandos Java para a linguagem da máquina nativa 22 Bytecodes Código intermediário (Java –> Sistema Operacional) • Instruções específicas para a máquina virtual Java A JVM transforma os bytecodes em instruções da máquina que está executando o programa 23 Bytecodes JVM Interpretador Java (Mac) JVM Compilador Java código Bytecode Java (arquivo binário independente de plataforma) Interpretador Java (PC) JVM Interpretador Java (Linux) 24 Bytecodes O interpretador é uma JVM Bytecodes possibilitam "write once, run anywhere” 25 Ambiente Java 26 Java 27 IDEs Algumas ferramentas são usadas com linha de comando: JVM, compilador Java IDEs fornecem uma interface gráfica para estas ferramentas • Integrated Development Environment Automatizam: • Compilação, Debug, Execução • Empacotamento de uma aplicação Aumento da produtividade 28 IDES Exemplos O Eclipse • IDE OpenSource • Editor visual • Tem instalada a JVM (Java Virtual Machine) • Não é instalado • Descompactar o arquivo em c:\eclipse • Workspace www.eclipse.org 29 Eclipse 30 Eclipse 31 Eclipse 32 Eclipse 33 Eclipse 34 Eclipse 35 Eclipse Várias distribuições para finalidades específicas 36 IDES Matlab Linguagem e ambiente interativo para desenvolvimento de algoritmos, visualização e análise de dados e computação numérica • Cálculo com matrizes • Licença • Fácil e rápida manipulação de uma grande quantidade de informações • Bibliotecas auxiliares (“Toolboxes”) 37 Matlab 38 Lições Aprendidas Ambiente de Desenvolvimento de Software • Definição • Tipos • Linguagem C • Linguagem Python • Linguagem Java Ambiente de Desenvolvimento Integrado (IDES) • Matlab • Eclipse 39 Perguntas ?? 31/05/2017 40 Bibliografia DEITEL, H. M., DEITEL, P. J. Java: Como Programar. 6ª Ed. Porto Alegre: Bookman, 2005. “A Guide to Developing Computing Policy Documents”, Barbara L. Dijker http://www.eclipse.org/ http://www.inf.pucrs.br/~flash/cbp/instala_de vc/ http://www.guj.com.br http://www.bloodshed.net/devcpp.html 41 Exercícios Pesquisar outros ambientes de programação para as linguagens apresentadas e para outras linguagens também? • Exemplo: C#, Pascal, Cobol 42