• Nenhum resultado encontrado

Professor Pedro Henrique Chagas Freitas

N/A
N/A
Protected

Academic year: 2021

Share "Professor Pedro Henrique Chagas Freitas"

Copied!
82
0
0

Texto

(1)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 1

AULA 00

Engenharia de Software

(2)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 2

Tópicos da Aula

Apresentação ... 3

Planejamento das Aulas ... 8

Introdução à Engenharia de Software ... 10

Processos de Software ... 16

Ciclo de vida de software ... 28

Modelo em Cascata ... 34

Modelo baseado em componentes ... 48

Lista das Questões Comentadas na Aula ... 49

Considerações Finais ... 70

Bibliografia ... 71

Lista das Questões Apresentadas na Aula ... 72

(3)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 3 Apresentação

Seus pensamentos moldam o seu presente, seus sonhos criam seu

futuro.

Paulo Sergio Fernandes Conferencista, Pastor e Escritor. Sejam bem-vindo (a)s ao nosso curso!

Já fez Check-in rumo ao seu sonho? Já sentou na cadeira e embarcou rumo ao seu destino? Já escolheu o melhor caminho para chegar lá? Já pensou quantas escalas fazer e por qual companhia aérea voar?

Sabe.. A nossa vida parece muito com um saguão de aeroporto. Todo dia várias pessoas estão passando por nós indo para vários destinos, esses destinos por sua vez, se originam de escolhas e nós fazemos escolhas todos os dias.

É um imenso prazer estar aqui junto com a equipe do Ponto dos Concursos, realizando este trabalho de te tornar um candidato peso pesado na arena dos concursos públicos!!!

Quando temos o sonho de ingressar em um bom concurso público e provavelmente se você esta lendo este material em qualquer localidade do território nacional, deve ter esse sonho! Você precisa fazer check-in diariamente rumo ao seu destino. Eu, enquanto seu professor, estou aqui para te ajudar nesse check-in e embarcar nessa viagem com você, tirando suas duvidas e te preparando para a aprovação.

(4)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 4

Todas as pessoas que chegaram a algum lugar começaram de onde estavam. O que quero dizer com isso, caro aluno (a) é que nós aqui da Ponto dos Concursos, de fato acreditamos no seu sonho de ingressar em uma boa carreira pública e estamos dispostos a te mostrar o caminho do sucesso para alcançar a carreira que você tanto sonha!

Para isso quero te apresentar a nossa aula demonstrativa, você embarcando conosco nessa aula demonstrativa, vai poder desfrutar de uma viagem rumo a sua aprovação. Nesse caminho, quero te apresentar alguns conselhos que eu sempre gosto de dar.

Algumas pessoas me perguntam: Pedro quanto tempo leva até a aprovação?

Sabe amigo (a) eu já tenho alguns anos nessa estrada e já vi de tudo, já vi amigos meus ingressando no MPU com 6 meses de estudo, e também já vi outros amigos ingressando com 3 anos de estudo. A verdade é que não existe uma verdade sobre isso, o que existe são pessoas diferentes, utilizando seu tempo, esforço, disciplina e fé de formas diferentes.

(5)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 5 Tempo: Assim sendo, o tempo até sua aprovação vai depender do equilíbrio entre esses fatores: Tempo de qualidade nos estudos (Pode ser 2 horas por dia? Sim. Pode

ser 10 horas por dia? Sim. Desde que você absorva a matéria, mesmo que sejam 20 minutos por dia, precisa ser tempo de qualidade).

Você já deve ter se deparado com aquele amigo seu, que estuda a 5 anos, 25 horas por dia, e de fato existem pessoas assim, mas sinceramente eu não conheço ninguém que consiga realizar mais de 6 horas (de qualidade nos estudos), por isso gosto de sempre focar nisso, você precisa ter tempo de qualidade nos seus estudos e não muito tempo para estudar.

Conheço por exemplo pessoas excepcionais que não acreditam em si mesmas e aqui esta o grande pulo do gato! Você precisa ter tempo, esforço, disciplina e fé, mas antes de tudo isso precisa acreditar em si mesmo! Digo isso, porque muitos dos que param, não param pela dificuldade, mas por deixar de acreditar.

(6)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 6 Esforço: Esforço é a sua determinação em movimento. Acredite não tem como chegar no lugar da vitória sem se esforçar muito, a propósito se você esta começando nesse mundo dos concursos vai perceber que tem muito conteúdo para você aprender, se já esta nessa estrada vai lembrar que ainda não se tornou a melhor versão de você mesmo.

Mas nunca se esqueça: seu esforço vai até o dia da aprovação, às vezes pode ser difícil, mas quero garantir a você caro aluno (a), vale a pena à luta! Cada dia acordando cedo, cada resumo e principalmente cada noite de batalha ao lado do conteúdo para prova, resolvendo questões e se preparando! Tudo isso vai te levar ao lugar da aprovação, então mãos a obra, seu esforço esta construindo o destino para onde você esta indo! Se continuar nessa estrada dia após dia, eu te garanto uma coisa: Você vai conseguir chegar a sua aprovação muito antes do que imagina.

Disciplina e Fé: Aprendi uma coisa estudando para concursos, a sua disciplina é o que te diferencia, qualquer pessoa pode se dedicar, mas nem todos serão constantes (disciplinados), sua memória deve sempre ser lembrada do conteúdo. Quem nunca se deparou com alguma questão e pensou:

Nossa! Eu já vi isso antes. Você tenta se lembrar, então percebe que não guardou a

informação que deveria ter guardado. Por isso, precisamos da disciplina, manter a constância no objetivo traz o objetivo para perto de você.

Sua Fé vai te ajudar nesse processo, eu pessoalmente sempre gosto de olhar as coisas com um propósito maior do que aquilo que estou vendo naquele momento. Quero te convidar a fazer a mesma coisa, toda vez que o cansaço aparecer ou qualquer outro fator, lembre-se seu objetivo é a aprovação e é para lá que você esta indo, tenha fé e bom ânimo! Você vai chegar lá!

(7)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 7

Antes de apresentar nosso curso, gostaria de me apresentar!

Sou Engenheiro de Computação, especialista em Gestão e Desenvolvimento de Sistemas, Mestrando em Gestão do Conhecimento e Tecnologia da Informação e Coach pela Sociedade Brasileira de Coaching. Tenho 5 anos estudando para concursos, 3 anos como professor de tecnologia da informação e coach especializado em concursos públicos.

Já atuei como Analista SAP no maior projeto de implantação de SAP para Banco da América Latina na Caixa Econômica Federal. Sou Cearense, mas moro desde que nasci aqui em Brasília e coleciono algumas aprovações e nomeações nessa estrada, fui aprovado e nomeado para o cargo de Analista de Tecnologia da Informação na Fundação Universidade de Brasília (FUB), aprovado e nomeado para o cargo de Analista de Sistemas do Ministério da Educação e Cultura (MEC) e atualmente exerço o cargo de Analista de Tecnologia da Informação no Ministério do Planejamento, Desenvolvimento e Gestão (MPDG). Entre meus principais projetos está a implantação do barramento de serviço no Ministério da Agricultura, Pecuária e Abastecimento (MAPA), onde como ATI do Ministério do Planejamento fui responsável pelo projeto que inicializou o paradigma orientado a serviço (SOA) no Ministério da Agricultura.

(8)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 8 Planejamento das Aulas

