Buscar

Introdução Engenharia de Software - Respostas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Piauí 
Centro de Tecnologia 
Engenharia de Produção 2014.1 
 
 
Lista de Atividades Introdução Engenharia de Software (Respostas) 
 
1. Qual foi a principal causa do surgimento da Engenharia de software? 
R: O crescente aumento no poder dos computadores da época, aliado ao amadorismo no desenvolvimento 
de software praticado. 
2. No levantamento de requisitos para um sistema de controle acadêmico, seguem alguns exemplos de 
requisitos levantados. Qual deles é um exemplo de requisito não-funcional? 
 
A) Os coordenadores de cursos devem poder obter a quantidade de aprovações e reprovações de cada 
disciplina em um determinado período. 
 
B) O tempo de resposta esperado para a emissão de um histórico escolar de um determinado aluno deve 
ser, no máximo, de um minuto. 
 
C) O sistema deve permitir que cada professor realize o lançamento de notas das turmas nas quais 
lecionou num determinado período. 
 
D) A secretaria escolar deve poder atualizar os dados cadastrais de alunos e professores. 
 
E) O sistema deve permitir que um aluno realiza a sua inscrição em disciplinas oferecidas em um período 
letivo. 
 
 
3. Quais eram os problemas associados à Crise do Software? 
R: Projetos estourando o orçamento, projetos estourando o prazo, software de baixa qualidade, software 
muitas vezes não atendendo os requisitos, projetos não gerenciáveis e código difícil de manter. 
 
4. A crise do software realmente acabou? Comente sobre isso. 
R: A crise acabou, mas apenas para aqueles que utilizam a Engenharia de Software como base para a 
construção de produtos de software. 
 
5. Sobre testes de software e avaliação de qualidades de testes é INCORRETO afirmar que 
a) testes podem anunciar a presença de defeitos em um programa e podem demonstrar que não existem 
defeitos remanescentes. 
b) teste de aceitação é um processo de teste de usuário no qual o objetivo é decidir se o software é bom o 
suficiente para ser implantado e usado em seu ambiente operacional. 
c) testes de desenvolvimento são de responsabilidade da equipe de desenvolvimento de software, 
enquanto outra equipe deve ser responsável por testar o sistema antes que ele seja liberado para os 
clientes. 
 
d) testes de desenvolvimento incluem testes unitários, nos quais são testados objetos e métodos 
específicos. 
e) sempre que possível é recomendado escrever testes automatizados. Os testes são incorporados em um 
programa que pode ser executado cada vez que uma alteração é feita para um sistema. 
 
6. Faca uma comparação entre a Engenharia de Software e o desenvolvimento de um carro. 
R: Existem muitas similaridades no desenvolvimento de produtos de software e de carros. Ambos devem 
partir de uma especificação de requisitos, detalhando como o produto deve ser. A partir de tais requisitos 
poder-se-ia desenvolver protótipos, para validar o projeto dos produtos. A partir disso, seria iniciado a 
produção dos componentes dos produtos, juntamente com a verificação de cada componente, com o 
intuito de avaliar se as partes funcionam conforme o esperado. Em seguida, as partes seriam agrupadas, 
também verificando-se a integridade dos componentes agrupados. Por fim, com o produto desenvolvido, 
seriam feitos diversos testes para verificar se o resultado final funciona conforme o esperado. 
 
7. Defina Engenharia de Software. 
R: Aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento de 
software. 
 
8. Durante a fase de validação de requisitos, diferentes tipos de verificação devem ser neles efetuados 
no documento de requisitos. A verificação que demonstra aos usuários finais e clientes um modelo 
executável do sistema em questão, possibilitando a experimentação do modelo e verificando se ele 
atende às suas reais necessidades é chamada de 
 
