Buscar

Engenharia de Software II

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 47 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 47 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 9, do total de 47 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

Engenharia de Software II
Ver: 1.1.0
Engenharia de Software II 1
Teste de Software 3
Atividade 3
Desafio 4
Conhecer Modelo Incremental 5
Atividade 5
Desafio 6
Conhecer e construir Diagrama de Casos de Uso 7
Atividade 7
Desafio 9
Conhecer e construir Especificação de Casos de Uso 9
Atividade 9
Desafio 11
Diagrama de casos de uso 12
Atividade 12
Desafio 16
Conhecer e construir Diagrama de Atividades 18
Atividade 18
Desafio 19
Técnicas para estimativa de tamanho e de custos (FPA, UCP, COCOMO) 20
Atividade 20
Desafio 22
Processo unificado 25
Atividade 25
Desafio 29
Seleção de técnicas de elicitação de requisitos de software 31
Atividade 31
Desafio 33
Software Engineering Body of Knowledge (SWEBOK) 34
Atividade 34
Desafio 37
Modelo de Análise de Software (Orientada a Objetos) 39
Atividade 39
Desafio 41
Modelo de Análise de Software (Análise Estruturada) 41
Atividade 41
Simulado 43
Teste de Software
Atividade
1. Qual destas definições representa um teste de software?
A. O teste do software é a investigação do software a fim de fornecer informações
sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o
processo de utilizar o produto para encontrar seus defeitos.
B. Os testes de software são ações tomadas para que um projeto demore mais do que
o esperado, não sendo necessário em projetos críticos.
C. Os testes de software são realizados no início do projeto, antes da implementação
do software.
D. Testes de software buscam demonstrar a incapacidade dos desenvolvedores na
criação de soluções de qualidade.
E. Testes de software são um conjunto de atividades realizadas somente pelo cliente
quando recebe o produto.
Resposta: A
Motivo: O teste é um processo realizado pelo testador de software, que permeia outros
processos da engenharia de software e que envolve ações que vão do levantamento de
requisitos até a execução do teste propriamente dito.
2. O comportamento interno do componente de software trabalha diretamente sobre o
código-fonte do componente de software para avaliar aspectos como teste de condição,
teste de fluxo de dados, teste de ciclos, teste de caminhos lógicos e códigos nunca
executados.
Das técnicas apresentadas a seguir, qual avalia esse comportamento interno do
componente de software?
A. Teste de caixa-preta.
B. Teste de caixa-branca.
C. Regressão
D. Técnicas não funcionais.
E. Caixa-cinza.
Resposta: B
Motivo: Os aspectos avaliados nessa técnica de teste dependerão da complexidade e da
tecnologia que determinarem a construção do componente de software. A técnica inclui os
testes unitários.
3. Qual é a fase de teste em que se testam as menores unidades de software desenvolvidas
(pequenas partes ou unidades do sistema)?
A. Teste de aceitação.
B. Teste de sistema.
C. Teste de operação.
D. Teste de integração.
E. Teste de unidade.
Resposta: E
Motivo: O objetivo é encontrar falhas de funcionamento dentro de uma pequena parte do
sistema, funcionando independentemente do todo.
4. O que é TDD na Engenharia de Software?
A. É um ciclo de vida desenvolvido para facilitar a criação de testes.
B. TDD é uma técnica de testes de software utilizada pelos usuários dos sistemas.
C. TDD é um modelo clássico da Engenharia de Software e não é mais utilizado.
D. TDD é um sistema usado para testar software de forma automatizada.
E. O TDD é uma técnica de desenvolvimento de software que se baseia na criação
inicial de testes de software antes mesmo do desenvolvimento.
Resposta: E
Motivo: O Test Driven Development (TDD), ou Desenvolvimento Guiado por Testes, é uma
técnica na qual o desenvolvedor cria o software para atender apenas aos requisitos. Esse
desenvolvimento é guiado e controlado pelos testes unitários previamente criados.
5. O ciclo de vida de testes de software tem cinco fases: planejamento, preparação,
especificação, execução e entrega. Qual fase tem como objetivo elaborar e revisar os casos
e roteiros de testes?
A. Planejamento.
B. Preparação.
C. Execução.
D. Especificação.
E. Entrega.
Resposta: D
Motivo: Na especificação, há as seguintes atividades: elaborar/revisar casos de testes e
elaborar/revisar roteiros de testes.
Desafio
Considere a seguinte situação: Pedro está desenvolvendo um sistema de controle
financeiro para uma grande instituição. Este sistema deve ter a garantia de realizar cálculos
financeiros de forma correta, uma vez que pequenos erros podem causar prejuízos de
milhões de reais para a instituição. O desenvolvimento deste sistema será dividido em fases
bem definidas, de acordo com o ciclo de vida incremental da Engenharia de software. Cada
módulo desta divisão deve ser incrementado no seu momento do ciclo de vida.
Imagine que você é o parceiro de Pedro na criação deste software e está responsável pela
parte de testes. Pedro está na dúvida sobre a utilidade da realização da fase de teste.
Como cada um dos tipos de testes (unitários, de integração, sistemas e de aceitação) pode
ajudar Pedro a entregar um software de qualidade para o usuário?
Resposta:
Testes unitários: garantem que pequenas partes funcionais do sistema estarão respondendo
aos requisitos de software, ou seja, que funções, métodos, classes e outros elementos de
código estarão em funcionamento. Neste tipo de teste, serão verificados os pequenos
cálculos que devem ter assertividade em 100% dos casos.
Testes de integração: na entrega de cada incremento de software, deverão ser realizados
testes de integração para garantir que cada incremento não irá prejudicar o funcionamento
dos softwares de forma geral.
Teste de sistemas e de aceitação: o teste de sistema irá garantir o funcionamento como um
todo, sendo possível verificar também todas as questões funcionais. Esse teste pode ser
realizado como forma de aceitação pelos clientes e testadores ao final do projeto como
forma de analisar se os requisitos estão atendidos.
Conhecer Modelo Incremental
Atividade
1. No primeiro incremento do modelo incremental, que tipo de solução é oferecida ao
cliente?
A. São oferecidos elementos do sistema que permitem a operação básica ao usuário.
B. É oferecido um sistema completo, com todas as funcionalidades.
C. É oferecida apenas a documentação do sistema.
D. É oferecido apenas um protótipo de telas para o cliente saber como o sistema será
implementado.
E. Não é oferecido um sistema funcional, já que este modelo linear só oferece o
produto ao final de todo o projeto.
Resposta: A
Motivo: Inicialmente são oferecidas as funcionalidades básicas do sistema, para que as
outras sejam incrementadas posteriormente.
2. O que é esperado do cliente ao término de cada incremento?
A. Um manual de utilização do sistema.
B. Descarte do protótipo.
C. Uso exaustivo do sistema para encontrar erros.
D. Uso, avaliação e feedback sobre o sistema.
E. Pagamento pelo projeto.
Resposta: D
Motivo: Ao final de um incremento, o usuário deve dar um feedback para auxiliar no
planejamento do próximo incremento e corrigir problemas no anterior.
3. No final do último incremento, o que é esperado na entrega?
A. Apenas uma parte, incremento ou uma funcionalidade básica do sistema que esteja
em funcionamento e bem testada.
B. Um sistema parcialmente funcional.
C. Espera-se um sistema completo e funcional.
D. Espera-se que o cliente tenha as funcionalidades básicas do sistema funcionando
bem e testadas, mas não funções complementares.
E. Espera-se um sistema que não atenda a nenhum dos requisitos.
Resposta: C
Motivo: O último incremento marca o final do projeto, então o sistema deve atender todos os
requisitos do projeto nesta etapa.
4. Qual destas é uma vantagem do modelo incremental?
A. Podem surgir problemas com a integração de cada entrega incremental.
B. Usuários podem solicitar modificações no sistema durante o desenvolvimento.
C. Os usuários podem ver um protótipo de tela antes do desenvolvimento do sistema.
D. O sistema é entregue somente no final do projeto de forma integral.
E. O custo do projeto é sempre respeitado.
Resposta: B
Motivo: Com os incrementos, os usuários conseguemutilizar e solicitar alterações e
melhorias durante o desenvolvimento.
5. Qual destas opções é uma desvantagem do modelo incremental?
A. O orçamento previsto do projeto pode ser ultrapassado.
B. O sistema é desenvolvido respeitando os prazos.
C. Redução de riscos de atraso da entrega.
D. As partes entregues durante os incrementos não oferecem integração.
E. O projeto é alinhado com as necessidades do cliente.
Resposta: A
Motivo: Em alguns casos as solicitações do cliente podem causar um aumento dos custos
do projeto.
Desafio
Roberto é dono de uma empresa que deseja criar um sistema Web para oferecer serviço de
compartilhamento de informação e artigos. A ideia é que, com o tempo, o número de
usuários cresça e novos módulos do sistema sejam criados.
No entanto, Roberto gostaria de aproveitar uma ação de marketing agendada para daqui a
15 dias para divulgar o novo serviço. Sendo assim, a empresa começaria a oferecer parte
do serviço aos usuários dentro deste prazo e iria inserindo mais serviços e funcionalidades
com o tempo.
Você trabalha na empresa contratada para prestar este serviço a Roberto, e foi chamado
pelo seu gestor para avaliar a situação. Descreva por que o modelo incremental é o ideal
para este projeto e qual seria uma das dificuldades enfrentadas pelos gerentes do projeto.
Resposta:
O modelo incremental é o ideal para ser usado neste caso, uma vez que ele permite o
particionamento do sistema e o desenvolvimento de diferentes partes em paralelo e de
forma gradual. Como o objetivo é de iniciar com um serviço e expandi-lo com o tempo, é
interessante usar o modelo incremental e a estratégia de iteração, pois ele prevê durante o
ciclo de vida todas estas mudanças e melhorias.
O maior problema que os gerentes podem enfrentar com o uso deste modelo é a dificuldade
de gerenciar as diferentes partes e iterações que ocorrem em paralelo.
Conhecer e construir Diagrama de Casos de Uso
Atividade
1. O que é um diagrama de casos de uso?
A. É uma variação do diagrama de classes e utiliza quase a mesma notação. A
diferença é que ele mostra os objetos que foram instanciados das classes.
B. É uma representação da estrutura e relações das classes que servem de modelo
para objetos.
C. É um diagrama comportamental (que especifica o comportamento do software).
D. É um diagrama que descreve as principais funcionalidades do sistema e a interação
dessas funcionalidades com os usuários do mesmo sistema.
E. É um diagrama que descreve os componentes do software, suas interfaces e suas
dependências.
Resposta: D
Motivo: Em outras palavras, ele documenta o que o sistema faz do ponto de vista do
usuário.
2. Com qual figura geométrica um ATOR é representado no diagrama de casos de uso?
A. Com uma elipse.
B. Com um simbolo de uma pessoa, também chamado de "stick man".
C. Com uma seta pontilhada.
D. Com um círculo com bordas pontilhadas.
E. Com um triângulo e o nome do ator na parte superior.
Resposta: B
Motivo: Além disso, também colocamos o nome do ator logo abaixo do simbolo. O ator
também pode ser o hardware ou um sistema computacional que interage com o sistema.
3. Além dos relacionamentos comuns do diagrama de casos de uso, também contamos com
os relacionamentos <<extend>>. Para que este tipo de relacionamento é utilizado?
A. Quando o caso de uso Y estende o caso de uso X, significa que quando o caso de
uso X for executado o caso de uso Y poderá (poderá – talvez não seja) ser
executado também.
B. Quando o caso de uso Y generaliza o caso de uso Z isso significa que, além de
fazer tudo que nele está especificado, ele também executará tudo que está
especificado no caso de uso Z.
C. Quando um caso de uso X pertence ao caso de uso Y, fazendo com que todos os
atributos sejam removidos.
D. Quando o caso de uso A inclui o caso de uso B, significa que sempre que o caso de
uso A for executado, o caso de uso B também será executado.
E. Quando um caso de uso Z não disponibiliza a execução de um caso de uso Y.
Resposta: A
Motivo: A direção do relacionamento é do caso de uso extensor (aqui o caso de uso Y) para
o caso de uso estendido (aqui o caso de uso X).
4. O diagrama de casos de uso é geralmente utilizado no início do projeto em qual
atividade?
A. Na execução dos testes de software.
B. Implementação do software.
C. Definição dos requisitos e comunicação com o cliente.
D. Na entrega do software para o cliente.
E. Na fase de manutenção do software.
Resposta: C
Motivo: Pela sua simplicidade, sua compreensão não exige conhecimentos técnicos. Então,
o cliente entende bem este diagrama. Além disso, ao modelar o diagrama podem surgir e
serem identificados novos requisitos.
5. Para que serve a multiplicidade no diagrama de casos de uso?
A. Para demonstrar algum tipo de relação entre dois elementos por meio do uso de
linhas e setas.
B. Para definir uma funcionalidade do sistema do ponto de vista do usuário.
C. Para definir uma grande função do sistema.
D. Possibilita um certo grau de extensibilidade aos componente ou associações da
UML.
E. Serve para especificar o número de vezes que um ator pode utilizar um determinado
caso de uso.
Resposta: E
Motivo: Por padrão, cada multiplicidade é 1 (quando não é exibida). Em uma interpretação
estrita do modelo, uma multiplicidade de 1 significa que, por exemplo, apenas um usuário
irá cadastrar e que cada usuário faz um cadastro por vez.
Desafio
João realizou a modelagem de um sistema bancário, em que foram criados diversos casos
de uso. Para isso, ele utilizou o diagrama de casos de uso para expressar de forma gráfica
os casos de uso. Veja na imagem um dos diagramas que João criou durante a modelagem.
Sua missão é analisar este diagrama de casos de uso e extrair as seguintes informações:
1. Quem são os atores neste diagrama?
2. Quais são os casos de uso?
3. O que representa as linhas/setas utilizadas?
4. O que significa a palavra << include >> no diagrama?
Resposta:
1. Os atores são: Cliente e Banco.
2. Os casos de uso são: Saque, Depósito, Registro de Operações.
3. As linhas/setas representam relacionamentos entre os atores e casos de uso ou casos de
uso e casos de uso.
4. A palavra << include >> significa que existe uma inclusão de um caso de uso em outro.
Conhecer e construir Especificação de Casos de Uso
Atividade
1. Marque a alternativa que completa corretamente a frase: É correto afirmar que uma
especificação de casos de uso…
A. ... permite descrever detalhes técnicos do software como linguagens de
programação que serão utilizadas.
B. ...descreve uma sequência de objetos.
C. ...possui como objetivo mostrar como um sistema faz determinada ação.
D. ... utiliza casos de uso para expressar as pessoas e elementos que interagem com o
sistema.
E. ...não deve detalhar aspectos de implementação.
Resposta: E
Motivo: Detalhes de interface não devem ser descritos no caso de uso, pois torna-o passível
de alteração sempre que houver qualquer mudança em campos da interface, além de
prejudicar o entendimento do caso de uso devido ao grande volume de informações que
detalham a tela.
2. Qual é a melhor definição para um ator no contexto de especificação de casos de uso?
A. É estado que deve ser sempre verdadeiro antes do cenário ser iniciado em um caso
de uso.
B. É uma sequência de ações que representam os cenários possíveis para um caso de
uso.
C. Representa uma entidade externa que interage com o sistema.
D. É um elemento que deve abordar o que "geralmente" ocorre quando o caso de uso é
executado.
E. É uma ação realizada no sistema.
Resposta: C
Motivo: Um ator pode representar uma pessoa ou outro sistema (hardware ou software) que
tem interação com o sistema em desenvolvimento.
3. "Deve representar o caminho mais simples, que é executado inicialmente quando o ator
acessa a referida funcionalidade". Esta explicação melhor se enquadra para qual
alternativa?
A. Fluxo alternativo.
B. Fluxo básico.
C. Fluxos de exceção.
D. Pós-condições.
E. Pré-condições.
Resposta: B
Motivo: É também o caminho mais frequentemente utilizado dentro desta que estámenos
propenso a exceções ou erros.
4. Qual o objetivo do item "Referências a elementos internos e externos" na especificação
de casos de uso?
A. São utilizados para definir quem são os elementos que interagem com o sistema.
B. Este item representa o fluxo de alternativas que um caso de uso pode seguir.
C. Permite referenciar três elementos internos e quatro elementos externos.
D. Este item permite a definição dos aspectos técnicos do sistema.
E. Este item descreve a referência do caso de uso em relação ao fluxo.
Resposta: C
Motivo: Permite referenciar elementos internos e externos, sendo três elementos internos
(fluxo básico, fluxo alternativo e fluxo de exceção) e quatro elementos externos (regras,
mensagens, especificações de leiaute e casos de uso).
5. O que melhor define um caso de uso?
A. É um tipo de classificador representando uma unidade funcional coerente provida
pelo sistema.
B. É quem faz uma ação ou executa uma funcionalidade no sistema.
C. É uma forma de expressar uma relação entre dois elementos da especificação de
casos de uso.
D. É estado que deve ser sempre verdadeiro antes do cenário ser iniciado.
E. É um estado que deve ser sempre verdadeiro depois da execução de uma ação pelo
ator.
Resposta: A
Motivo: Também pode ser definido como uma ação realizada por um "ator" no sistema.
Desafio
Um restaurante contratou você para realizar a criação de um software de controle que
deverá gerenciar todas as etapas e processos do estabelecimento. Este sistema deverá
controlar a entrada/saída de visitantes, os clientes do restaurante, os salários dos
cozinheiros e outros funcionários, o sistema financeiro e o estoque de comida. Além disso,
também deverá prever a chegada de novos recursos que serão entregues pelos
fornecedores.
Com esta breve descrição do sistema, já conseguimos citar pelo menos alguns dos atores
que o sistema possuirá.
Podemos dizer que teríamos os seguintes atores:
- Funcionário
- Visitante
- Cliente
- Fornecedor
- Cozinheiro
Agora a sua missão: descreva brevemente um caso de uso para cada ator.
Utilize o seguinte exemplo:
- Funcionário UC1 → Efetuar Login: O funcionário deve efetuar login no sistema para
acessar as opções de gerar nota fiscal e cadastrar as vendas de almoços.
Tente evitar a descrição de casos de uso de formas repetida para os atores, expresse casos
de uso que seriam exclusivos do ator informado.
Resposta:
Funcionário UC1 → Cadastrar Venda: Após o cliente almoçar ou jantar no restaurante e
fazer o pagamento, o funcionário deve cadastrar a venda no sistema.
- Visitante UC2 → Fornecer informações: A pessoa que for visitar o restaurante deve
informar os dados principais para cadastro no sistema.
- Cliente UC3 → Efetuar pagamento: O cliente poderá fazer o pagamento diretamente no
sistema através de terminais com máquinas de cartão de crédito disponíveis na saída do
restaurante.
- Fornecedor UC4 → Fornecer informações de produto: O fornecedor deve fornecer
informações do produto que será entregue, informando detalhes do produto, data de
entrega e valores.
- Cozinheiro UC5 → Registrar Ponto: O Cozinheiro deve registrar o ponto informando os
horários de entrada e saída no sistema para o controle das horas de trabalho.
Diagrama de casos de uso
Atividade
1. Considere a figura a seguir e analise as alternativas.
I. O Ator X herda todas os casos de uso do Ator Y, por meio do relacionamento de
generalização. Portanto, ele pode executar todos os casos de uso do diagrama.
II. Quando o Ator Y inicia o Caso de Uso 2, ele obrigatoriamente executa o Caso de
Uso 3, que, por sua vez, executa obrigatoriamente o Caso de Uso 1.
III. O Ator Y pode executar o Caso de Uso 1, que, por sua vez, chama o Caso de Uso 4,
caso uma determinada condição seja satisfeita.
IV. O Caso de Uso 3 existe porque implementa um comportamento que é comum ao
Caso de Uso 1 e ao Caso de Uso 2.
Assinale a alternativa que indica corretamente qual(is) a(s) sentença(s) verdadeira(s):
A. As alternativas I, II, III e IV estão corretas.
B. Apenas as alternativas I, II e IV estão corretas.
C. Apenas as alternativas III e IV estão corretas.
D. Apenas a alternativa I está correta.
E. Apenas a alternativa IV está correta.
Resposta: C
Motivo: O Ator Y herda todos os casos de uso do Ator X, por meio do relacionamento de
generalização, mas o contrário não acontece.
O Caso de Uso 3 é executado, obrigatoriamente, toda vez que o Caso de Uso 1 ou o Caso
de Uso 2 forem chamados, devido ao relacionamento de include entre eles.
O Caso de Uso 3 implementa as partes do comportamento que são comuns aos Casos de
Uso 1 e 2.
O Caso de Uso 4 é executado a partir do Caso de Uso 1, quando uma condição específica
é atingida.
2. Analise os requisitos a seguir:
I. Toda vez que o aluno for realizar uma matrícula em uma disciplina, ele deverá realizar o
login com o usuário e senha dele.
II. Toda vez que um professor for consultar os nomes dos alunos matriculados em sua
disciplina, ele deverá realizar o login com usuário e senha dele.
III. O aluno que tiver índice de desempenho acadêmico igual ou superior a 8 poderá
matricular-se em disciplinas especiais.
IV. O aluno que tiver índice de desempenho acadêmico inferior a 8 poderá matricular-se em
disciplinas normais.
V. Um professor da categoria titular poderá consultar os nomes dos alunos matriculados em
todas as disciplinas.
Para desenvolver um Diagrama de Casos de Uso que atenda aos requisitos acima, ele
precisará de que tipo de associação (relacionamento)?
A. I - Include, II - Include, III - Extend, IV – Extend, V – Extend.
B. I – Include, II – Include, III – Extend, IV – Extend, V – Include.
C. I - Extend, II – Extend, III – Include, IV – Include, V – Include.
D. I – Include, II – Include, III – Extend, IV – Extend, V – generalização.
E. I – Include, II – Include, III – generalização, IV – generalização, V – generalização.
Resposta: A
Motivo: Os requisitos I e II denotam a necessidade de um relacionamento de include com
um caso de uso de realizar login, tanto para o professor quanto para o aluno.
Os requisitos III, IV e V apontam para a realização condicional de casos de uso, o que
caracteriza um relacionamento do tipo extend.
3. Em um Diagrama de Casos de Uso, os relacionamentos são representados por linhas
que têm formatos e significados específicos, servindo de base para a interpretação
semântica da relação.
Analise o Diagrama de Casos de Uso a seguir e assinale a alternativa que explica
corretamente o relacionamento “X”. 
A. Include, nem o cliente nem o vendedor precisarão fazer cadastro ao fazer login.
B. Extend, o cliente e o vendedor terão que fazer cadastro toda vez que forem fazer
login.
C. Union, os dois casos de uso serão entendidos como um único caso de uso.
D. Extend, não é obrigatório fazer cadastro ao fazer login.
E. Include, subentende-se que todo cliente e todo vendedor já tem cadastro ao fazer
login.
Resposta: D
Motivo: O relacionamento X é um extend, pois só será necessário fazer cadastro se, ao
fazer login o cliente ou o vendedor não tiverem cadastro, ou seja, o caso de uso fazer login
será estendido pelo caso de uso fazer cadastro, em condições definidas.
4. O Diagrama de Casos de Uso é uma importante ferramenta para ajudar a modelar os
requisitos funcionais de um produto de software.
Analise as definições a seguir e assinale a alternativa correta sobre o ator em um Diagrama
de Casos de Uso:
A. Ator é um ser humano que executa os casos de uso do sistema.
B. Ator é um elemento interno ao sistema que executa os casos de uso do sistema.
C. Ator é uma pessoa específica que executa os casos de uso a que está associada.
D. Ator não pode herdar os casos de uso de outro ator; apenas os casos de uso
podem.
E. Ator é um ser humano ou um equipamento ou um outro sistema externo.
Resposta: E
Motivo: Ator é um papel desempenhado por uma classe de usuários, externos ao sistema.
O ator pode ser um ser humano, um hardware ou outro sistema com o qual o sistema deve
interagir.
5. O Diagrama de Casos de Uso é uma excelenteferramenta de comunicação entre a
equipe de desenvolvimento e os usuários. Ele é composto de atores, casos de uso e seus
relacionamentos.
Sobre os casos de uso, analise as definições a seguir e assinale a alternativa correta:
A. Um caso de uso pode representar um requisito funcional ou um requisito não
funcional de um sistema.
B. Um caso de uso pode herdar o comportamento de outro caso de uso, por meio do
relacionamento de include.
C. Um caso de uso pode herdar o comportamento de outro caso de uso, por meio da
associação de generalização.
D. Um caso de uso-base é sempre executado quando o caso de uso que estende o
chama.
E. Um caso de uso estendido é chamado todas as vezes que o caso de uso-base é
executado.
Resposta: C
Motivo: Um caso de uso representa um ou mais requisitos funcionais do sistema.
Um caso de uso-base sempre executará um caso de uso incluído, quando houver um
relacionamento de include.
Um caso de uso-base pode executar um caso de uso que estende, se forem satisfeitas as
condições do ponto de extensão do relacionamento extend.
Um caso de uso pode herdar o comportamento de outro, se houver um relacionamento de
generalização.
Desafio
Uma das formas de se documentar os requisitos funcionais é o Diagrama de Casos de Uso.
Ele é uma excelente ferramenta para a comunicação com o usuário. A primeira etapa para a
construção do diagrama é descobrir os atores com os quais o sistema deve interagir. 
Suponha que você acaba de ser alocado, como analista de requisitos, para um projeto que
busca desenvolver um software destinado a automatizar o negócio de aluguel de bicicletas
em centros urbanos.
Acompanhe a descrição do sistema a seguir:
 Sendo assim, o gerente pede para você decidir quais atores farão parte do Diagrama de
