720 likes | 826 Views
Projeto e Desenvolvimento de Sistemas Introdução. Profª. Drª. Maria Salete Marcon Gomes Vaz. Ementa. Introdução a sistemas Conceitos básicos Evolução de um sistema Tipos de abordagem no desenvolvimento de um sistema Análise de requisitos de sistemas Garantia de qualidade
E N D
Projeto e Desenvolvimento de SistemasIntrodução Profª. Drª. Maria Salete Marcon Gomes Vaz 2008 @ Maria Salete Marcon Gomes Vaz
Ementa • Introdução a sistemas • Conceitos básicos • Evolução de um sistema • Tipos de abordagem no desenvolvimento de um sistema • Análise de requisitos de sistemas • Garantia de qualidade • Análise estruturada • Análise e projeto de sistemas orientados a objetos • Ambientes de desenvolvimento de software 2008 @ Maria Salete Marcon Gomes Vaz
Objetivos Gerais • Reconhecer os aspectos principais que envolvem a atividade de análise e projeto de sistemas • Adquirir conhecimento sobre as diferentes abordagens para desenvolvimento de sistemas • Reconhecer a importância de aplicar métodos, técnicas e ferramentas para a construção de sistemas visando aumentar a qualidade do software • Adquirir conhecimento sobre os ambientes de apoio para o desenvolvimento de softwares 2008 @ Maria Salete Marcon Gomes Vaz
Objetivos Específicos • Identificar as características de sistemas no contexto da Engenharia de Sistemas • Identificar quando utilizar as diferentes abordagens para o desenvolvimento de sistemas • Entender e utilizar as abordagens Estruturada e Orientada a Objetos para a Engenharia de Sistemas • Diferenciar as atividades relacionadas à análise e ao projeto de sistemas • Utilizar ambientes de apoio para o desenvolvimento de sistemas. 2008 @ Maria Salete Marcon Gomes Vaz
Avaliação • Trabalhos práticos = 3,0 • Seminários = 2,0 • Prova = 5,0 • Nota = Trabalhos + Seminários + Prova 2008 @ Maria Salete Marcon Gomes Vaz
Bibliografia • Book, G.; Rumbaugh, J., Jacobson, I. UML: guia do usuário. Rio de Janeiro: Ed. Campus; 2000. • Fowler, M. UML Distilled : a brief guide to the Standard Object Modeling Language. 2. ed. Addison Wesley; 2000. • Furlan, J.D. Modelagem de Objetos através da UML. São Paulo: Makron-Books; 1999. • Melo, A.C. Desenvolvimento de Aplicações com UML: do conceitual à implementação. Brasport; 2002. • Pressman, R. S. Engenharia de Software. 5. ed. Rio de Janeiro: McGraw-Hill, 2001. • Pressman, R. S. Software Engineering: a practitioner’s approach. 5. ed. Rio de Janeiro: McGraw-Hill. 2001. • Rocha, A.R.C.; Maldonado, J. C.; Weber, K. C. Qualidade de Software: teoria e prática. Prentice-Hall, 2001. • Somerville, I. Engenharia de Software. 6. ed. Addison Wesley, 2003 2008 @ Maria Salete Marcon Gomes Vaz
Motivação • O que é este curso ? • Porque é importante saber Conceitos Teóricos/Práticos de Informática 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • O que é o computador? Problema Programa Computador Solução Qual a linguagem que o computador entende? 2008 @ Maria Salete Marcon Gomes Vaz
Dados Processamento Resultado: Informação Estoque Atualização Dados Atualizados Produtos que atingiram a quantidade mínima em estoque? Listagem de Produtos Conceituação • Dado e Informação • Dado e informação são sinônimos? • Dado - Matéria Prima • Informação - Dado processado 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Sistemas • Conjunto de partes coordenadas que concorrem para a realização de um determinado objetivo • Conjunto de elementos identificáveis que tem entre si relações e que atuam segundo um objetivo • Processamento de Dados • Série de Atividades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informações a partir de outras obtidas inicialmente 2008 @ Maria Salete Marcon Gomes Vaz
Sistema de Computação Software Básico Hardware Conceituação • Sistema de Processamento de Dados • Sistema de Computação • Computador + software básicos (SO, linguagens e aplicativos) • fornecido completo pelo fabricante • Sistemas de Aplicação • Desenvolvidos pelo usuários ou de terceiros • Aplicação de interesse do usuário • Computador: Conjunto de circuitos eletrônicos e partes eletromecânicas - Hardware - parte física, visível do computador • Software - Consiste de Programas, de qualquer tipo e em qualquer linguagem, que são introduzidos na máquina, para fazê-la trabalhar, passo a passo, e produzir algum resultado 2008 @ Maria Salete Marcon Gomes Vaz
Conceitos Básicos • Sistema de Computação • Programa - Conjunto de Instruções ou Formalização de um algoritmo em linguagem inteligível pelo computador • Algoritmo - conjunto de instruções que, obedecidos, resultam numa sucessão finita de “ações”. • Ação - um acontecimento que, a partir de um estado inicial, após um período de tempo finito produz um estado final previsível e bem definido. • A base de um algoritmo é o raciocínio lógico, o qual permite ordenar o pensamento. • Um algoritmo pode ser escrito por meio de: • Linguagem natural; • Linguagem algorítmica; • Linguagem de programação; • Notação diagramática (fluxogramas). 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Raciocínio Lógico • Exemplo 1: • Todo mamífero é animal; • Todo cavalo é mamífero; • Portanto, todo cavalo é animal. • Exemplo 2: • A gaveta está fechada; • O papel está na gaveta; • Para pegar o papel, preciso primeiro abrir a gaveta. • Exemplo 3: • João é mais velho que Maria; • Maria é mais velha que José; • Portanto, João é mais velho que José. 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Objetivo de um Algoritmo • Resolver um problema fixando um padrão de comportamento e um fluxo de execução lógica (ordem em que ações devem ser executadas). • Exemplos do Cotidiano • Instruções para se usar um eletrodoméstico; • Receita para preparo de algum prato; • Instruções para preenchimento de formulários; • Computação de funções matemáticas (ex: Y = X^2); • Sistemas para controle de estoque; • Outros. 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Exemplo: Trocar uma lâmpada - 1a. Tentativa (estrutura seqüencial) • Algoritmo: • Pegue uma escada; • Posicione-a debaixo da lâmpada; • Pegue uma lâmpada nova; • Suba na escada; • Retire a lâmpada velha; • Coloque a lâmpada nova. • Problemas: • Qual o nível de detalhes ideal? Depende para quem é escrito; • O que acontece se a lâmpada velha não estiver queimada? • O que acontece se a lâmpada nova estiver queimada? 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Algoritmo Otimizado: • Ligue o interruptor; • Se a lâmpada não acender então • Pegue uma escada; • Posicione-a debaixo da lâmpada; • Pegue uma caixa de lâmpadas novas; • Suba na escada; • Retire a lâmpada velha; • Coloque a lâmpada nova; • Se a lâmpada não acender então • Retire a lâmpada; • Coloque outra lâmpada; • Se a lâmpada não acender então • Retire a lâmpada; • Coloque outra lâmpada; • ... (até quando? Observe que um padrão se repete) • Exemplo: Trocar uma lâmpada - 2a. Tentativa (estrutura condicional) • Algoritmo: • Pegue uma escada; • Posicione-a debaixo da lâmpada; • Pegue uma lâmpada nova; • Ligue o interruptor; • Se a lâmpada não acender então • Suba na escada; • Retire a lâmpada velha; • Coloque a lâmpada nova. 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Exemplo: Trocar uma lâmpada - 3a. Tentativa (estrutura de repetição) • Algoritmo completo: • Ligue o interruptor; • Se a lâmpada não acender então • Pegue uma escada; • Posicione-a debaixo da lâmpada; • Pegue uma caixa de lâmpadas novas; • Suba na escada; • Enquanto a lâmpada não acender E ainda houver lâmpadas na caixa faça • Retire a lâmpada; • Coloque outra lâmpada. • O nível de detalhamento é adequado para uma pessoa porém não é adequado para um computador (talvez um robô sim, porém precisa ser mais detalhado), pois não tem conhecimento prévio e não adquire experiências. 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Exercícios • Um homem precisa atravessar um rio com um barco que possui capacidade para carregar apenas ele próprio e mais uma de suas cargas, que são: um lobo, um bode e um maço de alfafa. O que o homem deve fazer para levar suas cargas intactas para a outra margem? • Elabore um algoritmo que mova três discos de uma Torre de Hanói, com três hastes (a, b, c), uma das quais é suporte para três discos de tamanhos diferentes (1, 2, 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre o menor. O algoritmo deve transferir os três discos para outra haste. 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Soluções • Leve o “bode”; • Leve a “alfafa”; • Traga o “bode”; • Leve o “lobo”; • Leve o “bode”. 2008 @ Maria Salete Marcon Gomes Vaz
Linguagem C swap(int v[], int k) {int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } Linguagem Assembly swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 Código executável 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 Conceituação • Comunicação Homem-Máquina • Níveis distintos de abstração 2008 @ Maria Salete Marcon Gomes Vaz
Conceituação • Comunicação Homem-Máquina • O computador só entende linguagem de máquina, então é preciso de um compilador/interpretador, que converta um programa escrito em uma linguagem de alto nível (o programa fonte) para um programa de linguagem de máquina (programa objeto) • Como transformar descrições em código executável? • Diferença entre as linguagens utilizadas • Métodos: • Compilação • Interpretação • Compilação-Interpretação 2008 @ Maria Salete Marcon Gomes Vaz
Programa fonte Nível 1 Programa objeto Nível 0 Compilador Conceituação Converte todo o código fonte antes de executá-lo O programa objeto gerado pode ser re-executado quantas vezes seja necessário, sem a necessidade de re-compilação • Compilação 2008 @ Maria Salete Marcon Gomes Vaz
Instrução Nível n-1 Instrução Nível n Interpretador Conceituação Interpretação • Converte uma instrução e • a executa imediatamente • O código objeto não é gerado • Facilita a correção de erros • Utiliza menos memória • Processo de execução mais lento 2008 @ Maria Salete Marcon Gomes Vaz
CPU Memória Interconexão E/S Componentes de um Sistema de Computação • Estrutura de um computador Periféricos Computador 2008 @ Maria Salete Marcon Gomes Vaz
Memória Programas + Dados Vídeo Teclado Componentes de um Sistema de Computação CPU Execução das instruções de um programa E/S Buffers 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Unidade Central de Processamento - Processador - UCP • Cérebro do Computador • É o motor, o coração do computador • O processador executa os programas • Sabe como somar e subtrais e realizar operações simples de lógica (verdadeiro/falso) • Em Mainframe, Unidade Central de Processamento ou CPU • Em microcomputadores, Microprocessador ou processador • ULA - Unidade Lógica e Aritmética • Executa as operações lógicas e aritméticas contidas nas instruções • Unidade de Controle • Controla as ações dos demais componentes 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • RecursosdoProcessador • Capacidade de ler e gravar informações na memória do computador (temporariamente). Tanto as instruções quanto os dados • Capacidade de reconhecer e executar vários comandos ou instruções que são fornecidos pelos programas • Capacidade de dizer aos outros componentes o que fazer, de modo que o processador possa orquestrar a operação do computador 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Memória • Área de trabalho do computador • Local onde todas as atividades são realizadas • É o local em que o processador do computador localiza os programas e dados, quando está executando as tarefas que lhe são atribuídas • Os computadores costumam ser classificados pela área de memória que possuem • Principal (RAM - Random Access Memory) • Guarda temporariamente os softwares que estão sendo executados pelo computador, além dos dados que esses programas produzem ou recebem • Tudo se apaga quando o computador é desligado • Funciona mais rapidamente que a memória secundária • Secundária • Capaz de armazenar informações mesmo sem energia elétrica • Acesso lento e Grande capacidade de armazenamento 2008 @ Maria Salete Marcon Gomes Vaz
Disco Memória Unidade de Controle (CPU) 3 2 1 timing & size Information timing & size Information Pastas Memória Fichário Mesa • O fichário representa o disco rígido, com alta capacidade de armazenamento. • A pasta sobre a mesa representa a memória, de acesso rápido e fácil • Mesa e usuário são a CPU • OBS: Memória é volátil e disco não (faxineira) 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Entrada e Saída • Consiste no modo como o computador recebe e envia dados • Abrange o que é digitado no teclado e o que o computador apresenta na tela do vídeo ou imprime na impressora • Sempre que o computador está recebendo ou enviando dados, ele está “desempenhando uma tarefa de E/S” através dos dispositivos de E/S (dispositivos periféricos) • Armazenamento em Disco • Biblioteca de referência, o fichário de arquivos e a caixa de ferramentas do computador num só dispositivo • É onde o computador mantém os dados que não estão em uso na memória do computador 2008 @ Maria Salete Marcon Gomes Vaz
Dispositivos de E/S 2008 @ Maria Salete Marcon Gomes Vaz
Dispositivos de Rede Mainframe VMS Micro emulando terminal X Rede local windows NT ETHERNET Estações de trabalho emulando terminal conectado remotamente ao Mainframe Rede local Unix 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Programas • Dão vida ao computador • Fazem com que funcione e transforme um amontoado de partes decorativas em uma ferramenta de trabalho muito eficiente • São as instruções que dizem ao computador o que fazer • Programas ROM ou Firmware - armazenados em uma memória de leitura • ROM-BIOS ou BIOS (Basic Input/Output System) - programas de serviços • DOS do PC e Windows 95 da Microsoft - Sistemas Operacionais - programas de sistemas de nível superior que não são criados dentro do computador • Sistema Operacional • gerencia alocação e compartilhamento de recursos do computador (Memória, arquivos, utilização da CPU, etc.) • armazenado na memória principal • programa que controla e coordena as operações do hardware • Age como uma interface entre os usuários do sistema de computação e o hardware 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Outros Componentes • Fonte de Alimentação • Dispositivo eletrônico que converte a corrente elétrica padrão em uma forma que possa ser utilziada pelo computador • Normalmente é uma caixinha prateada ou preta • Placa-Mãe • Estão instalados a maioria dos componentes que integram o computador propriamente dito • Chip do processador principal • Circuitos de apoio • Memória • Interface de E/S (portas serial e paralela, interface com o teclado, interface de disco, etc) • Barramento, que permite à CPU se comunicar com outros componentes que não estão integrados à placa-mãe) 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Outros Componentes • Dispositivos Periféricos • Impressora • Imprime em papel informações do computador • Matricial - impacto • Jato de tinta - que joga gotas de tinta sobre o papel • laser - toda página é armazenada na sua memória antes de ser impressa • Monitor • Permite a visualização na tela, as informações contidas no computador • Placas Periféricas • placa de expansão conectada a um dos conectores de barramento na placa-mãe • dispositivos que possam funcionar com o processador e outros Componentes de um Sistema de Computação 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Representação das Informações • Bit • Menor unidade de Informação armazenável • Algarismo binário ou dígito binário • Binary Digit • Possui somente dois valores: 0 e 1 • Caractere • Menor grupo ordenado de bits • Representa uma informação útil e inteligível para o ser humano • Qualquer caractere armazenado em um sistema de computação é convertido a um conjunto de bits • Empregado mais para fins comerciais 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Representação das Informações • Byte • Definição formal atribuída a um grupo ordenado de bits • Instituída pela IBM • Grupo ordenado de 8 bits, tratados de forma individual, como unidade de armazenamento e transferência • Empregado mais para linguagem técnica • Computadores binários - indicações numéricas refere-se a potência de 2 • K representa 1024 unidades (210) • M (mega) representa 1.048.576 unidades • G (giga) representa 1024 M • T (tera) representa 1024 G • P (peta) representa 1024 teras • Palavra • Conjunto de bits que representa uma informação útil 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Representação das Informações • Arquivos • É um conjunto formado por dados (ou informações) de um mesmo tipo ou para uma mesma aplicação • Exemplos: Arquivo de alunos e arquivo contendo instruções de um programa • Registros • Itens individuais de informação em arquivos • Exemplo: cada aluno em um arquivo de alunos • Obs.: Um programa é um arquivo, constituído de um único registro. Instruções não são consideradas registros individuais • Campos • As informações especificadas nos registros • Exemplo: nome do aluno, endereço, nota 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Classificação de Sistemas de Computação • Microcomputadores • Surgiram comercialmente em 1974 através do desenvolvimento de microcomputadores • Nome foi dado devido ao tamanho e à capacidade de processamento, e ainda ao tipo de usuário (uma única pessoa) • Computadores pessoais • Desktop, Laptops, Notebooks, sub-notebooks e Palmtops • Primeiro: Altais com microprocessador Intel 8080 • Estação de Trabalho • É um microcomputador projetado para realizar tarefas pesadas, nas áreas científica ou industrial (CAD, CAM, complexas computações matemáticas, entre outras) • Maior velocidade de processamento • Mais capacidade de memória (tamanho e velocidade) • Dispositivo de vídeo de mais alta qualidade 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Classificação de Sistemas de Computação • Minicomputadores • São máquinas projetadas para atender simultaneamente a demanda por execução de programas de vários usuários • Capacidade de dar suporte a múltiplos usuários • Velocidade de processamento • Capacidade/velocidade de memória • Extensa potencialidade para manipular diversos dispositivos de E/S • Requerem sofisticação maior de programas de controle • Computadores de Grande Porte • São sistemas projetados para manusear considerável volume de dados e executar simultaneamente programas de uma grande quantidade de usuários • Exemplo: Sistema de reservas de passagens aéreas • IBM 3090 2008 @ Maria Salete Marcon Gomes Vaz
Componentes de um Sistema de Computação • Classificação de Sistemas de Computação • Supercomputadores • Propósito: realizar grandes quantidades de cálculos matemáticos o mais rapidamente possível • Previsão de tempo, simulação e modelagem tridimensional • É capaz de realizar dois bilhões de operações matemáticas por segundo e manipular mais de um bilhão de células de memória 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional Aritmética Binária Soma Binária A operação de soma de dois números em base 2 é efetuada de modo semelhante à soma decimal, levando-se em conta, apenas, que só há dois algarismos disponíveis (0 e 1). 0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 0, com “vai 1” 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Exemplos 101101 + 101011 1011000 10101 + 11100 110001 100110 + 011100 1000010 1001111 + 1100111 10110110 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Subtração Binária • Da direita para a esquerda • 1 -1 = 0 • 0-1= não é possível, retira-se 1 da ordem a esquerda, que fica com 1-1=0 e passa-se para a ordem a direita, como 2, visto que 1 unidade de ordem à esquerda vale uma base de unidades (no caso, base= 2) da ordem a direita. Assim, 2-1 = 1 • 0-1 = 2-1 = 1 procedimento anterior repetido • 0-0=0 • 0-0=0 • 1-1=0 • Resultado:0001102 ou 1102 2 002 101101 100111 000110 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Exemplos 1 02 022 100110001 - 010101101 010000100 1 02202 100101 - 011010 001011 1121 022022 11001001 - 10111011 00001110 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Aritmética Octal • Consiste em processo similar ao da aritmética binária, com exceção do fato de que, neste caso, tem-se 8 algarismos disponíveis. Ocorrerá “vai 1” quando a soma de dois algarismos for igual ou ultrapassar o valor da base, isto é, 8. • Exemplos de Adição e Subtração 88 6208 7312 - 3465 36258 11 443 + 653 13168 111 3657 + 1741 56208 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Aritmética Hexadecimal • Segue as mesmas regras que qualquer base • Exemplos de Adição e Subtração 16 3B16D16 4C7BE8 - 1E927A 2DE96E16 1 11 3A943B + 23B7D5 5E4C1016 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Notação Posicional • Base Decimal • 125310ou 1253 • Número composto de quatro algarismo • Cada algarismo possui um valor correspondente a sua posição no número • 3 (algarismo mais a direita) representa 3 unidades • valor absoluto = 3; valor relativo = 3 (1a. Posição a direita) • 3 x 100 • 5 x 101 • 2 x 102 • 1 x 103 • O valor total do número = 3 + 50 + 200 + 1000 = 125310 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Notação Posicional • Generalização para um sistema qualquer de numeração • N = (dn-1 dn-2 dn-3 .... d1 d0)b • d indica cada algarismo do número N • n-1, n-2, 1, 0 indica a posição de cada algarismo • b indica a base de numeração • n indica o número de dígitos inteiros • O valor do número pode ser obtido pelo seguinte somatório • N = dn-1x bn-1 + dn-2 x bn-2 + dn-3 x bn-3 + ... + d1 x b1 + d0 x b0 • Exemplo • N = 1253 • N = 1 x 103 + 2 x 102 + 5 x 101 + 3 x 100 • N = 1000 + 200 + 50 + 3 = 125310 2008 @ Maria Salete Marcon Gomes Vaz
Conversão de Bases e Aritmética Computacional • Outras Bases de Numeração • Converter (1011)2 para Base 10 • 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 8 + 0 + 2 + 1 = (11)10 • Converter (1043)5 para Base 10 • 1 x 53 + 0 x 52 + 4 x 51 + 3 x 50 = 125 + 0 + 20 + 3 = (148)10 • Converter (257)8 para Base 10 • 2 x 82 + 5 x 81 + 7 x 80 = 128 + 40 + 7 = (175)10 • O número máximo de algarismos diferentes de uma base é igual ao valor da base • Na Base 10, temos 10 dígitos: de 0 a 9 dígitos • Na Base 2, temos dois dígitos: 0 e 1 • Na Base 5, temos 5 dígitos: de 0 a 4 2008 @ Maria Salete Marcon Gomes Vaz