Desde já começaremos a abordar o conteúdo do nosso curso. Acredito que neste curso passaremos de 300 questões comentadas, principalmente da banca CESPE. Vou usar minha experiência em concursos para te ajudar, a saber, exatamente o que você precisa saber, ou seja, o que as bancas estão cobrando nos últimos anos.

Digo isso, porque quando você adquire um livro, exemplo: Engenharia de Software do Roger Pressman, literatura muito explorada pela FCC, CESPE, ESAF, etc. Você pode passar muito tempo aprendendo o que a banca não cobra.

Nada contra adquirir o livro, mas esse será o meu trabalho aqui, tirar da literatura tudo que você precisa para ter conteúdo fresco e necessário para sua prova. Acredite em mim, 80% das questões da sua prova, já ocorreram antes de outra forma, ou seja, é previsível o que a banca vai cobrar se você conseguir enxergar o que ela vem cobrando.

É aqui que eu entro para te ajudar a passar na frente da concorrência, garanto a você que esse material será construído a fim de ser tudo o que você precisa para ingressar nos grandes concursos.

Trabalharemos aqui com uma visão crescente, ou seja, o conteúdo das aulas partirá de uma visão geral, onde você vai entender o básico até uma visão detalhista.

Por que Professor? Porque não adianta se tornar um especialista em conceitos

avançados quando você nem entende a teoria mais básica e simples, como veremos existem questões que vão ir fundo nas disciplinas, todavia, outras serão triviais, abordando apenas o conceito por trás da disciplina.

Adotarei uma linguagem simples, para o texto não ser cansativo, para que tenhamos uma aula baseada em uma conversa, acredito que isso te ajudará na absorção do conteúdo.

Preciso fazer resumos? Sinceramente, sim. Eu indico a prática de fazer resumos sempre ao término de uma aula, exemplo: você estuda toda a aula 00, então estuda novamente agora fazendo seu resumo. Eu em particular adoto sempre a elaboração de resumos e tem me ajudado a materializar as informações na minha mente, principalmente perto da prova, quando os resumos ajudam bastante.

(9)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 9

Buscarei aqui construir parágrafos pequenos, para deixar o texto dinâmico e objetivo, com destaques nas palavras ou frases chaves. Qualquer dúvida me coloco a disposição para auxiliá-los, com rápido feedback para que possamos caminhar juntos nessa jornada rumo a aprovação.

Esta é a nossa aula demonstrativa onde já mergulharemos fundo na matéria e nos exercícios.

Bons estudos!!!

(10)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 10 Introdução à Engenharia de Software

Vamos lá! Antes de entrar propriamente no conteúdo, quero rapidamente te apresentar nossas duas fontes para falar do tema: Engenharia de Software.

Temos aqui então o Dr. Pressman e o Dr. Sommerville que são duas referências adotadas pelas bancas (Cespe, FCC, Esaf, etc.) Feitas às devidas apresentações vamos nos nortear nessa estrada por essas duas bibliografias, então se em algum momento nas aulas eu citar, conforme diz: Pressman ou Sommerville, você já sabe de quem se trata.

Mas afinal de contas o que é Engenharia de Software?

(11)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 11

Engenharia de software segundo o IEEE (Instituto de Engenheiros Eletricistas e Eletrônicos) é a aplicação de uma abordagem sistemática, quantificável e disciplinada de desenvolvimento de software. Para nosso amigo Pressman, a Engenharia de Software é a criação e utilização de sólidos princípios de engenharia a fim de obter softwares econômicos que sejam confiáveis e que trabalhem eficientemente em maquinas reais.

Segundo este mesmo autor (Pressman): A engenharia de Software ocorre como consequência de um processo chamado Engenharia de Sistemas.

Daqui já podemos tirar uma conclusão:

Ou seja, a engenharia de sistemas não se concentra somente no software, ela é mais abrangente e tem seu foco no produto final, que “pode ser” um software ou um sistema do qual o software faz parte.

A engenharia de sistemas segundo Pressman se divide em dois domínios: Engenharia de Produto (Foco no produto final) e Engenharia de Processo de Negócio (Foco no Processo que entrega valor para o Negócio). Feita essa diferenciação, como nosso foco aqui é a Engenharia de Software, vamos voltar para nosso tema.

A engenharia de software, portanto é diferente da engenharia de sistemas e tem por objetivo a aplicação de teorias desenvolvidas sobre a engenharia, agora no contexto de software, sempre com foco na qualidade.

Desenvolver então software com foco na qualidade é definir um processo, atribuir métodos e utilizar ferramentas a fim de alcançar qualidade.

Conforme ensina nosso Mestre Pressman, a Engenharia de Software é criada em cima dos seguintes pilares:

(12)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 12

Por trás da qualidade, encontramos um processo de desenvolvimento que visa gerar código executável com qualidade, para isso métodos bem definidos são utilizados e

ferramentas ajudam a agregar valor no alcance do produto: Software com Qualidade.

Vamos então revelar o que Sommerville pensa sobre a Engenharia de Software:

Entendeu então o que é Engenharia de Software, vamos verificar quando ela surgiu: Na década de 60 houve uma crise no desenvolvimento de software, na época, o processo de desenvolvimento de software era um pouco caótico, não existiam processos bem definidos, nem métodos e as ferramentas ainda estavam começando a aparecer no mercado. A indústria de software percebeu que era a hora de começar a por ordem na casa, antes que os softwares começassem a se tornar problemas, invés de soluções, pensaram então em aplicar conceitos já empregados na engenharia e trazer para o mundo do software.

Segundo Sommerville: A engenharia de software

não se relaciona apenas com os processos técnicos de desenvolvimento de software, mas também com as atividades de gerenciamento de projeto de software e o desenvolvimento de ferramentas, métodos e teorias que possam apoiar a produção de software com qualidade.

(13)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 13

Por volta dos anos 80, surge o que alguns de nós conhecemos na faculdade por paradigma estruturado, como você já deve imaginar 20 anos se passaram e já era possível enxergar um pequeno nível de maturidade, mas os desafios ainda eram grandes.

