Apresentação do PowerPoint - Páginas Pessoais

Propaganda
Ministério da Educação
Universidade Tecnológica Federal do Paraná
Câmpus Santa Helena
Introdução a Ciência da Computação
Bacharelado em Ciência da Computação
Professor : Agnaldo da Costa
1
Sistema Computational
O que é um
Sistema Computacional?
O Que é Sistema Computacional?
Integração de componentes atuando como uma entidade,
com o propósito de processar dados, por exemplo, realizar
algum tipo de operação aritmética/ lógica envolvendo os
dados, de modo a produzir diferentes níveis de
informações.
O Que é Sistema Computacional?
...interação existente entre os diversos componentes de
hardware, software e peopleware que trabalham de forma
conjunta sobre uma determinada massa de dados de forma
a produzir informações/resultados de interesse para outros
sistemas/usuários.
Sistema Computational
Sistema
Computacional
Software
Hardware
Peopleware
Sistema Computacional
• Hardware: Parte física do sistema computacional
• Ex: teclado e impressora
• Software: Parte lógica do sistema computacional
• EX: sistema operacional e processador de texto
• Peopleware: Pessoas que interagem com o sistema computacional
• EX: usuário e programador
Sistema Computational
• O hardware um sistema computacional pode ser agrupado nas
seguintes categorias básicas:
• Dispositivo de entrada de dados
• Dispositivo de saída
• Unidade Central de Processamento – UCP
• Memória Principal
• Memória Auxiliar
Dispositivo
de Entrada
UCP
Memória Principal
ou
Memória Auxiliar
Dispositivo
de Saída
Sistema Computational
• Dispositivo de entrada de dados
• Recebe os dados e as instruções para o processamento
• EX: teclado, mouse e leitores ópticos
• Dispositivo de saída
• Mostra o resultado do processamento
• EX: monitor, impressora e caixas acústicas
• Unidade Central de Processamento – UCP
• Realiza cálculos e executa instruções
• EX: Pentium e Turiom
Sistema Computational
• Memória Principal
• Armazena de forma volátil (enquanto houver energia) um dado
• EX: RAM (random access memory)
• Memória Auxiliar
• Armazena de forma não volátil (longo prazo) um dado
• Disco Rígido, Pendrive e CD
Sistema Computational
• O software de um sistema computacional pode ser dividido em dois
grupos básicos:
• Software Básico (Programas de Sistemas)
• São programas essenciais ao funcionamento do hardware e ao apoio a outros
softwares
• EX: sistemas operacionais e tradutores de linguagens de programação
• Softwares Aplicativos
• São programas destinados a resolver problemas do usuário
• EX: folhas de pagamento, imposto de renda e planilhas eletrônicas
Sistema Computational
• O peopleware de um sistema computacional pode ser classificado em dois
tipos básicos:
• Usuário Final
• Interagem com o sistema computacional sem conhecer detalhes do seu
desenvolvimento
• EX: secretárias, balconistas e executivos
• Usuário Especialista
• Interagem com o sistema computacional especificando ou programando como este
deve se comportar
• EX: programadores, analistas de sistemas e engenheiros de computação
Camadas de Software e Hardware
Usuário
final
Software Aplicativo
Linguagens de alto nível
Montadores, interpretadores e compiladores
Software Básico: Sistema operacional + Drivers
Máquina convencional – Linguagem de máquina (Assembly)
Microprogramação (usando circuitos eletrônicos)
Lógica digital (circuitos eletrônicos)
MÁQUINA
Definição Software
Software é uma sequência de instruções escritas para serem interpretadas por um
computador com o objetivo de executar tarefas específicas. Em um computador, o
software é classificado como a parte lógica cuja função é fornecer instruções para
o hardware.
Definição Software
Software é uma sequência de instruções a serem seguidas e/ou executadas,
na manipulação, redirecionamento ou modificação de um dado/informação
ou acontecimento. "Software" também é o nome dado ao comportamento
exibido por essa sequência de instruções quando executada em um
computador ou máquina semelhante além de um produto desenvolvido
pela engenharia de software, e inclui não só o programa de computador
propriamente dito, mas também manuais e especificações. Para
fins contábeis e financeiros, o software é considerado um bem de
capital.(wikepedia)
A estrutura computacional
Software – Arquitetura - TIPOS
Aplicativo
Linguagem
.
SO
Hardware
Software
Usuário
Software está em todo lugar
Adaptado de: Giraffa & Ana Paula
18
Primeiros Geração - características
•desenvolvimento do software era feito, virtualmente, sem administração até que os
prazos começassem a se esgotar e os custos a subir abruptamente.
•orientação batch (em lote) para a maioria dos sistemas
•Na maior parte, entretanto, o hardware dedicava-se à execução de um único programa
que, por sua vez, dedicava-se a uma única aplicação específica
•software, por outro lado, era projetado sob medida para cada aplicação e tinha uma
distribuição relativamente limitada
•ambiente de software personalizado o projeto era processo implícito realizado no
cérebro de alguém e a documentação muitas vezes não existia.
Adaptado de: Giraffa & Ana Paula
19
Segundo Geração –características
•Multiprogramação e os sistemas multiusuários introduziram novos conceitos de interação
homem-máquina
•Técnicas interativas
•Avanços da armazenagem on-line levaram à primeira geração de sistemas de
gerenciamento de banco de dados
•Software desenvolvido para ampla distribuição num mercado interdisciplinar
• Programas para mainframes e minicomputadores
•Surgimento da "manutenção de software“
Adaptado de: Giraffa & Ana Paula
20
Terceira Geração –características
• As redes globais, as comunicações digitais de largura de banda
("bandawidth") elevada e a crescente demanda de acesso "instantâneo" a
dados exigem muito dos desenvolvedores de software.
• Caracterizada pelo advento e o generalizado uso de microprocessadores,
computadores pessoais e poderosas estações de trabalho "workstations" de
mesa.
Adaptado de: Giraffa & Ana Paula
21
Quarta Geração –características
• As tecnologias orientadas a objetos, orientadas a documentos, estão
ocupando o lugar das abordagens mais convencionais para o
desenvolvimento de software em muitas áreas de aplicação.
• Os sistemas especialistas e o software de inteligência artificial
finalmente saíram do laboratório para a aplicação prática em problemas
de amplo espectro do mundo real.
Adaptado de: Giraffa & Ana Paula
22
Classificação de Softwares
Verzello classifica o software em três tipos, sendo:
• Software de sistema - são programas escritos para controlar e coordenar o
software.
• Software de linguagens - são programas que traduzem outros programas
escritos em linguagens de programação mais ou menos semelhantes à língua
inglesa, para a forma binária que é a linguagem utilizada pelos componentes do
sistema computacional e, além disso, os programas escritos para ajudar os
desenvolvedores a escrever seus programas e a manter os programas já escritos a
salvo, em bancos de dados especiais.
• Software de aplicação - são programas escritos para resolver problemas
comerciais ou prestar outros serviços de processamento de dados aos usuários.
Software Básico
• Software básico - é uma coleção de programas escritos para dar apoio a outros
programas. A área do software básico é caracterizada por:
• forte interação com o hardware de computador;
• intenso uso por múltiplos usuários;
• operações concorrentes que exigem escalonamento "schedule";
• compartilhamento de recursos e sofisticada administração do processo;
• estruturas de dados complexas e múltiplas interfaces externas.
Software Básico - Sistema
O software de Sistemas Abrange todos os programas relacionados com a
coordenação Operacional do computador, dentre eles o Sistema
Operacional, que coordena a interação entre Hardware e Software,
principalmente a transferência entre a memoria e os dispositivos de entrada
e saída. É constituído por um Kernel (núcleo) e um conjunto de Software
Básicos
Ex: Linux, Windows , Mac, etc.
Software Básico -Sistema Operacional
• Os principais tipos são:
•
•
•
•
Monotarefa – realiza apenas uma única tarefa de cada vez.
Multitarefa – permite executar várias tarefas simultâneas.
Monousuário – apenas um único usuário por vez no computador.
Multiusuário – vários usuários utilizam o mesmo S.O.
Software Básico - Utilitários
• Administram o ambiente.
• Fornecem ao usuário ferramentas para organizar
os discos, verificar disponibilidade de memória,corrigir falhas
de processamento.
Compactadores;
Formatadores;
Backup;
Desfragmentadores;
Antivírus;
Software de Linguagem
• JAVA
• DELPHI
•C
• # NET
• PYTHON
• JAVASCRIPT
• MATLAB
• VISUAL BASIC
Tela de Desenvolvimento - DELPHI
Tela de Desenvolvimento - Eclipse
SIMULADOR CNC
Software de Aplicação - Confiabilidade
Equipamentos médicos
• Extremamente críticos
• Lidam com vidas
Caixas eletrônicos
• Prejuízos financeiros
VOO AIR FRANCE
Software de Aplicação : Características - Confiabilidade
Exemplo: Vôo Air France Rio - Paris
1. Dados conflitantes (falha nos sensores)
2. Sistema assume o controle (piloto automático)
3. Piloto tenta reiniciar o sistema (boot)
4. Em 4 minutos o avião mergulha no oceano

