24/05/2021 Seminário 1 e 2
Evolução do Software: Denise
Dúvidas
- 01. Como o software funcionava na 1a. geração?
- Através de circuitos eletrônicos e válvulas. As válvulas foram utilizadas em computadores eletrônicos, como por exemplo no ENIAC, já citado anteriormente. Normalmente quebrava após algumas horas de uso e tinha o processamento bastante lento. Nesta geração os computadores calculavam com uma velocidade de milésimos de segundo e eram programados em linguagem de máquina.
- 02. Computadores da 2a. geração eram acessíveis a quais tipos de usuários?
- Os mainframes eram direcionados para grandes companhias e os minicomputadores eram adquiridos por empresas menores.
- 03. Linguagens como Cobol e Fortran ainda sobrevivem nos dias de hoje? Onde, por exemplo?
- Sim, o Cobol está presente em vários sistemas bancários e Fortran é muito utilizado no meio científico e na Aeronáutica.
- 04. Qual Lei definia a capacidade de evolução do hardware? Qual era essa periodicidade? O que mudou nos dias de hoje?
- A lei de Moore surgiu em 1965 através de um conceito estabelecido por Gordon Earl Moore. Tal lei dizia que o poder de processamento dos computadores dobraria a cada 18 meses. Já se foram 50 anos desde que Moore criou a sua “lei”. E mesmo meio século depois ela continua firme e forte. É uma marca impressionante, especialmente se tratando de evolução do hardware. Porém, ela já está chegando ao seu limite.
- 05. Na época do Altair 8800, o que alguns jovens conseguiram criar que revolucionou a indústria de TI?
- Em 1975, Bill Gates e Paul Allen, fundaram a Microsoft com o objetivo visionário de instalar um computador em cada mesa de trabalho e em cada casa. Embora poucas pessoas naquela época acreditassem nessa visão, hoje, sabemos que eles estavam certos.
- 06. Exemplifique um ambiente Web com seus vários servidores.
- Quando usamos um browser ou um navegador web (google chrome, internet explorer, etc) para navegar na Internet estamos a usar o ambiente web.
- 07. Quais as linguagens mais usadas no mundo hoje? Pode sugerir um site para acompanharmos essa dinâmica?
- As linguagens mais usadas são Java Script, Python, Java, C# e PHP. Pode ser acompanhado no site:
- 08. Quais linguagens foram criadas a partir do Java Script?
- ActionScript, CoffeeScript, DartJScript, JScript .NET, Objective-J, Zig e ECMAScript.
- 09. Com relação ao Python, o que significa ter baixa tipagem?
- Comparada a outras linguagens como C, o python tem uma tipagem mais dinâmica porém, o python possui seus tipos bem definidos, sendo de tipagem forte.
- 10. O que quer dizer ser linguagem de alto nível? Cite um exemplo de linguagem de baixo nível?
- As linguagens de programação de alto nível são aquelas que, a grosso modo, estão mais próximas da linguagem humana do que da linguagem de máquina. A linguagem de máquina (binárias) é um exemplo de linguagem de baixo nível.
- 11. Quais os principais conhecimentos que o Gestor de Informação precisa ter sobre Desenvolvimento de Software?
- Precisa conhecer as metodologias ágeis para desenvolvimentos de software, conceitos de arquitetura de software, banco de dados, programação orientada a objetos, inglês intermediário e dominar pelo menos uma linguagem de programação
Crise do Software: Leticia
Colocar aqui sua apresentação
Dúvidas
- 01. Com tantas questões, as empresas não desanimavam de desenvover ou adquirir sistemas?
- 02. Pode dar um exemplo de Facilidade de Manutenção no Slide Problemas mais comuns ...?
- 03. O que o Gestor pode fazer para evitar cancelamentos e orçamentos acima do previsto?
- 04. Sugira um exemplo numérico que permite enxergar problemas originados pelo Bug do Milênio?
- 05. Quais técnicas de desenvolvimento as empresas foram implantando ao longo do tempo para minimizar os problemas envolvendo Criso do Software?
- 06. Quais as principais ações feitas pelos Gestores para tentar evitar as consequência do Bug do Milênio?
- 07. Quais as principais contribuições da Engenharia de Software para com o Desenvolvimento de Sistemas?
- 08. Efetivamente, o que o Engenheiro de Software faz como atividade profissional?
- 09. Faça uma pesquisa e atualize dados sobre os custos de desenvolvimento de software nas empresas, tipo, qual o percentual gasto no desenvolvimento e o percentual gasto na manutenção e correçã dos programa.
- 10. Faça uma pesquisa e atualize dados sobre os custos de desenvolvimento de software nas empresas.
Modelo Espiral x Incremental: Bianca
25/05/2021 Seminário 3 Apresentação: Arquivo:APS - SEMINARIO.pdf
Dúvidas
- 01. Quais as vantagens do modelo incremental?
- Menos complexo; Equipe pequena; Risco menor de fracasso.
- 02. Quais as vantagens do modelo espiral?
- Possibilidade de melhorar o sistema a cada interação; Versátil com mudanças; Reduz os riscos.
- 03. Como GI, qual a dificuldade de encarar os riscos de um desenvolvimento espiral, onde os custos e tempo podem não ser conhecidos a princípio?
- A dificuldade é que torna o sistema difícil de ser vender ao cliente e exige um alto nível de gerenciamento em todo o processo. Já que a evolução e amadurecimento dos requisitos demandam tempo ajustável (assim como custo).
- 04. Qual a diferença básica entre o Incremental e o Espiral em termos de entrega?
- O modelo incremental entrega um produto operacional a cada incremento, ou seja, um produto sem erro e pronto para o usuário utilizar. Essas partes são operacionais e funcionam sem as outras.
- 05. O incremental é o modelo de desenvolvimento mais utilizado atualmente? Se sim, tente explicar o por que?
- Sim, pois é um modelo mais simples (menos complexo). Possui uma estrutura que permite que os documentos de uma fase possam ser mexidos para melhorias, mesmo se esses documentos estiverem em uma fase que foi completada
- 06. A cada ciclo do Processo Espiral, o que pode ser ajustado?
- Tempo e Custo
- 07. Sobre quais modelos foi construído o espiral?
- Modelo Classico + Interativo + Risco
- 08. O que é SDLC?
- Ciclo de vida de desenvolvimento de softawe. Processo sistemático de construção de software que garante a qualidade e a correção precisa de falhas do software construído.
- 09. Entre várias possíveis, cite uma vantagem interessante para o usuário final?
- O usuario tem a possibilidade de acompanhar o processo e dar feedbacks.
- 10. Quando devemos usar o modelo espiral?
- O modelo espiral é usado com mais freqüência em grandes projetos.
Integração com Hardware : Gustavo
31/05/2021 Seminário 4 e 5
Dúvidas
- 01. Para que serve a raspberry?
- É um computador de placa unica. O objetivo é ter um computador 'normal' com preço reduzido.
- 02. Qual a diferença entre Raspberry e Arduíno?
- Arduino é um mini computador, o Arduino é uma placa de prototipagem eletronica
- 03. Com relação ao FPGA, como são organizadas as etapas do projeto de um sistema digital?
- Especificação, verificação, implementação, debug do sistema.
- 04. O que é o HDL e para que serve?
- Linguagem de descriçao de hardware. Descreve o que um sistema digital faz e como ele faz sua função.
- 06. Pode dar um ideia prática de um aplicação para o Arduíno ou Raspberry?
- Controlar lampadas pelo smartphone.
- 07. O que é um shield?
- 08. Descreva um exemplo de aplicação mostrando o código-fonte.
Integração com Software: Leonardo
Colocar aqui sua apresentação
Dúvidas
Arquitetura de 4 Camadas: Heloisy
01/06/2021 Colocar aqui sua apresentação: Mídia:file:///C:/Users/Windows 10/Downloads/Seminário - Arquitetura em 4 camadas-convertido.pdf
Dúvidas
- 01. Como é chamada a Arquitetura de 2 camadas? Quais as desvantagens dela?
- A arquiterua de 2 camadas é chamada de Cliente-Servidor. As vantagens é que ela melhor aproveita os pcs das empresas, oferece sistemas com interfaces gráficas amigáveis e integra o desktop e os dados corporativos.
- 02. Quais as desvantagens da Arquitetura de 3 camadas?
- As desvantagens são a instalação inicial dos programas no desktop é cara, o problema de manutenção persiste quando há mudanças à camada de apresentação e não se pode instalar software facilmente num desktop que não está sob seu controle administrativo.
- 03. Por quê é interessante dividir a arquitetura de TI em camadas?
- Adicionar mais uma camada é útil porque permite separar as regras de negócio da interface com o usuário. Pelo menos isto é o que ocorre na maioria dos casos. Isto é um ganho enorme em termos de organização mas fará você ter que lidar com uma mesma entidade em dois locais diferentes. Tem técnicas para minimizar algumas duplicidades mas complica o desenvolvimento.
- 04. O que faz exatamente a camada Model?
- A camada modelo é o coração da execução, responsável por tudo que a aplicação vai fazer a partir dos comandos da camada de controle em um ou mais elementos de dados, respondendo a perguntas sobre o sua condição e a instruções para mudá-las. O modelo sabe o que o aplicativo quer fazer e é a principal estrutura computacional da arquitetura, pois é ele quem modela o problema que está se tentando resolver. Modela os dados e o comportamento por trás do processo de negócios. Se preocupa apenas com o armazenamento, manipulação e geração de dados. É um encapsulamento de dados e de comportamento independente da apresentação.
- 05. O que faz exatamente a camada Controller?
- A camada Controller lida com as requisições dos usuários. É responsável por retornar uma resposta com a ajuda das camadas Model e View.
- 06. O que faz exatamente a camada View?
- A view é a camada de visualização e representa a parte do sistema que interage com o usuário. É pela interface que haverá a entrada dos dados inseridos pelo usuário e também a saída de informações que serão exibidas para ele.
- 07. O que faz exatamente a camada Presentation?
- A camada de aplicação fornece um conjunto de serviços de aplicação, os quais expressam os usos de casos do software. De modo simples, um serviço de aplicação recebe dados de seus clientes, como a interface de usuário, trata esses dados se necessário e chama um objeto do domínio para executar a operação de negócio.
- 08. O que é persistência de dados e de que maneira é tangibilizado num sistema?
- A persistência de dados como a garantia de que um dado foi salvo e que poderá ser recuperado quando necessário no futuro. Esse conceito existe na computação para referenciar o ato de salvar os dados. Tangibilizando num sistema: Um computador possui sua memória de curto prazo, a memória RAM. Essa memória é volátil, o que significa que qualquer dado armazenado ali irá se perder quando o computador for desligado, por exemplo. Por isso, precisamos mover esses dados para uma memória de longo prazo, que resista à suspensão do computador. Nesse caso, estamos falando de algum local não-volátil, como: HD; SSD; cloud (nuvem), etc.
XML x UML: Carolina
Colocar aqui sua apresentação
Dúvidas
Microsserviços: Matheus
Dúvidas
- 01. O que é SOA?
- SOA é a abreviação de Service Oriented Architectures, traduzindo temos "Arquitetura orientada a serviços". Este conceito define uma arquitetura de sistemas, onde os sistemas que utilizam esse padrão disponibilizam suas funcionalidades como serviços. Assim podemos criar um sistema que utiliza diversos serviços e os compartilha com outros sistemas o que permite o reuso, reduz custos e reduz o tempo de desenvolvimento.
- 02. O que é uma aplicação monolítica?
- Uma aplicação monolítica é um sistema que se comporta como um grande bloco, onde suas funcionalidades estão todas concentradas em um mesmo projeto e funcionam em conjunto de modo dependente entre si.
- 03. O que é persistência poliglota?
- Na busca do melhor entre os modelos existentes de SGBD, o conceito de persistência poliglota define uma aplicação capaz de interagir com diferentes modelos de BD, seja relacional ou não.
- 04. O que é um ESB e como funciona?
- Outro conceito muito importante dentro do SOA, é a presença do ESB(Enterprise Service Bus) que é um barramento de serviços, ou seja, um local onde concentramos diversos serviços de uma empresa ou entidade.
- 05. Como containers ajudam na implantação dos microserviços?
- A utilização de containers, seja docker ou kubernettes em microsserviços pode facilitar a construção da aplicação. Onde em vez de subir os projetos dos serviços(microsserviço) de modo isolado e um um SO diretamente, podemos fazer utilização de containers de modo a fazer os serviços compartilharem do mesmo ambiente físico e com as vantagens que o uso de containers oferece.
- 06. Quais as oito categorias de desafios para quem pretende migrar para arquitetura de serviços?
- 1-Complexidade para o gerenciamento da grande quantidade de serviços; 2- Performance, um servidor que hospeda um grande volume de serviços deve ser robusto e contar com muitos recursos; 3- Caso haja falhas na rede, isso pode derrubar todos os serviços do barramento; 4- Dificuldade para os desenvolvedores testarem um serviço; 5- Os serviços são expostos na rede e qualquer aplicação que utiliza os serviços pode ter seus pacotes interceptados; 6- Dificuldades na implementação, pois requer uma mudança na estratégia da empresa no que se diz respeito ao funcionamento de seus aplicativos; 7-Separação de quais serviços e dados serão acessados por respectivas aplicações; 8-Planejamento e uma boa divisão dos serviços;
- 07. O que é MOM e como funciona?
- MOM(Machine Option Management), é um recurso implementado principalmente em ambientes de automação industrial. O recurso permite que arranjos de máquinas que utilizam de sistemas de I/O e protocolos usados em automação(cube20, cube67, profibus, EtherNet/IP) possam alterar suas topologias sem quaisquer modificações na rede.
- 08. O que é cloud-native?
- Inspiradas nos modelos de aplicações em nuvem o cloud-native é um padrão de criação e gerenciamento de aplicações(distribuída em nuvem ou datacenters locais), que objetiva a utilização de recursos e conceitos importantes no seu sistema como utilização de: Microsserviços(arquitetura), DevOps(abordagem) e Containers.