Em 90 surgiu o paradigma orientado a objeto, para revolucionar com tudo até então, e por fim chegaram às metodologias ágeis, o paradigma orientado a serviço (SOA), o Big Data, os sistemas distribuídos, então a festa começou (:

Ao longo deste caminho foram estabelecidos alguns princípios, enquanto a engenharia de software ia evoluindo até os dias de hoje, são eles:

Desenvolvimento de Software na década de 60

(14)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 14 Formalidade, Abstração, Decomposição, Generalização e Flexibilidade.

Yes. Mas.. Isso vai depender de cada autor. Indo direto ao ponto, não é possível dizer quais são as disciplinas da engenharia de software, porque não existe um consenso sobre elas, mas quando não existe um consenso entre os autores, adotamos o bom senso.

Formalidade é desenvolver software de acordo com métodos definidos.

Abstração é tratar a realidade produzida pelo software como uma realidade refletida do nosso mundo, considerando apenas aspectos relevantes.

Decomposição é dividir o software em partes menores, mais gerenciáveis.

Generalização é utilizada para a resolução de problemas de maneira genérica, reaproveitando soluções já existentes. Flexibilização é permitir que o software possa sofrer alterações, sem causar problemas durante sua execução.

Professores Pedro, existem disciplinas específicas dentro da Engenharia de Software?

(15)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 15

Seguiremos então as disciplinas apresentadas tanto pelo Pressman como pelo Sommerville. Professor mas e se a banca cobrar a definição dada por um autor lá do

Panamá, que ninguém nunca ouviu falar.

Então verifique se elas se parecem com essas disciplinas:

Requisitos de Negócios Requisitos de Software Análise de Software Projeto de Software Construção de Software Teste de Software Manutenção de Software

Requisitos de Negócios: Como o negócio funciona?

Requisitos de Software: Requisitos para o software atender o negócio. Análise de Software: Desenho do problema que o software visa solucionar. Projeto de Software: Desenho da solução que o software vai implementar. Construção do Software: Codificação do software.

Teste de Software: Garantia da qualidade do software Manutenção de Software: Manter o software funcionando.

(16)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 16 Processos de Software

Quase tudo hoje no mundo globalizado vai adotar em algum momento um processo e com a engenharia de software não é diferente. Quando desejamos criar um software nós levantamos um conjunto de atividades que vão gerar resultados esperados e associamos essas atividades a esses resultados, a fim de produzir um produto, que no nosso caso, chamamos de software.

Professor existe um processo ideal de como produzir um software? Não. O processo

ideal não existe, o que existe são diferentes abordagens para o desenvolvimento de software que podem ser empregadas de acordo com o tipo de software, equipe de projeto, cultura organizacional, dentre outros fatores vigentes.

Esses processos vão sempre adotar atividades fundamentais, como mostrei na página anterior a vocês. Funciona assim: Vou analisar o negócio, depois vou levantar requisitos, desenhar o problema, em seguida desenhar a solução, implementar a solução projetada, testar e colocar em produção. Ok?

Para organizar essas atividades, teremos processos bem definidos, que tem como objetivo trazer qualidade para o produto final (software).

Entre os modelos de processos de software que temos hoje alguns se destacam, são eles:

Quero produzir um Software com qualidade

Adoto processos de software de acordo com a necessidade do software.

(17)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 17

• Modelo Sequencial Linear • Modelos Incrementais • Modelos Evolucionários • Modelos Especializados • Modelos Ágeis

• Engenharia dirigida a modelos (MDE)

1. (Cespe – 2016 – TCE (PR) – Analista de Controle – Tecnologia da Informação) Assinale a opção correta, a respeito de engenharia de software.

a) A engenharia de software está relacionada aos diversos aspectos de produção de software e inclui as atividades de especificação, desenvolvimento, validação e evolução de software.

b) A engenharia de software refere-se ao estudo das teorias e fundamentos da computação, ficando o desenvolvimento de software a cargo da ciência da computação.

c) No modelo iterativo de desenvolvimento de software, as atividades são dispostas em estágios seqüenciais.

d) Um processo de software é composto por quatro atividades fundamentais: iniciação, desenvolvimento, entrega e encerramento.

e) O conceito de software se restringe ao desenvolvimento do código em determinada linguagem e seu armazenamento em arquivos.

(18)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 18

A alternativa (a) esta correta, porque apresenta de forma abrangente os aspectos da engenharia de software, relacionando as atividades de especificação, desenvolvimento, validação e evolução de software.

A alternativa (b) inverte os conceitos de engenharia de software e ciência da computação, tendo em vista que a ciência da computação é quem busca teorias e fundamentos fomentados na computação.

Na alternativa (c) temos uma definição utilizada para designar o modelo cascata, que veremos ainda nesta aula.

A alternativa (d) apresenta a entrega como atividade fundamental. Todavia apesar do processo de software apresentar uma entrega, essa etapa é apresentada pelos autores como a validação, tendo em vista que o software entregue precisa ser validado conforme analise anterior de negócio e requisitos.

A alternativa (e) esta errada porque restringe o conceito de software ao desenvolvimento de código. Se por exemplo, este código não é compilado, validado ou até mesmo se não atende uma demanda de negócio não é por si só um software, perceba que a simples escrita de um código não faz deste um software.

Gabarito: Letra A

2. (FCC - 2012 - TRT - 6ª Região (PE) - Técnico Judiciário - Tecnologia da Informação) Considere: é uma disciplina que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação. Seu principal objetivo é fornecer uma estrutura metodológica para a construção de software com alta qualidade. A definição refere-se:

a) ao ciclo de vida do software.

b) à programação orientada a objetos. c) À análise de sistemas.

d) À engenharia de requisitos. e) à engenharia de software.

(19)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 19

Comentários:

Agora que você já sabe o que é a engenharia de software não tem porque errar uma questão dessas. Tudo certo então? Estamos tratando aqui da Engenharia de Software.

Gabarito: Letra E

3. (CESPE – 2016 - TRE – PI – Técnico Judiciário – Tecnologia da Informação - b) Com base nos princípios da engenharia de software ao término de cada atividade do processo de engenharia de software, não é obrigatória a geração de insumos.

Comentários:

Não é obrigatória a geração de insumos? Note que na engenharia de software sempre após o término de uma atividade ou de uma etapa, serão gerados insumos para as próximas fases, afinal de contas a razão de qualquer etapa é fomentar a próxima etapa dentro do processo de desenvolvimento de software.

Gabarito: Errado

4. (CESPE - 2013 - TRT - 10ª REGIÃO (DF e TO) - Analista Judiciário - Tecnologia da Informação) A engenharia de software engloba processos, métodos e ferramentas. Um de seus focos é a produção de software de alta qualidade a custos adequados.

Comentários:

Engenharia de Software engloba processos? Sim. Métodos? Sim. Ferramentas? Sim. Lembra:

(20)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 20

O foco esta na produção de software de qualidade? Sim. Gastando muito ou pouco? Pouco é melhor não é.

Gabarito: Correto

5. (FCC - 2011 - INFRAERO - Analista de Sistemas - Gestão de TI) Em relação à Engenharia de Software, é INCORRETO afirmar:

a) O design de software, ao descrever os diversos aspectos que estarão presentes no sistema quando construído, permite que se faça a avaliação prévia para garantir que ele alcance os objetivos propostos pelos interessados.

b) A representação de um design de software mais simples para representar apenas as suas características essenciais busca atender ao princípio da abstração.

c) Iniciar a entrevista para obtenção dos requisitos de software com perguntas mais genéricas e finalizar com perguntas mais específicas sobre o sistema é o que caracteriza a técnica de entrevista estruturada em funil.

d) No contexto de levantamento de requisitos, funcionalidade é um dos aspectos que deve ser levado em conta na abordagem dos requisitos funcionais.

e) A representação é a linguagem do design, cujo único propósito é descrever um sistema de software que seja possível construir.

(21)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 21

Comentários:

Vamos para a última alternativa ver se encontramos alguma coisa diferente do que apresentemos, mas antes queria evidenciar o seguinte: Na literatura de Engenharia de Software, o termo “design de software” é o mesmo termo utilizado para se referir a “projeto de software”, existem exceções, mas basicamente, lembre-se que ao utilizar design o avaliador normalmente esta de referindo a projeto.

A letra (e) vai dizer o seguinte: A representação é a linguagem do design (projeto), cujo único propósito é descrever um sistema de software que seja possível construir. Entenda que este é um dos propósitos e não o único propósito, dizer que é o único propósito é limitar muito a atividade de projeto de software, as demais alternativas estão corretas e alinhadas.

Gabarito: Letra E