The Last Four Minutes of Air France Flight 447.
http://www.spiegel.de/international/world/0,1518,679980,00.html
Pressman, amplia esta classificação de software para 7 categorias,
comentando ser uma tarefa um tanto difícil desenvolver categorias genéricas
para aplicações de software, pois à medida em que a complexidade do
software cresce, desaparece a clara visão em compartimentos.
Seguem-se as categorias sugeridas:
•Software Básico;
•Software de Tempo Real;
•Software Comercial;
•Software Embutido;
•Software Computador Pessoal;
•Software Cientifico ou de Engenharia
•Software Inteligência Artificial
Adaptado de: Giraffa & Ana Paula
35
Software Básico X Aplicativo
Como é o Desenvolvimento de um Software?
Abstração
A realidade é complexa
e rica em detalhes!
Abstração
40
Realidade
O que você abstrai dessa realidade?
Abstração
O que é abstração?
Abstração
Abstração
=
Operação mental que
observa a realidade e
captura apenas os
aspectos relevantes
para um contexto
Abstração
• Passe alguns minutos olhando para a figura abaixo e diga
o que você consegue abstrair dela
Abstração
• Conseguiu ver uma jovem mulher de perfil?
• Ou uma senhora olhando para baixo?
Abstração
 Perceba que a realidade é a mesma
