Baixe o app para aproveitar ainda mais
Prévia do material em texto
HARDWARE, SOFTWARE e PEOPLEWARE Jean Turet e Ana Paula Gusmão Agenda • 1. Hardware, Software e Peopleware • 2. Etapas para construção de um software • 3 . Linguagem de Programação • 4. Python O que é Hardware? • No âmbito eletrônico, o termo "hardware" é bastante utilizado, principalmente na área de computação, e se aplica à unidade central de processamento, à memória e aos dispositivos de entrada e saída. • O termo "hardware" é usado para fazer referência a detalhes específicos de uma dada máquina, incluindo-se seu projeto lógico pormenorizado bem como a tecnologia de embalagem da máquina O que é Software? • Software é um agrupamento de comandos escritos em uma linguagem de programação. • Estes comandos, ou instruções, criam as ações dentro do programa, e permitem seu funcionamento. O que é Peopleware? Peopleware é o usuário de computador. Etapas para construção de um software • Conhecer as necessidades do cliente • Definir os requisitos • Avaliar a viabilidade do projeto • Documentar todos os procedimentos • Escolher a metodologia de desenvolvimento • Testar as funcionalidades criadas 1. Conhecer as necessidades dos clientes • Todo projeto precisa ter uma reunião inicial, onde serão feitas discussões gerais sobre o que é necessário. • Isso é um passo, de certa forma, lógico. • Em outras palavras, como cada parte poderá saber o que precisa ser feito e se tem como ser feito? • Essas são dúvidas que são sanadas na primeira reunião que acaba funcionando como uma reunião de start do projeto 2. Defina os requisitos • Com esta reunião serão definidos os requisitos do software a ser criado. • Estes requisitos podem ser funcionais ou não- funcionais, dependendo de sua aplicação no projeto. • Requisitos Funcionais definem o que o sistema fará, a Engenharia de Software afirma que os Requisitos Não Funcionais definem como o sistema fará, embora não seja tão claro assim essa definição. • Com os requisitos em mãos, elabora-se uma lista de prioridades após uma profunda análise de requisitos. • Esta lista mostrará o que o software precisa ter, o que pode limitar cada função e quanto tempo aquilo poderá demorar, em teoria. 3. Avaliar a viabilidade do projeto Neste passo, analisa-se: • Pré-existência de soluções que façam o mesmo e por um preço menor. O que, no final das contas, pode ser mais vantajoso para o cliente; • Pré-existência de frameworks e códigos que possam ser reaproveitados de alguma forma; • Número de pessoas e capacidades necessárias para a formação de uma equipe; • Quais tecnologias serão usadas, como o banco de dados, serviço de cloud, linguagens de programação, etc. 4. Documentação • Sabendo o que deve ser feito, é a hora de definir detalhes mais profundos do desenvolvimento. • Nessa etapa, são criadas as documentações que listam o que será desenvolvido e como o processo terá que acontecer. • Para isso, entram em cena os wireframes (espécie de exemplos do que deve ser feito), fluxogramas e casos de uso, ferramentas de projetos que fazem toda a diferença na documentação. 5. Metodologia de desenvolvimento • Uma das características que é escolhida quando o projeto está sendo planejado é qual será a metodologia de desenvolvimento. • Atualmente as metodologias ágeis tendem a ser as mais escolhidas, mas isso depende do projeto e das partes interessadas. 6. Testes e mais testes • Na hora em que as primeiras funcionalidades já estiverem prontas (levando em consideração um projeto Scrum), elas deverão ser testadas e entregues. • Os testes devem ser muito bem documentados e realizados, buscando emular o uso real da aplicação. Linguagens de Programação • Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. • É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. • Permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. • Linguagens de programação podem ser usadas para expressar algoritmos com precisão. PYTHON Programação em Python Jean Gomes Turet Um pouco da história de Python.. • Python é uma linguagem de programação criada por Guido van Rossum em 1991. • Os objetivos do projeto da linguagem eram: produtividade e legibilidade. • Em outras palavras, Python é uma linguagem que foi criada para produzir código bom e fácil de manter de maneira rápida. • Entre as características da linguagem que ressaltam esses objetivos estão: Um pouco da história de Python.. • baixo uso de caracteres especiais, o que torna a linguagem muito parecida com pseudo-código executável; • o uso de identação para marcar blocos; • quase nenhum uso de palavras-chave voltadas para a compilação; • coletor de lixo para gerenciar automaticamente o uso da memória; etc Um pouco da história de Python.. • Além disso, Python suporta múltiplos paradigmas de programação. • A programação procedimental pode ser usada para programas simples e rápidos, mas estruturas de dados complexas, como tuplas, listas e dicionários, estão disponíveis para facilitar o desenvolvimento de algoritmos complexos. • Grandes projetos podem ser feitos usando técnicas de orientação a objetos, que é completamente suportada em Python (inclusive sobrecarga de operadores e herança múltipla). • Programação Estruturada.. Um pouco da história de Python.. • Python tem uma biblioteca padrão imensa, que contém classes, métodos e funções para realizar essencialmente qualquer tarefa, desde acesso a bancos de dados a interfaces gráficas com o usuário. Arquivos Necessários Python e PyCharm Identação Aspectos básicos em Python.. • Variáveis Variáveis são formas de se armazenar dados para uso posterior. Estas podem ser classificadas em 3 tipos básicos (existem outros, que serão abordados mais a frente): int - Um número inteiro float - Um ponto flutuante string - Uma sequência de caracteres Strings Bom Dia >>> print a >>> a = Bom Dia String é um tipo de objeto formado por uma sequência imutável de caracteres que nos permite trabalhar com textos. Exemplo: Strings • Percebemos que elas são delimitadas por aspas, podemos utilizar tanto aspas duplas como aspas simples. Se utilizarmos aspas duplas, como o mostrado no exemplo acima, podemos usar as simples para aplicações dentro do texto que estamos escrevendo, o contrário também é verdadeiro. • Exemplo: • >>> b = 'O lema do governo JK era:\n “Cinquenta anos em cinco”. ' • >>> print b • O lema do governo JK era: • “Cinquenta anos em cinco”. Manipulação de Strings • Existe também um recurso conhecido como operador %, que serve para formatar as strings, basicamente são três os tipos de formatação que temos: • • %s - Serve para substituir string; • • %d - Serve para substituir números inteiros em uma frase destinada a um print; • • %f - Serve substituir floats (números em aritmética de ponto flutuante). Manipulação de Strings • As três formatações acima relacionadas são normalmente para aplicações em uma frase • destinada a um print. • Exemplo: • >>> compra= 'maçã' • >>> tipo='verde’ • >>> quilos = 1,5 • >>> print 'Maria comprou %f quilos de %s %s .' %(quilos,compra,tipo) • Maria comprou 1,5 quilos de maça verde. Entrada de Dados Através do comando raw_input podemos receber do usuário uma string. O tamanho da • string pode ser conhecido pelo comando len(). • >>> nome = raw_input('Digite seu nome: ')• Digite seu nome: Pedro • >>> nome • 'Pedro' • >>> len(nome) • 5 • >>> sobrenome = input('Agora digite o sobrenome: ') • Agora digite o sobrenome: Albuquerque Entrada de Dados • Operações matemáticas não podem ser feitas com strings, apenas com floats e inteiros, porém se somarmos strings, Python as juntará, num processo chamado concatenação e se multiplicarmos uma string ela será repetida. Entrada de Dados • Se a priori sabemos que o dado digitado pelo usuário não será uma string, podemos utilizar como entrada de dados o comando input(): • >>> idade = input('Digite sua idade: ') Digite sua idade: 27 • >>> altura = input('Qual a sua altura: ') Qual a sua altura: 1.75 • >>> type(idade) <type 'int'> • >>> type(altura) <type ‘float'> Entrada de Dados • Observação: O dado inserido pelo usuário já é dinamicamente tipado. Para saber qual o tipo da variável atribuída, basta digitar o comando type() que ele devolverá a variável referente ao objeto entre parênteses. Estruturas de Controle • While • O loop while tem como função repetir determinado bloco de comando, até que uma determinada condição pare de ser atendida. • Para que o bloco seja executado no momento correto, devemos manter uma rígida identação, ou seja, tudo que pertencer ao bloco do while, deve estar um espaço a frente, isto ajuda a deixar o código legível e organizado. Estruturas de Controle • If • Outra estrutura que estudaremos é a condicional. O comando if direciona o computador a tomar uma decisão, baseado nas condições determinadas. • Se a condição for atendida, um bloco de comandos será executado, caso contrário, o computador executa outros comandos. Estruturas de Controle >>>if #condição1 for verdadeira: ... #bloco de comandos 1 ...elif #condição2 for verdadeira: ... #bloco de comandos 2 ...else: ... #bloco de comandos 3 Estruturas de Controle • Nessa estrutura podemos utilizar quantas condições forem necessárias, para isso, basta repertimos o elif seguido das condições desejadas. • Tendo isso em vista, vejamos um programa de adivinhação de um número: Estruturas de Controle >>>num = 23 >>>adv = 0 >>>while adv != num: ... adv = input('Insira um número: ') ... if adv < num: ... print 'É maior!' ... elif adv > num: ... print 'É menor!' ... else: ... print 'Você acertou!' ... >>>Insira um número: Estruturas de Controle • for • O comando for, em Python, difere do que normalmente se vê em outras linguagens de programação, onde esse comando tem a finalidade de realizar uma iteração baseada numa progressão aritmética, percorrendo os números definido pelo usuário, enquanto em Python a iteração é feita percorrendo os itens de uma sequência, seja ela uma lista ou até mesmo uma string. Vamos analisar o código abaixo: Estruturas de Controle • >>> for contador in range(1, 11): • ... print contador • A estrutura acima utiliza uma variável criada, no caso contador, para percorrer cada elemento da lista criada com o comando range(1,11), com isso, cada repetição feita pelo loop for fará com que a variável contador aponte para um diferente valor dentro da lista formada pela função range e logo em seguida imprima esse valor. Classes em Python • Uma classe define uma estrutura de dados que contenha instância de atributos, instância de métodos e classes aninhadas. • Em Python a classe de um objeto e o tipo de um objeto são sinônimos. • Cada objeto do Python tem uma classe (tipo) que é derivada diretamente ou indiretamente da classe interna do objeto do Python. • A classe (tipo) de um objeto determina o que é e como pode ser manipulado. Uma classe encapsula dados, operações e semântica. Classes em Python • A classe é o que faz com que Python seja uma linguagem de programação orientada a objetos. • Classe é definida como um agrupamento de valores sua gama de operações. • As classes facilitam a modularidade e abstração de complexidade. • O usuário de uma classe manipula objetos instanciados dessa classe somente com os métodos fornecidos por essa classe. Funções • Serve para definir funções onde terá uma sequencia de comandos, e quando você precisar dessas sequência em alguma parte do programa basta chama-la que ela vai executar a função que você definiu. exp de função: def print_soma(numero1, numero2): print numero1 + numero2 print_soma(5, 6) #aqui fiz uma praticamente inútil mas criar funções é exencial para fazer bons programas TKINTER • Tkinter é uma biblioteca da linguagem Python que acompanha a instalação padrão e permite desenvolver interfaces gráficas. • Isso significa que qualquer computador que tenha o interpretador Python instalado é capaz de criar interfaces gráficas usando o Tkinter, com exceção de algumas distribuições Linux, exigindo que seja feita o download do módulo separadamente Por que usar Tkinter? • Um dos motivos de estarmos usando o Tkinter como exemplo é a sua facilidade de uso e recursos disponíveis. • Outra vantagem é que é nativo da linguagem Python, tudo o que precisamos fazer é importá-lo no momento do uso, ou seja, estará sempre disponível. Conceitos de GUI (Graphic User Interface) Uma GUI aborda muitos conceitos, dos quais os mais comuns são: • Container – É uma analogia a um container físico e tem como objetivo organizar e guardar objetos. Da mesma forma este conceito serve para um container em interface. Nesse caso, os objetos que estamos armazenando são os widgets; • Widget – É um componente qualquer na tela, que pode ser um botão, um ícone, uma caixa de texto, etc.; Conceitos de GUI (Graphic User Interface) • Event Handler – São tratadores de eventos. Por exemplo, ao clicarmos em um botão para executar uma ação, uma rotina é executada. Essa rotina é chamada de event handler; • Event Loop – O event loop verifica constantemente se outro evento foi acionado. Caso a hipótese seja verdadeira, ele irá executar a rotina correspondente. Três pilares do Tkinter • 1 – Gerenciador de Layout • 2 – Widget ( Componentes da Tela) – Botões por exemplo • 3 – Eventos (Atribuição de funções) Desenvolvimento WEB... Vamos ver na prática....
Compartilhar