a) verificabilidade. 
b) geração de casos de teste. 
c) prototipação. 
d) revisões de requisitos. 
e) verificação de consistência. 
 
 
9. Qual o tripé em que a Engenharia de Software está baseada? 
R: Processos, pessoas e tecnologia. Não adianta termos os melhores profissionais do mundo se não 
possuímos boas tecnologias para uso ou se não possuímos um processo que guie o desenvolvimento de 
software. Da mesma forma, não adianta possuir as tecnologias mais avançadas se as pessoas não 
conseguem utilizá-las. Além disso, mesmo que pareça inconcebível para alguns, de nada adianta termos a 
melhor tecnologia e as melhores pessoas se não existe um processo que guie as atividades dessas pessoas 
utilizando tais tecnologias. 
 
10. O que é um sistema? Quais seus principais componentes? 
R: Um sistema é bem mais que o software. Na verdade, o sistema é o conjunto de elementos, 
coordenados entre si e que funcionam como uma estrutura organizada. Embora o software seja uma parte 
importante de um sistema, ele não é a única. Se não existir o hardware para execução do software, de 
nada servirá. Da mesma forma, é necessário existir bases de dados, uma vez que praticamente todos os 
sistemas com algum tipo de utilidade devem armazenar dados. Atualmente, com o advento da Internet, 
dificilmente um sistema seja útil se não tiver certos mecanismos de comunicação associados. 
 
11. Sobre os métodos ágeis de desenvolvimento, considere: 
I. Métodos ágeis são métodos de desenvolvimento incremental que se concentram em desenvolvimento 
rápido, releases frequentes do software, redução de overheads dos processos e produção de códigos de 
alta qualidade. 
 
II. Extreme Programming é um método ágil que integra um conjunto de práticas de programação, como 
releases frequentes do software, programação em pares, melhorias contínuas do software e participação 
do cliente na equipe de desenvolvimento. 
 
III. Um ponto fraco no método Extreme Programming é a ausência de desenvolvimento automatizado de 
testes antes da criação de um recurso do programa, como é possível nos métodos ágeis TDD e Scrum. 
Está correto o que se afirma em 
 
a) I e II, apenas. 
b) I, II e III. 
c) I e III, apenas. 
d) II e III, apenas. 
e) III, apenas. 
 
12. É possível fazer a estimativa de custo e prazo para desenvolvimento de um software com apenas 
alguns poucos minutos de conversa? Comente sobre isso relacionando sua resposta a outras áreas. 
R: Muito provavelmente não. Para se estimar custo e prazo com uma precisão mínima é necessário 
entender bem o problema. Isso equivale a fazer uma planta de uma casa, com especificação dos materiais 
e localização do terreno a ser construído. 
 
13. O que são os mitos do Software? 
R: São idéias errôneas sobre o desenvolvimento de software que normalmente propagam desinformação e 
confusão, uma vez que eles tinham certos atributos que os tornavam parecidos com afirmações razoáveis, 
tendo aspecto intuitivo e, muitas das vezes, eram divulgados por profissionais experientes e que deveriam 
entender do assunto. 
 
14. Há diversos métodos que podem ser utilizados na construção de sistemas de informação. Sobre eles, 
analise: 
 
I. O desenvolvimento é feito em estágios formais, que devem evoluir em sequência e ter resultados 
definidos. Cada um precisa ser formalmente aprovado antes que o próximo se inicie. É indicado para 
grandes projetos que exijam especificações formais e rígido controle administrativo sobre cada estágio do 
desenvolvimento. 
 
II. Consiste em desenvolver um sistema experimental de maneira rápida e barata para que os usuários 
finais interajam com ele e o avaliem. Esse sistema é refinado e aperfeiçoado até que os usuários sintam 
que ele atende às suas necessidades, podendo ser usado como modelo para criar o sistema final. 
 
Os itensI e II referem-se, respectivamente, 
 