6. (CESPE – 2016 - TRE – PI – Técnico Judiciário – Tecnologia da Informação - c) Os modelos de processo de desenvolvimento de software, que podem ser classificados em modelo cascata e modelo de engenharia de software orientada a reuso, são excludentes entre si, razão por que se deve escolher a melhor abordagem para um projeto de software.

Comentários:

O modelo cascata e o modelo orientado a reuso não são excludentes entre si, podemos utilizar um processo de desenvolvimento de software utilizando componentes existentes com foco no reuso e optar por utilizar esses componentes seguindo o cascata, mas entenderemos o porque disso mais para frente.

(22)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 22

7. (CESPE – 2010 TRE/BA – Área: Tecnologia da Informação) A engenharia de software está relacionada com todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até sua manutenção, depois que este entrar em operação. A engenharia de sistemas diz respeito aos aspectos do desenvolvimento e da evolução de sistemas complexos, nos quais o software desempenha um papel importante.

Comentários:

Para responder essa questão é só pensarmos da seguinte forma:

Engenharia de Sistemas

Note que o texto da questão apresenta a engenharia de software como um item dentro da engenharia de sistemas, na engenharia de software, estamos interessados em tudo sobre o ciclo de vida do software, talvez você esteja pensando: Mas professor

a questão não diz: desde os estágios iniciais de especificação do sistema até sua manutenção, depois que este entrar em operação.

Às vezes precisamos ter sensibilidade para o que o avaliador quer dizer e não nos prender ao rigor dos conceitos, nessa questão o avaliador (CESPE) considerou correto o entendimento de citar a especificação do sistema dentro dos estágios iniciais, acredito que seria melhor dizer “especificação do software”, todavia entendeu a banca que a questão estava correta.

Atenção: Muito cuidado com o feeling (percepção) da banca, sempre procure compreender qual entendimento o avaliador deseja passar.

Engenharia de Software

(23)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 23 Gabarito: Correto

8. (FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas) De acordo com Pressman, a engenharia de software é baseada em camadas, com foco na qualidade. Essas camadas são:

a) métodos, processo e teste.

b) ferramentas, métodos e processo.

c) métodos, construção, teste e implantação.

d) planejamento, modelagem, construção, validação e implantação. e) comunicação, planejamento, modelagem, construção e implantação.

Comentários:

Gabarito: Letra B

9. (CESPE – 2016 - TRT 8 Região – Técnico Judiciário – Tecnologia da Informação - b) A respeito dos processos e métodos em engenharia de software: Na engenharia de software, o processo define uma metodologia, ao passo que os métodos determinam os procedimentos técnicos.

(24)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 24

Perfeito. Pergunto um processo define uma metodologia? Sim. Porque metodologia é uma forma ou maneira dos métodos ou processos atingirem um resultado. Métodos determinam os procedimentos técnicos? Sim. Porque através dos métodos eu consigo criar etapas para realização de tarefas dentro de uma metodologia.

Gabarito: Correto

10. (FCC – 2009 - AFR/SP - Analista de Sistemas) A engenharia de software está inserida no contexto:

a) das engenharias de sistemas, de processo e de produto. b) da engenharia de sistemas, apenas.

c) das engenharias de processo e de produto, apenas. d) das engenharias de sistemas e de processo, apenas. e) das engenharias de sistemas e de produto, apenas.

Comentários:

A engenharia de software é uma conseqüência do que conhecemos por engenharia de sistemas, lembra. Nosso autor Pressman também diz que a engenharia de sistemas pode ser dividida em duas formas: Engenharia de Processos de Negócio e Engenharia de Produto.

Gabarito: Letra A

11. (CESPE - 2012 - MEC - Gerente de Projetos) A engenharia de software, disciplina relacionada aos aspectos da produção de software, abrange somente os processos técnicos do desenvolvimento de software.

(25)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 25

Somente os aspectos técnicos do desenvolvimento de software? E onde ficam as atividades relacionadas a analise do negócio ou ao gerenciamento de projetos.

Gabarito: Errado

12. (CESPE – 2013 – ANTT – Analista: Especialista em Tecnologia da Informação) Produtos de software podem ser construídos utilizando-se diferentes modelos de processos, pois alguns modelos são mais adequados que outros para determinados tipos de aplicação.

Comentários:

Com certeza! Como eu disse, não existe hoje um melhor modelo de processo, o que existe são modelos de processos melhores para determinados projetos de desenvolvimento de software.

Gabarito: Correto

13. (CESPE – 2013 – CNJ – Analista em Tecnologia da Informação) Para a utilização de metodologias modernas, com abordagem da engenharia de software, recomenda-se a elaboração dos manuais do sistema ao final do projeto, quando todos os seus detalhes já estão definidos.

Comentários:

Não existe essa recomendação. Até porque o avaliador tratou aqui de manuais do sistema ao final do projeto. Ao longo do projeto de software poderão ser criados manuais e outros tipos de documentação, mas se olharmos para uma boa prática é melhor que esses manuais sejam elaborados ao longo do projeto.

(26)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 26

A questão também erra ao vincular a utilização de metodologias modernas com a elaboração de manuais, o que não é de todo uma verdade se tratarmos, por exemplo, de metodologias de desenvolvimento agile.

Gabarito: Errado

14. (CESPE – 2013 – TRT 10 – Analista de Tecnologia) As atividades fundamentais relacionadas ao processo de construção de um software incluem a especificação, o desenvolvimento, a validação e a evolução do software.

Comentários:

Perfeito! Lembra do que eu falei sobre bom senso. As fases são:

Se não sair muito desse contexto lógico, as atividades estarão corretas.

Gabarito: Correto 15. (CESPE – 2013 – TRT 10 – Analista de Tecnologia) O ciclo de vida de um software, entre outras características, está relacionado aos estágios de concepção, projeto, criação e implementação.

Requisitos de Negócios Requisitos de Software Análise de Software Projeto de Software Construção de Software Teste de Software Manutenção de Software

(27)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 27

Comentários:

Questão simples. Na concepção meu software vai ser elicitado conforme os requisitos de negócios, a fim de se elaborar um projeto, que em seguida é criado e implementado.

Gabarito: Correto

16. (FCC – 2012 – TST – Analista Judiciário – Tecnologia da Informação – E) A engenharia de software agrupa as melhores práticas para a concepção, projeto, operação e manutenção de artefatos que suportam a execução de programas de computador, tais como as técnicas de armazenamento e as estruturas em memória principal.

Comentários:

Coloquei essa questão aqui, que é na verdade uma alternativa da prova da FCC para o TST, para te mostrar como às vezes a banca vai tentar te enrolar criando uma salada que parece estar correta. Quando a banca se esforça para te fazer acreditar em uma questão, muito provavelmente é porque esta questão esta errada. Te pergunto: O que tem de ligação suportar a execução de programas de computador, tais como técnicas de armazenamento com o que vimos aqui na nossa aula? Não tem ligação nenhuma, aqui é um exemplo de uma tentativa do avaliador de jogar um monte de informação e se você estiver descuidado você marcar correto.

(28)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 28 Ciclo de vida de software

Desde o momento em que o software é concebido (requisitos de negócios) até o momento em que ele vai para produção, ele passa por diversas fases, que vão formar o seu ciclo de vida.

Não sei se você já estudou o ciclo de vida de um projeto, mas no PMBOK, o ciclo de vida de um projeto é representado por fases, a saber: Início, Preparação, Execução e Encerramento.

