Fatores de Qualidade de So?ware
|
|
- Emanuel Martini Carvalhal
- 7 Há anos
- Visualizações:
Transcrição
1 Programação em Java para a Plataforma Android AULA 19 Fatores de Qualidade de So?ware Fatores de qualidade de So?ware Fatores de qualidade externos e internos AnC fatores de qualidade A rigidez dificultando mudanças A imobilidade dificultando reúso Soluções simplistas dificultando a manutenção.
2 Qualidade de So?ware Existem dois Cpos de qualidade de so?ware. Um Cpo de qualidade com a qual o usuário do programa interage. Essa é a qualidade externa. Um Cpo de qualidade com a qual outros desenvolvedores interagem. Essa é a qualidade interna. Fatores de qualidade externos? Fatores de qualidade internos?
3 Fatores de Qualidade Externos Corretude Robustez CompaCbilidade Eficiência Portabilidade Facilidade de uso Funcionalidade Segurança Como verificar? Como garantir isso? O que é isso? Será verdade que mais simples é melhor? Qual a diferença entre segurança e robustez?
4 Fatores de Qualidade Internos Legibilidade Documentação Padronização Conscisão Extensibilidade Reusabilidade Depurabilidade O que isso tem a ver com a LP? O que é software extensível? O que é software mais depurável? O que são padrões? Como garantir reusabilidade?
5 AnC Fatores de Qualidade de So?ware Rigidez Mudanças em uma parte do programa se propagam para outras partes. Imobilidade So?ware que é diucil de reusar. Gambiarras Soluções simplistas que são diuceis de manter.
6 O que é rigidez Um so?ware é considerado rígido se o custo de alterá lo for alto. Exemplos de software rígido? Qual é o custo de alterar um programa? Existem programas que são feitos para serem rígidos. E há programas que precisam ser flexíveis. Que programas são esses?
7 Alterando Programas Custo de alterar um módulo de um programa = custo de alterar o código fonte daquele módulo + custo de propagar as mudanças para o resto do programa. Alguém poderia compartilhar uma situação em que foi necessário alterar um software? Como manter esse custo baixo?
8 Encapsulação O segredo para diminuir a rigidez de programas é a encapsulação. O que é encapsulação de dados? O que encapsulação tem a ver com a linguagem de programação? Por que encapsulação diminui a rigidez de software?
9 Um Exemplo Como determinar o tamanho de uma cadeia de caracteres em C?
10 Um Exemplo Como determinar o tamanho de uma cadeia de caracteres em C? O que o programa abaixo faz? int main(int argc, char** argv) { while(--argc >= 0) { char *p; int len = 0; for (p = argv[argc]; *p!= '\0'; p++) { len++; printf("tamanho(%s) = %d\n", argv[argc], len);
11 Um Exemplo Esse problema possui alguns problemas. Qual o mais sério? Seria possível resolver esse problema? int main(int argc, char** argv) { while(--argc >= 0) { char *p; int len = 0; for (p = argv[argc]; *p!= '\0'; p++) { len++; printf("tamanho(%s) = %d\n", argv[argc], len);
12 Um Exemplo Quais as vantages do programa abaixo com relação ao primeiro código? A implementação de cadeias de caracteres em C #include <string.h> é rígida ou flexível? int main(int argc, char** argv) { while(--argc >= 0) { int len = strlen(argv[argc]); printf("tamanho(%s) = %d\n", argv[argc], len);
13 Os beneucios da Encapsulação A separação entre interfaces e implementações foi uma das idéias mais espertas em ciência da computação. Programa se para as interfaces. Interfaces tendem a mudar pouco. Esconde se a implementação. Outros módulos não devem depender da implementação. Implementação tende a mudar muito.
14 Encapsulação e Linguagem de Programação Algumas linguagens de programação não fornecem qualquer recurso para encapsular dados. Exemplos: python e C Outras, como C++, C# e Java fornecem esses recursos: public, protected, private
15 Imobilidade Alguns programas não são feitos para serem reuclizados. Programadores não querem morrer de fome. Que programas não são feitos para serem reusados?
16 Imobilidade Alguns programas não são feitos para serem reuclizados. Programadores não querem morrer de fome. Mas há so?ware que é feito para ser reusado. Bibliotecas Arcabouços Quais as características de programas assim?
17 Um Exemplo public class Rect extends View { private final int x0, y0, x1, y1; public Rect(Context c, int nx0, int ny0, int nx1, int ny1) { super(c); x0 = nx0; y0 = ny0; x1 = nx1; y1 = ny1; setfocusable(true); setminimumwidth(x1 - x0); setminimumheight(y1 - y0); protected void onmeasure(int w, int h) { setmeasureddimension(getsuggestedminimumwidth(), getsuggestedminimumheight()); protected void ondraw(canvas canvas) { Paint paint = new Paint(); paint.setstyle(style.fill); paint.setcolor(color.white); canvas.drawrect(x0, y0, x1, y1, paint); Em que cenários a classe Rect pode ser reusada? Como deixar a classe Rect mais reusável?
18 Responsabilidades Desenhistas Retângulos Desenhistas Retângulos Que lição tiramos disso?
19 Responsabilidades Retângulos Desenhistas Quanto mais simples for a interface de Retângulos um tipo, em mais situações diferentes Desenhistas conseguimos reusar aquele tipo.
20 Gambiarras Tratamento especial para entradas específicas Tratamento de erros sem exceções Tamanhos arbitrários de estruturas de dados Algoritmos custosos quando existem melhores alternacvas Exemplos?
21 A volta dos anagramas Como determinar se duas strings são anagramas?
22 Uma possível solução private boolean anagrams(final String s1, String s2) { for (int i = 0; i < s1.length(); i++) { if (s2.indexof(s1.charat(i) + "") >= 0) { s2 = s2.replacefirst("" + s1.charat(i), ""); else { return false; return s2.length() == 0; Qual a complexidade dessa solução? Como a solução poderia ser melhorada?
23 Solução baseada em Hash private boolean anagrams(final String s1, final String s2) { boolean yes = true; if (s1.length()!= s2.length()) { yes = false; else { int[] table = new int[table_size]; for (int i = 0; i < s1.length(); i++) { table[s1.charat(i)]++; for (int i = 0; i < s2.length(); i++) { if (table[s2.charat(i)] == 0) { yes = false; break; else { table[s2.charat(i)]--; return yes; Qual a complexidade assimtótica dessa solução? Que código é mais complexo?
24 A Solução Final public class AnagramAcCvity extends AcCvity { private stacc final int TABLE_SIZE = 128; private boolean anagrams(final String s1, final String s2) { private boolean anagramsquadracc(final String s1, String s2) { public final void oncreate(final Bundle state) { super.oncreate(state); setcontentview(r.layout.anagrams); final EditText tb1 = (EditText) findviewbyid(r.id.text1); final EditText tb2 = (EditText) findviewbyid(r.id.text2); ((Buton) findviewbyid(r.id.buton1)).setonclicklistener(new Buton.OnClickListener() { public void onclick(final View arg0) { Context context = getapplicaconcontext(); int duracon = Toast.LENGTH_SHORT; CharSequence text = "Nao sao anagramas!"; if (anagramsquadracc(tb1.gettext().tostring(), b2.gettext().tostring())) { text = "Anagrams!"; Toast toast = Toast.makeText(context, text, duracon); toast.show(); ); AnagramAcCvity.java <LinearLayout xmlns:android="h/p://schemas.android.com/apk/res/android" android:id="@+id/root" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientacon="ver?cal" > <EditText android:id="@+id/text1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:focusable="true" android:text="@string/defaultleetext" /> <EditText android:id="@+id/text2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:focusable="true" android:text="@string/defaultrighttext" /> <Buton android:id="@+id/bu/on1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:text="@string/labelanagram" /> </LinearLayout> anagrams.xml
25 Ainda sobre as Gambiarras Passada a fase de protocpação, vale a pena dedicar esforço a código que será usado, ou reusado, muitas vezes. Qual a diferença entre esses dois conceitos?
26 O que é um bom programador? Quais são as habilidades mais úteis? Saber digitar rápido é úcl? Saber escrever bem é úcl? Entender de algoritmos é úcl?
27 Habilidades de Projeto Aprenda a reusar código. Aprenda padrões de projeto. Aprenda bem uma linguagem de programação. Aprenda um pouco sobre várias linguagens. Aprenda a documentar com sabedoria. Aprenda a manipular a IDE. Aprenda a realizar testes de unidade. Aprenda a montar arcabouços de teste.
28 Habilidades de Depuração Aprenda a depurar erros. Divida o espaço de busca. Aprenda a ler logs. Aprenda a usar depuradores automáccos. Aprenda a lidar com bugs intermitentes. Aprenda sobre bugs de desempenho. Aprenda a ocmizar loops. Aprenda a lidar com I/O. Aprenda a conduzir experimentos
29 Habilidades de Grupo Aprenda a fazer escmacvas de esforço. EsCmaCvas individuais e de grupo. Aprenda a encontrar informações. UClizando pessoas como fontes de informação. Aprenda a trabalhar com código ruim. Aprenda a usar ferramentas de controle de versão. Aprenda a lidar com código de terceiros. Aprenda a discordar.
30 Habilidades Individuais Aprenda a aprender novas habilidades. Aprenda a parar de trabalhar quando escver cançado. Aprenda a lidar com pessoas diuceis. Aprenda a trocar qualidade por tempo de desenvolvimento. Aprenda a decidir entre comprar e fazer. Aprenda a se manter mocvado.
Programação para a Plataforma Android Aula 2. Aula 2 Views
Programação para a Plataforma Android Aula 2 Aula 2 Views O que é modelo, visão e controle Como definir layouts gráficos Como Separar visão de modelo Como criar layouts em arquivos XML Como adicionar eventos
Leia maisPrincípios de Projeto de Classes I
Programação em Java para a Plataforma Android AULA 20 Princípios de Projeto de Classes I A classe como unidade de reúso de código Princípios que garantem a boa prágca da programação orientada a objetos
Leia maisPrincípios de Projeto de Classes II
Programação em Java para a Plataforma Android AULA 21 Princípios de Projeto de Classes II A classe como unidade de reúso de código Princípios que garantem a boa prácca da programação orientada a objetos
Leia maisProgramação para a Plataforma Android Aula 13. Localização
Programação para a Plataforma Android Aula 13 Localização O que são serviços baseados em localização? Como usar a API de mapas do Google? Como sobrepor diferentes visões a um mapa? Como integrar o mapa
Leia maisLinguagem Algorítmica OO. Linguagem Algorítmica
UFSC-CTC-INE INE5384 - Estruturas de Dados Linguagem Algorítmica OO Prof. Ronaldo S. Mello 2002/2 Linguagem Algorítmica Independente de linguagem de programação OO Utilizada para: Exemplificar os algoritmos
Leia maisLinguagens de Programação
Linguagens de Programação Propriedades Desejáveis Bruno Lopes Bruno Lopes Linguagens de Programação 1 / 1 Legibilidade: A leitura do programa é facilmente compreendida? Redigibilidade: A implementação
Leia maisIntrodução à Programação. Programação e Fatores de Qualidade
Introdução à Programação Programação e Fatores de Qualidade Qualidade de Software Ferrou! Sem problema, chefe. Quero que você escreva rapidamente um sistema de folha de pagamento que funcione corretamente,
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisPROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Aula 3 Vidal. Ronnison Reges 1 1 Análise e Desenvolvimento de Sistemas - Parangaba Centro Universitário Estácio do Ceará 2018 Vidal. Ronnison Reges (Centro Universitário
Leia maisRESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Leia maisSSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos
Funções SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves ICMC/USP São Carlos Slides baseados no material gentilmente cedido pela Profa Simone Senger Souza 2 MODULARIZAÇÃO Um
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia maisProcessamento da Informação Estruturas de seleção simples e composta
Processamento da Informação Estruturas de seleção simples e composta Prof. Jesús P. Mena-Chalco CMCC/UFABC Q1/2017 1 Expressões Booleanas 2 Fonte: http://pt.wikipedia.org/wiki/george_boole Expressões Booleanas
Leia maisIntrodução à Programação. Encapsulamento e Herança
Introdução à Programação Encapsulamento e Herança Tópicos da Aula Hoje, aprenderemos conceitos mais avançados de Orientação a Objetos Encapsulamento Usando modificadores de acesso em C++ Herança Importância
Leia maisProjeto de Linguagem. Linguagens de Programação
Projeto de Linguagem Renato Ferreira Linguagens de Programação Linguagens são adotadas para preencher uma demada Facilitar uma aplicação outrora difícil/impossível Independente da qualidade da linguagem
Leia maisProgramação de Computadores II
Programação de Computadores II 2017.2 Relembrando... Linguagem C Relembrando... Linguagem C Declaração básica de um programa Relembrando... Linguagem C Declaração básica de um programa include Relembrando...
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisPCS Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 5: Encapsulamento e Tipo Abstrato de Dados
PCS 3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 5: Encapsulamento e Tipo Abstrato de Dados Escola Politécnica da Universidade de São Paulo Agenda Questões Típicas
Leia maisAULA TEÓRICA 10. Tema 9. Interface. Tema 10. Recursividade
AULA TEÓRICA 10 Tema 9. Interface Tema 10. Recursividade 1 Interface Uma interface é como uma classe que não pode ser instanciada. Seu objectivo é espicificar um conjunto de métodos que uma classe deverá
Leia maisProva Final de Linguagens de Programação - DCC024 - Sistemas de Informação
Prova Final de Linguagens de Programação - DCC024 - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Motivação para o uso da linguagem C Entendendo Estrutura de Dados Revisão da Linguagem C Tipos primitivos Vetores
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,
Leia maisClassificação das linguagens de programação
Introdução Linguagem É um meio de comunicação entre pessoas. Faculdade de expressão audível e articulada do homem. Conjunto de sinais falados, escritos ou gesticulados de que se serve o homem para demonstrar
Leia maisEstruturas de controle Parte 1
1. Objetivos Estruturas de controle Parte 1 Nas lições anteriores, foram mostrados programas seqüenciais, onde as instruções foram executadas uma após a outra de forma fixa. Nesta lição, discutiremos estruturas
Leia maisIntrodução à Programação. Estruturas de Repetição
Introdução à Programação Estruturas de Repetição Repetição de Comandos i 0 int somatorio(int n) { int soma = 0; int i = 0; soma = soma + i; i++; soma = soma + i; i++; soma = soma + i;... n i Faz esta seqüência
Leia maisProf. A. G. Silva. 25 de abril de Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de / 68
INE5231 Computação Científica I Prof. A. G. Silva 25 de abril de 2017 Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de 2017 1 / 68 Conteúdo programático O computador - [3 horas-aula] Representação
Leia maisALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados
ALGORITMOS Professor: Diego Oliveira Aula 06 - Tipos Primitivos de Dados Netbeans Para testar nossos exemplos criaremos uma classe no Netbeans Nesta disciplina não será visto nada de orientação a objetos,
Leia maisComunicação entre A0vidades
Programação para a Plataforma Android Aula 8 Comunicação entre A0vidades Como invocar uma a0vidade a par0r de outra? Como descrever um serviço em Android? Como duas a0vidades se comunicam? Como abrir uma
Leia maisUniversidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Leia maisParadigmas de Linguagens
Paradigmas de Linguagens Aula 1: Introdução e Conceitos Básicos Professora Sheila Cáceres O que é um paradigma??? Paradigmas de Linguagens - Sheila Cáceres 2 O que é um paradigma??? Paradigmas de Linguagens
Leia maisUnidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano
Linguagem de Programação 1 Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Objetivo: Desenvolver a habilidade de comentar código adequadamente INTRODUÇÃO Até o momento
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS JAVA
PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA PÁTIO DE MATERIAIS Discente: Nielson Soares Disciplina: Algoritmo e Estrutura de Dados INTRODUÇÃO Orientação a objetos. Linguagem de programação JAVA. Pátio de matérias
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisOrientação a Objetos. Fernando Camargo 5 de junho de 2017
Orientação a Objetos Fernando Camargo 5 de junho de 2017 ZG Soluções Por que um tema tão básico? Por que um tema tão básico? 1 Vantagens da Qualidade de Código Tempo gasto com código de má qualidade Features
Leia maisLista de Linguagens de Programação 19
Lista de Linguagens de Programação 19 Nome: Matrícula: 1. A passagem de parâmetros por expansão de macros é um mecanismo bastante utilizado em C. Um exemplo é dado abaixo: #define SUM(X, Y) (X) + (Y) int
Leia maisPROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB
PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB Aluno: Pedro Paulo S. Freitas Orientador: Ricardo Augusto Rabelo Sumário Introdução Motivação e Justificativa Trabalhos relacionados Plataforma
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisProgramação para a Plataforma Android Aula 11. Banco de Dados
Programação para a Plataforma Android Aula 11 Banco de Dados Introdução a linguagem SQL O banco de dados SQLite Como criar e manipular um banco de dados em Android Como apresentar dados na tela do aparelho
Leia maisESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura
Leia maisOrientação a Objetos - Herança
Orientação a Objetos - Herança 1 Repetindo Código p Todo banco tem funcionário. A classe funcionario ficaria da seguinte forma; class Funcionario { String nome; String cpf; double salario; // métodos devem
Leia maisIndexação e Busca. O objetivo deste trabalho é projetar e implementar um sistema de programas para indexação e busca em arquivos de texto.
Universidade Federal do Espírito Santo Departamento de Informática Estruturas de Dados 2017/1 Profa. Claudine Badue Trabalho 2 1. Objetivo Indexação e Busca O objetivo deste trabalho é projetar e implementar
Leia maisAlgoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:
Algoritmos Algoritmos Leandro Tonietto Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/inf/pg1/algoritmosi_java.pdf Mar-2008 Possuem sintaxe flexível e são mais úteis para descrição
Leia maisAula 04 Introdução à Programação Orientada à Objetos
Aula 04 Introdução à Programação Orientada à Objetos Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda Introdução à Programação Orientada
Leia maisProgramação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 1 Motivação e Introdução Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet
Leia maisTE091 Programação Orientada a Objetos Engenharia Elétrica
TE091 Programação Orientada a Objetos Engenharia Elétrica Revisão Rápida de Programação em C Prof. Carlos Marcelo Pedroso 2015 Revisão Linguagem C Características principais Modularidade: uso de procedimentos
Leia maisPadronização do Código
PADRONIZE e DOCUMENTE seu código! O maior beneficiado será você mesmo Diferenças no estilo de programação dificultam a compreensão do código A qualidade do software passa pela padronização do código fonte
Leia maisAula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes
CI208 - Programação de Computadores Aula 12: Funções Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Informática
Leia maisMetodologias de Teste de Software
Metodologias de Teste de Software Fernando Magno Quintão Pereira 10 de Novembro de 2010 A espiral de testes Muitos processos de teste de software seguem a mesma espiral de desenvolvimento que vemos em
Leia maisConceitos Básicos de C
Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,
Leia maisComputação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Leia maisAnalise o código abaixo:
Recursão - introdução Analise o código abaixo: 1 # include 2 # include 3 int Fatorial ( int x) 4 int k, s =1; for (k =0;k
Leia maisAula 18 Métricas e Anomalias de Modularidade
Aula 18 Métricas e Anomalias de Modularidade Marcos Silva LES/DI/PUC-Rio Maio 2010 Hoje... Introdução à Métricas Tipos de Métricas Métricas de Tamanho Métricas de Complexidade Métricas de Acoplamento Métricas
Leia maisDiagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15
Diagrama de Classes Conceitos Básicos prof. Robinson Vida (vida@utfpr.edu.br) 1 Função do Diagrama de Classes Permitir a visualização das classes que comporão o sistema com seus respectivos atributos e
Leia maisLinguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings
Processamento Estatístico da Linguagem Natural Aula 7 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/peln/ Linguagem Python Introdução Características de Python Rodando
Leia maisTECNOLOGIAS DE CONSTRUÇÃO
TECNOLOGIAS DE CONSTRUÇÃO DE SOFTWARE CMP 1069 Prof. Me. Fábio Assunção Parte 2 PONTO DE VISTA DO USUÁRIO? Resume ao o que o software faz, não como. Um olhar para o o que. Lembrar-se dos testes caixa-preta,
Leia maisESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza
ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais
Leia maisProgramação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia maisObjetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica
Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 03 Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisUniversidade Federal do Espírito Santo. Programação II. CT IX - Sala 206 Departamento de Informática Centro Tecnológico
Universidade Federal do Espírito Santo Programação II Prof.ª Claudia Boeres (boeres@inf.ufes.br) CT IX - Sala 206 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Linguagem
Leia maisStrings e Arrays POO
Strings e Arrays POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/27 String Uma sequência de caracteres que representa uma informação textual Em Java existe um
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Funções
Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada, e definem um valor de saída
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Strings! Copyright 2014 IFRN Agenda O tipo char Tabela ASCII Strings Leitura Biblioteca string.h A função main
Leia maisAnálise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Leia mais1 - O que será impresso quando o seguinte programa escrito na linguagem JAVA for compilado e executado?
1 - O que será impresso quando o seguinte programa escrito na int i; do i++; while(i < 0); System.out.println(i); a) O programa não compila pois a variável i não foi inicializada. b) O programa compila,
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia maisDisciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria 1 Março 2015 Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página
Leia maisEncapsulamento. Alberto Costa Neto DComp - UFS
Encapsulamento Alberto Costa Neto DComp - UFS 1 Motivação O que aprendemos até agora? O que diferencia a POO da Programação Imperativa? Estas informações são suficientes para construir um projeto OO eficiente?
Leia maisUniversidade Federal do Espírito Santo. Programação II. CT IX - Sala 201 Departamento de Informática Centro Tecnológico
Universidade Federal do Espírito Santo Programação II Prof.ª Claudia Boeres (boeres@inf.ufes.br) CT IX - Sala 201 Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Linguagem
Leia maisProgramação de Computadores II
Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para
Leia maisFabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes
Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma
Leia maisPalavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Leia maisAula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 03 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Tipos de Dados;
Leia maisSlide 01 16/03/2017. Estruturas de Dados. Prof. Cleziel Franzoni da /Cleziel.
Slide 01 16/03/2017 Estruturas de Dados Prof. Cleziel Franzoni da Costa 1 @Cleziel /Cleziel cleziel@hotmail.com 42 3 EMENTA Listas lineares e suas variações. Filas e pilhas. Árvores binárias e suas variações.
Leia maisSabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.
JAVA ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta
Leia maisALOCAÇÃO DINÂMICA DE MEMÓRIA
INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador
Leia maisUSP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/
Leia maisIntrodução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Pacotes e Encapsulamento Msc. Paulo de Tarso F. Júnior 1 Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes e interfaces
Leia maisOverloading e Overriding - parte 1
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Overloading e Overriding - parte 1! Overloading e Overriding são técnicas que, a partir de um nome de função ou método definido em
Leia maisAlgoritmos II Aula 11 Funções e Procedimentos
Algoritmos II Aula 11 Funções e Procedimentos Professor: Max Pereira max.pereira@unisul.br Ciência da Computação Programação Estruturada ou Programação Modular 1960 crise do software; Programas grandes
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 05 Recursividade Edirlei Soares de Lima Introdução As seguintes sentenças são Verdadeiras ou Falsas? 1. Alguém diz: Estou mentido agora! ; 2. Alguém
Leia maisCIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO
REVISÃO POO INTRODUÇÃO À LINGUAGEM JAVA CRIANDO CLASSES EM JAVA Convenção de Nomes em Java Classes iniciam com letras maiúsculas Métodos, atributos e variáveis locais iniciam com minúsculas. Declaração
Leia maisBoas práticas com Orientação a Objetos. Paulo Silveira
Boas práticas com Orientação a Objetos Paulo Silveira paulo.silveira@caelum.com.br Rapidissímo overview IFs e switches X herança Vantagens e desvantagens do uso de Herança Casos errados do uso de herança
Leia maisIntrodução à Programação. Conceitos Básicos de Orientação a Objetos
Introdução à Programação Conceitos Básicos de Orientação a Objetos Tópicos da Aula Aprenderemos fundamentos do paradigma orientado a objetos, mas antes veremos o que é paradigma Conceito de paradigma Diferentes
Leia maisArquitetura de Software
Frameworks Wanderson Câmara dos Santos, Elves 1 wanderson@crea-rn.org.br,elveskiss@yahoo.com.br 1 Departamento Acadêmico de Tecnologia da Informação Centro Federal de Educação Tecnológica do Rio Grande
Leia maisMsC. João Maria MsC. Liviane Melo
Componente: Programação Orientada à Objetos AULA 03 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo diretiva1; diretiva2; diretiva3;
Leia maisGabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes
Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes Histórico Desenvolvida em 2012 por Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman Gratuita, Open Source e licenciada sob a Licença
Leia maisFundamentos de Programação 1
Fundamentos de Programação 1 Slides N. 2 D / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO
Leia maisHistórico de Linguagens de Programação
Bacharelado em Ciência da Computação PARADIGMAS DE PROGRAMAÇÃO Histórico de Linguagens de Programação Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Objetivos Geral: Estudar as características
Leia maisPROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Faculdade de Computação Aula Revisão Marcelo Zanchetta do Nascimento Material elaborado pela Profa. Ana Carolina Lorena - UNIFESP Desenvolvimento de Software ANÁLISE IMPLEMENTAÇÃO
Leia maisREUSO E REUSABILIDADE
REUSO E REUSABILIDADE Manutenção de Software Profa. Cynthia Pinheiro Antes de mais nada... 2ª Lista de Exercícios Já está disponível no site a 2ª Lista de Exercícios Entrega: dia 03/10, no horário da aula.
Leia mais