Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise de Sistemas aula 01 Jobson Luiz Massollar jobson.luiz@gmail.com Análise de Sistemas 2 Objetivo do Curso Apresentar os conceitos básicos de análise e modelagem de sistemas e a importância dessas práticas para os projetos de software. Capacitar o aluno a elaborar projetos detalhados de sistemas através da técnicas de Análise Orientada a Objetos com utilização da linguagem UML (Unified Modeling Language) Análise de Sistemas 3 Estrutura do Curso Motivação Fundamentos da Análise de Sistemas Engenharia de Requisitos Análise e Projeto OO Modelagem de Sistemas usando UML Análise de Sistemas 4 Bibliografia BEZERRA, E.; Princípios de Análise e Projeto de Sistemas com UML. 2ª ed., Campus, 2006. WAZLWICK, R. S.; Análise e Projeto de Sistemas de Informação Orientados a Objetos. Campus, 2004. PRESSMAN, R. S.; Engenharia de Software. 7ª Edição, Mc Graw Hill, 2011. SOMMERVILLE, I.; Engenharia de Software, 8ª ed., Pearson, 2007. LARMAN, G.; Utilizando UML e Padrões: Uma introdução a Análise de Projetos Orientado a Objetos. Bookman, 2000. FOWLER, M.; SCOTT, K.; UML Essencial. Bookman, 2005. Análise de Sistemas 5 Avaliações A1: 29/09 A2: 01/12 A3: 08/12 Regras: a) (A1+A2) / 2 6 E A1 5 E A2 5 APROVADO DIRETO b) A1 5 OU A2 5 FAZER A3 c) Faltar A1 OU A2 FAZER A3 d) A1 5 E A2 5 REPROVADO DIRETO (não tem direito à A3) e) Faltar A1 E A2 REPROVADO DIRETO (não tem direito à A3) f) A3 substitui sempre a menor nota (A1 ou A2) g) Caso o aluno tenha sido aprovado direto, ele poderá fazer a A3 para melhorar a média. Análise de Sistemas 6 Calendário Dias sem aula: Semana Nacional de C&T: 13/10 a 17/10 Atenção: o calendário da semana se C&T será divulgado posteriormente. Dia Motivo 15/10 (quarta) Dia do Professor 20/11 (quinta) Zumbi Análise de Sistemas 7 Material Didático Todas as transparências apresentadas em sala de aula e os programas desenvolvidos no laboratório serão postados no NetStudent. Os alunos deverão acessar o sistema e fazer o download do material. Não serão enviadas transparências ou qualquer outro tipo de material didático via email. Análise de Sistemas 8 Frequência O curso é presencial e, portanto, não haverá abono de faltas. Use os 25% de faltas a que você tem direito para os casos realmente necessários (doença, viagem, trabalho, etc.). Acompanhe o lançamento das frequências no NetStudent. Análise de Sistemas 9 Nos primórdios da computação o software era simples e desenvolvido de forma ad-hoc. Metodologia Code and Fix (codifica e conserta) Primeiro grande software relatado na literatura técnica: IBM OS/360 Lançado em 1964, mas só completamente implementado em 1967. No auge do desenvolvimento, a equipe completa era composta por cerca de 1000 pessoas. Motivação Análise de Sistemas 10 Ao longo dos anos pudemos observar a evolução da computação eletrônica: Primeiro paradigma: caracterizado pela utilização de um mesmo dispositivo de processamento por N usuários. Este período destaca-se pelo uso intensivo de computadores de grande porte ou mainframes, que eram muito caros. Motivação Análise de Sistemas 11 Ao longo dos anos pudemos observar a evolução da computação eletrônica: Segundo paradigma: caracterizado pela utilização de um dispositivo de processamento por um único usuário. Neste período temos o surgimento dos computadores pessoais ou personal computers (PCs). Motivação Análise de Sistemas 12 Ao longo dos anos pudemos observar a evolução da computação eletrônica: Terceiro paradigma: caracterizado pela utilização de N dispositivos de processamento por um único usuário. Este período caracteriza-se fortemente pelo uso intensivo de dispositivos móveis e redes de comunicação. Motivação Análise de Sistemas 13 A cada dia novas tecnologias são criadas ou aprimoradas: Redes de comunicação (com fio e sem fio) Redes de posicionamento Redes de sensores (presença, temperatura, luminosidade, trânsito, ...) Dispositivos móveis Dispositivos cada vez menores e com maior poder de processamento e armazenamento Armazenamento de dados na nuvem (cloud storage) Processamento de dados na nuvem (cloud computing) Impressoras 3D Recarga sem fio de dispositivos ... Motivação Análise de Sistemas 15 Essas novas tecnologias permitiram que conceitos criados a alguns anos se tornassem realidade: Computação móvel: é a capacidade de um dispositivo computacional e os serviços associados ao mesmo serem móveis, permitindo este ser transportado mantendo-se conectado a uma rede de comunicação. Computação pervasiva: define que os recursos computacionais estarão distribuídos e integrados ao ambiente de trabalho dos usuários de forma imperceptível (sistemas embutidos). Motivação Análise de Sistemas 16 Essas novas tecnologias permitiram que conceitos criados a alguns anos se tornassem realidade: Computação ubíqua: caracteriza-se pelo uso de serviços computacionais embutidos no ambiente que nos cerca, de forma que seu uso não seja intrusivo e ao mesmo tempo natural para os usuários. Neste novo paradigma, os usuários carregam consigo os serviços computacionais que necessitam, serviços estes que podem ser providos através de dispositivos heterogêneos diversos. Motivação Análise de Sistemas 17 Essas novas tecnologias permitiram que conceitos criados a alguns anos se tornassem realidade: Desmaterialização: diz respeito a tornar as coisas menos materiais com o objetivo de diminuir o consumo de recursos físicos na sua produção. É importante ressaltar que o conceito de desmaterialização está alinhado com o conceito de sustentabilidade, tão difundido nos dias de hoje. Motivação Análise de Sistemas 18 No mundo digital de hoje o conceito de desmaterialização, combinado com o conceitos da computação ubíqua, vem sendo aplicados de forma cada vez mais intensa por empresas privadas e governos. E isso vem ampliando a atuação de sistemas de software para novas áreas. Exemplos ? Motivação Análise de Sistemas 19 Exemplos: 1. Digitalização de documentos combinado com assinatura e certificação digitais vem sendo adotados de forma cada vez mais abrangente por empresas privadas e governos; 2. Tablets cada vez mais apropriados à leitura de conteúdo digital estão levando as editoras de livros, jornais e revistas a investirem cada vez mais nas versões digitais de seus produtos; 3. Controles remotos de TVs são disponibilizados pelos próprios fabricantes como softwares que rodam em celulares; Motivação Análise de Sistemas 20 Exemplos: 4. Calculadoras científicas, antes tão cobiçadas por profissionais e estudantes da área técnica, hoje são oferecidas, muitas vezes gratuitamente, como softwares em diversas plataformas; 5. Câmera fotográfica, relógio/despertador, lanterna, console de jogos e tocador de música são alguns dispositivos que hoje são disponibilizados, via software, em um único aparelho: os celulares; 6. Grandes montadoras da indústria automobilística preveem que, a partir de 2015, as chaves dos carros comecem a ser substituídas por um software rodando nos celulares utilizando tecnologia NFC (Near Field Communication);Motivação Análise de Sistemas 21 Exemplos: 7. Consumo colaborativo, onde pessoas utilizam dispositivos de uso pessoal e redes de comunicação para compartilhar bens de consumo; 8. Pesquisas já apontam para o uso de impressoras 3D para que os próprios usuários possam "imprimir" peças de reposição de aparelhos diversos ao invés de comprar esses itens da forma tradicional...e isso terá um grande impacto em toda a cadeia produtiva. Motivação Análise de Sistemas 25 Atualmente, sistemas de software comandam nossas vidas de uma forma muito mais abrangente do que somos capazes de perceber. Se você ainda duvida disso tente responder... o que aconteceria se, por um motivo qualquer, todos os softwares que gerenciam os negócios, as empresas, os equipamentos, etc., parassem de repente de funcionar ? Motivação Análise de Sistemas 26 Sistemas de software vem crescendo em: • Abrangência • Importância • Complexidade e a interação entre esses diversos sistemas tende a tornar o cenário ainda mais complexo. A partir daí, temos uma constatação: O desenvolvimento de sistemas é uma tarefa complexa. Motivação Análise de Sistemas 27 Alguns exemplos da evolução dessa complexidade (valores aproximados): Microsoft Word 1.0: 27 KLOCs Photoshop 1.0: 120 KLOCs Windows 3.1: 2,5 MLOCs Windows NT 3.1: 4,5 MLOCs Eclipse versão Europa (2007): 17 MLOCs Windows 2000: 28 MLOCs Windows 7: 40 MLOCs Microsoft Office 2013: 45 MLOCs Mac OS X Tiger: 85 MLOCs KLOCs = milhares de linhas de código MLOCs = milhões de linhas de código Motivação Análise de Sistemas 28 O aumento dessa complexidade vem sendo percebido desde o início da década de 70: Barateamento do hardware; Demanda por softwares mais complexos, devido à maior capacidade de processamento; Demanda por softwares superior à capacidade de desenvolvimento; Software desenvolvido não atendia às necessidades dos usuários; Baixa qualidade do software; Código difícil de manter; Estimativas de custo e prazo raramente cumpridas. Motivação Crise do Software Análise de Sistemas 29 A Engenharia de Software surgiu como um dos resultados do esforço para tentar superar a crise do software. Engenharia de Software: Tem como objetivo organizar ferramentas, técnicas e metodologias que permitam a construção de software de qualidade com um custo aceitável. Motivação Análise de Sistemas 30 Por que precisamos da Engenharia de Software ? Por que não iniciar o desenvolvimento do software com a programação ? Vamos tentar responder essa pergunta fazendo um paralelo com o desenvolvimento de sistemas em outras áreas. Motivação Análise de Sistemas 31 Exemplos: Motivação - Complexidade + Análise de Sistemas 32 Por que precisamos da Engenharia de Software ? Por que não iniciar o desenvolvimento do software com a programação ? Porque antes de implementar uma solução computacional existe uma série de questões que precisam ser respondidas: Para que será usado esse sistema ? Que usuários usarão o sistema ? O que os usuários esperam que esse sistema ofereça ? Que restrições existem para construir esse sistema ? Que tecnologias eu posso ou não posso usar para construir esse sistema ? ...e muitas outras. Motivação Análise de Sistemas 34 A Engenharia de Software prega que é preciso haver um Processo de Desenvolvimento de Software através do qual construímos nossos softwares. Processo de Desenvolvimento de Software (PDS): Conjunto de atividades que visam definir, desenvolver, testar e manter um produto de software. Introdução Análise de Sistemas 35 A Engenharia de Software prega que é preciso haver um Processo de Desenvolvimento de Software através do qual construímos nossos softwares. Processo de Desenvolvimento de Software (PDS): Conjunto de atividades que visam definir, desenvolver, testar e manter um produto de software. Como esse processo é representado ? Ciclo de Vida: Define a sequência de macro-atividades que serão seguidas durante o processo de desenvolvimento de um software. Introdução Análise de Sistemas 36 Ciclo de Vida Cascata (Royce, 1970) Introdução - Modelo Cascata Definição dos requisitos Análise Projeto Implementação Teste/Avaliação Implantação Manutenção Análise de Sistemas 37 Definição de Requisitos Envolve o entendimento dos requisitos, ou seja, das necessidades dos usuários do sistema. Nessa fase já é feita uma pequena quantidade de análise de alto nível. Análise Envolve a compreensão do domínio do problema, da informação a ser tratada, das funções do software, de aspectos de desempenho e interfaces exigidos pelo cliente; Envolve, também, a definição de uma solução computacional; Os requisitos são documentados e revistos com os usuários. Introdução - Modelo Cascata Análise de Sistemas 38 Projeto Tradução dos requisitos do software para um conjunto de representações que detalham como o software será estruturado; São definidos aspectos do software como a arquitetura, a estrutura dos dados, lógicas de comportamento (algoritmos) e características da interface. Implementação ou Codificação Tradução das representações de projeto para uma linguagem de programação. Introdução - Modelo Cascata Análise de Sistemas 39 Testes Concentra-se na avaliação do que foi produzido, para verificar se o software construído realmente atende ao que foi especificado e se atende às necessidades do usuário. Implantação Instalação do sistema em uma infraestrutura computacional; Treinamento; Disponibilização de manuais de uso, operação e demais documentações. Introdução - Modelo Cascata Análise de Sistemas 40 Manutenção Trata das mudanças necessárias no software após a implementação. Principais causas das mudanças: • Correções de falhas no software (manutenção corretiva) • Adaptações a novas necessidades (manutenção adaptativa) • Melhoramentos nas funções existentes (manutenção evolutiva) • Modificações para prevenir possíveis falhas (manutenção preventiva) Introdução - Modelo Cascata Análise de Sistemas 41 Na prática o Modelo Cascata é muito difícil de ser seguido, porque ele exige que todos os requisitos estejam claros e detalhados na fase inicial do desenvolvimento. Principal contribuição do Modelo Cascata: Tentou refletir no desenvolvimento do software as práticas das engenharias clássicas, sugerindo que o processo de desenvolvimento de software deve estar sujeito à disciplina, planejamento e gerenciamento. Introdução - Modelo Cascata Análise de Sistemas 42 Existem vários outros ciclos de vida propostos na literatura técnica: Prototipagem descartável Prototipagem evolutiva Desenvolvimento evolucionário Modelo incremental Modelo espiral Modelo de desenvolvimento baseado em componentes RUP O importante é que, independente do ciclo de vida, todos eles incluem a fase de Análise como uma das etapas do desenvolvimento. Introdução - Modelo Cascata Análise de Sistemas 47 Análise: Análise de Sistemas: Exame de cada parte de um sistema para conhecer-lhe a natureza, as funções, as limitações, as estruturase os comportamentos. Introdução "Exame de cada parte de um todo para conhecer-lhe a natureza, as funções, etc." (Dicionário Aurélio) Análise de Sistemas 48 Entretanto, sistemas computacionais não são compostos apenas por software. Eles são formados por um conjunto de elementos: Hardware Software Pessoas Processos etc. que interagem para atingir um objetivo. Logo, a Análise de um sistema abrange o entendimento de todos esses elementos. Introdução Análise de Sistemas 49 Para que a Análise ocorra da forma adequada é preciso: 1. Coletar informações sobre o sistema desejado, as pessoas que irão usá-lo e o contexto onde ele está inserido; 2. Documentar os resultados da análise, e; 3. Avaliar se a documentação gerada atende às necessidades do usuário. Temos, então, as 4 fases iniciais do desenvolvimento de um sistema: 1. Elicitação 2. Análise 3. Especificação 4. Avaliação Introdução Análise de Sistemas 50 Introdução Essas fases do desenvolvimento de um sistema são tão importantes e críticas que foi criada uma sub-área da Engenharia de Software somente para cuidar dessas questões, chamada de Engenharia de Requisitos. Ela é formada por atividades de: 1. Elicitação (ou Levantamento) • Capturar e entender as necessidades dos usuários. 2. Análise • Organizar as necessidades dos usuários e elaborar uma solução computacional para o problema. 3. Especificação (ou Documentação ou Modelagem) • Documentar a solução proposta. 4. Avaliação • Avaliar se a especificação produzida atende às necessidades dos usuários. Análise de Sistemas 51 Processo de Desenvolvimento Mundo real Mundo computacional Requisitos do cliente Análise de Sistemas 52 Processo de Desenvolvimento Mundo real Mundo computacional Requisitos do cliente Requisitos do sistema Análise de Sistemas 53 Processo de Desenvolvimento Mundo real Mundo computacional Requisitos do cliente Requisitos do sistema Especificação Análise de Sistemas 54 Processo de Desenvolvimento Mundo real Mundo computacional Requisitos do cliente Modelos de projeto Requisitos do sistema Especificação Análise de Sistemas 55 Processo de Desenvolvimento Mundo real Mundo computacional Requisitos do cliente Modelos de projeto Código Requisitos do sistema Especificação Análise de Sistemas 56 Processo de Desenvolvimento Mundo real Mundo computacional Requisitos do cliente Código Programação é importante somente na parte final do processo. Modelos de projeto Requisitos do sistema Especificação
Compartilhar