Tendo por fundamento que um software é um projeto, podemos enxergar no ciclo de vida de software algumas fases por padrão: Concepção, Desenvolvimento, Operação e Retirada.

Não existe consenso entre os autores sobre essas fases dentro do ciclo de vida de software, mas podemos tomar por base essas fases que foram citadas.

(29)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 29

Quando a visão de ciclo de vida de software foi estabelecida, vários modelos de processos de desenvolvimento de software começaram a surgir, tendo por finalidade organizar de forma prática, etapas gerenciáveis dentro do ciclo de vida de software. Surge então o que conhecemos por modelo de processo de desenvolvimento de software seqüencial (linear), trazendo o modelo cascata.

Depois de verificadas as limitações do modelo cascata, foram surgindo outros processos de desenvolvimento como o modelo iterativo e o incremental, o modelo RAD, o RUP, as metodologias ágeis, sempre visando atender ao contexto de cada tipo de software.

Paralelamente surgiu o modelo evolucionário com a prototipagem e com o espiral e também outros modelos mais específicos como os métodos formais e os métodos baseados em componentes.

Concepção

Desenvolvimento

Operação Retirada

(30)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 30

Mapa mental dos modelos de Software

Mapa mental do modelo Iterativo

Modelos de software Sequencial ou Linear Cascata Iterativo Incremental Evolucionário Específico Iterativo Incremental RAD RUP Métodos Ágeis Evolucionário Prototipagem Espiral

(31)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 31 Curiosidade: Um dos grandes desafios que enfrentamos hoje na administração pública é encontrar um modelo para desenvolvimento de software compatível com a realidade de cada órgão da administração pública.

Alguns órgãos como o Banco Central e Tribunal Superior Eleitoral já se utilizam, por exemplo, de metodologias ágeis, enquanto outros órgãos estão começando a caminhar nas metodologias ágeis, como o Ministério da Agricultura, que é fortemente orientado pelo RUP.

Temos também órgãos que eu não vou citar aqui que são orientados a desorientação, ou seja, não existe metodologia definida, nem mesmo uma criada pelo próprio órgão. Gosto de enfocar isso para que você perceba caro aluno (a) que a metodologia adotada, pode definir o sucesso de um projeto de desenvolvimento de software ou o seu fracasso.

17. (CESPE – 2016 – FUNPRESP– Analista de Tecnologia da Informação) Acerca dos conceitos relativos a engenharia de software, julgue o próximo item. No gerenciamento do ciclo de vida de um software, o processo de desenvolvimento (processo básico), objetiva estabelecer os requisitos dos componentes e suas interfaces em um sistema.

Comentários:

Lembre-se que conforme o ciclo de vida apresentado na aula, antes do desenvolvimento, temos uma etapa muito interessante chamada: concepção. Na concepção eu estabeleço meus requisitos e não no desenvolvimento, a questão erra então ao dizer que o processo de desenvolvimento objetiva estabelecer os requisitos dos componentes.

(32)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 32

18. (CESPE – 2016 – TCE-PR– Analista de Controle - Tecnologia da Informação - C) As fases do ciclo de vida de software são: concepção, desenvolvimento, entrega e encerramento.

Comentários:

Essa questão é questionável, veja que o ciclo de vida se baseia em:

Agora pergunto, podemos enxergar a fase de operação como entrega? Não. Muitas das vezes quando um software entra em operação, ele não está com todas as suas funcionalidades, logo ele não esta entregue.

Gabarito: Errado Concepção

Desenvolvimento

Operação Retirada

(33)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 33

19. (CESPE – 2013 – TRT 10 Região– Analista Judiciário – Tecnologia da Informação) O ciclo de vida de um software, entre outras características, está relacionado aos estágios de concepção, projeto, criação e implementação.

Comentários:

O ciclo de vida de um software tem concepção? Sim. Tem um projeto? Sim. Tem criação? Sim. Tem implementação? Sim. Note que as fases norteiam o ciclo de vida, mas o que o avaliador esta querendo saber é se os estágios de concepção, projeto, criação e implementação se relacionam com o ciclo de vida de software.

Gabarito: Correto

20. (CESPE – 2009 – TCE/TO – Analista de Sistemas - C) A escolha do modelo do ciclo de vida não depende de características específicas do projeto, pois o melhor modelo é sempre o mais usado pela equipe do projeto.

Comentários:

A escolha do modelo não depende do projeto? Como assim? O melhor modelo é sempre o mais usado pela equipe de projeto? Não sei nem como deixar essa questão mais errada.

(34)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 34 Modelo em Cascata

Nos anos 70 Royce iniciou o modelo sequencial ou linear que em seguida foi nomeado de modelo cascata ou monolítico. O modelo cascata é também conhecido como modelo tradicional ou Waterfall, mas normalmente em prova aparece mais o termo modelo cascata ou clássico.

Como você deve imaginar pelos nomes que apresentei aqui o modelo cascata é distribuído em uma fase após a outra, cada fase apresenta atividades que são requisitos para a fase seguinte.

Assim sendo, uma fase só se inicia após o término da fase anterior, daí vem outro nome: modelo seqüencial, ou seja, existe uma seqüência rígida de fases que visam o desenvolvimento do software. No cascata, a segunda fase, por exemplo só será iniciada após o término da primeira fase.

Temos então “marcos” ao término de cada fase que dão abertura para a próxima fase. O ciclo de vida do software aqui é muito rígido o que dificulta muito o processo de desenvolvimento do software. Também não existe consenso entre os autores sobre as fases do modelo cascata, separei aqui as fases elencadas pelo Sommerville, Pressman (6 edição) e pelo Yourdon.

Sommerville

Definição de Requisitos Projeto de Sistema e Software Implementação e Teste de Unidade Integração e Teste de Sistema Operação e Manutenção

Pressman

Comunicação Planejamento Modelagem Construção Implantação

Yourdon

Requisitos de Sistema Requisitos de Software Análise Projeto Codificação Teste Operação

(35)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 35 Professor mas eu devo decorar qual delas? Eu não indico decorar, mas sim aprender a

ordem apresentada pelo Pressman. Por quê? Porque possui a definição mais simples de cada etapa.

Assim sendo, indico que você grave a lógica por trás de cada uma das etapas, infelizmente a banca pode cobrar na integra, por exemplo, as fases descritas pelo Yourdon e você acabar marcando errado porque decorou as do Sommerville, por isso atenção ao encadeamento de cada fase, se você ler e reler vai perceber que existe uma razão para os autores terem escolhido seus respectivos encadeamentos.

Quero agora apresentar para vocês um amigo nosso que gosta muito do modelo cascata e não tem como falar do modelo cascata sem falar dele, ninguém gosta dele, mas o modelo cascata adora trabalhar com ele. Já sabe de quem eu estou falando?

RISCO

Pense comigo, se uma fase só inicia após o término da fase anterior, então eu só vou verificar se houve um erro quando o projeto estiver terminando. No modelo incremental, por exemplo, o risco vai diminuindo no decorrer do projeto, no modelo cascata ele se mantém constante ao longo do projeto.

As fases no Cascata sempre serão sequenciais e sempre entregarão um resultado.

(36)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 36

