Buscar

Engenharia de Software: Conceitos e Práticas

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 4 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

Prévia do material em texto

1) [0,5] A Empresa XYZ tem como missão desenvolver software com um alto padrão de qualidade.
Nesse sentido, ela está reestruturando o seu processo de desenvolvimento de software. Durante a
reestruturação, optou por utilizar o framework Scrum como base da composição do processo. O
Software Engineering Process Group (SEPG) também decidiu inserir algumas práticas e artefatos do
eXtreme Programming junto ao Scrum. Uma visão geral do processo pode ser verificada por meio da
Figura a seguir.
Ao analisar a Figura apresentada, é possível perceber que o artefato Cartões de Estórias serve como base
para compor um item da Product Backlog e que a prática Design Simples é inserida durante a execução da
Sprint.
O processo da Empresa XYZ, criado pela SEPG, pode ser classificado como um modelo de processo:
(a) cascata.
(b) orientado a eventos.
(c) formal.
(d) orientado a objetos.
(e) iterativo e incremental.
2) [0,25] Engenharia de Software inclui um grande número de teorias, conceitos, modelos, técnicas e
métodos. Analise as seguintes definições.
I. O processo de inferir ou reconstruir um modelo de mais alto nível (projeto ou especificação) a
partir de um documento de mais baixo nível (tipicamente um código fonte);
II. Capacidade de modificação de um software (ou de um de seus componentes) após sua entrega ao
cliente visando corrigir falhas, expandir a funcionalidade, modificar a performance ou outros
atributos em resposta a novos requisitos do usuário ou mesmo ser adaptado a alguma mudança do
ambiente de execução (plataforma, p.ex);
III. Modelo estabelecido pelo Software Engineering Institute (SEI) que propõe níveis de competência
organizacional relacionados à qualidade do processo de desenvolvimento de software;
Estas definições correspondem respectivamente aos seguintes termos:
(a) reengenharia, manutenibilidade, Capability Maturity Model (CMM)
(b) engenharia reversa, reparabilidade, Team Software Process (TSP)
(c) reengenharia, evolutibilidade, Personal Software Process (PSP)
(d) refactoring, reparabilidade, Team Software Process (TSP)
(e) engenharia reversa, manutenibilidade, Capability Maturity Model (CMM)
3) [0,25] O conjunto básico de atividades e a ordem em que são realizadas no processo de construção
de um software definem o que é habitualmente denominado de ciclo de vida do software. O ciclo de
vida tradicional (também denominado waterfall) ainda é hoje em dia um dos mais difundidos e tem
por característica principal:
(a) o uso de formalização rigorosa em todas as etapas de desenvolvimento;
(b) a abordagem sistemática para realização das atividades do desenvolvimento de software de modo
que elas seguem um fluxo sequencial;
(c) a codificação de uma versão executável do sistema desde as fases iniciais do desenvolvimento, de
modo que o sistema final é incrementalmente construído, daí a alusão à idéia de ‘cascata’ (waterfall);
(d) a priorização da análise dos riscos do desenvolvimento;
(e) a avaliação constante dos resultados intermediários feita pelo cliente.
4) [0,25] Engenharia de Software inclui um grande número de teorias, conceitos, modelos, técnicas e
métodos. Analise as seguintes definições.
I. No planejamento de projetos de software, há várias técnicas que podem ser usadas para estimativa
de custo e esforço. A técnica de Pontos por Função é uma técnica de estimativa que, embora não seja
relacionada diretamente a linhas de código, é utilizada também para a obtenção de métricas de
produtividade e qualidade do desenvolvimento de software;
II. CMM (Capability Maturity Model) é um modelo estabelecido pelo Software Engineering Institute
(SEI) que propõe níveis de competência organizacional relacionados à qualidade do processo de
desenvolvimento de software;
III. Engenharia Reversa é o processo de inferir ou reconstruir um modelo de mais alto nível (projeto
ou especificação) a partir de um documento de mais baixo nível (tipicamente um código fonte);
Levando-se em conta as três afirmações I, II e III acima, identifique a única alternativa válida:
(a) apenas a I está correta; 
(b) apenas a II está correta;
(c) apenas a II e a III estão corretas;
(d) apenas a I e a III estão corretas;
(e) as afirmações I, II e III estão corretas.
5) [0,25] A situação atual do desenvolvimento de software encontra-se aquém do ideal. Sistemas são
invariavelmente entregues com atraso ou com o orçamento estourado, isto quando são efetivamente
entregues. E o que é pior, freqüentemente eles não atendem os requisitos dos clientes. Existem várias
alternativas de tentar enfrentar este desafio, entre as quais a adoção de métodos formais, a
sistematização do desenvolvimento usando processos tais como o Unified Process e a integração de
novas tecnologias. Uma outra abordagem que recentemente vem ganhando adeptos é o
Desenvolvimento Ágil de software. As seguintes afirmações dizem respeito a ele.
I. Suas idéias principais estão divulgadas em um Manifesto para o Desenvolvimento Ágil de
Software escrito pela Aliança Ágil (Agile Alliance), que reúne autores famosos como Martin Fowler,
Alistair Cockburn, Scott Ambler, Ward Cunningham e Kent Beck;
II. Desnvolvimento Ágil basicamente concentra-se em melhorias na comunicação (interna à equipe e
com os clientes), na entrega incremental de várias versões funcionais do software continuamente até
o fim do projeto e na maleabilidade e dinamicidade do desenvolvimento, facilitando as respostas às
mudanças que aparecem durante este desenvolvimento
III. A técnica mais conhecida de Desenvolvimento Ágil é a Programação eXtrema (Extreme
Programming - XP) que entre suas práticas possui programação em pares (pair programming),
entregas pequenas (small releases) e frequentes, a propriedade coletiva do código (collective
ownership), abolindo as práticas de teste e os padrões de codificação;
Levando-se em conta as três afirmações I, II III acima, identifique a única alternativa válida: 
(a) apenas a I e a II estão corretas; 
(b) apenas a II e a III estão corretas; 
(c) apenas a I e a III estão corretas;
(d) todas as afirmações estão corretas;
(e) nenhuma das afirmações está correta;
6) [0,25] Qualidade é uma das premissas básicas para se desenvolversoftwarehoje em dia. Contudo,
gerenciar a qualidade dentro do processo de software não é uma etapa trivial. Requer preparação,
conhecimento técnico adequado e, sobretudo, comprometimento de todos os stakeholders envolvidos. A
esse respeito, considere as seguintes afirmativas.
I. O MPS.br é uma iniciativa para Melhoria de Processo do SoftwareBrasileiro. O MPS.br adequa-se
à realidade das empresas brasileiras e está em conformidadecom as normas ISO/IEC 12207. No
entanto, não apresenta uma estratégia de compatibilidade com o CMMI-Capability Maturity Model
Integration.
II. A rastreabilidade de requisitos desoftwareproporciona uma melhor visibilidadepara a gerência de
qualidade do projeto.
III. Uma empresa de tecnologia certificada por meio de modelos como CMMI ou MPS.br oferece
produtos de software também certificados.
IV. A padronização é um dos fundamentos básicos da gerência da qualidade. A padronização pode
acontecer em diversos níveis: na documentação, no código e, principalmente, no processo.
Considerando a gerência da qualidade, assinale a alternativa CORRETA.
(a) Todas as afirmativas são verdadeiras
(b) Nenhuma das afirmativas é verdadeira.
(c) Somente as afirmativas II e III são verdadeiras.
(d) Somente as afirmativas II e IV são verdadeiras.
(e) Somente as afirmativas I, II e III são verdadeiras.
7) [0,25] Analise as seguintes afirmativas.
I. Extreme Programming, RUP e Prototipação são exemplos de métodos ágeis.
II. Na UML2, diagramas de contextos são usados para representar o sistema e sua interação com
atores e ambiente externo.
III. Os padrões de projeto de softwaresão classificados em padrões de criação, estruturais e
comportamentais.
IV. A falha para cumprir um requisito funcionalpode degradar o sistema e a falha em cumprir um
requisito não-funcional pode tornar todo um sistema inútil.
A partir dessa análise, pode-se concluir que estão INCORRETAS
(a) todas as afirmativas.
(b) apenas as afirmativas I e II.
(c) apenas as afirmativas I, II e III.
(d) apenas as afirmativasI, III e IV.
(e) apenas as afirmativas II e III.
8) [0,25] Os cinco valores fundamentais da metodologia XP são?
(a) Comunicação, simplicidade, feedback, coragem e respeito.
(b) Ética, capacitação, transparência, união e fidelização.
(c) Comunicação, ética,feedback, tecnologia e resultados.
(d) Liberdade, igualdade, ética, respeito e fraternidade.
(e) Comunicação, ética, união, resultados e liberdade.
9) [0,25] Em Engenharia de Software, as atividades abaixo são essenciais à gestão de configuração:
I. _______ de gerenciamento de configuração.
II. Gerenciamento de _______.
III. Gerenciamento de versões e de _______.
IV. _______de sistemas.
Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima
(a) Planejamento – mudanças – componentes – Auditoria
(b) Definição – auditoria – releases – Construção
(c) Definição – mudanças – itens de configuração – Auditoria
(d) Planejamento – mudanças – releases – Construção
(e) Planejamento – auditoria – itens de configuração – Construção

Continue navegando