SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

Documentos relacionados
Lista de Exercícios AV1

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação Orientada a Objetos

Requisitos de sistemas

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Conceitos de Orientação a Objetos

Programação Orientada a Objetos

Introdução à Análise e Projeto de Sistemas

Capítulo 2. Orientação a Objetos

Conceitos de Programação Orientada a Objetos

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Fundamentos de Programação

Programação Estruturada Orientada a Objetos

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

POO e C++: Herança e Polimorfismo

Introdução a orientação a objetos

Conceitos de Orientação a Objetos. Objeto Atributo Classe Método

Conceitos de Programação Orientada a Objetos

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

Engenharia de Software Projeto de software

Engenharia de Software

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Modularização ou Subrotinas Parte I

Como Modelar com UML 2

Levantamento, Análise e Gestão Requisitos. Aula 03

Projeto de Linguagem. Linguagens de Programação

A programação orientada a objetos tenta simular estes aspectos, trazendo para o computador a realidade do dia-a-dia.

Interfaces e Classes Abstratas

Programação Orientada a Objeto

Unidade: Introdução à POO (Programação Orientada a Objetos)

Introdução à Orientação a Objetos

Introdução. Parte 01. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

Prof: Ricardo Quintão Site:

2

Introdução à Computação: Máquinas Multiníveis

Programação Orientada a Objeto

Engenharia de Software. Projeto de Software. Projeto: definição. Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff

Os princípios do desenho orientado a objetos

Princípios de Análise e Projeto Orientados a Objetos com UML

Sistemas Operacionais (SO)

Verificação de Tipo. Unions. Verificação de tipo estática. Verificação de tipo dinâmica

Orientação a Objetos (OO)

Universidade Federal de Goiás Estilos Arquiteturais

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

As Visões. Visões arquiteturais (revisão)

Herança Tiago Eugenio de Melo

Engenharia de Software II

Programação Orientada a Objetos

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Programação Orientada a Objetos

Programação Orientada a Objetos

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

PDS Aula 1.2 Introdução a Java, POO e Composição. Prof. Bruno Moreno

Informática. Professor: Diego Oliveira. Conteúdo 04: Orientação a Objetos

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Unidade IV MODELAGEM DE. Prof. Daniel Arthur Gennari Junior

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Utilizando linguagens de programação orientadas a objetos para codificar programas adaptativos

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Complexidade do Software

Aula II Orientação a Objetos. Pedro Baesse Alves Pereira

2. Introdução à Programação e Análise. Orientada a Objetos. Programação Orientada a Objetos em C O que é a Programação Orientada a Objetos?

Compiladores. Conceitos Básicos

Técnicas para Reutilização de Software

Programação Orientada a Objetos

Introdução a Orientação a Objetos

Introdução ao Ambiente Java

Prática de Programação. Prof. Tiago A. E. Ferreira Aula 9 Estruturas, Uniões, Enumerações e Tipos Definidos pelo Usuário

ORGANIZAÇÃO CURRICULAR TÉCNICO NA ÁREA DE INFORMÁTICA: HABILITAÇÃO TÉCNICO EM INFORMÁTICA NA MODALIDADE A DISTÂNCIA /1

Prof. Esp. Fabiano Taguchi

Introdução à Programação Orientada a Objetos. Prof. Leonardo Barreto Campos 1

Programação Orientada a Objetos Classes e Objetos. Prof. Vicente Paulo de Camargo

2 Paradigmas de linguagens de programação João B. Rocha- Junior. As linguagens evoluem com o passar do tempo

Orientação a objetos. Objetos ou Instâncias I

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Linguagem de Programação Introdução a Orientação a Objetos

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Lista de exercícios 1. 1) Diga quais são as vantagens da modularização e explique cada uma delas.

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Banco de Dados Relacional

Modularidade - Fun ções e Procedimentos

Documento de Arquitetura de Software- SGE

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Paradigmas de Linguagens

Histórico de Linguagens de Programação

Polimorfismo. O que é polimorfismo?

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Levantamento de Classes

Estratégias de resolução de problemas. Práticas de ensino de algoritmos (Hazzan, Cap. 5) Péricles Miranda

Transcrição:

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO Luiz Leão luizleao@gmail.com http://www.luizleao.com

Conteúdo Programático 4.1. Aplicações utilizando Programação Estruturada e Programação Orientada a Objeto. 4.2. Programação Web e para Dispositivos Móveis. 4.3. Integração computacional: arquitetura, sistema operacional e redes

Programação Estruturada Imagine que tenha que processar as vendas feitas por cada vendedor de cada filial de uma empresa. Filial 1 Empresa Filial 2 Filial 3

Programação Estruturada Se você vai programar em um ambiente procedural, como C, então vai criar algo assim: Um módulo de controle, que invocará os procedimentos de inicialização e o loop principal. Um módulo que é invocado para ler e processar cada filial. Uma sub-rotina que é invocada do módulo das filiais para poder tratar cada funcionário de cada filial.

Programação Estruturada Problemas decorrentes: 1) Falta de isolamento entre os módulos: Alteração em um módulo pode resultar em danos nos outros. 2) Dificuldade de manutenção: Imagine o problema que seria se alguns tipos de vendedores tivessem regras diferentes... se algumas filiais tivessem o mesmo problema? 3) Dificuldade de reaproveitamento de código: Se outro programa quisesse utilizar a mesma estrutura haveria copy/paste

Programação Estruturada A unidade de um programa procedural é a subrotina em C. Para cada coisa é criada uma sub-rotina que processará os dados. Modularizar um programa é criar uma rotina para cada função.