a) ao Ciclo de Vida de Sistema Tradicional e à Prototipagem. 
b) ao Modelo Espiral e ao Modelo em Cascata. 
c) ao Modelo V e ao Modelo de Entrega por Estágios. 
d) aos Modelos Prescritivos e aos Modelos Ágeis. 
e) ao Modelo Orientado a Cronograma e ao Modelo Orientado a Teste. 
 
15. Cite alguns mitos relacionados ao gerenciamento, comentando a realidade relacionada aos mitos. 
R: Mito 1. "Se a equipe dispõe de um manual repleto de padrões e procedimentos de desenvolvimento de 
software, então a equipe será capaz de conduzir bem o desenvolvimento." 
Realidade 1. Isso não é o suficiente! É preciso que a equipe aplique efetivamente os conhecimentos 
apresentados no manual. É necessário que o manual reflita a moderna prática de desenvolvimento de 
software e que este seja exaustivo com relação a todos os problemas de desenvolvimento que poderão 
aparecer no percurso. 
Mito 2. "A equipe tem ferramentas de desenvolvimento de software de última geração, uma vez que eles 
dispõem de computadores modernos." 
Realidade 2. Ter à sua disposição o último modelo de computador pode ser bastante confortável para o 
desenvolvedor do software, mas não oferece nenhuma garantia quanto à qualidade do produto 
desenvolvido. Mais importante do que ter um hardware de última geração é ter ferramentas para a 
automação do desenvolvimento de software e sabê-las utilizar adequadamente. 
Mito 3. "Se o desenvolvimento do software estiver atrasado, aumentando a equipe poderemos reduzir o 
tempo de desenvolvimento." 
Realidade 3. Acrescentar pessoas em um projeto atrasado provavelmente vai atrasá-lo ainda mais. De 
fato, a introdução de novos profissionais numa equipe em fase de condução de um projeto vai requerer 
uma etapa de treinamento dos novos elementos da equipe; para isto, serão utilizados elementos que estão 
envolvidos diretamente no desenvolvimento, o que vai, consequentemente, implicar em maiores atrasos 
no cronograma. 
 
16. Cite alguns mitos relacionados aos clientes, comentando a realidade relacionada aos mitos. 
R: Mito 4. "Uma descrição breve e geral dos requisitos do software é o suficiente para iniciar o seu 
projeto. Maiores detalhes podem ser definidos posteriormente." 
Realidade 4. Este é um dos problemas que podem conduzir um projeto ao fracasso, o cliente deve 
procurar definir o mais precisamente possível todos os requisitos importantes para o software: funções, 
desempenho, interfaces, restrições de projeto e critérios de validação são alguns dos pontos determinantes 
do sucesso de um projeto. O “deixar pra depois” pode simplesmente não acontecer, a não ser em casos 
previstos pelos processos ágeis em que os clientes estão sempre presente e dentro da organização 
desenvolvedora. No entanto, é sabido que essa prática é uma das mais difíceis de serem seguidas... 
Mito 5. "Os requisitos de projeto mudam continuamente durante o seu desenvolvimento, mas isto não 
representa um problema, uma vez que o software é flexível e poderá suportar facilmente as alterações." 
Realidade 5. É verdade que o software é flexível (pelo menos mais flexível do que a maioria dos produtos 
manufaturados). Entretanto, não existe software, por mais flexível que suporte alterações de requisitos 
significativas sem um adicional em relação ao custo de desenvolvimento. O fator de multiplicação nos 
custos de desenvolvimento do software devido a alterações nos requisitos cresce em função do estágio de 
evolução do projeto. 
 
17. O teste de software é destinado a mostrar que um programa faz o que é proposto a fazer e a 
descobrir seus defeitos antes do uso. O processo de teste tem dois objetivos distintos: 
 
1. Demonstrar ao desenvolvedor e ao cliente que o software atende a seus requisitos. 
 
2. Descobrir situações em que o software se comporta de maneira incorreta, indesejável ou de forma 
diferente das especificações. 
 
