Você está na página 1de 12

Exercícios de Engenharia de Software

Revisão de Conhecimento
Prof. Dr. João Carlos Lopes Fernandes

Joyce Santos Silva N6698D4 CC7Q39

1) O que é software? Comente sobre seus componentes.

R: Software é a parte lógica do computador é uma série de formações e dados


que são passados para a parte física do computador para realizar uma tarefa.
Os componentes de software variam em complexidade, escopo, grau de
funcionalidade, aptidões necessários e infraestrutura necessária. Eles são
classificados em componentes de interface do usuário; componentes de
serviço; componentes do dominio.

2) O que é produto de software?

R: Existem dois tipos de produtos de software genérico: sistemas autônomos


são criados por uma organização, desenvolvimento e distribuído gratuitamente
no mercado. Feito sob encomenda: como o nome sugere, esses sistemas são
feitos sob encomenda, eles são feitos especialmente para atender às
necessidades do cliente.

3) Diferencie produto genérico de produto sob encomenda (exemplificando).

R: A diferença é que os genéricos são feitos para quem quer usar um é feito
sob medida para um cliente específico que paga por este software satisfazer
todas as suas necessidades. Com o tempo, porém, essa diferença é menor
porque todos os clientes que compraram o software genérico podem
personalizá-los como precisam um exemplo de sistema é o ERP usado em
muitas empresas.

4) O que é Engenharia de Software?

R: Auxilia no desenvolvimento de softwares, usando métodos, procedimentos e


técnicas da Ciências da Computação, com objetivo de acompanhar as
inovações.
5) O que são problemas fundamentais e acidentais da Engenharia de Software?

R: Fundamentais faz parte da natureza do sofware ao seu modelo conceitual,


Acidentais acontece durante a produção do sofware.

6) Sobre problemas fundamentais e essenciais da Engenharia de Software,


comente sobre o problema da complexidade, da alterabilidade, da conformidade
e da invisibilidade.

R: Sistemas de software são mais complexos em relação ao tamanho,


software apresenta muitos estados, dificultando testes e manutenções.

7) Por que problemas experiências passadas ajudaram a resolver problemas


acidentais?

R: Com os problemas de experiências temos mapeados possíveis problemas


que podem ocorrer novamente, e trabalhamos para que não vire um problema
acidentais quando estivermos desenvolvendo.

8) O que são sistemas legados?

R: São sistrmas antigos que ainda assim são utilizados na empresa,


costumam usar banco de dados obsoletos.

9) O que é processo de software?

R: Com objetivo de ter um software de qualidade, o processo auxilia na


estruturação de atividades, exercendo a atividade corretamente resulta no
produto final.

10) Quais as atividades fundamentais do processo de software?

R: 1- Especificação; 2- Projeto; 3- Implementação; 4- Validação; 5- Manutenção


e Evolução.
11) Na atividade de especificação, qual o papel do estudo de viabilidade?

R: É o segundo passo após a especificação de requisitos de negócio, tem


como finalidade de analisar e responder algumas questões como é viável
desenvolver um novo sistema ou usar algum que está disponível no mercado,
quais os riscos envolvidos no projeto.

12) Na atividade de projeto e implementação, qual a diferença entre os projetos


de arquitetura, interface e componentes?

R: Projeto de arquitetura é abstrato que tem como referência a organização de


um sistema, ele também é responsável por definir os componentes, agora o
projeto de interface é pensado nas funcionadades que fazem sentido para o
usuário.

13) Na atividade de validação, qual a diferença entre os testes de sistema,


desenvolvimento e aceitação?

R: Teste de sistema testa os requisitos técnicos e a especificação do


sistema. O de aceitação, por sua vez, assim como vc bem citou, valida o
sistema de acordo com a necessidade do usuário final.

14) Sobre paradigmas, o que é um modelo de processo de software?

R: Poder ser tanto uma abstração ou uma representação dos objetos e define
um fluxo para as atividades, ações e tarefas envolvidas no processo de
software.

15) Qual a característica fundamental do Modelo em Cascata?

R: Semelhante a uma cachoeira é uma metodologia fluida, em que cada etapa


leva a outra é necessário ser bem desenvolvido cada etapa, garantindo que
seja executa de maneira correta, outra caracteristica é a presença maior do
cliente em cada etapa.

