1 Orientação a Objetos - Programação em C++ 1 o Conjunto de Slides – A : o Conteúdo da Disciplina, Importância Sistêmica desta, e a Introdução à OO/C++.

Slides:



Advertisements
Apresentações semelhantes
TIPOS ABSTRATOS DE DADOS
Advertisements

APS I Análise e Projeto de Sistemas I
PROGRAMAÇÃO DE COMPUTADORES
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Engenharia de Software
Programação Orientada aos Objectos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra Set/2005 Uma Introdução Usando.
Ricardo Jacobi Linguagem C Introdução Linguagens de Programação Fatores de Qualidade em Software Estilos de Programação Manutenção em Software Histórico.
INF Computação Gráfica
INTRODUÇÃO À PROGRAMAÇÃO
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Universidade Federal do Espírito Santo
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Aula 2 Aspectos Preliminares
Análise e Projeto de Sistemas
Linguagem C.
Introdução a Programação Orientada a Objetos
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
TÉCNICAS DE PROGRAMAÇÃO II
Linguagens Orientadas a Objeto
Desenvolvimento de Sistemas Orientados a Aspectos
Linguagem de Programação II
Programação Estruturada
Métodos de Construção de Software: Orientação a Objetos
LABORATÓRIOS DE INFORMÁTICA IV ENGENHARIA DE SOFTWARE: DA TEORIA À PRÁTICA GRUPO 13.
Tipos Abstratos de Dados
Introdução a Desenvolvimento de Sistemas
Introdução a Desenvolvimento de Sistemas
PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof
Programação orientada a objectos em C++
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Algumas notas sobre a linguagem de programação C
Aula 1 – Profª Danielle Costa
Programação I Aula 1 Prof. Gilberto Irajá Müller Última atualização 2/3/2009.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Analise e Conceito de C++ e C#
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
UML e a Ferramenta Astah
Introdução a Programação Orientada a Objetos
Programação estruturada
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
Histórico, cenário atual e características.
20/04/2017 Orientação a Objetos 1 1.
Evolução das Principais Linguagens de Programação
Engenharia de Software
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Módulo II Capítulo 1: Orientação a Objetos
Paradigmas da Programação – Semestre 1 – Aula 7 Professor: Eduardo Mantovani )
APS II Análise e Projeto de Sistemas de Informação II
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Linguagem de Programação
Fundamentos de Programação 1 Slides 11 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “ Struct, Union, Enum, Typedef ”
Fundamentos de Programação1 Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Introdução e elementos principais”
Fundamentos de Programação 1
1 Orientação a Objetos - Programação em C++ 3 o Slides: Relações entre objetos em C++ e UML OO – Engenharia Eletrônica Prof. Jean Marcelo SIMÃO – DAELN.
1.
1 Orientação a Objetos - Programação em C++ 1 o Slides – B : Introdução à OO/C++ Passando à Pratica – Estruturas, Classes e Objetos Engenharia Eletrônica.
Fundamentos de Programação1 Aula N. 01 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Introdução e elementos principais” 1.
Prof. Hemerson Calabreze 1.  Dentro de uma garrafa, cheia de um líquido nutritivo, cai um micróbio. O micróbio se alimenta, cresce e se divide em dois.
1 Orientação a Objetos - Programação em C++ Slides 9: Programação ou Implementação: uma fase da engenharia de software. Projeto (UML) e Programação (C++,...)
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Orientação a Objetos - Programação em C++
Transcrição da apresentação:

1 Orientação a Objetos - Programação em C++ 1 o Conjunto de Slides – A : o Conteúdo da Disciplina, Importância Sistêmica desta, e a Introdução à OO/C++. Engenharia Eletrônica Prof. Jean Marcelo SIMÃO - DAELN/UTFPR Aluno Monitor: Vagner Vengue (slides 6 e 7)

2 Linguagens de Programação Uma grande diversidade de linguagens de programação... C++ Smalltalk Object Pascal C Pascal Clipper Cobol Lisp Prolog... Java

3 Tipos de Linguagens de Programação Linguagem de Baixo Nível: Linguagem de Alto Nível: Linguagens de programação. (e.g. C, Pascal,...) (e.g. C++, Object Pascal,...) e.g. Linguagens Declarativas (como o Prolog e mesmo LISP) Linguagem Montadora (Assembler) Linguagens imperativas (procedimentais, orientada a objetos)

4 Paradigmas Imperativos de Linguagem de Programação TiposProcedimentalOO ExemplosC, Pascal, …C++, Object Pascal,…