Assim sendo, o melhor momento para se descobrir um problema é no início do processo de desenvolvimento, porque se eu descubro um erro lá na frente, quando o projeto já está terminando, o custo para corrigir esse erro é dezenas de vezes maior do que se este, tivesse sido descoberto no início. Isso também afeta diversas outras variáveis como: tempo, qualidade, integração, etc.

Risco x Tempo

Note que um erro no início quando estamos tratando do modelo cascata deverá ser rapidamente corrigido, porque se o projeto continuar é possível que o custo da correção seja altíssimo. Logo, ao longo de todo o tempo do projeto teremos um risco muito alto que só diminuirá no final.

Lembre-se então, que se houver um erro identificado no início, teremos baixo custo de correção, enquanto se o erro somente for identificado no final, teremos um alto custo para correção. 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Tempo

(37)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 37

No modelo Iterativo e Incremental por sua vez, começamos o projeto com o risco elevado, mas ao longo do projeto o risco tende a diminuir. Em momento oportuno explicarei o porquê da diminuição desse risco, mas por enquanto, faça sempre essa correlação entre o modelo cascata e a constante risco ao longo do projeto, ou seja, o modelo cascata acumula riscos até a fase de testes e implantação do sistema.

Tem sim, caro aluno (a). O modelo cascata é dividido em fases distintas e essa é a grande vantagem do cascata. Sei que pode não parecer uma grande vantagem, mas lembre-se que o modelo cascata surgiu em uma época negra da história do desenvolvimento de software. Onde os softwares não tinham nenhum padrão, o cascata veio então para organizar a casa.

Todavia com o passar do tempo e com a evolução da tecnologia, projetos que demandam uma complexidade maior, começaram a não aceitar o cascata por causa da sua rigidez. Uma situação muito recorrente hoje, por exemplo, é a mudança de requisitos ao longo do desenvolvimento do software, agora imagine um projeto de desenvolvimento de software, onde eu tenho vários stakeholders que mudam os requisitos constantemente, é incabível colocar o modelo cascata nesse cenário, não é verdade.

Temos também a situação, onde eu tenho um projeto de desenvolvimento de software e os requisitos são realmente bem definidos, compreendidos e as chances de mudanças nos requisitos são muito pequenas, é indicado utilizar o modelo cascata nesse contexto? Sim.

Professor para que o modelo cascata existe então? Ele não tem nenhuma vantagem?

(38)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 38

Vantagens x Desvantagens do Cascata

Vantagens Desvantagens

Marcos para entrega de

artefatos. Necessita de requisitos bem definidos Rígido: Fácil de gerenciar Mantem os riscos

Documentação para cada fase Entregável somente no final

21. (CESPE – 2016 – FUNPRESP– Analista de Tecnologia da Informação) O modelo de execução de projetos em cascata é caracterizado por fases que se entrelaçam e se sobrepõem. A abordagem incremental, por sua vez, assemelha-se ao planejamento em ondas sucessivas.

Comentários:

O modelo cascata é seqüencial, ou seja, as fases não se entrelaçam ou se sobrepõem. No cascata nós só avançamos para a próxima fase quando a anterior é concluída.

Gabarito: Errado

22. (CESPE – 2014– MEC – Especialista em Processos de Negócios) No que se refere ao modelo em cascata, é necessária a presença dos membros da equipe, pelo menos, em três fases consecutivas do projeto.

Comentários:

(39)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 39 Gabarito: Errado

23. (CESPE – 2011 – MEC – Analista de Sistemas) O modelo Waterfall tem a vantagem de facilitar a realização de mudanças sem a necessidade de retrabalho em fases já completadas.

Comentários:

Ao contrário, a mudança não é prevista no modelo cascata, e caso haja uma mudança o retrabalho necessariamente será realizado.

Gabarito: Errado

24. (CESPE – 2009 – INMETRO – Analista de Sistemas) Em um processo de desenvolvimento em cascata, os testes de software são realizados todos em um mesmo estágio, que acontece após a finalização das fases de implementação.

Comentários:

A maior parte dos testes acontece realmente na fase de testes, após a implementação, porém existe um autor, muito querido, chamado Sommerville que diz que os testes ocorrerão em dois momentos: Teste de unidade e Teste de Sistema.

(40)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 40 Gabarito: Errado

25. (CESPE – 2014 – ANATEL – Analista Administrativo – Tecnologia da Informação) No ciclo de vida clássico, ou modelo em cascata, as fases concluídas são congeladas para se evitar o retrabalho e maximizarem-se os custos de produção e a aprovação de documentos

Comentários:

Sommerville

Definição de Requisitos Projeto de Sistema e Software Implementação e Teste de Unidade Integração e Teste de Sistema Operação e Manutenção

Pressman

Comunicação Planejamento Modelagem Construção Implantação

Yourdon

Requisitos de Sistema Requisitos de Software Análise Projeto Codificação Teste Operação

(41)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 41

As fases concluídas são congeladas para se evitar o retrabalho e maximizarem-se os custos de produção? Essa questão chega a ser engraçada, qual modelo seria criado para maximizar custos de produção.

Gabarito: Errado

26. (CESPE – 2016 - TCE (PR) – Analista de Controle de Tecnologia da Informação - C) No que diz respeito à engenharia de software: O modelo de desenvolvimento em cascata é utilizado em caso de divergência nos requisitos de um software, para permitir a evolução gradual do entendimento dos requisitos durante a implementação do software.

Comentários:

É exatamente isso que não é o modelo cascata. O cascata trabalha o processo de desenvolvimento de software como etapas rígidas, logo o modelo cascata cria uma barreira a divergência nos requisitos, tendo em vista que a premissa do cascata é que os requisitos estão bem definidos e não vão mudar ao longo do desenvolvimento do software.

Gabarito: Errado

27. (CESPE – 2009 – INMETRO – Analista de Sistemas) No desenvolvimento de software, o modelo em cascata é estruturado de tal maneira que as fases que compõem o desenvolvimento são interligadas. Nessa situação, o final de uma fase implica o inicio de outra.

(42)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 42

Perfeito! Foi o que aprendemos aqui, as fases no modelo cascata são interligadas e o final de uma fase implica o inicio da outra fase.

Gabarito: Correto

28. (CESPE – 2010 – BASA – Analista de Sistemas) No modelo em cascata, o projeto segue uma série de passos ordenados. Ao final de cada projeto, a equipe de projeto finaliza uma revisão. O desenvolvimento continua e, ao final, o cliente avalia a solução proposta.

Comentários:

No modelo cascata, o projeto realmente segue uma série de passos ordenados (fases) e ao final de cada fase e não de cada projeto a equipe de projeto finaliza uma revisão.

Gabarito: Errado

29. (CESPE – 2015 – TCE – RN – Assessor Técnico em Informática) As fases do modelo de ciclo de vida em cascata são demonstração, análise de requisitos, pré-projeto, desenvolvimento, projeto básico, homologação, implantação e manutenção, respectivamente.

Comentários:

Essas fases se encontram em algum dos autores que apresentamos aqui? Não. Logo questão errada.

(43)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 43

30. (CESPE – TRE/AL – Analista de Sistemas) O modelo cascata ou ciclo de vida clássico necessita de uma abordagem sistemática, que envolve, em primeiro lugar, o projeto e, em seguida, a análise, a codificação, os testes e a manutenção.

Comentários:

Lembra do Yourdon:

A ordem correta seria Projeto e depois Análise. Questão difícil se você não lembrar a diferença entre análise e projeto, vamos relembrar.