16) Qual a grande desvantagem do uso do Modelo em Cascata?

R: Uma desvantagem é o desenvolvimento ser realizado em parceria com o


cliente, pois ele vai informando a necessidades e prioridades do software, com
isso o desenvolvedor não consegue atuar tanto na identificação dos pontos de
melhorias do projeto, além dos testes serem realizados no final do
desenvolvimento.

17) Demonstre, através de um desenho, o funcionamento do Modelo Incremental.

R:

18) Qual a característica fundamental para o uso do Modelo RAD?

R: Uma diferença marcante do modelo RAD com outros modelos é a alta


adaptabilidade dos processos possibilitando a constancia na evolução .

19) Como o Modelo RAD minimiza a necessidade de testes?

R: Os protótipos passa pelos testes individuais, exceto os componentes


reutilizados que já foram usados em outros momentos, a forma indivual ajuda a
identificar as melhorias necessárias.
20) Demonstre, através de um desenho, o funcionamento do Modelo de
Prototipagem.

21) Qual a diferença entre o Modelo de Prototipagem e o Modelo Incremental?

R: Modelo de protótipo é um modelo quando o cliente não sabe completamente


como o produto final, onde não se conhece os requisitos e refinado de acordo
com as necessidades do cliente, já o modelo incremental é analisado,
projetado, implementado e testado de forma incremental até que o produto seja
finalizado.

22) O que é um protótipo e como ele pode ser concebido?

R: São usados para aumentar a chance de sucesso do projeto, é apenas uma


simulação do produto real com base no qual as formas do produto final e
variações são desenvolvidas.

23) Qual o grande problema que o modelo de prototipagem pode agregar a longo
prazo?

R: A continuidade de mudanças pode levar a corromper a estrutura do


protótipo do sistema, assim a manutenção a longo prazo pode ser cara.

24) O que o Modelo Espiral traz que os modelos anteriores não trazem?

R: é um processo evoluncionário, se adequa aos softwares que precisam


passar por inumeras evoluções, por ser mais iterativo e tenta fazer sucessivos
refinamentos, além de levar em consideração os riscos técnicos em todos os
estágios de evolução.

25) Quais ciclos podem estar no Modelo Espiral, dependo da variação.


R: São três etapas que podem fazer parte do ciclo de software são definicação,
desenvolvimento e operação.

26) sua opinião, para um software de pequena escala (comercializado apenas entre
microempresas para fins de controle de estoque) qual modelo de software deve
ser escolhido? Justifique sua resposta.

R: Pensando em um projeto pequeno podemos usar o modelo CMMI (Capability


Maturity Model), isso porque busca estabelecer um modelo único e integrado
para melhorias constante.

27) Imagine que você está contratando o serviço para desenvolvimento de


software. Você está passando a lista de requisitos, que são compostos por
funcionalidades e restrições. Qual a diferença entre os dois?

R: Funcionalidades é o que o software fará no final do projeto, está


relacionado com a satisfação que deram origem ao projeto, restrições é o que
limiram a execução do software, podem interromper ou comprometer
determinada tarefa.

28) O que são softwares personalizados?

R: São softwares desenvolvido sob demanda, exclusivamente para um


conjunto de usuários ou da empresa. Exemplo: a empresa tem um ERP e
precisa de campos ou módulos que não tem no mercado.

29) Um programa desenvolvido em sala de aula ou em casa para fins didáticos pode
ser considerado um software? Por quê?

R: Sim, um programa desenvolvido em sala de aula ou em casa para fins


didáticos pode ser considerado um software. Um software é um conjunto de
programas de computador que executam tarefas específicas e podem ser
utilizados para realizar diferentes funções.

30) Qual a diferença entre um software e um sistema? Qual dos dois conceitos é
mais amplo? Por quê?

R: Software contém outras ferramentas como banco de dados, bibliotecas e


podem ter diversas ferramentas, o sistema é um conjunto de softwares
integrados que juntos tem a função de alcançar o mesmo objetivo, com isso é o
mais complexo por ter mais de um software integrado.

31) O que é um subsistema?

R: É onde o trabalho é executado, podem conter vários subsistemas que


podem funcionar sem dependência de outros subsistemas, eles podem ser
executados operações únicas, podemos ter subsistemas que executa trabalho
de batch e outros que realiza funções de configuração.

