Análise e Projeto de Sistemas Prof. Jorge Manuel Lage Fernandes [email protected] Aula 1 O que é um Sistema? Sistema Digestivo Sistema Ambiental Conceito de Sistema É um conjunto de objetos, unidos por alguma forma de interação ou interdependência. (Chiavenato) É uma combinação de partes coordenadas para a realização de um conjunto de objetivos. (Júnia Anacleto) Sistema Todo Sistema possue: Entrada Processamento Saída Os Sistemas aparecem de forma estruturada, em hierarquias. Assim, um Sistema pode sempre ser decomposto em SUBSISTEMAS Exemplo Sistema Corpo Humano Sistema Nervoso Sistema Digestivo Sistema Circulatório Sistema Endócrino Sistema Quando se pensa em Sistema, deve-se ter 5 considerações básicas: 1. Ambiente do Sistema: são elementos de fora do sistema que afetam e são afetados por mudanças nos atributos do Sistema. Ex: Sistema de Editora: Agentes, distribuidora, leitores OBS:Todo e qualquer Sistema está inserido em um meio ambiente que o contém. Sistema 2. Objetivos do Sistema: todos os subsistemas tem um objetivo, assim como o Sistema todo. Ex: Sistema Universidade: Reitor: formar bons profissionais Coordenador de Pós-Graduação: desenvolver pesquisa Coordenador de Estágio: treinamento técnico visando o mercado de trabalho 3. Recursos de Sistema: meios que o sistema necessita para desempenhar suas funções. Ex: Sistema de Empresa: Dinheiro, equipamentos, instalações, pessoal e serviços Sistema 4. Componentes do Sistema: elementos responsáveis pelo funcionamento do Sistema. Ex: Sistema Empresa: Funções de pesquisa, produção, marketing, finanças, pessoal. 5. Administração do Sistema: elementos responsáveis pela elaboração, implementação e acompanhamento do Sistema, de modo que os objetivos sejam alcançados. Afinal o que é um Sistema? Conjunto de elementos, entre os quais haja alguma relação. Disposição das partes ou elementos de um todo, coordenados entre si, e que formam uma estrutura organizada. (Ferreira) Consideremos todo Sistema como sendo um conjunto de entidades relacionadas, que interagem entre si, buscando atingir um objetivo comum e outros correlatos. Nível de Responsabilidade de decisão Sistemas nas Empresas Sistemas Especialistas Sistemas de Suporte Executivo Sistemas de Suporte a Decisão Sistemas de Informação Gerencial Sistemas de Automação de Escritório Sistemas Empresariais Básicos Quantidade de pessoas envolvidas Sistemas de Informação - Editora Saraiva Emerson de Oliveira Batista O que são entidades? São aqueles elementos próprios do sistema em questão, eles podem ser internos ao sistema ou estar em trânsito pelo mesmo. Eles sempre entram com certas características e quando saem, possuem novas características. Subsistemas também são consideradas entidades do sistema onde encontram-se. Sistemas Abertos x Fechados Sistema Aberto: possuem alguma interação com o seu meio ambiente, todos os sistemas de informação conhecidos até o momento são abertos. Sistemas fechados: é aquele que existe sem qualquer tipo de interação com o meio ambiente, ele pode até trocar energia com o meio mas não matéria. Ex: Sistema Educacional (aberto) Garrafa Térmica (fechado) Estrutura de Sistemas Deterministas: normalmente sistemas autômatos, no seu estado perfeito de funcionamento você sabe exatamente o que acontecerá, para onde este sistema irá. Probabilísticas: normalmente sistemas sociais, ou alguns sistemas biológicos. No estado perfeito de funcionamento você tem uma probabilidade do que acontecerá. Outro exemplo é o jogar de uma moeda. Partes do Sistema Inerentes: são partes internas ao Sistema. Transientes: são introduzidas no Sistema e depois retiradas dele, depois de algum processo de transformação ter ocorrido. Tanto antes como depois de serem retiradas, essas partes são externas ao Sistema. Exemplo Estudantes com certas características Entrada Estudantes com novas características Saída Interdependência As entidades em trânsito pelo sistema (transientes) são a energia necessária para a sobrevivência deste sistema. Sendo as entidades responsáveis por apenas uma pequena parte do processo no sistema, implica que o desempenho de uma entidade, depende da outra, isto é a interdependência. Estável ou Dinâmico: Um sistema estável é aquele que mudanças no ambiente resultam em pouca ou nenhuma mudança no sistema. Um sistema dinâmico é o que sofre mudanças rápidas e constantes devido a mudança de seu ambiente. Adaptáveis ou Não-Adaptáveis: Os conceitos sobre adaptáveis e não adaptáveis estão relacionados a estabilidade e dinâmica. Um sistema adaptável é aquele que responde ao ambiente mutável. Em outras palavras , é aquele que monitora o ambiente e recebe modificações em resposta a mudança do ambiente. O sistema não adptável é aquele que não muda com o ambiente mutável. Eventos de um Sistema Para assegurar a operação apropriada do Sistema, independente de sua classificação, deve existir um processo de relação de sistema de acordo com a avaliação de seu desempenho. Eventos de um Sistema Importação: também conhecida como Input, Alimentação. É o aspecto que permite a sobrevivência de um sistema aberto. Exportação: em qualquer sistema aberto, as entidades que lá entrarem, em algum momento sairão, com novas características diferentes daquelas que traziam, este fato é conhecido como exportação de elementos. Eventos de um Sistema FeedBack: é a parte sensorial do sistema, caracterizado por uma resposta ou retorno decorrente de uma avaliação. OBS: O Feedback tem propósito regulador no sistema, sem ele o sistema não pode se adaptar às mudanças das entidades internas ou externas e está sujeito à decadência lenta (entropia) Entropia Refere-se a distribuição desigual da energia, entrope (transformação). É a tendência que os sistemas tem para o desgaste, a desintegração. Quando houver falta de entidades em trânsito, diz-se que o sistema entrou num estado de entropia, e isto poderá levá-lo a sua falência, morte ou desativação, isto porque como não possui energia circulando,ele não tem como funcionar. Homeostasia Homeos (semelhante) + Statis (situação) É o equilíbrio dinâmico entre as partes do sistema. Os sistemas têm uma tendência a se adaptar a fim de alcançar um equilíbrio interno face as mudanças externas do meio ambiente. Morfogênese Quando alguns sistemas apresentam a característica de poder mudar a si próprios. Estas características estão presentes nos sistemas sociais e alguns sistemas biológicos. Nos sistemas de informação, pode-se empregar a título de exemplo, os programas de vírus mutantes. Redundância Vários sistemas apresentam entidades redundantes na sua estrutura, tal característica traz certa segurança na busca de atingir seus objetivos. Nos sistemas de informação o Backup, por exemplo, é uma redundância (muito necessária aliás). Reflexão Uma Crise no horizonte A industria de Software tem tido uma “crise” que a acompanha há quase 30 anos. Problemas não se limitam ao software que não funciona adequadamente, mas abrange: – desenvolvimento, testes, manutenção, suprimento, etc. Therac-25 Equipamento de Radioterapia. Entre 1985 e 1987 se envolveu em 6 acidentes, causando mortes por overdoses de radiação. Software foi adaptado de uma antecessora, Therac-6: – – falhas por falta de testes integrados falta de documentação página 382 do Pfleeger. Denver International Airport Custo do projeto: US$ 4.9 bilhões – – – – – 100 mil passageiros por dia 1.200 vôos 53 milhas quadradas 94 portões de embarque e desembarque 6 pistas de pouso / decolagem Denver International Airport Problemas: – – Erros no sistema automático de transporte de bagagens: Atraso na abertura do aeroporto com custo total estimado em US$360 Milhões 86 milhões para consertar o sistema. Ariane 5 Projeto da Agência Espacial Européia que custou: – – 10 anos. US$ 8 Bilhões. Capacidade 6 toneladas. Garantiria supremacia européia no espaço. Vôo inaugural em 4/junho/1996 Resultado Explosão 40 segundos após a decolagem. Destruição do foguete e carga avaliada em US$ 500 milhões. O que aconteceu? Fato: o veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que? Porque ele estava se quebrando devido às forças aerodinâmicas. Mas por que? O foguete tinha perdido o controle de direção (atitude). O que causou isso? Os computadores principal e back-up deram shutdown ao mesmo tempo O que aconteceu? (II) Por que o Shut-down? Ocorrera um run time error (out of range, overflow , ou outro) e ambos computadores se desligaram. De onde veio este erro? Um programa que convertia um valor em ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida. Especificamente: O que faltou? strict precondition 1: { Set."x"=FLPT and Set."y"=INT16 and -32768 <= x <= +32767 } program code: y := int(x); postcondition: {Set."x"=FLPT and Set."y"=INT16 and y=int(x)} Ironia... O resultado desta conversão não era mais necessário após a decolagem... Receita Federal dos Estados Unidos No começo da década de 80, a Receita Federal dos Estados Unidos (IRS) contratou a empresa Sperry Corporation para construir um sistema automatizado de processamento de formulários de impostos federais. De acordo com o jornal americano Washington Post, “o sistema se mostrou inadequado à carga de trabalho, custou cerca de duas vezes o esperado e deve ser logo substituído” (Sawyer, 1985) (continuação) Em 1985, foi necessário adicionar US$ 90 milhões aos US$ 103 milhões que já haviam sido pagos pelos equipamentos da Sperry. Além disso o problema acarretou o atraso das restituições da IRS aos contribuintes, o que forçou a IRS a pagar US$ 40,2 milhões em juros e US$ 23 milhões em horas extras para os funcionários que tentaram compensar o estrago. (continuação) Em 1996, a situação não havia melhorado. O jornal americano Los Angeles Times publicou, em 29 de março daquele ano, que ainda não havia nenhum plano para a modernização dos computadores da IRS, somente um relatório com 6.000 páginas. O congressista americano Jim Lighfoot chamou o projeto de “um fiasco de quatro bilhões de dólares que está afundando por falta de planejamento ” Quais são os problemas? A sofisticação do software ultrapassou nossa capacidade de construção. Nossa capacidade de construir programas não acompanha a demanda por novos programas. Nossa capacidade de manter programas é ameaçada por projetos ruins. Importância do Planejamento Em 1994, uma pesquisa realizada pelo The Standish Group demonstrava que nos Estados Unidos apenas cerca de 19% do total de projetos de software iniciados eram terminados com sucesso. 52,2% dos projetos eram concluídos com atrasos e acima dos orçamentos. 31,1% eram cancelados. Professora: Lucélia Oliveira Perguntas que a Engenharia de Software quer responder: Porque demora tanto para concluir um projeto (não cumprimos prazos)? Porque custa tanto (uma ordem de magnitude a mais)? Porque não descobrimos os erros antes de entregar o software ao cliente? Porque temos dificuldade de medir o progresso enquanto o software está sendo desenvolvido? Causas óbvias Não dedicamos tempo para coletar dados sobre o desenvolvimento do software resulta em estimativas “a olho”. Comunicação entre o cliente e o desenvolvedor é muito fraca. Falta de testes sistemáticos e completos. Causas menos óbvias O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico. Profissionais recebem pouco treinamento formal. Falta investimento (em ES). Falta métodos e automação. Mitos do Software - Administrativos Um manual oferece tudo que se precisa saber. Computadores de última geração solucionam problemas de desenvolvimento. Se estamos atrasados, basta adicionar programadores e tirar o atraso (chamado “conceito de hordas de mongois”). Mitos do Software - do Cliente Uma declaração geral é suficiente para começar a escrever programas. Mudanças podem ser facilmente acomodadas em um projeto. Mitos do Software do Profissional Um programa está terminado ao funcionar. Quanto mais cedo escrever o código, mais rápido terminarei o programa. Só posso avaliar a qualidade de um programa em funcionamento. A única coisa a ser entregue em um projeto é o programa funcionando. Quanto mais tarde a detecção de um erro, mais cara é a sua correção! Segundo Pfleeger, o custo para a correção de um erro cometido em um projeto durante a etapa inicial da análise é um décimo do custo para corrigir um erro semelhante depois que o sistema foi entregue ao cliente. Metade dos custos de correção de defeitos encontrados durante a fase de testes e manutenção vem de erros cometidos no início de vida do sistema. Sugestão para detecção de erros Muitos estudantes estão acostumados a desenvolver e testar o seu próprio software; Seus testes podem ser menos efetivos do que pensam; Fagan, estudou o modo como os defeitos têm sido detectados: ele descobriu que executar um programa com dados de teste revela somente cerca de um quinto dos defeitos cometidos durante o desenvolvimento do sistema. Sugestão para detecção de erros(continuação) O processo de revisão, realizado por colegas que mutuamente examinam e comentam o código e o projeto que eles criam, revela quatro dos cinco defeitos restantes (Fagan, 1986) Então, a qualidade do software pode aumentar consideravelmente somente com a revisão e dos trabalhos pelos colegas. Qual tem sido o grau de sucesso dos sistemas atuais? Pense como era a vida das pessoas antes dos processadores de texto, das planilhas eletrônicas, do correio eletrônico, da telefonia sofisticada. Os produtos de softwares têm apoiado avanços na medicina, na agricultura, nos transportes, etc… Além de nos permitir realizar as coisas nunca feitas antes, como microcirurgias, educação, multimídia e robótica. Recapitulação da Aula O que é um Sistema O que é Entidade Sistema Aberto e Fechado Estrutura do Sistema (determinístico, probabilístico) Partes (transientes e inerentes) Eventos (importação, exportação e feedback) Entropia, Homeostasia, Morfogênese e Redundância. Dúvidas e Perguntas