Sommerville

Definição de Requisitos Projeto de Sistema e Software Implementação e Teste de Unidade Integração e Teste de Sistema Operação e Manutenção

Pressman

Comunicação Planejamento Modelagem Construção Implantação

Yourdon

Requisitos de Sistema Requisitos de Software Análise Projeto Codificação Teste Operação

(44)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 44

Note que se análise é a verificação do problema, o projeto não pode vir antes da análise.

Gabarito: Errado

31. (VUNESP – 2012 – SPTrans – Analista de Sistemas) Uma das abordagens do processo de desenvolvimento da engenharia de software prevê a divisão em etapas, em que o fim de uma é a entrada para a próxima. Esse processo é conhecido como modelo:

a) Transformação b) Incremental c) Evolutivo d) Espiral e) Cascata Comentários:

Fácil não é. Estamos tratando aqui do modelo Cascata.

Gabarito: Letra E

Requisitos de Negócios: Como o negócio funciona?

Requisitos de Software: Requisitos para o Software atender o negócio.

Análise de Software: Desenho do problema que o software visa

solucionar.

Projeto de Software: Desenho da solução que o software vai

implementar.

Construção do Software: Codificação do software.

Teste de Software: Garantia da qualidade do software

(45)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 45

32. (CESPE – STJ – Analista de Sistemas) O modelo de desenvolvimento sequencial linear, também chamado modelo clássico ou modelo em cascata, caracteriza-se por não acomodar adequadamente as incertezas que existem no inicio de um projeto de software, em especial as geradas pela dificuldade do cliente de explicitar todos os requerimentos que o programa deve contemplar.

Comentários:

Lembre sempre que o cascata acumula riscos e que requisitos que constantemente sofrem modificações encontram uma resistência muito grande no modelo cascata.

Gabarito: Correto

33. (CESPE – SERPRO – Analista de Sistemas) O modelo em cascata consiste de fases e atividades que devem ser realizadas em sequencia, de forma que uma atividade é requisito da outra.

Comentários:

Perfeito! No cascata as fases e atividades são realizadas de forma sequencial, sendo que uma atividade é requisito da outra.

(46)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 46

34. (CESPE – TST – Analista de Sistemas) No modelo de desenvolvimento sequencial linear, a fase de codificação é a que gera erros de maior custo de correção.

Comentários:

Não. A fase com erros com maior custo é a fase de requisitos, porque se o erro estiver no requisito, provavelmente muito do que foi investido será perdido.

Gabarito: Errado

35. (Cesgranrio – Petrobrás – Analista de Sistemas) No ciclo de vida clássico, também chamado de modelo sequencial linear ou modelo cascata, é apresentada uma abordagem sistemática composta pelas seguintes atividades:

a) Análise de Requisitos de Software, Projeto, Geração de Código, Teste e Manutenção.

b) Modelagem e Engenharia do Sistema/Informação, Análise de Requisitos de Software, Projeto, Geração de Código, Teste e Manutenção.

c) Modelagem e Engenharia do Sistema/Informação, Projeto, Geração de Código, Teste e Manutenção.

d) Levantamento de Requisitos de Software, Projeto, Geração de Código e Manutenção e Análise de Requisitos de Software.

e) Levantamento de Requisitos de Software, Projeto, Geração de Código, Teste Progressivo e Manutenção.

(47)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 47

Comentários:

Essa é uma questão muito interessante, note que eu apresentei para vocês as fases do cascata da 6 edição do livro do Pressman, todavia o avaliador decidiu nessa questão cobrar conforme a 4 edição do livro do Pressman.

Professor isso é possível? Infelizmente sim. Coloquei essa questão aqui para que vocês

percebam que compreender o que é esperado de cada fase é melhor que decorar cada uma das fases.

Gabarito: Letra B

Pressman (6 edição)

Comunicação Planejamento Modelagem Construção Implantação

Pressman (4 edição)

Modelagem e Engenharia do Sistema/Informação Analise de Requisitos de Software Projeto Geração de Código Teste e Manutenção

(48)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 48 Modelo baseado em componentes

“Vamos seguir em frente! Te encontro na nossa próxima aula!!! Onde veremos:

Modelo baseado em componentes, métodos formais, modelos iterativos e incrementais, modelos evolucionários, RAD, Prototipagem, Modelos evolucionários e modelos em espiral.

Forte Abraço!

Se a vida não ficar mais fácil, trate de ficar mais forte.

JB Carvalho

Lembre-se:

(49)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 49 Lista das Questões Comentadas na Aula

1. (Cespe – 2016 – TCE (PR) – Analista de Controle – Tecnologia da Informação) Assinale a opção correta, a respeito de engenharia de software.

a) A engenharia de software está relacionada aos diversos aspectos de produção de software e inclui as atividades de especificação, desenvolvimento, validação e evolução de software.

b) A engenharia de software refere-se ao estudo das teorias e fundamentos da computação, ficando o desenvolvimento de software a cargo da ciência da computação.

c) No modelo iterativo de desenvolvimento de software, as atividades são dispostas em estágios sequenciais.

d) Um processo de software é composto por quatro atividades fundamentais: iniciação, desenvolvimento, entrega e encerramento.

e) O conceito de software se restringe ao desenvolvimento do código em determinada linguagem e seu armazenamento em arquivos.

Comentários:

A alternativa (a) esta correta porque apresenta de forma abrangente os aspectos da engenharia de software, relacionando as atividades de especificação, desenvolvimento, validação e evolução de software.

A alternativa (b) inverte os conceitos de engenharia de software e ciência da computação, tendo em vista que a ciência da computação é quem busca teorias e fundamentos fomentados na computação.

Na alternativa (c) temos uma definição utilizada para designar o modelo cascata, que veremos ainda nesta aula.

A alternativa (d) apresenta a entrega como atividade fundamental. Todavia apesar do processo de software ter uma entrega, essa etapa é apresentada pelos autores como a validação, tendo em vista que o software entregue precisa ser validado conforme analise anterior de negócio e requisitos.

A alternativa (e) esta errada porque restringe o conceito de software ao desenvolvimento de código. Se por exemplo, este código não é compilado, validado ou até mesmo se não atende uma demanda de negócio não é por si só

(50)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 50

um software, perceba que a simples escrita de um código não faz deste um software.

Gabarito: Letra A

2. (FCC - 2012 - TRT - 6ª Região (PE) - Técnico Judiciário - Tecnologia da Informação) Considere: é uma disciplina que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação. Seu principal objetivo é fornecer uma estrutura metodológica para a construção de software com alta qualidade. A definição refere-se:

a) ao ciclo de vida do software.

b) à programação orientada a objetos. c) À análise de sistemas.

d) À engenharia de requisitos. e) à engenharia de software. Comentários:

Agora que você já sabe o que é a engenharia de software não tem porque errar uma questão dessas. Tudo certo então? Estamos tratando aqui da Engenharia de Software.

Gabarito: Letra E

3. (CESPE – 2016 - TRE – PI – Técnico Judiciário – Tecnologia da Informação - b) Com base nos princípios da engenharia de software ao término de cada atividade do processo de engenharia de software, não é obrigatória a geração de insumos.

Comentários:

Não é obrigatória a geração de insumos? Note que na engenharia de software sempre após o término de uma atividade ou de uma etapa serão

(51)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 51