Desse modo, é correto afirmar que 
 
a) não é objetivo final dos processos de verificação validar os requisitos de especificação que não reflitam 
os desejos ou necessidades dos clientes. 
b) os testes podem mostrar a presença de erros e sua ausência. 
c) o objetivo de todo teste é verificar se ele atende apenas aos requisitos funcionais. 
d) verificação e validação não são a mesma coisa em relação a testes de sistema. 
e) os testes podem demonstrar que um determinado software está livre de defeitos. 
 
 
18. Cite alguns mitos relacionados aos profissionais do desenvolvimento de software, comentando a 
realidade relacionada aos mitos. 
R: Mito 6. "Após a finalização do programa e a sua implantação, o trabalho está terminado." 
Realidade 6. O que ocorre na realidade é completamente diferente disto. Segundo dados obtidos a partir 
de experiências anteriores, ilustrados no livro de Roger Pressman, 50 a 70% do esforço de 
desenvolvimento de um software é empregado após a sua entrega ao cliente (manutenção). 
Mito 7. "Enquanto o programa não entrar em funcionamento, é impossível avaliar a sua qualidade." 
Realidade 7. Na realidade, a preocupação com a garantia do da qualidade do software deve fazer parte de 
todas as etapas do desenvolvimento. O teste, por exemplo, pode iniciar antes do produto atingir um 
estado funcional, a partir do planejamento dos casos de teste. 
Mito 8. "O produto a ser entregue no final do projeto é o programa funcionando." 
Realidade 8. O programa em funcionamento é um das componentes do software. Além do software em si, 
um bom projeto deve ser caracterizado pela produção de um conjunto importante de documentos. Um 
produto de software sem um manual de operação pode ser tão ruim quanto um software que não 
funciona! 
 
19. Quais são as principais fases do ciclo de vida de um produto de software? 
R: a concepção, onde o produto é idealizado, a partir da percepção de uma necessidade; o 
desenvolvimento, a partir da identificação dos requisitos e sua transformação em itens a serem entregues 
ao cliente; operação, quando o produto é instalado para ser utilizado em algum processo de negócio, 
sujeito a manutenção, sempre que necessário; a retirada, quando o produto tem sua vida útil finalizada. 
 
20. Sobre testes de software e avaliação de qualidades de testes é INCORRETO afirmar que 
 
a) testes podem anunciar a presença de defeitos em um programa e podem demonstrar que não existem 
defeitos remanescentes. 
b) teste de aceitação é um processo de teste de usuário no qual o objetivo é decidir se o software é bom o 
suficiente para ser implantado e usado em seu ambiente operacional. 
c) testes de desenvolvimento são de responsabilidade da equipe de desenvolvimento de software, 
enquanto outra equipe deve ser responsável por testar o sistema antes que ele seja liberado para os 
clientes. 
d) testes de desenvolvimento incluem testes unitários, nos quais são testados objetos e métodos 
específicos. 
e) sempre que possível é recomendado escrever testes automatizados. Os testes são incorporados em um 
programa que pode ser executado cada vez que uma alteração é feita para um sistema. 
 
21. Qual a ligação entre Ciclo de Vida e Processo de Software? 
O Processo de Software é um guia de como um produto de software deve ser construído, do início ao fim. 
A ligação está no fato que esse guia depende do modelo de ciclo de vida utilizado. Existem vários 
modelos e dependendo dele, as atividades a serem executadas podem variar. Essa é a ligação. 
 
22. Qual a definição para Processo de Software? 
Um processo é um conjunto de passos parcialmente ordenados, constituídos por atividades, métodos, 
práticas e transformações, utilizados para se atingir uma meta. Uma meta está associada a resultados, que 
são os produtos resultantes daexecução do processo. 
 
23. Sobre Análise de Requisitos em Engenharia de Software, julgue as afirmativas a seguir e assinale a 
alternativa correta. 
 