5 Orientação a Objetos (OO) - O que é a Orientação a Objetos (OO) ? - É um paradigma (“modelo genérico”, conjunto de idéias) para o projeto e implementação de softwares, tal como o paradigma procedimental o é. - No que concerne a implementação de software, existem linguagens de programação que suportam (“naturalmente”) este paradigma, sublinhando aqui o C++. - Neste contexto, um objeto pode ser entendido como um módulo (coeso) do software.

6 OO - Vantagens - Paradigma atual mais utilizado no desenvolvimento de novos softwares. - Mais fácil de representar a solução pretendida. - Apresenta uma maneira mais simples de modelar o software, buscando-se identificar os objetos da realidade onde ele será inserido. - Redução no custo de manutenção. - Quando é necessário fazer alterações no software, modifica-se apenas os objetos envolvidos. Como conseqüência, o software tende a ter um ciclo de vida mais longo. - Aumento de reutilização de código. - Um método (i.e., uma operação) de um objeto pode ser acessado por outros objetos que o agreguem, além disso, diferentes objetos podem compartilhar os mesmos métodos.

7 OO - Vantagens - Aumento de segurança de sistemas. - Cada objeto “encapsula” o seus dados, permitindo que os outros objetos acessem apenas os seus membros (atributos e métodos) que forem permitidos. Ou seja, cada objeto deve ser responsável pelo seu estado interno. - Melhor interação entres as fazes de projeto. - Permite a mesma abordagem desde a fase de levantamento de requisitos (ou necessidade) até a efetiva implementação. - Técnicas mais avançadas de documentação, que permitem representar aspectos estruturais e comportamentais dos objetos. - Torna o trabalho em equipe mais produtivo. -Pois os integrantes não precisam conhecer todos os detalhes de implementação de cada objeto, que pode representar até subsistemas inteiros.

8 Origens da OO e C++ OOOO - Kristen Nygaard e Ole-Johan Dahl ( ). –Centro Norueguês de Computação. –Linguagem Simula 67. – OOOO - Alan Kay e Equipe (~1971). –Xerox (Palo Alto – USA). –Linguagem Smalltalk. – C++C++ - Bjarne Stroustrup (1983) –Bell Labs (USA) – Outras referências ( informais por assim dizer ): Wikipedia Blog Webgoal Obs.: Sítios (sites) visitados em 01/03/2009.

9 Por que C/C++ ? De certa forma, a linguagem C++ é... Vocês aprenderam a linguagem C......e aprenderão C++ nesta disciplina....uma evolução da linguagem C... que comporta (em geral) a linguagem C procedimental... bem como uma nova sintaxe orientada a objetos...por que C/C++ ? Mas...