gerados insumos, afinal de contas a razão de qualquer etapa é fomentar a próxima etapa dentro do processo de desenvolvimento de software.

Gabarito: Errado

4. (CESPE - 2013 - TRT - 10ª REGIÃO (DF e TO) - Analista Judiciário - Tecnologia da Informação)A engenharia de software engloba processos, métodos e ferramentas. Um de seus focos é a produção de software de alta qualidade a custos adequados.

Comentários:

Engenharia de Software engloba processos? Sim. Métodos? Sim. Ferramentas? Sim. Lembra:

O foco esta na produção de software de qualidade? Sim. Gastando muito ou pouco? Pouco é melhor não é.

Gabarito: Correto

5. (FCC - 2011 - INFRAERO - Analista de Sistemas - Gestão de TI)Em relação à Engenharia de Software, é INCORRETO afirmar:

a) O design de software, ao descrever os diversos aspectos que estarão presentes no sistema quando construído, permite que se faça a avaliação prévia para garantir que ele alcance os objetivos propostos pelos interessados.

b) A representação de um design de software mais simples para representar apenas as suas características essenciais busca atender ao princípio da abstração.

(52)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 52

c) Iniciar a entrevista para obtenção dos requisitos de software com perguntas mais genéricas e finalizar com perguntas mais específicas sobre o sistema é o que caracteriza a técnica de entrevista estruturada em funil. d) No contexto de levantamento de requisitos, funcionalidade é um dos aspectos que deve ser levado em conta na abordagem dos requisitos funcionais.

e) A representação é a linguagem do design, cujo único propósito é descrever um sistema de software que seja possível construir.

Comentários:

Vamos para a última alternativa ver se encontramos alguma coisa diferente do que apresentemos, mas antes queria evidenciar o seguinte: Na literatura de Engenharia de Software, o termo “design de software” é o mesmo utilizado para se referir a “projeto de software”, existem exceções, mas basicamente, lembre-se que ao utilizar design o avaliador normalmente esta de referindo a projeto.

A letra (e) vai dizer o seguinte: A representação é a linguagem do design (projeto),cujo único propósito é descrever um sistema de software que seja possível construir. Entenda que este é um dos propósitos e não o único

propósito, dizer que é o único propósito é limitar muito a atividade de projeto

de software, as demais alternativas estão corretas e alinhadas com o que aprendemos.

Gabarito: Letra E

6. (CESPE – 2016 - TRE – PI – Técnico Judiciário – Tecnologia da Informação - c) Os modelos de processo de desenvolvimento de software, que podem ser classificados em modelo cascata e modelo de engenharia de software orientada a reuso, sãoexcludentes entre si,

(53)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 53

razão por que se deve escolher a melhor abordagem para um projeto de software.

Comentários:

O modelo cascata e o modelo orientado a reuso não são excludentes entre

si, podemos utilizar um processo de desenvolvimento de software utilizando

componentes existentes com foco no reuso e optar por utilizar esses componentes seguindo o cascata.

Gabarito: Errado

7. (CESPE – 2010 TRE/BA – Área: Tecnologia da Informação) A engenharia de software está relacionada com todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até sua manutenção, depois que este entrar em operação. A engenharia de sistemas diz respeito aos aspectos do desenvolvimento e da evolução de sistemas complexos, nos quais o software desempenha um papel importante.

Comentários:

Para responder essa questão é só pensarmos da seguinte forma:

Engenharia de Sistemas

Note que o texto da questão apresenta a engenharia de software como um item dentro da engenharia de sistemas, na engenharia de software estamos interessados em tudo sobre o ciclo de vida do software, talvez você esteja pensando: Mas professor a questão não diz: desde os estágios iniciais de

especificação do sistema até sua manutenção, depois que este entrar em operação.

Engenharia de Software

(54)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 54

Às vezes precisamos ter sensibilidade para o que o avaliador quer dizer e não nos prender ao rigor dos conceitos, nessa questão o avaliador (CESPE) considerou correto o entendimento de citar a especificação do sistema dentro dos estágios iniciais, acredito que seria melhor dizer “especificação do software”, todavia entendeu a banca que a questão estava correta.

Atenção: Muito cuidado com o feeling (percepção) da banca, sempre procure

compreender qual entendimento o avaliador deseja passar.

Gabarito: Correto

8. (FGV - 2010 - BADESC - Analista de Sistemas - Desenvolvimento de Sistemas)De acordo com Pressman, a engenharia de software é baseada em camadas, com foco na qualidade. Essas camadas são:

a) métodos, processo e teste.

b) ferramentas, métodos e processo.

c) métodos, construção, teste e implantação.

d) planejamento, modelagem, construção, validação e implantação. e) comunicação, planejamento, modelagem, construção e implantação. Comentários:

(55)

www.pontodosconcursos.com.br| Prof. Pedro Henrique Chagas Freitas 55 9. (CESPE – 2016 - TRT 8 Região – Técnico Judiciário – Tecnologia

da Informação - b) A respeito dos processos e métodos em engenharia de software: Na engenharia de software, o processo define uma metodologia, ao passo que os métodos determinam os procedimentos técnicos.

Comentários:

Perfeito. Pergunto um processo define uma metodologia? Sim. Porque metodologia é uma forma ou maneira dos métodos ou processos atingirem um resultado. Métodos determinam os procedimentos técnicos? Sim. Porque através dos métodos eu consigo criar etapas para realização de tarefas dentro de uma metodologia.

Gabarito: Correto

10. (FCC – 2009 - AFR/SP - Analista de Sistemas)A engenharia de software está inserida no contexto:

a) das engenharias de sistemas, de processo e de produto. b) da engenharia de sistemas, apenas.

c) das engenharias de processo e de produto, apenas. d) das engenharias de sistemas e de processo, apenas. e) das engenharias de sistemas e de produto, apenas. Comentários:

A engenharia de software é uma consequência do que conhecemos por engenharia de sistemas, lembra. Mas nosso autor Pressman também diz que a engenharia de sistemas pode de dividir em duas formas: Engenharia de

Processos de Negócio e Engenharia de Produto.

Referências

Documentos relacionados

Além de serem gravados no cartão, os dados são transmitidos através de um módulo de rádio frequência transmissor para um receptor do modelo, onde há um outro PIC capaz de

São muitos os problemas ambientais causados pelo crescimento urbano, o poder público não acompanha esse crescimento com investimentos em obras de infraestrutura, são ocupados

A estabilidade do corpo docente permanente permite atribuir o conceito muito bom, segundo os parâmetros da área, para o item 2.2 (pelo menos 75% dos docentes permanentes foram

motivo superveniente, o CRCDF convocará o(s) fornecedor(es) signatário(s) para negociar(em) a redução dos preços aos valores praticados pelo mercado.. Não havendo êxito

– dificuldade em mensurar a dimensão do problema , em trabalhar a diversidade de manifestações no extenso território nacional e em pautar o assunto nos diferentes espaços públicos

Os resultados evidenciam a elevada eficiência do TiO 2 , comprovada também em vários trabalhos na literatura; também indicam, porém, que é possível obter um

Em todas as vezes, nossos olhos devem ser fixados, não em uma promessa apenas, mas sobre Ele, o único fundamento da nossa esperança, e em e através de quem sozinho todas as

Na Nova Zelândia em sistemas pastoris as vacas produzem em média 17 litros de leite ao dia, enquanto nos produtores analisados neste estudo a média de