Modularização É a decomposição de um conjunto de componentes de software em sub-partes, denominadas módulos. Espera-se que os módulos tenham uma forte coesão interna e um pequeno acoplamento exterior.

Modularização Alta Coesão: todas as partes de um processo (ou módulo) são fortemente relacionadas. Baixo Acoplamento: o número de interfaces entre os processos (ou módulos) é mantido ao mínimo, visando facilitar modificações futuras.

Modularização Um bom módulo deve cumprir uma única função, e todos os seus arquivos devem ser suficientes para cumprir esta função. Além disso, ele também deve possuir uma interface simples e bem especificada.

Sub-rotinas É uma rotina de código que é chamada pelo programa principal para realizar uma tarefa. Normalmente chama-se de procedimento (procedure) a rotina que não retorna valores, e função (function) a que retorna.

Escopo de Variáveis É a sua área de atuação, normalmente o lugar onde foi definida. Para que não existam ambiguidades na utilização dos identificadores, não pode existir nenhum caso onde existam dois identificadores com o mesmo nome dentro do mesmo escopo. Deve ser respeitada a unicidade de nomes. O mesmo vale para parâmetros passados para uma subrotina.

Escopo de Variáveis Escopo global: São declaradas fora de todas as sub-rotinas, normalmente no início de módulos. Todo o módulo e as subrotinas declaradas em seu corpo possuem acesso a estas variáveis. Escopo local: São declaradas dentro de uma sub-rotina. Apenas a função possui acesso ao seu conteúdo, o que aumenta o reuso do subprograma e evita efeitos colaterais (maior controle).

Tipos de dados De forma geral, podemos classificar as linguagens de programação quanto ao modelo de tipagem da seguinte maneira: tipagem forte e tipagem fraca. Essa questão manifesta-se principalmente em atribuições. No caso de linguagens orientadas a objetos, também ocorre em invocações de métodos.

Tipos de dados Tipagem forte: o compilador garante que em tempo de execução ocorra a compatibilidade entre os elementos de uma atribuição, e também a existência do método para uma dada referência. Garante maior robustez aos sistemas desenvolvidos, minimizando erros em tempo de execução. Tipagem fraca: neste caso, o compilador não existe essa garantia durante a verificação de tipos, sendo responsabilidade do programador. Possibilita maior velocidade e facilidade no desenvolvimento.

Programação Orientada a Objetos

O que são objetos? Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas Potencia Capacidade Carga Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Acionar Freio-Motor Características Peso Cor Tamanho tela Processador Memória Comportamentos Ligar Desligar Ligar Wireless Desligar Wireless

Por que OO? Surgiu da necessidade de simular a realidade, criando abstrações na tentativa de representar as características relevantes dos objetos envolvidos no sistema que se deseja desenvolver.

Por que OO? Com o uso da OO, a engenharia de software conseguiu avançar na habilidade de modelar e projetar softwares que representam os problemas do mundo real no mundo computacional.

Linguagens de Programação

Vantagens Forte suporte para o encapsulamento dos dados e da lógica dentro de um componente que chamamos de objeto. Essas propriedades tornam-se mais importantes quando os programas se tornam grandes, pois com a orientação a objetos fica mais fácil de dar manutenção no código.

Conceitos de Orientação a Objetos Classes Objetos Abstração Encapsulamento Herança Polimorfismo

Classe É o molde para a criação de objetos. Define o comportamento e os atributos dos seus objetos. Exemplo: Planta de uma casa

Objeto É a instâncias da classe em memória. Possui todas as características definidas previamente na classe. Se comunicam através da troca de mensagens. Exemplo: A casa construída

Abstração Identificar todas as informações que atendem a aplicação e ignorar as informações irrelevantes. Objeto Pessoa Dados abstraidos

Encapsulamento Permite que os atributos e os métodos sejam empacotados dentro de uma classe. Mecanismo para proteger os atributos. Atributos são manipulados apenas pelos métodos públicos.

Herança Permite reutilizar a definição de um tipo de objeto para definir outro tipo de objeto.

Polimorfismo Capacidade de objetos de diferentes tipos responder a métodos com o mesmo nome, cada um de acordo com seu próprio comportamento.

Resumindo Classe: modelo para descrever objetos. Objeto: entidade que possui atributos e métodos. Abstração: selecionar informações importantes para a aplicação. Encapsulamento: empacotar atributos e métodos dentro da classe. Instância: objeto instanciado na memória.

Resumindo Método: procedimento ou função que implementa uma operação. Mensagem: requisição para executar um método do objeto. Herança: definir nova classe a partir de uma classe previamente definida.

Integração Computacional Arquitetura Sistema operacional Redes

Arquitetura

Arquitetura de Software Consiste na organização dos seus componentes e suas relações internas, assim como as relações externas, através das suas interfaces. Entende-se por relações externas: softwares, serviços etc.

Arquitetura de Software: Visões É comumente organizada em visões, dependendo do tipo de aspecto a ser analisado no projeto. Visão funcional/lógica (Requisitos) Visão de projeto. Visão de desenvolvimento/estrutural Visão de concorrência/processo/thread Visão de Implantação Visão do Usuário

Arquitetura de Software: MVC É um modelo arquitetural que tem como objetivo separar a apresentação da interface (View), das regras de negócio (Control), assim como a persistência dos dados (Model)

Arquitetura de Software: MVC Digrama de Robustez

Arquitetura de Software: MVC Estudo de caso Framework GOT