• Isto é, uma figura em preto e branco
 Mas dependendo da observação da realidade você pode ter
abstrações diferentes
45
 Por isso, a abstração depende mais do observador do que da
realidade observada.
Abstração
• A tarefa de programar sistemas computacionais envolve o exercício
constante da abstração da realidade e sua codificação em uma linguagem
de programação
Abstração
+
Programação
Sistema de Locadora de Veículo
Principais Problemas no Desenvolvimento de Software
Fases do Desenvolvimento
• Modelo Cascata
• Define atividades sequenciais
• Outras abordagens são baseadas nesta
ideia
Especificação
de Requisitos
Projeto
Implementação
Testes
Manutenção
Fases do Desenvolvimento
• Modelo Cascata
• Define atividades seqüenciais
• Outras abordagens são baseadas nesta
ideia
Especificação
de Requisitos
Projeto
Implementação
Testes
Manutenção
Especificação de Requisitos
• Um sistema de programação deve satisfazer as
necessidades de seus usuários
• Tais necessidades são expressas na forma de
requisitos
• Requisito = ação que deve ser executada pelo
sistema
• Ex: registrar as notas dos alunos, calcular a média
final, etc.
Fases do Desenvolvimento
• Modelo Cascata
• Define atividades seqüenciais
• Outras abordagens são baseadas nesta
ideia
Especificação
de Requisitos
Projeto
Implementação
Testes
Manutenção
Da Análise ao Projeto
• A partir do documento de análise de requisitos,
projeta-se o sistema
1ª Fase: Resolução do Problema
PROBLEMA
Encontrar
Solução
Programa de
Computador
2ª Fase: Implementação (codificação)
Projeto do Sistema
Dividido em duas etapas
• Projeto Preliminar define a estrutura modular do
software, as interfaces e as estruturas de dados
utilizadas
• Saída: Diagramas
• Projeto Detalhado descreve detalhadamente cada
módulo definido no projeto preliminar
• Saída: algoritmos
Projeto de uma Casa
Projeto Preliminar de Software
Fases do Desenvolvimento
Especificação
de Requisitos
Projeto
Implementação
Testes
Manutenção
Implementação do Sistema
• A implementação segue as definições do projeto preliminar
• Transcreve as instruções do algoritmo para uma
linguagem de programação
• Exemplos: Linguagem C, Java, Pascal...
Fases do Desenvolvimento
Especificação
de Requisitos
Projeto
Implementação
Testes
Manutenção
Teste e Validação
• Tem por objetivo garantir que o sistema satisfaça os
requisitos
• Consiste da realização de alguns tipos de testes para
encontrar erros
• A inexistência de erros não representa a adequação
operacional do sistema
• Deve ser feita a validação com o cliente
Referencias
• MASIERO, P. S. Ética em Computação. 1. ed. São Paulo: Editora da
Universidade de São Paulo, 2013.
• SÁ, A. L. de. Ética Profissional. 9. ed. Editora Atlas, 2014.
• TANENBAUM A. S., WOODHULL, A. S. Sistemas Operacionais – Projeto
e Implementação. 3. ed. Bookman, 2008.
• MEIRELLES, F. S. Informática: Novas aplicações com
microcomputadores. 2. ed. São Paulo: Makron Books, 1994.
• ARAÚJO, E. C. Algoritmos: Fundamentos e Prática. 3. ed.
Florianópolis: Visual Books, 2007.
Download