10 Linguagem C Uma linguagem difundida: –Amplamente utilizada... –Uma linguagem veterana... –Sintaxe difundida, servindo como inspirações tecnológicas. Linguagem clássica Características Uma linguagem multinível: –Permite compor programas com abordagens variando entre ‘baixo e alto nível’. Organização : –Funções e estruturas de dados. –Divisão de código fontes em (diversos arquivos (.h e.c). Flexibilidade –Ponteiros: Permite a independência de memória pré- alocada. Dennis RitchieDennis Ritchie e Ken Thompson, anos 70Ken Thompson É uma linguagem importantíssima para Eng. Eletrônica e Eng. da Computação que tendem a trabalhar com sistemas de forte intimidade eletrônico-computacional (e.g. para fins de otimizações e economias de memória) como sistemas embarcados.

11 Exemplo de um Código em C /* Arquivo PESSOA.H */ struct Pessoa { int dia; int mes; int ano; int idade; }; int Calc_Idade ( struct Pessoa p, int ano ); /* Arquivo MAIN.C */ #include #include “PESSOA.h” void main() { struct Pessoa Einstein, Newton; Einstein.dia = 14; Einstein.mes = 3; Einstein.ano = 1879; Newton.dia = 4; Newton.mes = 1; Newton.ano = 1643; Einstein.idade = Calc_Idade ( Einstein, 2007 ); Newton.idade = Calc_Idade ( Newton, 2007 ); printf("A idade de Einstein seria %d \n", Einstein.idade); printf("A idade de Newton seria %d \n", Newton.idade); getchar(); } /* Arquivo PESSOA.C */ #include “PESSOA.h” int Calc_Idade ( struct Pessoa p, int ano ) { int idd = ano - p.ano; return idd; } Exemplo de um projeto com três arquivos em Linguagem C.

12 Linguagem C Características Devido a sua flexibilidade de utilização, ela pode ser considerada como complicada: –Uma alternativa é o uso de outras linguagens “menos flexíveis”, i.e. especializada para a aplicação em questão. –Entretanto, o fato é que compreender C, com suas flexibilidades, permite compreender outras linguagens. Paradigma imperativo-procedimental: –O paradigma procedimental é menos rico que o paradigma orientado a objetos (OO). –Uma alternativa a linguagem C, seria uma linguagem OO, em particular a linguagem C++. –Pode-se dizer que a linguagem C++ é uma evolução da linguagem C... C C++

13 Linguagem C++ Características ‘Comporta’ a linguagem C. Comporta (a maioria dos) conceitos de programação OO, com suas vantagens. Uma linguagem híbrida. C++ : Uma linguagem flexível C++ C OO C++ Ling. OO C++ Linguagem Procedimental Bjarne StroustrupBjarne Stroustrup, anos 80

14 Linguagem C++ e OO Conceitos da OO Suportados Elementares: –Classe –Objetos. Herança. Agregação. Polimorfismo A Orientação a Objetos (OO) permite, por exemplo, organizaçãoreaproveitamento uma melhor organização e reaproveitamento de código.

15 Questões sistêmicas C/C++ As linguagens C/C++ são suportada por diversos ambientes/tecnologias, por exemplo: –Borland C++. –C++ Builder da Borland. –Microsoft Visual C++. –Microsoft Visual C++.Net –Microsoft Visual C++.Net (Express Edition) –G++ –Dev C++ Suporte Tecnológico ao C/C++ Influência Tecnológicas do C/C++ Exemplos de Tecnologias Influenciadas: –MatLab. –Java. –C#.

16 C++ e a Engenharia de Software Levantamento de Requisitos (ou Necessidades) Análise e Projeto Implementação (ou Codificação) Testes Ciclo Clássico da Engenharia de Software Questões sistêmicas C/C++ C ++ / OO Orientação a Objetos (OO)

17 Questões sistêmicas C/C++ Suporte da Engenharia de Software ao C++ A engenharia de software se compõe de várias etapas, como análise requisitos, projeto, implementação e testes. Para o projeto existe uma Linguagem de Projeto Orientada a Objetos (OO) chamada UML (Unified Modeling Language). Os conceitos da UML são, em geral, suportados pelo C++. A maioria das ferramentas voltadas ao projeto e implementação (as Ferramentas C.A.S.E.) suportam UML, C++ e linguagens similares (Java e C#). A maioria das Ferramentas C.A.S.E (Computer Aided Software/System Engineering) suportam certa geração de código (em C++) a partir de diagramas UML. Star UML.Alguns exemplos de Ferramentas C.A.S.E. são: System Architect, Mega, Rational Rose e Star UML.

18 Conclusão C/C++ constitui: –Uma tecnologia amplamente utilizada. –Uma tecnologia clássica. –Uma tecnologia flexível. C/C++ apresenta influências em desenvolvimentos tecnológicos e tem suporte tecnológico. C/C++ é uma tecnologia viva. C/C++ é uma tecnologia importante.

19 Conteúdos Estudados da Linguagem C Elementos Básicos da Linguagem C/C++ - Identificadores - Operadores Aritméticos, Lógicos e Relacionais - Comandos de Entra/Saída Estruturas de Decisão - Simples (if) - Composta (if-else) - Múltipla (switch) Estruturas de Repetição - Com teste no início (while) - Com teste no final (do – while) - Com variável de controle (for) Estruturas de Dados Homogêneas - Vetores - Matrizes - Acesso dinâmico (ponteiros) Estruturas de Dados Heterogêneas - Registros de tamanho fixo (struct) - Registros de tamanho variável (union) - Acesso Dinâmico a estruturas Funções / ‘Procedimentos’ - Passagem de parâmetro por valor - Passagem de parâmetro por referência - Retorno de valor Arquivos Estruturas de Dados - Listas (encadeadas, duplamente encadeadas)... Recursividade...

20 Conteúdo de C++ a ser estudado Estruturas-Objetos - Atributos - Métodos... Classe-Objetos - Atributos - Métodos - Construtores - Destrutores - Privacidade (Private, Protected, Public)... Relacionamentos - Relacionamentos comuns - Agregação -Herança Conceito Avançados - Sobrecarga de método - Sobrecarga de operador - Classe Abstrata - Polimorfismo - Herança múltipla... Dentre outros…... vide planejamento da disciplina. Fund. 2

21 Bibliografia Deitel H. M., Deitel, P. J. "C++ Como Programar". 3 a Edição Bookman, Lippman S. B., Lajoie J. “C++ Primer”. 3 a ed.: Addison-Wesley, ISBN Stroustrup B. “C++ Programming Language”. The Special Edition, Addison- Wesley (Pear), ISBN Schildt H. “C Completo e Total”. 3° ed.. Makron Books, ISBN Kernighan B. W., Ritchie D. M. “The C Programming Language”, Prentice-Hall. ISBN (Edição Brasileira: “A linguagem de programação C”. Editora Campus. 1986). C C++

22 Sítio (ou site) da Disciplina