32) Suponha que você iniciou suas atividades em uma empresa e lhe é solicitado
desenvolver um software. Quais as suas primeiras providências, antes de
colocar em prática suas habilidades de desenvolvedor?

R: Compreender os requisitos, Definir escopo e objetivos, Planejar o projeto,


Realizar análise de viabilidade, Estabelecer uma equipe, Selecionar a
metodologia de desenvolvimento, Configurar ambiente de desenvolvimento.

33) O que é o ciclo de vida de um software? Onde deve ser definido?

R: O ciclo de vida de um software é o conjunto de fases pelas quais um


software passa desde a sua concepção até a sua descontinuação. É uma
abordagem sistemática que visa planejar, desenvolver, testar, implantar,
manter e aposentar um software de maneira estruturada. Requisitos, Projeto,
Desenvolvimento, Testes, Implantação, Manutenção, Descontinuação. A
definição do ciclo de vida é essencial para garantir uma abordagem estruturada
e controlada no desenvolvimento e manutenção do software.

34) Qual a principal vantagem do modelo espiral de processo de software?

R: O ciclo de vida de um software é o conjunto de fases pelas quais um


software passa desde a sua concepção até a sua descontinuação. É uma
abordagem sistemática que visa planejar, desenvolver, testar, implantar,
manter e aposentar um software de maneira estruturada. Requisitos, Projeto,
Desenvolvimento, Testes, Implantação, Manutenção, Descontinuação. A
definição do ciclo de vida é essencial para garantir uma abordagem estruturada
e controlada no desenvolvimento e manutenção do software.

35) O que é Engenharia de Sistemas?

R: A Engenharia de Sistemas é uma disciplina que aborda o desenvolvimento e


a gestão de sistemas complexos. Ela se concentra na aplicação de princípios,
métodos e técnicas de engenharia para projetar, analisar, integrar e otimizar
sistemas que envolvem componentes físicos, humanos e de software.
36) Quais as principais atividades da gestão de projeto de software?

R: A gestão de projeto de software envolve uma série de atividades para


garantir o planejamento, organização, execução e controle efetivos de um
projeto de desenvolvimento de software: Definição de escopo, Planejamento,
Alocação de recursos, Gestão de equipes, Monitoramento e controle, Gestão
de riscos, Comunicação, Gestão de qualidade, Gestão de mudanças,
Encerramento do projeto.

37) O que é um requisito?

R: Um requisito é uma condição ou capacidade que um sistema, software ou


produto deve possuir para atender às necessidades, expectativas ou objetivos
dos usuários e partes interessadas. Em outras palavras, os requisitos são as
especificações funcionais e não funcionais que definem o que um sistema deve
fazer ou como ele deve se comportar.

38) Defina Requisito Funcional.

R: São as especificações que descrevem as funções, serviços e


comportamentos que o sistema deve oferecer. Eles descrevem o que o sistema
deve fazer em termos de entradas, processamento e saídas. Por exemplo, um
requisito funcional para um sistema de vendas online pode ser permitir que os
usuários adicionem produtos ao carrinho de compras.

39) Defina Requisito Não Funcional.

R: Requisitos não funcionais: São os requisitos que definem as qualidades e


características desejadas do sistema, que não estão relacionadas diretamente
às funcionalidades. Eles incluem aspectos como desempenho, segurança,
usabilidade, confiabilidade, escalabilidade, entre outros. Por exemplo, um
requisito não funcional pode ser o sistema deve ter uma resposta de página de
carregamento inferior a 2 segundos.

40) O que é o documento de requisitos?

R: Um documento de requisitos, também conhecido como especificação de


requisitos ou especificação funcional, é um documento formal que descreve de
forma detalhada os requisitos de um sistema, software ou produto. Ele tem
como objetivo principal capturar, documentar e comunicar de maneira clara e
organizada todas as informações relacionadas aos requisitos do sistema.

41) Quem utiliza os documentos de requisitos?


R: são utilizados por várias partes interessadas envolvidas no desenvolvimento
e na implementação de um sistema, software ou produto.Como: Equipe de
desenvolvimento de software, Equipe de testes, Gerentes de projeto, Clientes e
usuários finais, Analistas de negócio, Arquitetos de sistemas.

42) Quais são as atividades do Processo de Requisitos?

