Baixe o app para aproveitar ainda mais
Prévia do material em texto
REVISÃO PARADIGMAS PARA AV3 1 PROGRAMAÇÃO ESTRUTURADA Criada por volta dos anos 70/80 Foi o grande marco de revolução da programação. Tipos de processamento: Sequencial , decisão e repetição. Objetivava refinamentos sucessivos. 1.1 AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS Neste sempre haverá uma fácil relação entre as técnicas de análise e projeto que motivam as técnicas de programação que demandam linguagens de programação. É de suma importância que exista a coerência entre a analise, os projetos e as codificações. 1.2 PAARADIGMAS DAS LPS Paradigmas: São características em comum em um conjunto de linguagens. São divididos em: Imperativo - Criado em meados dos anos 70 e funciona até hoje. Onde estão a maioria das linguagens de programação estruturada. Baseado no conceito da Maquina de Von Neumann. Especificam a sequencia de ações (procedimento) com alterações no estado da memória. Suas características são: Variáveis, atribuição e repetição. Tem como dificuldade a forma de encontrar erros. OO - Surgiu na década de 90. Deu ao mundo uma nova forma de pensar, visto que a natureza dele é formada por objetos e torna a estrutura da programação formada por objetos. Formado por classes que contém atributos e métodos. Focado na abstração de dados, porém sua implementação de métodos usa conceitos do paradigma imperativo onde um objeto seria o elemento de uma determinada classe e a herança seria uma classe dentro de outra classe que herdaria os dados da classe acima. Trouxe também o conceito de polimorfismo, onde uma classe herdaria os atributos da outra porém com objetivos diferentes. Concorrente - Ideal na exploração do paralelismo (multiprocessamento) das máquinas atuais que fazem duas tarefas ao mesmo tempo é específico para processamento de concorrência. Lógico - Usado na lógica de sistemas especiais com o de IA. Nele são declarados os resultados e não os procedimentos. Funcional - Usado em linguagens funcionais, matemáticas, como também as de IA. 2 PARADIMAS DE ANÁLISE Tradicional - Usava uma técnica de programação linear e Modular, seu paradigma era Imperativo e sua abordagem era Funcional. Foi nomeado nos primórdios da programação, porém não havia muita organização e documentação do que se fazia ou eram anotações em rascunhos de papel. Ferramentas: Textos e fluxogramas. Funcional - Focada no comportamento do sistema. Conceito que foi dividido em dois marcos de análise: Estruturada - Sua técnica de programação era Estruturada lógica de predicados, seu paradigma era Imperativo e sua abordagem era funcional e de dados. Onde já começou a se definir o conceito de equipe de trabalho, pois os programas começaram a ficar mais complexos e assim começou a ser criada uma modelagem como forma de documentação desses programas. Introduziu uma analise com o conceito DFD em níveis onde cada níveis eram especificados novos dados (técnica de refinamento). Ferramentas: DFD, dicionário de dados, especificação de processos e Diagrama de estrutura de dados. Essencial -Veio pra resolver problemas como a divisão do sistema em partes (funções). Sua técnica de programação era Estruturada, seu paradigma era Imperativo e sua abordagem era funcional, de dados e controle (um modelo para cada perspectiva). Conjunto de funções que respondem a eventos. Foi uma evolução da análise estruturada, trazendo todos os recursos dela e incluindo o conceito de lista eventos (Acontecimento (externo ou temporal) que afeta o sistema que reage disparando uma função. Para descobrir as funções e seus dados, basta descobrir os eventos). Quando acontece um evento, estímulos chegam a empresa e o sistema responderá com respostas pré definidas aquele evento. Ferramentas: Todas as ferramentas da analise estruturada mais tabela de eventos, DER (Diagrama de entidade e relacionamento) e DTE (Diagrama de transição de estados). EX: EVENTO (AÇÃO) - > Cliente envia pedido de livro ESTIMULO (ENTRADA) - > Pedido de livro FUNÇÃO - > Incluir pedido RESPOSTA (SAÍDA) - > Pedido cadastrado ou rejeição. EM DFD - > Cliente (Representado por um retângulo), Envia (Representado por seta de fluxo de entrada) e Pedido de livro (Representado por um círculo). Neste caso o pedido será consultado em um banco de dados (Representado por traços) e saberá se o cliente já existe, caso contrário será realisado um cadastro e depois armazenará o pedido em outro banco de dados. A analise essencial foi dividida em duas partes: Modelo Essencial - Conceitual, trabalha com a modelagem do sistema. Modelo Ambiental - Opera, visão externa, sistema se relacionando com os meios. Faz a descrição do ambiente no qual o sistema está inserido. Ferramentas: Lista de eventos, objetivos do sistema e diagrama de contexto. Modelo Comportamental - Parte interna, comportamento do sistema em relação aos eventos que o afetam. Ferramentas: DFD (particionado e por níveis) modelo funcional, DER ou MER modelo de dados, DTE (Diagrama de transição de estados) modelo de controle, dicionário de dados e especificação dos processos. Modelo de Implementação - Implementação, trabalha com a parte tecnológica do sistema. OO - Sua abordagem era funcional, de dados e controle (integrados em único modelo). Trouxe o conceito onde dados e procedimentos são encapsulados em uma determinada classe. Ferramentas: Diagrama de casos de uso, especificação dos casos de uso, diagrama de classes, de sequencia e de estados. UML - Surgiu com a finalidade de juntar o melhor de cada proposta de modelo e ajudar na expansão e organização formando um padrão. Porém não diz como nem ordem do que se deve fazer. Usada em qualquer processo de desenvolvimento. Hoje está na versão 2.0 com 13 modelos. Diagramas estruturais Diagrama de Classes - é uma representação da estrutura e relações das classes que servem de modelo para objetos. Define todas as classes que o sistema necessita possuir e é a base para a construção dos diagramas de comunicação, sequência e estados. Diagrama de Objetos - é uma variação do diagrama de classes e utiliza quase a mesma notação. A diferença é que o diagrama de objetos mostra os objetos que foram instanciados das classes. O diagrama de objetos é como se fosse o perfil do sistema em um certo momento de sua execução. Diagrama de Pacotes - descreve os pacotes ou pedaços do sistema divididos em agrupamentos lógicos mostrando as dependências entre eles. Este diagrama é muito utilizado para ilustrar a arquitetura de um sistema mostrando o agrupamento de suas classes. Um pacote representa um grupo de classes (ou outros elementos). Diagrama de Estrutura Composta - destina-se a descrição dos relacionamentos entre os elementos. Utilizado para descrever a colaboração interna de classes, interfaces ou componentes para especificar uma funcionalidade. Diagrama de Componentes - ilustra como as classes deverão se encontrar organizadas através da noção de componentes de trabalho. Diagrama de Utilização - Este diagrama descreve e define os requisitos funcionais do sistema. Diagramas comportamentais Diagramas de Casos de uso - descreve a funcionalidade proposta para um novo sistema que será projetado. Segundo Ivar Jacobson, podemos dizer que um caso de uso é um "documento narrativo que descreve a sequência de eventos de um ator que usa um sistema para completar um processo". Diagrama de interação << abstract >> - é um tipo de diagrama de atividade que representa o envio ou o recebimento de dados entre um ator e um caso de uso. Diagrama de Visão Geral de Interação - proporcionam uma visão de alto nível sobre como diversas interações trabalham em conjunto para implementar um conceito do sistema, tal como um caso de uso.Diagrama de Sequência - Um diagrama de sequência descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de uso e exibe os objetos e as mensagens passadas entre esses objetos no caso de uso. Diagrama de Comunicação - Anteriormente chamado "Diagrama de colaboração", visão de um conjunto de elementos relacionados para um propósito específico. Mostra uma interação organizada em torno de objetos e seus vínculos. Diagrama de Temporização - apresenta o comportamento dos objetos e sua interação em uma escala de tempo, focalizando as condições que mudam no decorrer desse período. Diagrama de Estados - Representam um comportamento interno das classes, ou seja, permitem a especificação da sua dinâmica. Correspondem a uma especificação de como as classes devem ser implementadas. Diagrama de Atividades - é essencialmente um gráfico de fluxo, mostrando o fluxo de controle de uma atividade para outra e serão empregados para fazer a modelagem de aspectos dinâmicos do sistema. Na maior parte, isso envolve a modelagem das etapas sequenciais em um processo computacional; Tripé da análise Composto por casos de uso + classes + sequencia. Funcionalidade constrói-se a lista de eventos e seleciona os eventos para passar para os casos de uso retirando as classes e aplicando no diagrama de sequencia. 3 DIAGRAMAS DFD DED DER DTE DIAGRAMA DE CLASSES DIAGRAMA DE OBJETOS DIAGRAMA DE PACOTES DIAGRAMA DE COMPONENTES DIAGRAMA DE UTILIZAÇÃO DIAGRAMA DE CASOS DE USO DIAGRAMA DE INTERAÇÃO DIAGRAMA DE SEQUENCIA DIAGRAMA DE COMUNICAÇÃO DIAGRAMA DE TEMPORIZAÇÃO DIAGRAMA DE ATIVIDADES QUESTIONÁRIO 1 - Descreva brevemente DFD seguindo a notação de Gane e Sarson: R: Formado por entidade externa, depósito de dados, processos e fluxo de dados. Seus processos são representados por retângulos "em pé" com vértices arredondadas, divididos opcionalmente em três áreas onde a "descrição de função" deve ser ume sentença imperativa, constituindo num verbo ativo, seguido de uma cláusula objeto. Seus fluxos são representados por uma seta com uma ou ambas as pontas indicando a direção do fluxo. 2 - Descreva lista de eventos que afetam o sistema: R: Acontecimento externo ou temporal que faz com que um sistema reaja acionando uma de suas funções. Pode ser orientado a fluxo, controle ou temporal. 3 - Descreva o modelo essencial: R: Pressupõe uma tecnologia perfeita e por isso resolve o problema de separar aspectos lógicos de físicos. Está dividido em modelo ambiental e comportamental. Modelo ambiental - mostra como o sistema se relacionam com o ambiente que está inserido. Modelo comportamental - mostra o comportamento do sistema. 4 - Descreva a analise OO: R: É mais natural na medida em que o mundo é formado por objetos. Seu paradigma é baseado no conceito de encapsulamento e sua característica de herança veio para facilitar a reutilização da classe. 5 - Devido a que surge a necessidade de estudar diferentes paradigmas de programação? R: Habilidade maior de projetar novas linguagens, aumento da habilidade de aprendizado das linguagens e maior capacidade em desenvolver soluções computacionais. 6 - Como é visualizado o sistema de software de acordo com a visão de um paradigma OO? R: Uma coleção de objetos interconectados, porém cada objeto é responsável por realizar tarefas específicas. 7 - Descreva o paradigma imperativo: R: Técnica de programação estruturada, caracterizada pela programação que se valia de 3 estruturadas de comandos: sequencial, decisão e interação, além de uso da técnica de refinamento sucessivo (top-down). 8 - Defina a análise de processo de desenvolvimento em geral: R: É uma fase onde identificamos os requisitos do sistema, ou seja, aquilo que o usuário precisa que o sistema faça. É independente de tecnologia, para que a solução possa ser implementada de várias formas. 9 - Descreva a Analise Estruturada: R: Foi o primeiro paradigma de análise a usar diagramas para representar o funcionamento do sistema. Surgiu num momento em que o software crescia de complexidade e via sua primeira crise. Seu processo de análise era segmentado: funcionalidade e dados em duas perspectivas distintas. 10 - Descreva a Analise Essencial: R: Trouxe uma grande contribuição ao mundo: a lista de eventos, facilitando a atividade inicial do processo de análise de sistemas. 11 - Descreva o dicionário de dados: R: Dicionário de dados é apropriado para o registro de dados como por exemplo: estruturas de dados, fluxos de dados e depósitos de dados. 12 - De que é formado o DFD: R: Entidade externa, processo, depósito e fluxo de dados (com uma ou ambas direções). 13 - O que é o conceito de evento? R: Acontecimento (externo ou temporal) que afeta o sistema que reage disparando uma função. Para descobrir as funções e seus dados, basta descobrir os eventos. 14 - Quem avisa ao sistema que ocorreu um evento? R: Estímulo. 15 - Quais as ferramentas do modelo comportamental e ambiental? R: Comportamental -> DFD (particionado, em níveis e preliminar), DTE, MER, dicionário de dados e especificação dos processos. Ambiental -> Lista de eventos, objetivos do sistema e diagrama de contexto. 16 - A coluna resposta da tabela de eventos corresponde a que no DFD? R: Corresponde ao fluxo de dados para entidade externa e depósito de dados. 17 - Cite vantagens do modelo comportamental: R: Possibilidade de derivar os 3 modelos (funcional, de dados e de controle), a partir da lista de eventos. Trouxe conceitos fundamentais, como a lista de eventos que afetam o sistema, mas conversou os modelos da analise estruturada. 18 - Descreva DTE e DER: R: DTE - Diagrama de transição de estado - > mostra, além dos possíveis estados, as transições e as condições da transição. Normalmente implementado em classes cujo objetivo tenha pelo menos 2 estados. DER - Diagrama de entidades e relacionamento - > mostra o relacionamento entre depósitos de dados, em última análise. 19 - Qual o objetivo do diagrama de casos de uso? R: Apresentar as principais funcionalidades e os atores que interagem com elas. 20 - O que é um roteiro de casos de uso? R: É uma funcionalidade que mostra passo a passo como ocorre o caso de uso. Tem intima relação com a especificação do caso de uso e formam a base para a elaboração do diagrama de sequencia. 21 - Qual o objetivo do diagrama de sequencia? R: Mostra a sequencia temporal das mensagens trocadas entre os objetos, na realização de um cenário de uso. Ajuda a descobrir mais métodos das classes. É formulado a partir do diagrama de casos de uso em que cada um pode derivar mais de um diagrama de sequencia. 22 - Qual o objetivo do diagrama de atividades? R: Tem a mesma finalidade do diagrama de sequencia, porém sem foco temporal. Tem como grande vantagem a possibilidade de representar atividades que aconteçam em paralelo. 23 - Por que os usuários não validavam os requisitos e a modelagem feita com a técnica de análise essencial? R: Porque não entendiam os modelos da análise essencial, nem todos compreendiam essa modelagem e ficavam inseguros para tal. Mas nas vezes em que se usavam protótipos para essa validação, o sucesso mostrou-se maior. 24 - Como transformar DFD particionado em DFD nível ZERO? R: Agrupando DFD particionados que acessem o mesmo depósito de dados e/ou se relacionem com a mesma entidade externa. 25 - Simule um fluxo de dados chamado Dados Cliente e contendo Nome, Data de Nascimento,Data cadastramento e Endereço. R: Dados Cliente = Nome + Data nasc. + Data cad. + Endereço 26 - Faça um resumo, sobre os conceitos da linguagem de programação, assim como, sua estruturação, os conceitos de sintaxe e semântica, tipos de dados, expressões e atribuições. As LPs tornam o trabalho mais produtivo, atendem aos padrões de qualidade (confiabilidade, manutenibilidade e eficiência). Existem 3 tipos de estrutura: sequencial, decisão e repetição. Os seus paradigmas são: imperativo ou Procedural, Orientado a Objeto, Concorrente, Declarativo, Funcional e Lógico. 27 – Pesquise e mostre exemplos de linguagens de alto e de baixo nível, identificando as diferenças e características de cada tipo de linguagem. A de Alto Nível é aquela linguagem visualizada e entendida pelo usuário final, ou seja, a linguagem que está por trás dos softwares. A de Máquina (Baixo Nível) é aquela que se comunica diretamente com o hardware, as linguagem altas tendem a fazer com que os usuários tenham cada vez mais facilidades em comandar o computador, mas, elas geram códigos de “baixo nível” para que o hardware entenda e execute o comando desejado. 28 – Faça um resumo, sobre os processos de compilação e interpretação. Na Compilação o programa escrito na linguagem fonte é traduzido para linguagem máquina e depois ligado e carregado para ser executado. Basicamente, no processo de compilação existem três realidades distintas : o programa ou código fonte, o programa compilador e o programa executável. O processo de interpretação é completamente diferente do de compilação. A execução do programa é feita sempre na presença do programa interpretador e do programa fonte, sendo que o interpretador vai convertendo (traduzindo) para linguagem máquina cada linha, cada instrução do programa fonte passo a passo. Assim, a verificação da existência de erros de sintaxe ou estrutura só ocorre em runtime e o código fonte do programa tem de ser sempre fornecido ao utilizador final. 29 – Explique o processo de compilação da linguagem orientada a objetos Java. COMPETÊNCIAS/HABILIDADES: O aluno deve ter noção de linguagem de programação e ter passado pela disciplina de algoritmos. O processo de compilação de um programa Java é feito de acordo com os seguintes passos: o código fonte (extensão .java) é compilado e armazenado em um arquivo de extensão ".class". 30 - Quais os principais paradigmas de linguagens de programação? R: Imperativo ou Procedural, Orientado a Objetos, Concorrente, Funcional e Lógico. 31 - Como a linguagem de programação influencia o processo de desenvolvimento? R: Com análise de viabilidade (concepção), técnica de análise (estrutura, essencial ou orientada a objeto), especificação do ambiente e do software (projeto), "mão na massa" (implementação) e depuração de erros (testes). 32 - O que é um paradigma? R: Conjunto de características que categorizam um grupo de linguagens semelhantes. 33 - Qual é o trabalho do analista de sistemas? R: Entender os usuários e especificar para os desenvolvedores. 34 - Como é a abordagem da Análise tradicional? R: É voltada a perspectiva das funcionalidades dos programas (inicio não havia equipe de desenvolvimento). 35 - Descreva as ferramentas da Análise Estruturada. R: Aumento da complexidade, diagramas (DFD), entendimento da equipe e divisão do processo de desenvolvimento de sistemas em fases. 36 - O que é a Análise Essencial? R: É um conceito de evento (acontecimento que afeta o sistema e que reage disparando uma função) e lista de eventos que afetam o sistema. 37 - Descreva brevemente as ferramentas da Análise Orientada a Objetos. R: Objeto - Representam as "coisas" a serem modeladas no mundo real. Mensagens - Avisa quando um objeto precisa de uma função do outro. Atributos - Dados que caracterizam o objeto. Métodos - É um procedimento que executa uma operação em um objeto e define parte de seu comportamento. Classes - São objetos que tem as características de atributos e métodos. 38 - O que são requisitos de um sistema? R: São as necessidades (funcionalidades). Sujeitos à mudança durante o processo de desenvolvimento. 39 - Qual a diferença entre modelo ambiental e modelo comportamental na Análise Essencial? R: A análise ambiental descreve o ambiente do sistema e a comportamental descreve o comportamento em resposta a eventos que afetam o sistema. 40 - Defina Caso de Uso. Qual é a sua utilização na Análise Orientada a Objeto? R: Serve para descrever um modelo funcional do sistema. Procura identificar os usuários e representar o sistema segundo a sua visão É utilizado para identificar os requisitos de sistemas.
Compartilhar