Casos de Uso e quais serão as responsabilidades de cada um.
Resposta:
Conhecer e construir Diagrama de Atividades
Atividade
1. O que é um diagrama de atividades?
A. É um diagrama que descreve as principais funcionalidades do sistema e a sua
interação com os usuários do mesmo sistema.
B. É uma representação da estrutura e relações das classes que servem de modelo
para objetos.
C. É um diagrama comportamental (que especifica o comportamento do software) do
ponto de vista funcional.
D. É uma variação do diagrama de classes e utiliza quase a mesma notação. A
diferença é que ele mostra os objetos que foram instanciados das classes.
E. É um diagrama que descreve os componentes do software, suas interfaces e suas
dependências.
Resposta: C
Motivo: Esse diagrama ilustra, de forma gráfica, como será o funcionamento do software a
execução de suas partes, além de como será a atuação do sistema no dia a dia.
2. O que um elemento de atividade representa no diagrama?
A. Separa uma transição em várias transições executadas ao mesmo tempo.
B. Fluxo de uma atividade para outra.
C. Dependendo de uma condição, mostra as diferentes transições
D. Diferenciação de unidades organizacionais.
E. Um comportamento a ser realizado.
Resposta: E
Motivo: O elemento de atividade é representado por um circulo ou retângulo.
3. Qual o principal objetivo de um diagrama de atividades?
A. Ilustrar graficamente como será o funcionamento do software, como será a
execução de alguma de suas partes e como será a atuação do sistema na realidade
de negócio em que ele está inserido.
B. Descrever os vários tipos de objetos no sistema e o relacionamento entre eles.
C. Auxiliar a comunicação entre os analistas e o cliente.
D. Descrever como grupo de objetos colaboram em um determinado comportamento.
E. Mostrar os possíveis estados de um objeto e as transações responsáveis pelas
mudanças de estado.
Resposta: A
Motivo: O diagrama de atividades tem como objetivo principal a especificação do
comportamento do software, do ponto de vista funcional, ou seja, das suas funcionalidades.
4. Para que servem os elementos de raias no diagrama de atividades?
A. Para representar o fluxo de trabalho de uma atividade para outra.
B. Para controlar os desvios do fluxo de controle.
C. Para diferenciar diferentes unidades organizacionais do sistema.
D. Para representar as atividades.
E. Para informar o fim de um fluxo de atividades.
Resposta: C
Motivo: Podem estar associadas a objetos, componentes do sistema ou a atores.
5. Para que e quando você deve criar um diagrama de atividades?
A. Para documentar as classes e os objetos que o sistema terá durante a sua
modelagem.
B. Para documentar o aspecto funcional (não estrutural) do software durante a
modelagem do sistema.
C. Para documentar e modelar os detalhes presentes na especificação de casos de uso
durante a modelagem do sistema.
D. Para documentar e planejar a sequência de testes que será realizada durante a
implementação do sistema.
E. Para utilizar na priorização de requisitos de software durante a fase de levantamento
de requisitos.
Resposta: B
Motivo: É indicado quando é necessário representar o fluxo da informação que o software
trabalhará e quando existir condições/decisões que precisam ser detalhadas/descritas.
Desafio
Você conhece os principais elementos do diagrama de atividades? Na figura, temos um
exemplo de um diagrama que mostra um método de validação de conta, cujo principal
objetivo é receber um número de conta, pesquisar, informar e utilizar uma mensagem se a
conta é válida ou inválida.
Sua missão é descrever o nome e o objetivo de cada elemento desse diagrama, conforme a
numeração informada.
Resposta:
1. Nó inicial de atividade: Deve indicar o início de um processo de atividades
2. Atividade: O objetivo é expressar uma etapa do processo que os usuários ou softwares
executam
3. Nó de decisão: Serve para ramificar o fluxo com uma condição. A ramificação é realizada
de forma que exista uma entrada e duas saídas ou também pode mesclar duas entradas e
obter apenas uma saída
4. Controle de fluxo: São as setas que representam um fluxo de uma atividade para outra
5. Nó de atividade final: Indicam o fim do processo de atividades
Técnicas para estimativa de tamanho e de custos (FPA, UCP,
COCOMO)
Atividade
1. Em gerenciamento de projetos, fazer estimativas é uma prática constante. As técnicas
para estimar custo, esforço e prazo são utilizadas pelos gestores de projetos com
frequência.
Baseado nesse conceito, assinale a alternativa que corresponde à relação da medição e e
estimativa de software em pontos de função.
A. Medição e estimativa de software em pontos de função é uma medida que depende
da tecnologia que será utilizada para implementação.
B. Medição e estimativa de software em pontos de função é uma medida que depende
da linguagem de programação a ser utilizada.
C. Medição e estimativa de software em pontos de função é a definição do escopo e da
fronteira de aplicação. Deve preceder a identificação do tipo de contagem.
D. Medição e estimativa de software em pontos de função têm como um de seus
objetivos medir a funcionalidade solicitada pelo usuário, antes do projeto de
software, de forma a estimar seu tamanho e seu custo.
E. Medição e estimativa de software em pontos de função visam a estabelecer uma
medida de tamanho, em Pontos de Função (PF), considerando a funcionalidade
implementada, sob o ponto de vista do desenvolvedor.
Resposta: D
Motivo: Medição e estimativa de software em pontos de função têm como um de seus
objetivos medir a funcionalidade solicitada pelo usuário, antes do projeto de software, de
forma a estimar seu tamanho e seu custo.
2. Assinale a alternativa que corresponde ao objetivo principal da Análise de Pontos de
Função:
A. Medir a oportunidade qualitativa de um software ou aplicativo.
B. Verificar a fundamentação da funcionalidade de um software ou aplicativo.
C. Simplificar a complexidade funcional de um software ou aplicativo.
D. Medir a funcionalidade de um software ou aplicativo.
E. Medir a funcionalidade dos pontos de acesso à operacionalização de um software ou
aplicativo.
Resposta: D
Motivo: O objetivo principal da Análise de Pontos de Função é medir o software para
verificaro que foi requisitado e o que foi entregue ao cliente. Portanto, seu objetivo principal
é medir a funcionalidade de um software.
3. A técnica UCP (Use Case Points) estima o tamanho do software em pontos de caso de
uso e esforço. Sobre a UCP, assinale a resposta correta: 
A. Para utilizar a referida métrica, é necessário que a organização tenha um único
padrão e estilo para escrever casos de uso.
B. O quantitativo de atores e a sua complexidade devem ser considerados para a
aplicação dessa métrica.
C. Aos pontos de caso de uso, determinados a partir dos dados de atores e suas
complexidades, aplicam-se fatores de complexidade ambiental e fatores técnicos de
complexidade.
D. Nos pontos de caso de uso, aplicam-se fatores de complexidade técnicos que
englobam distribuição do sistema, reutilização do código, features de segurança,
complexidade do processo interno e dificuldade de programação na linguagem.
E. Os fatores de complexidade ambiental aplicados nos pontos de caso de uso
englobam aspectos como motivação, facilidade de uso, facilidade para alterar e
eficiência do usuário final.
Resposta: A
Motivo: Para conseguir resultados iguais, é necessário ter um único padrão e estilo para
escrever casos de uso. O contrário disso levará a resultados diferentes. Esse item envolve
quantidade de atores, complexidade técnica e ambiental.
4. O Constructive Cost Model (COCOMO) é um modelo utilizado para estimar projetos de
software. Analise as opções a seguir e assinale a que corresponde ao modelo intermediário
do COCOMO.
A. Tamanho das saídas externas, tamanho da base de dados e uso de práticas
modernas.
B. Tamanho da base de dados, uso de entradas externas e nível de aptidão dos
gerentes.
C. Tamanho das entradas externas, práticas de programação modernas e restrições de
prazo.
D. Nível de aptidão dos gerentes, tamanho das saídas externas e uso de práticas
modernas.
E. Práticas de programação modernas, tamanho da base de dados e nível de aptidão
dos programadores.
Resposta: E
Motivo: O modelo COCOMO utiliza práticas modernas, leva em consideração o tamanho da
base de dados e o nível de aptidão da equipe. Desconsidera fatores de SE e EE.
5. COCOMO é uma técnica para estimar software, a qual permite calcular, a partir de
estimativas de tamanho deste, valores para: 
A. esforço e quantidade de pontos de função do sistema.
B. tempo de desenvolvimento e quantidade de pontos de função do sistema.
C. tempo e custo totais de desenvolvimento.
D. esforço e custo total de desenvolvimento.
E. esforço e tempo de desenvolvimento.
Resposta: E
Motivo: COCOMO utiliza estimativas de tamanho de software para calcular estimativas de
esforço, tempo de desenvolvimento e custo.
Desafio
O UCP (Use Case Points) foi criado para que seja possível estimar o tamanho de um
sistema na fase de levantamento de casos de uso. Baseia-se na análise por pontos de
função para estimar o tamanho do sistema, de acordo, por exemplo, com a complexidade
de ações requerida por cada tipo de usuário.
Neste Desafio, considere o seguinte cenário:
Resposta: A partir da análise realizada, a tabela fica assim:
Processo unificado
Atividade
1. Processo unificado é um processo de desenvolvimento ligado à orientação a objetos,
mas que também pode ser utilizado em projeto estruturado, sem perder suas características
básicas.
Baseado nesta afirmativa, analise as opções abaixo e assinale a que corresponde ao
princípio fundamental do PU.
A. Ser concentrado em arquitetura.
B. Ser desenvolvido em cascata.
C. Empregar times autodirigidos e auto-organizados.
D. Ser programado em pares.
E. Ter a propriedade coletiva do código-fonte.
Resposta: A
Motivo: A fase Elaboração é responsável pela arquitetura do sistema que será distribuído ao
final do clico de vida. É a fase que diz como ele deve ser feito. Portanto, um dos princípios
fundamentais do UP é o fato de ser centrado em arquitetura.
2. Uma das práticas do processo unificado é dividir grandes projetos em miniprojetos. Eles
possuem uma iteração, que abrange quase todo o fluxo de trabalho, o que resulta em um
incremento para os projetos, além de serem planejados de acordo com os casos de uso.
Dessa forma, analise as alternativas abaixo e assinale a que caracteriza o processo
unificado.
A. Ciclo de desenvolvimento de software em cascata.
B. Ciclo de desenvolvimento de software sequencial.
C. Processo de software específico para reengenharia.
D. Processo de software iterativo e incremental.
E. Processo de software iterativo.
Resposta: D
Motivo: Uma das características do processo unificado é que o seu ciclo de vida iterativo é
baseado em refinamentos e incrementos sucessivos. Dessa forma, projetos maiores são
divididos em miniprojetos.
3. O processo unificado é um modelo configurável, ou seja, ele pode ser ajustado de acordo
com os tipos de projeto que será desenvolvido. Esse modelo possui quatro fases no seu
desenvolvimento.
Analise, dentre as alternativas a seguir, a que apresenta as atividades que correspondem às
fases:
1. Concepção e 2. Transição do PU
A. 1. Essa fase tem como objetivo verificar a viabilidade do projeto, bem como os riscos
e definir os casos de uso mais críticos obtendo as funções chave do sistema.
2. O objetivo dessa fase é garantir que todos os requisitos do projeto foram
atendidos e implementados corretamente.
B. 1. O objetivo dessa fase é garantir que todos os requisitos do projeto foram
atendidos e implementados corretamente.
2. A fusão de vários artefatos de software, possibilitando que o sistema seja
implementado quase que completamente.
C. 1. Essa fase tem como objetivo verificar a viabilidade do projeto, bem como os riscos
e definir os casos de uso mais críticos, obtendo as funções-chave do sistema.
2. A fusão de vários artefatos de software, possibilitando que o sistema seja
implementado quase que completamente.
D. 1. Durante essa fase, a maioria dos casos de uso são especificados e detalhados.
2. Essa fase tem como objetivo verificar a viabilidade do projeto, bem como os riscos
e definir os casos de uso mais críticos, obtendo as funções-chave do sistema.
E. 1. Essa fase tem como objetivo verificar a viabilidade do projeto, bem como os riscos
e definir os casos de uso mais críticos obtendo as funções-chave do sistema.
2. A fusão de vários artefatos de software, possibilitando que o sistema seja
implementado quase que completamente.
Resposta: A
Motivo: O processo unificado organiza suas iterações em quatro fases principais:
Concepção, Elaboração, Construção e Transição. Como atividade principal da fase
Concepção, temos a análise do projeto, bem como os seus riscos e a preparação. Na fase
transição deve-se tirar uma conclusão geral do projeto, obtendo os pontos positivos e
negativos que serão utilizados durante a concepção de projetos.
4. O processo unificado consiste da repetição de uma série de ciclos durante a vida de um
sistema e, a cada ciclo concluído, uma nova versão do sistema é disponibilizada para
utilização do usuário. Esses ciclos consistem em quatro fases.
Tendo em vista as fases do PU, analise as afirmativas abaixo e assinale a que corresponde
à ordem cronológica das fases.
A. Concepção, Requisitos, Implementação e Testes.
B. Concepção, Elaboração, Construção e Implementação.
C. Concepção, Elaboração, Construção e Transição.
D. Elaboração, Concepção, Construção e Transição.
E. Elaboração, Construção, Implementação e Transição.
Resposta: C
Motivo: O processo unificado organiza suas iterações em quatro fases:
Concepção: o foco é o escopo do projeto.
Elaboração: o foco é o levantamento de requisitos.
Construção: é feita a implementação iterativa dos elementos.
Transição: são feitos os testes finais e implantação.
5. As fases do processo unificado são quatro: Concepção, Elaboração, Construção e
Transição. Cada uma dessas fases possui um conjunto de atividades que ajudarão na fase
seguinte. Portanto, elas seguem uma ordem.
Dentre as quatro fases do PU, quais são as que correspondem às de atividade de
desenvolvimento desoftware mais acentuada?
A. Elaboração e Construção
B. Elaboração e Concepção
C. Concepção e Transição
D. Construção e Transição
E. Construção e Concepção
Resposta: D
Motivo: As fases do processo unificado possuem atividades relacionadas com entregas que
auxiliarão nas fases seguintes.
Na fase Concepção, é verificada a viabilidade de implantação do sistema, é feita a definição
do seu escopo, a definição de riscos e o esboço da arquitetura.
Na fase Elaboração, é possível ter uma visão refinada do sistema por meio da definição dos
requisitos funcionais e o detalhamento da arquitetura esboçada na fase anterior.
Na fase Construção, o sistema é efetivamente desenvolvido e na fase
Transição o sistema é entregue ao cliente para uso no ambiente produção e, após testes
realizados, novos incrementos podem ser implantados, gerando, nessas duas últimas fases,
muitas atividades de desenvolvimento.
Desafio
Gerenciar riscos significa identificá-los e traçar planos para minimizar os seus efeitos sobre
o projeto. Para identificar os riscos, podemos contar com a experiência da equipe obtida em
projetos anteriores.
Identificar e classificar os riscos é importante para garantir a fluidez e o sucesso do projeto.
Baseado nesses fatos, considere o seguinte cenário: 
Resposta:
Seleção de técnicas de elicitação de requisitos de software
Atividade
1. Pedro foi alocado para realizar a elicitação de requisitos de um sistema no qual o cliente
é uma grande empresa de seguros. O objetivo é desenvolver uma nova versão para um
sistema já existente. Diversos usuários teriam que ser envolvidos e um possível conflito de
prioridades poderia ocorrer. O gerente de Pedro aconselhou que ele utilizasse terno e
gravata, de acordo com as características da empresa.
Que técnica de elicitação de requisitos Pedro deveria aplicar?
A. Brainstorming.
B. Entrevista.
C. Reunião tradicional.
D. Observação.
E. JAD.
Resposta: E
Motivo: Quando existem muitas áreas envolvidas na especificação de requisitos e existe a
possibilidade de haver conflitos, então o JAD (Joint Application Design) deve ser aplicado,
pois trata-se de uma reunião mais formal, com um condutor que atua como mediador.
2. Raquel deve preparar a elicitação de requisitos para um novo sistema de apoio a uma
agência de publicidade. O gerente de Raquel a orientou a se vestir de maneira mais
informal, pois os clientes são pessoas jovens e o ambiente da empresa é descontraído e
criativo.
Que técnica de elicitação de requisitos Raquel deveria aplicar?
A. Brainstorming.
B. Entrevista.
C. Reunião tradicional.
D. Observação.
E. JAD.
Resposta: A
Motivo: Quando se deseja fazer o lançamento de um produto novo e, adicionalmente, se
dispõe de um ambiente informal e criativo, a técnica de elicitação de requisitos
recomendada é o brainstorming, que consiste em uma técnica desenvolvida para explorar a
potencialidade criativa do grupo.
3. Eduardo foi contratado como Analista de Requisitos de um sistema de bonificação de
pesquisadores por resultado. A principal característica deste sistema é a variedade de perfis
que o utilizarão. Todos os usuários possuem necessidades que devem ser levantadas, mas
eles se encontram dispersos em universidades nos 5 continentes. Serão considerados os
requisitos que a maioria das Universidades apontarem como críticos ou imprescindíveis.
Qual técnica de elicitação de requisitos Eduardo deve utilizar?
A. Brainstorming.
B. JAD.
C. Questionário
D. Reunião tradicional.
E. Entrevista.
Resposta: C
Motivo: Quando existem usuários dispersos geograficamente, uma das possibilidades é
realizar a elicitação de requisitos utilizando um questionário.
4. Um produto de software não existe de forma isolada, ele está inserido em um contexto
social e organizacional.
A técnica que ajuda um analista de requisitos a identificar este contexto, suas interações e
possíveis requisitos que possam estar implícitos ou invisíveis é:
A. Brainstorming.
B. JAD.
C. Reunião tradicional.
D. Observação.
E. Entrevista.
Resposta: D
Motivo: A técnica de observação permite ao Analista de Requisitos observar o trabalho
como ele é realizado em seu contexto. Isto pode auxiliá-lo na descoberta de gargalos de
processo, falhas de comunicação, atividades não relatadas, que podem gerar requisitos
para o produto de software que está sendo desenvolvido.
5. Um novo modelo de carro está sendo lançado no mercado e você vai ser o responsável
pelos requisitos da central multimídia que vai fazer parte do projeto. O diretor executivo
anunciou que quer um produto inovador que conquiste o público jovem e que você tem
autonomia para as decisões.
Decida quais técnicas de elicitação de requisitos serão utilizadas de acordo com as
características do projeto.
I – Você irá realizar um brainstorming, uma vez que se trata de um produto inovador.
II – Você irá realizar entrevistas com os engenheiros do projeto para entender as interfaces
necessárias ao novo carro.
III – Você irá realizar uma observação para analisar como os motoristas dirigem os carros
atuais.
IV – Você irá realizar um JAD para projetar o software e gerenciar os conflitos.
Assinale a alternativa abaixo que contém apenas as assertivas corretas.
A. As assertivas I, II, III e IV estão corretas.
B. As assertivas I, II e IV estão corretas.
C. As assertivas I, III e IV estão corretas.
D. As assertivas I e II estão corretas.
E. Apenas a assertiva I está correta.
Resposta: D
Motivo: Uma vez que se trata de um produto inovador e dedicado ao público jovem, um
brainstorming ajudará a definir as novas funcionalidades. Uma entrevista com os
engenheiros é necessária para descobrir as interfaces entre o projeto de engenharia do
carro e o projeto da central multimídia. Não será necessário fazer uma observação de como
os motoristas dirigem, pois isto não vai influenciar no projeto do software. O JAD também
não é necessário, pois você terá autonomia nas decisões e não foram mencionados
conflitos potenciais.
Desafio
Elicitar requisitos é uma atividade essencial para o sucesso de qualquer projeto que envolve
software. De acordo com as características do contexto, uma técnica pode ser mais
adequada do que outra. Saber selecionar e combinar as melhores técnicas de elicitação de
requisitos pode reduzir significativamente a quantidade de problemas relacionados a eles,
como requisitos incompletos, inconsistentes e invisíveis.
Imagine que você é Analista de Requisitos na área de Tecnologia da Informação de uma
empresa que comercializa planos de saúde.
 Com base nas informações fornecidas pela empresa, decida quais técnicas de elicitação de