R: As principais atividades do processo de requisitos incluem: Elicitação de


requisitos, Análise e negociação de requisitos, Documentação de requisitos,
Verificação de requisitos, Gerenciamento de requisitos, Validação de requisitos,
Gerenciamento de escopo.

43) Quais são as dificuldades no processo de extração de requisitos?

R: Os stakeholders podem ter diferentes perspectivas, conhecimentos e


experiências, Os stakeholders podem ter expectativas implícitas que não são
expressas claramente, Diferentes stakeholders podem ter requisitos
conflitantes, o que pode gerar desafios na identificação de um consenso, Os
requisitos podem ser expressos de forma ambígua, vaga ou inconsistente,
dificultando sua interpretação correta, Os requisitos podem sofrer alterações ao
longo do tempo devido a mudanças nas necessidades dos stakeholders, na
tecnologia ou em outras circunstâncias.

44) O que você entende por qualidade de software?

R: São características e atributos de um software que o tornam confiável,


eficiente, seguro, utilizável e capaz de atender às necessidades dos usuários.
A qualidade de software é uma medida da excelência do produto de software,
considerando diferentes perspectivas, como funcionalidade, desempenho,
usabilidade, manutenibilidade, confiabilidade, segurança e conformidade com
requisitos específicos.

45) O que é um estudo de viabilidade?

R: m estudo de viabilidade é uma avaliação detalhada realizada antes do início


de um projeto para determinar se é viável, ou seja, se é factível, vantajoso e
econômico prosseguir com o projeto. Esse estudo envolve a análise de vários
aspectos, como técnicos, financeiros, legais, operacionais e organizacionais, a
fim de determinar se o projeto é uma opção viável para a organização.

46) Para que serve um estudo de viabilidade?

R: Um estudo de viabilidade serve para avaliar se um projeto é viável e justifica


a alocação de recursos (como tempo, dinheiro, equipe e infraestrutura)
necessários para sua execução.
47) Qual foi o motivador para o surgimento da Engenharia de Software?

R: O surgimento da Engenharia de Software foi motivado por uma série de


desafios e problemas encontrados no desenvolvimento de software. Alguns dos
principais motivadores foram: Crescimento da complexidade dos sistemas de
software, Aumento da demanda por software confiável, Problemas de custo e
prazo, Falta de reutilização de software, Baixa qualidade do software.

48) Trace um paralelo da Engenharia de Software como Engenharia Civil e como


Arte.

R: Processo estruturado: Assim como a Engenharia Civil segue um processo


estruturado para o projeto e construção de edifícios, pontes e infraestruturas, a
Engenharia de Software também utiliza metodologias e abordagens
sistemáticas para o desenvolvimento de software, consideração de requisitos e
restrições: Tanto na Engenharia Civil quanto na Engenharia de Software, é
necessário levar em conta requisitos técnicos, regulamentações, restrições
orçamentárias e ambientais para alcançar resultados eficazes e seguros.

49) Cite e comente seis princípios de comunicação das práticas de Engenharia de


Software.

R: Engenharia de Software é estabelecer uma comunicação clara e efetiva


entre todos os envolvidos no projeto. Isso inclui desenvolvedores, clientes,
gerentes de projeto e outros stakeholders, a comunicação deve ser frequente
ao longo do projeto, desde o levantamento de requisitos até a entrega do
software, a comunicação deve ser bidirecional, ou seja, todas as partes
envolvidas devem ter a oportunidade de expressar suas ideias, preocupações e
feedback. É importante utilizar uma linguagem clara e não técnica ao se
comunicar com pessoas que não possuem conhecimento especializado em
Engenharia de Software. A comunicação na Engenharia de Software pode
ocorrer por meio de diferentes canais, como reuniões presenciais,
videoconferências, e-mails, chats ou ferramentas de colaboração online, além
da comunicação verbal ou escrita, é essencial realizar registros e
documentação adequados das decisões, acordos e requisitos discutidos.

50) Diferencie o teste da Caixa Branca do teste da Caixa Preta.

R: O teste de caixa branca é realizado levando em consideração o


conhecimento detalhado da estrutura interna do software. O testador tem
acesso ao código-fonte, à arquitetura do sistema e a outras informações
internas, o teste de caixa preta é realizado sem ter conhecimento detalhado da
estrutura interna do software. O testador não tem acesso ao código-fonte e não
está preocupado com a implementação interna do sistema. Em vez disso, o
foco está na funcionalidade externa do software e na validação dos requisitos
do sistema.

