Mudanças entre as edições de "POO29705-2019-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 247: Linha 247:
 
*Classes e Objetos no C++
 
*Classes e Objetos no C++
 
**declaração
 
**declaração
**construtor e destrutor
+
**construtor e destrutor; construtor default;
**implementação inline
+
**implementação inline;
 +
**private x public;
 +
**criação dinâmica de objetos usando new e delete;
  
 
==Declaração de classes==
 
==Declaração de classes==

Edição das 16h04min de 25 de abril de 2019

Professor

  • Eraldo Silveira e Silva (eraldo@ifsc.edu.br)

ALUNOS

  • Alfredo
  • Valmir

Avaliação

  • 1 Prova Formal
  • 1 Nota de Atividades
  • 1 Projeto

OBSERVAÇÃO

  • cada registro de aula coreesponde a 2HA.

AULA 1 (2ha)- Dia 25/02/2019

Plano de Ensino

  • Competências
    • Desenvolver Projetos Orientados a objetos
  • Bases Tecnológicas
    • Ciclos de desenvolvimento de software.
    • Qualidade de software.
    • A visão de objetos.
    • Projeto orientado a objetos com auxilio computacional e linguagem UML.
    • Programação orientada a objeto utilizando linguagem C++ ou Java.
    • Introdução a programação para WEB.
    • Acesso a banco de dados.

Revisão de Lógica de Programação e de Programação C

  • Livro: Estudo Dirigido Linguagem C - Manzano
  • gcc e gedit

Exemplo pg.46 do livro:

#include <stdio.h>

int main()
{
 int num1,num2,soma;

 printf("Entre com o primeiro número\n");
 scanf("%d", &num1);
 printf("Entre com o segundo número\n");
 scanf("%d", &num2);
 
 soma = num1 + num2;

 printf("Valor da soma é %d\n", soma);
}
  • Compilação
gcc ex1.c -o ex1

ATIVIDADES

  • Ler Cap.3 do Livro e fazer todos exercícios do final. Fazer commit no github - TAREFA 1
  • Ler Cap. 4.1, 4.2, 4.3 e 4.4.

AULA 2 - Dia 8/03/2019

OBJETIVOS

  • Instruções de Decisão C - revisão
  • Instruções de Repetição no C - revisão
  • Exemplo de controle de acesso

Material de Referência

ATIVIDADE

  • Finalizar leitura Cap.4 e começar a leitura Cap.5
  • Fazer execícios do final do Cap.4 e postar no github - TAREFA 2 (deadline 13/03)
  • Fazer execícios do final do Cap.5 e postar no github - TAREFA 3 (deadline 20/03)

AULA 3 - Dia 15/03/2019

OBJETIVOS

  • Revisão conceito de Arrays
  • Revisão de Funções

Exercício Inicial de Verificação

Computar a soma de N números inteiros a serem fornecidos no teclado usando o comando for. Mostrar o resultado.

Referências

https://wiki.sj.ifsc.edu.br/index.php/AULA_8_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

https://wiki.sj.ifsc.edu.br/index.php/AULA_9_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

https://wiki.sj.ifsc.edu.br/index.php/AULA_10_-_Programa%C3%A7%C3%A3o_1_-_Engenharia

Cap.6 e 7 do livro.

AULA 4 - Dia 22/03/2019

OBJETIVOS

  • O paradigma orientado a objetos (cap.1 Bezerra)
    • modelagem de sistemas de software;
    • paradigma OO:classes e objetos, mensagens e abstração
    • a UML
  • O pŕocesso de desenvolvimento de software (cap.2 Bezerra)
    • atividades típicas de um processo
    • participantes do processo
    • ciclos de vida
    • utilização da UML

AULA 5 - Dia 29/03/2019

OBJETIVOS

  • Discussão do Projeto Final
  • Apresentação da BeagleBone


  • Modelagem de Casos de Uso
  • Modelagem de Classes
  • Conceito de Associação e Generalização
  • Herança e Polimorfismo
  • Diagrama de Classes e Objetos
  • Exemplo: Sistema de Controle de Acesso

Referências

https://beagleboard.org/getting-started

AULA 6 - Dia 5/04/2019

  • Visão de Casos de Uso (discussão cap.4 do Bezerra)

TAREFA (Projeto - Fase 1)

  • Elaborar lista de requisitos do Projeto de Controle de Acesso
  • Elaborar Regra de Negócios
  • Elaborar Diagrama de Casos de Uso
    • Dividir os 14 requisitos em 2 mas propor um adicional para agregar valor.


TAREFA 2

  • Ler cap.5 do Bezerra.

AULA 7 - Dia 10/04/2019

OBJETIVOS

Parte 1

  • Introdução ao C++
  • Classes e Objetos no C++ (ver material Prof.Sobral)
    • Declaração de classes
    • Criação de objetos
    • Destruição de objetos
    • Um exemplo

Parte 2

  • Modelagem da Dinâmica do Sistema
  • Diagramas de Interação, Sequência e Colaboração
  • Exemplo: Controle de Acesso

Exemplo - A porta do sistema de controle de acesso

  • porta.h