requisitos você irá adotar, levando em consideração as características do contexto e os
problemas apontados.
Resposta:
Software Engineering Body of Knowledge (SWEBOK)
Atividade
1. O SWEBOK apresenta a engenharia de software como um conjunto de áreas de
conhecimento necessários para se trabalhar com desenvolvimento de software, desde a
codificação em si até a gestão de projetos.
Dentre essas áreas, há uma delas que aponta o gerenciamento e a mensuração da
engenharia de software, outra que é composta pela verificação dinâmica de uma seleção de
domínios de execuções, normalmente infinito, contra o comportamento esperado e, além
destas, uma área que aborda considerações relativas à qualidade de software, que vão
além dos processos de ciclo de vida dele.
Analise as opções abaixo e assinale as que correspondem às três áreas citadas.
A. Gerência de engenharia de software, teste de software, qualidade de software.
B. Processo de software, manutenção de software, processo de negócio de software.
C. Projeto de software, processo de negócio de software, gerência de projeto de
software.
D. Gerência de projeto de software, gerência de engenharia de software, teste de
software.
E. Ferramentas e métodos da engenharia de software, teste de software, qualidade de
software.
Resposta: A
Motivo: As áreas de conhecimento (KAs) são divididas para melhor entendimento e
abrangência da engenharia de software.Cada área, com sua particularidade, visa a nortear
o desenvolvimento com melhores práticas e qualidade, dentro de padrões esperados.
Dentre essas áreas, podem ser citadas as seguintes: Gerência de engenharia de software,
que norteia o gerenciamento e a mensuração da engenharia de software; teste de software,
que é composta pela verificação dinâmica de uma seleção de domínios de execuções
normalmente infinito, contra o comportamento esperado; e qualidade de software, que
aborda considerações relativas à qualidade dele, para além dos processos de ciclo de vida.
2. A engenharia de software é uma área do conhecimento da computação voltada para
especificação, desenvolvimento e manutenção de sistemas de software, aplicando
tecnologias e práticas de gerência de projetos e outras disciplinas, objetivando organização,
produtividade e qualidade.
Visando esses objetivos, a IEEE desenvolveu o SWEBOK, que é um guia de referência
organizado e que contém um conjunto de conhecimentos que foram divididos em áreas e
subáreas.
Baseado nesse contexto, analise as alternativas abaixo e assinale a que representa a
quantidade de áreas do guia SWEBOK, 2014.
A. 5 áreas
B. 6 áreas
C. 11 áreas
D. 9 áreas
E. 15 áreas
Resposta: E
Motivo: O SWEBOK foi pensado para estabelecer conjuntos de critérios e normas
adequadas para a prática profissional da engenharia de software, nos quais decisões
industriais, certificações profissionais e currículos educacionais pudessem se basear. Para
isso, ele foi dividido em 15 áreas de conhecimento, conhecidas também como KAs
(Knowledge Areas): Requisitos de Software, Design de Software, Construção de Software,
Teste de Software, Manutenção de Software, Gerência de configuração de Software,
Gerência de Engenharia de Software, Processo de Engenharia de Software, Modelos e
Métodos de Engenharia de Software, Qualidade de Software, Prática em Engenharia de
Software Profissional, Economia em Engenharia de Software, Fundamentos da
Computação, Fundamentos Matemáticos, Fundamentos da Engenharia.
3. Qualidade de software aborda considerações relativas à qualidade que vão além dos
processos de ciclo de vida dele. Uma vez que a qualidade de software é um assunto
presente em todas as partes na engenharia de software, também é considerada em muitas
outras áreas de conhecimento. A área do conhecimento Qualidade de Software, do
SWEBOK, está dividida em tópicos. São eles:
a. Fundamentos de qualidade de software.
b. Métricas de desempenho.
c. Gerência do processo de qualidade de software.
d. Considerações práticas.
Analise as opções a seguir e assinale a que corresponde aos tópicos da área de qualidade
de software.
A. Estão corretas as alternativas b e c.
B. Estão corretas as alternativas a, b e c.
C. Estão corretas as alternativas a, b e d.
D. Estão corretas as alternativas a, c e d.
E. Estão corretas as alternativas a, b, c e d.
Resposta: D
Motivo: A área da qualidade de software é composta por um conjunto de atividades
relacionadas à garantia de qualidade dele. Entre elas, estão as de verificação e de
validação. Aqui, tratamos de fundamentos de qualidade de software, gerência do processo
de qualidade e considerações práticas.
4. Dentre as áreas de conhecimento do SWEBOK, temos a área chamada processo de
engenharia de software. Nela, o foco está nas atividades técnicas e gerenciais dentro do
processo.
Baseando-se nesta afirmativa, analise as opções abaixo e assinale as que correspondam
aos focos da área de processo de engenharia de software
A. Definição do processo, ciclo de vida, avaliação e melhoria do processo, métricas e
ferramentas.
B. Iniciação e definição de escopo, planejamento do projeto, revisão e avaliação.
C. Gerenciamento de configuração, identificação de configuração e controle de
configuração.
D. Fundamentos de teste, níveis de teste e técnicas de teste.
E. Fundamentos da manutenção, processos de manutenção e níveis de teste.
Resposta: A
Motivo: Como foco, a área de processo de engenharia de software sugere modelos que
ajudam na definição do processo de software, ciclo de vida do software, avaliação e
melhoria do processo de software, métricas de software e ferramentas para o processo de
engenharia de software.
5. O guia SWEBOK nasceu com o propósito de descrever um corpo de conhecimento não
engessado para nortear as atividades de desenvolvimento de software.
Para compor o guia, foram pensados objetivos principais. Analise as opções a seguir e
assinale o objetivo que foi construído e apoiado por diversos profissionais da área e de
vários países.
A. Promover uma visão consistente da engenharia de software no âmbito mundial.
B. Fornecer uma visão geral sobre o conjunto de conhecimentos em gerenciamento de
projetos.
C. Disseminar as melhores práticas de gerenciamento de projetos em todo o mundo.
D. Atingir uma meta previamente estipulada.
E. Determinar e aprimorar um modelo para melhoria e avaliação dos processos e
serviços.
Resposta: A
Motivo: Um dos objetivos do SWEBOK contou com a ajuda de profissionais de vários países
que se uniram para estabelecer um conjunto apropriado de critérios e normas para a prática
profissional da engenharia de software, por meio de uma visão consistente dela em âmbito
mundial.
Desafio
A análise de requisitos expressa as necessidades e restrições colocadas sobre o produto,
as quais contribuem para a solução de algum problema do mundo real. Algumas das
atividades importantes para a análise de requisitos são a especificação e a validação dos
requisitos de software.
Baseando-se nesse contexto, considere o seguinte cenário:
Você é o gestor de TI de uma pequena empresa e está participando de uma reunião com
um cliente que deseja comprar um software para gerenciamento de sua escola.
Veja mais sobre esse caso:
1. Preencha a tabela com os requisitos levantados.
2.Sinalize qual é a área de conhecimento necessária para cumprir essa etapa do projeto.
Resposta:
Modelo de Análise de Software (Orientada a Objetos)
Atividade
1. Selecione a alternativa que melhor descreve os elementos em que se baseiam os
métodos orientados a objetos:
A. São baseados no hardware, já que necessitam de uma análise de baixo nível para
exploração dos sistemas computacionais.
B. São baseados em estruturas e procedimentos.
C. São baseados em abstrações, cujo objetivo é fazer um sistema parecer mais
complexo que o necessário.
D. São baseados em elementos como variáveis e funções.
E. São baseados nos conceitos de objetos e atributos, totalidades e partes, classes e
membros.
Resposta: E
Motivo: Utilizamos na análise orientada a objetos elementos do mundo real. Isso facilita a
criação de sistemas complexos e posteriormente a manutenção/extensão.
2. Durante a análise orientada a objetos, qual preocupação um engenheiro de software
deve ter para garantir que o produto criado apresente mais facilidade de criação e
manutenção?
A. Em identificar quais serão os atores do sistema.
B. Em criar um diagrama de atividades.
C. Em identificar quais serão os casos de uso sistema.
D. Em conhecer a linguagem de programação, banco de dados e a arquitetura de
hardware em que o sistema será implementado.
E. Em fazer uma modelagem de forma clara e bem organizada.
Resposta: E
Motivo: O engenheiro de software deve sempre se preocupar se a modelagem é clara e
consegue transmitir de forma adequada o que o sistema deverá fazer.
3. Acompanhe a seguinte situação:
A loja "Compre X" precisa que um sistema seja criado para registrar os produtos
comprados, vendas e controlar as comissões dos vendedores.
- Neste sistema, os estoquistas vão realizar todo o cadastro de novos produtos, inserindo
todas as informações necessárias. Além disso, os produtos adquiridos da loja "Compre X"
serão automaticamente inseridos no sistema pelo módulo X.
- Os vendedores irão inserir informações de venda, para automaticamente os produtos
serem removidos do estoque.
- O gerente poderá realizar a análise das vendas, estoque e comissões dos vendedores.
- Já os administradores terão acesso a todas as operaçõesdos outros usuários, além de
poder inserir vendedores, gerentes e estoquistas.
Neste sistema, todos os usuários deverão realizar login.
Identifique quais são as possíveis classes para a situação descrita:
A. Carro, Motorista e Passageiro.
B. Loja, Produto, Vendedor, Venda e Estoque.
C. Inserir vendedores e calcular comissão.
D. Realizar venda, remover produto do estoque e vender.
E. Cor, preço e data de compra.
Resposta: B
Motivo: Uma classe é um gabarito para a definição de objetos. No sistema descrito,
poderíamos ter as classes Loja, Produto, Vendedor, Venda e Estoque. Também poderíamos
ter outras classes, cada uma com seus métodos e atributos, para melhorar o sistema da loja
"Compre X".
4. Selecione quais destas alternativas não corresponde ao uso do modelo de análise
orientada a objetos.
A. Facilidade de criação de sistemas complexos.
B. Facilidade de extensão do sistema.
C. Maior facilidade de implementação do sistema pelos desenvolvedores.
D. Facilidade de modificação do sistema.
E. Facilidade de entendimento do sistema.
Resposta: C
Motivo: A análise orientada a objetos exige que os desenvolvedores conheçam o modelo e
saibam fazer a leitura e transformação dos diagramas e requisitos e transformar em código.
Então existe um esforço maior do time de desenvolvimento em criar um software orientado
a objetos (se comparado com o modelo estruturado), necessitando de mais tempo de
desenvolvimento.
5. Qual o objetivo principal do diagrama de objetos?
A. O objetivo é mostrar os objetos que foram instanciados das classes.
B. O objetivo é mostrar as classes que foram criadas no sistema.
C. O objetivo é demonstrar o sistema em forma de estruturas de funções.
D. É o mesmo objetivo do diagrama de casos de uso e de atividades, que são muito
similares.
E. O objetivo é a especificação do comportamento do software, do ponto de vista
funcional, ou seja, das suas funcionalidades.
Resposta: A
Motivo: O diagrama de objetos é como se fosse o perfil do sistema em um certo momento
de sua execução.
Desafio
O almoxarifado da empresa Laer LTDA estoca materiais e deve fazer o controle desse
depósito. Para facilitar esse controle, um profissional está criando um sistema
informatizado. Cada material vai precisar ter o seu código numérico, seu nome e o seu
saldo (quantidade em estoque no momento). O saldo pode ser alterado quando há retiradas
ou abastecimentos, o nome pode ser mudado e deve-se mostrar os dados do material
quando necessário.
Supondo que você seja a pessoa contratada para fazer esse software, descreva alguns
exemplos de objetos (instâncias) da classe.
Em seguida, desenhe o diagrama de uma classe, com os atributos e métodos que você
utilizaria.
Resposta: Possíveis instâncias da classe material seriam: porta, cimento, lâmpada, caneta,
caderno .
Modelo de Análise de Software (Análise Estruturada)
Atividade
1. O que é um DFD?
A. É um diagrama de fluxo de dados, utilizado para mostrar as relações entre os dados,
processos que transformam esses dados e o limite entre o que pertence ao sistema
e o que está fora dele.
B. É uma ferramenta utilizada para modelar as bases de dados.
C. Trata-se de um conceito definido na década de 70 para expressar a dificuldade no
desenvolvimento de software.
D. O DFD é uma prática da Engenharia de Software para a criação de sistemas
baseados em testes de software.
E. É uma listagem de dados que mostram como os dados do sistema são formados.
Resposta: A
Motivo: O DFD é um diagrama que possui 4 elementos que permitem modelar o fluxo de
dados de um sistema.
2. Analise o DFD extraído do livro "Engenharia de Software: Os Paradigmas Clássicos &
Orientado a Objetos" página 337:
Agora, informe o que significa o elemento com o conteúdo "process_orders (processamento
de pedidos)":
A. O elemento representa um dado de entrada.
B. O elemento representa um dado de saída.
C. O elemento representa um fluxo.
D. O elemento representa uma função.
E. O elemento representa uma tela do sistema modelado.
Resposta: D
Motivo: Uma função é representada por um círculo/retângulo e geralmente é uma operação
que transforma os dados e produz algum tipo de saída.
3. Quais dos itens a seguir é uma limitação da análise estruturada quando comparada com
outros métodos existentes?
A. A Análise estruturada utiliza modelos computacionais, diferente da Orientada a
Objetos, que usa elementos do mundo real, chamados de objetos.
B. A análise estruturada é baseada em estruturas de dados que dificultam a
implementação do sistema.
C. Não é possível representar um sistema simples com a análise estruturada.
D. Não é possível realizar testes de software quando usamos a análise estruturada
para modelar um sistema.
E. A análise estruturada não utiliza ferramentas da engenharia de software, dificultando
sua utilização.
Resposta: A
Motivo: A Análise estruturada, diferente da análise orientada a objetos, utiliza conceitos
computacionais para representação e modelagem do sistema. Isso dificulta a modelagem já
que o nível de abstração é baixo.
4. Qual dos itens a seguir é uma vantagem da análise estruturada quando comparada com
outras abordagens?
A. A análise estruturada e o DFD permitem a estimativa de custo menor e de tempo
maior para um projeto.
B. Com a análise estruturada, o projeto atinge uma qualidade maior.
C. Através do diagrama de fluxo de dados, é possível se ter uma ideia mais clara do
sistema proposto.
D. Como a análise estruturada não se baseia em dados e processos, ela torna mais
fácil a modelagem de um sistema.
E. A análise estruturada obtém vantagem, pois não inclui a ferramenta DFD.
Resposta: C
Motivo: O diagrama de fluxo de dados, combinado com um dicionário de dados, fornece
uma modelagem bastante próxima do que será o sistema a ser implementado. Em outras
abordagens, a modelagem é criada de forma mais abstrata.
5. Em um dicionário de dados, o que os símbolos { } significam?
A. Significam que é constituído por determinado elemento.
B. Enquadram componentes opcionais.
C. Enquadram comentários.
D. Eles enquadram componentes que se repetem zero ou mais vezes.
E. Separam alternativas.
Resposta: D
Motivo: Os símbolos { } enquadram componentes que se repetem zero ou mais vezes. Por
exemplo, o valor "11111" pode ser representado por {1} no dicionário de dados.
Simulado
1. Ao realizar consultas em um banco de dados SQL, você pode encontrar um mesmo
nome sendo utilizado por mais de um atributo em tabelas diferentes. Caso seja necessário
ter acesso a esses atributos com o mesmo nome na mesma consulta, é possível qualificar o
nome do atributo com o nome da relação com um alias, para prevenir possíveis erros ou
ambiguidade. Entre as opções a seguir, assinale a que utiliza corretamente o recurso do
aliasem uma consulta SQL:
A. SELECT P.NOME, P.IDADE, P.ALTURA, M.NOME
FROM PACIENTE AS P
B. SELECT P.NOME, P.IDADE, P.ALTURA, M.NOME
FROM PACIENTE AS P, MEDICO AS M
C. SELECT P.NOME, P.IDADE, P.ALTURA, M.NOME
FROM PACIENTE ALIAS P, MEDICO ALIAS M
D. SELECT P.NOME, P.IDADE, P.ALTURA, M.NOME
FROM PACIENTE A, MEDICO B
E. SELECT P.IDADE, M.NOME
FROM PACIENTE IDADE, MEDICO NOME
Resposta: B
2. O que é TDD na Engenharia de Software?
A. TDD é um sistema usado para testar softwarede forma automatizada.
B. TDD é um modelo clássico da Engenharia de Softwaree não é mais utilizado.
C. TDD é uma técnica de testes de softwareutilizada pelos usuários dos sistemas.
D. É um ciclo de vida desenvolvido para facilitar a criação de testes.
E. O TDD é uma técnica de desenvolvimento de softwareque se baseia na criação
inicial de testes de softwareantes mesmo do desenvolvimento.
Resposta: E
3. A SQL é uma linguagem que tem instruções para definição, consulta, atualização e
eliminação de dados. Entre os subconjuntos presentes na SQL, assinale a alternativa na
qual está aquele que é utilizado para definir controles de acesso pelos usuários ao banco de
dados.
A. Data Manipulation Language – DML.
B. Data Definition Language – DDL.
C. Restrições Inerentes Baseadas no Modelo – RIBM.
D. Data ControlLanguage – DCL.
E. Transactional Control Language – TCL.
Resposta: D
4. O comando ALTER é empregado para alterar a definição de uma tabela da base de
dados ou de outros elementos de esquema. Analise as seguintes instruções em SQL e
assinale a opção na qual o comando ALTER é utilizado corretamente para incluir um
atributo na tabela ‘PRODUTOS’:
A. ALTER TABLE PRODUTOS
DROP COLUMN fornecedor CASCADE;
B. ALTER TABLE PRODUTOS
DROP COLUMN fornecedor VARCHAR(25);
C. ALTER TABLE PRODUTOS
ADD ATRIBUTO fornecedor VARCHAR(25);
D. ALTER TABLE PRODUTOS
DROP COLUMN fornecedor RESTRICT;
E. ALTER TABLE PRODUTOS
ADD COLUMN fornecedor VARCHAR(25);
Resposta: E
5. As funções de agregação permitem contar ou realizar operações de soma entre os
valores presentes em uma tabela, entre outras opções. Entre as opções a seguir, a que
utiliza corretamente a função utilizada para verificar o valor máximo de um produto em uma
consulta SQL é:
A. SELECT MIN(Salario) FROM FUNCIONARIO;
B. SELECT COUNT(Valor) FROM PRODUTO;
C. SELECT AVG(Valor) FROM PRODUTO;
D. SELECT MAX(Valor) FROM PRODUTO;
E. SELECT SUM(Valor) FROM PRODUTO;
Resposta: D
6. As linguagens de manipulação de dados (DML) possibilitam criação, consulta e
manipulação de dados, dentre outras funções. Entre as principais instruções DML na SQL,
está:
A. SELECT
B. EXCEPT
C. BETWEEN
D. LIKE
E. INTERSECT
Resposta: A
7. As relações de junção na SQL possibilitam que os usuários juntem em uma tabela os
resultados de uma consulta utilizando a operação junção na cláusula FROM. Um dos
operadores de junção, quando aplicado sobre duas relações distintas, resulta na inclusão
de somente uma tupla no resultado, portanto se o resultado da consulta for nulo para uma
das relações a tupla é excluída da tabela de junção. Assinale o operador de junção que
conta com essa característica:
A. OUTER JOIN.
B. FULL OUTER JOIN.
C. INNER JOIN.
D. RIGHT OUTER JOIN.
E. LEFT OUTER JOIN.
Resposta: C
8. A instrução CREATE TABLE é empregada para criar uma nova tabela em um banco de
dados SQL. Entre as opções a seguir, assinale a que utiliza corretamente a instrução
CREATE TABLE para criar uma tabela de produtos com a definição de uma chave primária.
A. ALTER TABLE Produto(
id_produto INT,
nome_produto VARCHAR(35) PRIMARY KEY,
valor_produto INT,
);
B. CREATE UNIQUE Produto(
id_produto INT PRIMARY KEY,
nome_produto VARCHAR(35),
valor_produto NUMERIC (16,2),
);
C. CREATE TABLE Produto(
id_produto INT PRIMARY KEY,
nome_produto VARCHAR(35),
valor_produto NUMERIC (16,2),
);
D. CREATE Produto(
id_produto INT KEY,
nome_produto VARCHAR(35),
valor_produto NUMERIC (16,2),
);
E. CREATE VIEW Produto(
id_produto INT PRIMARY KEY,
nome_produto VARCHAR(35),
valor_produto NUMERIC (16,2),
);
Resposta: C
9. Qual destas definições representa um teste de software?
A. Testes de software buscam demonstrar a incapacidade dos desenvolvedores na
criação de soluções de qualidade.
B. Os testes de software são ações tomadas para que um projeto demore mais do que
o esperado, não sendo necessário em projetos críticos.
C. O teste do software é a investigação dosoftware a fim de fornecer informações sobre
sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o
processo de utilizar o produto para encontrar seus defeitos.
D. Os testes de software são realizados no início do projeto, antes da implementação
do software.
E. Testes de software são um conjunto de atividades realizadas somente pelo cliente
quando recebe o produto.
Resposta: C
10. O que melhor define um caso de uso?
A. É estado que deve ser sempre verdadeiro antes do cenário ser iniciado.
B. É uma forma de expressar uma relação entre dois elementos da especificação de
casos de uso.
C. É quem faz uma ação ou executa uma funcionalidade no sistema.
D. É um estado que deve ser sempre verdadeiro depois da execução de uma ação pelo
ator.
E. É um tipo de classificador representando uma unidade funcional coerente provida
pelo sistema.
Resposta: E

Outros materiais