51) Qual a importância dos testes de software?

R: São fundamentais para garantir a qualidade e confiabilidade do produto final,


como Identificar defeitos e erro, melhorar a qualidade do software, reduzir
riscos e custos, validar requisitos e funcionalidades, aumentar a confiança no
software, facilitar a manutenção e evolução do software.

52) O que são testes unitários e testes de aceitação?

R: Os testes unitários são executados no nível mais baixo de um sistema de


software, geralmente nas unidades individuais de código-fonte, como funções,
métodos ou classes. O objetivo dos testes unitários é verificar se cada unidade
de código funciona corretamente e produz os resultados esperados. Os testes
de aceitação são realizados para verificar se o software desenvolvido atende
aos requisitos estabelecidos pelo cliente, usuário final ou especificações
funcionais do sistema.

53) Em que momento a Prototipagem pode ser utilizada no modelo Espiral?

R: A prototipagem pode ser utilizada em diferentes estágios do modelo espiral,


como: Exploração de requisitos, avaliação e validação de soluções, mitigação
de riscos.

54) Qual a diferença entre protótipo evolutivo e protótipo descartável?

R: O protótipo evolutivo é desenvolvido com a intenção de ser aprimorado e


refinado ao longo do tempo. Ele é construído com a perspectiva de que será
uma base sólida para o desenvolvimento do produto final, o protótipo
descartável é desenvolvido com a intenção de ser usado apenas para fins de
teste e validação preliminar, sem a expectativa de que seja aprimorado ou
incorporado no produto final.

55) Caracterize o Processo Unificado.

R: O Processo Unificado adota uma abordagem iterativa e incremental, é


orientado por casos de uso, que descrevem as interações entre os usuários do
sistema e o próprio sistema, enfatiza a importância da arquitetura de software
desde as fases iniciais do desenvolvimento, enfatiza a identificação e mitigação
de riscos desde as fases iniciais do projeto, utiliza uma variedade de artefatos,
como modelos, documentos e diagramas, para capturar e comunicar os
requisitos, a arquitetura, o design e outros aspectos do sistema.

56) Qual a relação entre o Processo Unificado e a UML?


R: A UML é uma linguagem gráfica de modelagem utilizada para visualizar,
especificar, construir e documentar os artefatos de um sistema de software, o
Processo Unificado enfatiza a importância da comunicação clara e eficaz entre
todos os envolvidos no desenvolvimento de software.

57) Cite e caracterize as fases do RUP (Processo Unificado da Rational).

R: Ele é composto por quatro fases principais, que são: A fase de iniciação é a
primeira etapa do projeto, a fase de elaboração é uma fase de análise
detalhada e planejamento do projeto, a fase de construção envolve o
desenvolvimento real do sistema, com base no planejamento e nas definições
estabelecidas nas fases anteriores. A fase de transição é a etapa final do
projeto, onde o sistema é implantado em ambiente de produção.

58) Em que fase do RUP é feita a maior parte da codificação e os testes?

R: Durante a fase de Construção do RUP, é nessa fase que a implementação


real do sistema é realizada, com base no planejamento e nas definições
estabelecidas nas fases anteriores.

59) Diferencie versão alfa de versão beta de um produto de software.

R: A versão alfa é uma versão preliminar do produto de software que ainda


está em desenvolvimento é disponibilizada para um grupo restrito de usuários
internos ou selecionados, a versão beta é uma versão mais avançada e
próxima da versão final do produto de software ela é disponibilizada para um
grupo mais amplo de usuários externos, geralmente por meio de programas de
teste beta abertos ao público ou convites limitados.

60) Porque a maioria das soluções de software estão migrando para nuvem?

R: A computação em nuvem permite aumentar ou diminuir os recursos de


computação de acordo com a demanda, as empresas podem evitar os altos
custos iniciais de aquisição de hardware e infraestrutura física. A nuvem
permite o acesso aos serviços e dados de qualquer lugar, a qualquer momento,
desde que haja uma conexão com a Internet, além dos dados são
armazenados remotamente em servidores redundantes e são automaticamente
copiados e protegidos contra falhas de hardware ou desastres.

Você também pode gostar