Buscar

Hardware, Software e Peopleware: Etapas de Desenvolvimento de Software em Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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....

Continue navegando