I. Resulta na especificação das características operacionais do software. 
 
II. Indica as interfaces do software com outros elementos do sistema. 
 
III. Estabelece restrições a que o software deve satisfazer. 
 
a) Apenas as afirmativas I e II são corretas. 
b) Apenas as afirmativas II e III são corretas. 
c) Todas as afirmativas são corretas. 
d) Apenas as afirmativas I e III são corretas. 
e) Nenhuma das afirmativas é correta. 
 
24. Quais são os principais subprocessos (também conhecidos como fluxos ou disciplinas) ligados ao 
desenvolvimento de software? 
Requisitos: obtenção do enunciado, completo, claro e preciso dos desejos, necessidades, expectativas e 
restrições dos clientes em relação ao produto a ser desenvolvido. 
Análise: modelagem dos conceitos relevantes do domínio do problema, com o intuito de verificar a 
qualidade dos requisitos obtidos e detalhar tais requisitos em um nível adequado aos desenvolvedores. 
Desenho (ou projeto): definição de uma estrutura implementável para um produto, que atenda aos 
requisitos especificados. 
Implementação: codificação das partes que compõe o software, definidas no desenho, utilizando as 
tecnologias selecionadas. 
Teste: verificação dinâmica das partes que constituem o software, utilizando um conjunto finito de casos 
de teste, selecionados dentro de um domínio potencialmente infinito, contra seu comportamento 
esperado. 
 
25. Descreve o modelo de ciclo de vida denominado Codifica-Remenda. 
O modelo de ciclo de vida mais utilizado é o modelo codifica-remenda. Partindo de uma especificação 
incompleta, ou mesmo ausente, inicia-se a codificação do software, que por sua vez tende a gerar “algo”. 
Esse “algo gerado”, na grande maioria das vezes não é o que o cliente deseja, mas vai sendo alterado e 
consertado até que o produto atinja um estágio que permita seu uso. Nenhum processo é seguido nessa 
iteração. 
 
26. Dentre as atividades típicas de um processo de desenvolvimento de software, aquela em que se 
determina como o sistema funcionará para atender aos requisitos, de acordo com os recursos 
tecnológicos existentes, é denominada 
 
a) análise. 
b) projeto. 
c) implementação. 
d) testes. 
e) implantação. 
 
27. Quais são os problemas relacionados ao modelo de ciclo de vida em cascata? 
- Projetos reais raramente seguem o fluxo seqüencial, conforme sugerido pelo modelo. Isso pode causar 
grandes problemas quando temos mudanças em um projeto em andamento. 
- Em geral, é difícil para os clientes identificarem todos os requisitos explicitamente. Esse modelo exige 
isso e tem dificuldade em acomodar a incerteza natural que existem em grande parte dos projetos. 
- O cliente precisa ter paciência, uma vez que a primeira versão executável do produto somente estará 
disponível no fim do projeto. Erros grosseiros podem ser desastrosos e causar perda de praticamente todo 
o trabalho. Esse é talvez o maior problema: a baixa visibilidade por parte do cliente. 
 
28. Como podemos relacionar o modelo em cascata e o modelo em espiral? 
Podemos fazer uma comparação com o modelo em cascata: uma volta na espiral equivale à execução do 
modelo em cascata para uma pequena parte do software. 
 
29. Qual a grande diferença entre o modelo em espiral e o modelo incremental? 
A grande diferença para o modelo anterior é que as versões parciais do produto são efetivamente 
entregues aos clientes, para que sejam verificadas, validadas e utilizadas no ambiente operacional. 
 
30. Os métodos ágeis são baseados no manifesto ágil. Quais são os conceitos chaves desse manifesto? 
Indivíduos e interações ao invés de processos e ferramentas; 
Software executável ao invés de documentação; 
Colaboração do cliente ao invés de negociação de contratos; 
Respostas rápidas a mudanças ao invés de seguir planos.

Continue navegando