Baixe o app para aproveitar ainda mais
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
Compartilhar