Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questionário Engenharia de Software I 1. O que é software? Quais são os tipos de software, cite 4 tipos: Software é um conjunto componentes lógicos de um sistema que formam um processo ou rotina e dão instruções que controlam a máquina ou computador. i. Software de sistema É um termo genérico empregado em aplicações normalmente responsáveis por dar o start para o uso de um computador, também é capaz de gerir e executar outras aplicações ao mesmo tempo que gerencia o consumo e o fluxo de uso dos recursos físicos da máquina, como memória e processador. O Windows, Linux, MacOS e FreeBSD são alguns exemplos. ii. Software de aplicação É uma aplicação que tem como objetivo suprir alguma necessidade específica do usuário, alguma ferramenta prática dentro do sistema, pode-se dizer que são softwares de aplicação aquele que tem como objetivo tornar real alguma abstração do usuário por meio do computador. O pacote Office 2016, o Paint, Photoshop ou mesmo a Siri são exemplos de aplicações. iii. Software embarcado O software de sistema embarcado, ou software embutido é um conjunto de instruções específicas e completamente encapsuladas para computar dados predefinidos, normalmente é dedicado a controlar um dispositivo único, conjuntos de sensores, placas lógicas ou circuitos integrados. É na maioria das vezes imutável e só é possível alterar alguma função dele refazendo todo o software. Um exemplo é o software de um relógio digital, o painel eletrônico de um fogão, um software de um ar condicionado ou a BIOS do computador. iv. SaaS (Software as a Service) Software as a Service ou em português, Software como Serviço são aplicações que são acessadas normalmente direto do navegador através da internet e rodam na nuvem, sendo possível acessa-las através de dispositivos diversos como computadores, smartphones e tablets. Aplicações desse tipo em geral utilizam o hardware remoto e por isso não demandam grandes capacidades de processando dos dispositivos que a acessam. São exemplos de SaaS; GSuite, Google Adwords, Office 365 ou mesmo o conceito do Dropbox. 2. Qual é a diferença entre engenharia de software e ciência da computação? A engenharia de software é a engenharia voltada para especificação, desenvolvimento, manutenção e criação de software, aplicando tecnologias e práticas de gestão de projetos. 2 Enquanto a ciência da computação é a ciência que estuda os algoritmos voltada para especificação, desenvolvimento, criação e melhoria do desempenho de algoritmos, ela estuda as técnicas, metodologias, automatização de processos e é focada especificamente no processamento digital. 3. Qual a diferença entre engenharia de software e engenharia de sistemas? Como já informado, a engenharia de software cuida da criação, desenvolvimento, manutenção e gestão de software e dos projetos de software, ela é mais relacionada a softwares de aplicação, SaaS e sistemas que integram softwares de sistemas. Já a engenharia de sistemas trata de sistemas complexos que integram outros sistemas e envolvem grande quantidade de variáveis, como sistema operacionais, sistemas de aeronaves, navios, foguetes e afins. 4. O que é processo de software? É um conjunto de atividades, ligadas por padrões de relacionamento entre elas, pelas quais decorrem, passando por especificação, desenvolvimento e mesmo a manutenção de um software. Um bom processo exige que atividades operem corretamente e de acordo com os padrões requeridos, para que enfim o resultado desejado seja obtido. O resultado desejado normalmente é um software de alta qualidade e baixo custo. 5. O que é um modelo de processo de software? É um conjunto de atividades associadas e pré-definidas de desenvolvimento de software, passando pela análise de requisitos, codificação, testes, implantação e manutenção. Há vários tipos de modelos, alguns deles são; prototipação, modelo em V, RAD, RUP, cascata, espiral e etc... 6. Quais são os custos da engenharia de software? São diversos. O tamanho do projeto, o modelo de processo de software adotado, a perspectiva de tempo de vida do projeto, requerimentos de performance como linguagem de programação e sistema, hardware requerido para processamento e afins. 7. Quais são os métodos da engenharia de software? 3 Qualquer abordagem estruturada para o desenvolvimento de software que inclua modelos de sistema, regras, recomendações e diretrizes do processo. 8. O que é CASE? Cite três exemplos de ferramentas CASE: CASE (Computer-Aided Software Engineering), ou, em português Engenharia de Software Assistida por Computador, são ferramentas baseadas em computadores que auxiliam o desenvolvedor no desenvolvimento de software, elas automatizam algumas regras, fazem recomendações e facilitam o gerenciamento do clico de vida do desenvolvimento. i. Upper CASE Apoia as etapas iniciais de criação dos sistemas: as fases de planejamento, análise e projeto do programa ou aplicação. ii. Lower CASE Dão apoio à parte física, isto é, a codificação testes e manutenção da aplicação. iii. Integrated CASE Classifica os produtos que cobrem todo o ciclo de vida do software, desde os requisitos do sistema até o controle final da qualidade. 9. Quais são os atributos de um bom software? O software deve atender os requisitos funcionais e desempenho que foram solicitados pelo usuário e além disso deve atender requisitos não funcionais, tais como facilidade de manutenção, nível de confiança, eficiência e facilidade de uso. Software deve ser escrito de modo que possa evoluir para atender as necessidades mutáveis. Software confiável não deve ocasionar danos físicos ou econômicos, no caso de um defeito no sistema. O Software não deve desperdiçar os recursos do sistema. O Software deve ser utilizável, sem esforços indevidos, pelo usuário para quem foi projetado. 10. Quais são os desafios-chave enfrentados pela engenharia de software? Lidar com sistemas legados, lidar com a diversidade crescente e lidar com a crescente demanda em reduzir o tempo de entrega. Os sistemas legados são sistemas antigos, porém em muitas ocasiões somos obrigados a mantê-los e 4 atualiza-los. Os sistemas são distribuídos e inclui uma mistura de hardware e software, deve-se desenvolver técnicas para construir softwares confiáveis e flexíveis dentro destes aspectos.
Compartilhar