class forma_porta {
 private:
  int estado; /* 0 se fechado e 1 se aberto */
  int tipoPorta; /* 0 porta de abrir, 1 de correr, 2 sanfonada */
  string ambienteDaPorta;
 public:
  forma_porta(string nome) {
    ambienteDaPorta = nome;
  }
  int lerEstado() {
      return estado;
  }
  void abrirPorta();
};
  • porta.cc
#include <cstring>
#include <iostream>
#include <stdio.h>

using namespace std;

#include "porta.h"

void forma_porta::abrirPorta()
{
  cout << "Abrir porta do ambiente " << ambienteDaPorta << "\n";
}

class forma_porta portaCad2("cad2");

int main()
{  
  portaCad2.abrirPorta();
}

Aula 12.04.19

Aulapoo 120419.jpg



Exercício

No exemplo anterior criar dois objetos para a porta do CAD1 e do CAD2. Criar um objeto adicional chamado Controlador para acionar estas portas.

Material de Referência

AULA 8 - Dia 26/04/2019

OBJETIVOS

  • Classes e Objetos no C++
    • declaração
    • construtor e destrutor; construtor default;
    • implementação inline;
    • private x public;
    • criação dinâmica de objetos usando new e delete;

Declaração de classes

Exercício: Implementar construtor/destrutor e métodos para acessar a classe que representa uma pessoa conforme indicado abaixo. Colocar a classe em um arquivo .h. Criar localmente duas pessoas e testar os métodos no main.

class pessoa {

private:
  string nome;
  string data_nasc;
  string cidade_nasc;
public:
  pessoa(string umNome, string umaData, string umaCidade);
  ~pessoa();
  string obtemNome();
  string obtemDataNasc();
  string obtemCidadeNasc();

};


</syntaxhighlight>



Material de Referência

AULA 9 - Dia 26/04/2019

OBJETIVOS

  • Passagem de parâmetros
  • Alocação dinâmica de memória: operadores new e delete
  • Templates


Lembrete da Avaliação sobre o Projeto

A3 - Projeto Final envolvendo UML e C++

     *Documentação: 30 %
     *Desempenho durante o desenvolvimento: 30%
     *Defesa: 40 %


Para organizar este processo vamos colocar as seguintes fases:

  • FASE (Sprint) 1 - Foco principal na Concepção (link github já repassado) - Diagramas de Caso de Uso, listas de requisitos funcionais, não funcionais e regras de negócio.
  • FASE 2 - Foco principal no Projeto - diagramas de classes
  • FASE 3 - Foco Principal no Projeto - diagramas de sequência
  • FASE 4 - Foco Principal Implementação de casos de usos selecionados
  • FASE 5 - Foco Principal Implementação de casos de usos selecionados
  • FASE 6 - Foco Principal Implementação de casos de usos selecionados
  • FASE 7 - Foco Principal Implementação de casos de usos selecionados
  • FASE 8 - Foco Principal Implementação de casos de usos selecionados
  • FASE 9 - Foco Principal Teste/Implantação
  • FASE 10 - Apresentação Final

Lembrete da Avaliação de Atividades

A A2 é baseada nas atividades repassadas em sala. Até o momento foram passadas 3 atividades de revisão do C. Elas não serão incluídas nesta avaliação. Pa fins de organização vou formalizar 5 atividades de POO-C++ nomeadas da forma:

  • Atividade POO-C++ 1
  • Atividade POO-C++ 2
  • Atividade POO-C++ 3
  • Atividade POO-C++ 4
  • Atividade POO-C++ 5

Atividade POO-C++ 1

AULA 10 - Dia 03/05/2019

OBJETIVOS

  • strings em C++ (ver material Prof.Sobral)
    • Lendo ou escrevendo strings em streams
    • Conversão de string para tipos numéricos
  • streams e arquivos

AULA 11 - Dia 10/05/2019

OBJETIVOS

  • Herança de classes

AULA 12 - Dia 17/05/2019

OBJETIVOS

  • Polimorfismo e Funções Virtuais

AULA 13 - Dia 23/05/2019 (projeto)

OBJETIVOS

AULA 14 - Dia 24/05/2019

OBJETIVOS

  • Qualidade de Software

AULA 15 - Dia 30/06/2019 (projeto - Aula a noite)

AULA 16 - Dia 31/05/2019

OBJETIVOS

  • Aspectos de Programação para Wwb usando o C++

AULA 17 - Dia 6/06/2019 (projeto - Aula a noite)

AULA 18 - Dia 7/06/2019

OBJETIVOS

  • Acesso a banco de dados usando o C++

AULA 19 - Dia 13/06/2019 (projeto - Aula a noite)

AULA 20 - Dia 14/06/2019

OBJETIVOS

AULA 21 - Dia 18/06/2019 (por causa do feriado)

AULA 22 - Dia 19/06/2019 (projeto - Aula a noite)

AULA 23 - Dia 20/06/2019 (projeto - Aula a noite)

OBJETIVOS

AULA 24 - Dia 26/06/2019 (projeto aula a noite)

Previsão de 3ha

AULA 25 - Dia 27/06/2019 (projeto aula a noite)

Previsão de 3ha

AULA 26 - Dia 28/06/2019

  • Apresentação do Projeto Final

OBJETIVOS

AULA 27 - Dia 5/07/2019

  • Recuperação da A1

OBJETIVOS

AULA 28 - Dia 9/07/2019

  • Reapresentação do Projeto