Introdução à Engenharia de Software

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Qual das alternativas abaixo melhor define o conceito de Engenharia de Software?

  • Atividade que não deve ser confundida com a escrita de programas, seguindo preceitos específicos. (correct)
  • Desenvolvimento de qualquer tipo de software, sem a necessidade de seguir metodologias.
  • Ato de escrever programas para computadores.
  • A criação de jogos para consoles e dispositivos móveis.

Desenvolver software é o mesmo que escrever programas para computador.

False (B)

Em um projeto de software, o que pode acontecer se o entendimento inicial dos requisitos for ruim?

Causar fracassos no desenvolvimento do software.

A ______ de software é uma disciplina da engenharia que se preocupa com todos os aspectos da produção de software.

<p>Engenharia</p> Signup and view all the answers

Associe os seguintes conceitos de Engenharia de Software (ES) com suas respectivas descrições:

<p>Especificação = Definição detalhada do que o software deve fazer. Desenvolvimento = Processo de criação do software. Validação = Garantia de que o software atende aos requisitos do cliente. Evolução = Adaptação do software a novas necessidades ao longo do tempo.</p> Signup and view all the answers

Qual a principal diferença entre Engenharia de Software (ES) e Ciência da Computação?

<p>A ES foca no lado prático do desenvolvimento e entrega de softwares úteis, enquanto a Ciência da Computação foca na teoria e fundamentos. (D)</p> Signup and view all the answers

A Engenharia de Sistemas preocupa-se apenas com o desenvolvimento de software, excluindo hardware e processos.

<p>False (B)</p> Signup and view all the answers

Cite um dos principais desafios da Engenharia de Software (ES) na atualidade.

<p>Aumento da diversidade e diminuição do tempo para entrega de software confiável.</p> Signup and view all the answers

Um dos problemas comuns em projetos de software é a não ______ as necessidades do usuário.

<p>adequação</p> Signup and view all the answers

Associe os seguintes problemas comuns em projetos de software com suas possíveis causas:

<p>Difícil manutenção = Código complexo e falta de documentação. Documentação pobre = Falta de tempo ou prioridade na criação de documentação. Problemas na qualidade = Testes insuficientes ou falhas na análise de requisitos. Custo e prazos ultrapassados = Estimativas imprecisas e mudanças frequentes nos requisitos.</p> Signup and view all the answers

De acordo com o conceito de 'Crise do Software', qual das alternativas descreve um sintoma comum?

<p>Dificuldade em escrever, compreender e verificar programas computacionais. (B)</p> Signup and view all the answers

Existe uma 'bala de prata', ou seja, uma única abordagem que pode prevenir todos os casos de falha em projetos de software.

<p>False (B)</p> Signup and view all the answers

Qual a porcentagem aproximada de projetos de software que são cancelados, segundo os dados apresentados?

<p>25%</p> Signup and view all the answers

Na 'Crise do Software', a manutenção e ______ de software são frequentemente difíceis e custosas.

<p>reutilização</p> Signup and view all the answers

Associe os seguintes 'Mitos do Administrador' com suas respectivas 'Realidades':

<p>Temos um manual completo, o que oferece tudo o que o pessoal precisa. = Será que o manual é usado? Ele reflete o estado da arte e é completo? Temos ferramentas de última geração, os mais novos computadores. = É preciso muito mais do que os mais recentes computadores para se desenvolver software com qualidade. Quando estamos atrasados, é só adicionar mais programadores. = Acrescentar pessoas em um projeto torna-o ainda mais atrasado, a menos que seja planejado. Se terceirizarmos, podemos simplesmente relaxar. = Se uma empresa não souber gerenciar projetos de software, enfrentará dificuldades ao terceirizá-los.</p> Signup and view all the answers

Segundo os 'Mitos do Cliente', qual é um equívoco comum sobre os requisitos de um projeto?

<p>Uma declaração geral dos objetivos é suficiente para começar. (C)</p> Signup and view all the answers

Modificar os requisitos de um projeto de software tardiamente não causa impacto significativo no desenvolvimento.

<p>False (B)</p> Signup and view all the answers

De acordo com os 'Mitos do Profissional', qual porcentagem aproximada do esforço total de um sistema é despendida após a entrega inicial ao cliente?

<p>60 a 80%</p> Signup and view all the answers

Um dos mecanismos mais efetivos para garantir a qualidade do software é a ______ técnica formal.

<p>revisão</p> Signup and view all the answers

Associe os seguintes 'Mitos do Profissional' com suas respectivas 'Realidades' no desenvolvimento de software:

<p>Assim que escrevermos o programa, nosso trabalho estará completo! = Os dados da indústria indicam que entre 60 e 80% de todo esforço gasto num sistema serão despendidos depois que ele for entregue pela primeira vez ao cliente. Enquanto o programa não estiver rodando, não é possível avaliar a sua qualidade. = A revisão técnica formal é um dos mecanismos mais efetivos de qualidade do software e pode ser aplicada desde o começo de um projeto. O único produto passível de entrega é o programa em funcionamento. = Um programa em funcionamento é somente uma parte de uma configuração de software que inclui muitos elementos (modelos, documentos, planos). A Engenharia de Software fará criar documentação volumosa e desnecessária e, invariavelmente, irá nos retardar. = A Engenharia de Software não trata de criação de documentos, trata da criação de um produto de qualidade. Melhor qualidade conduz à redução do retrabalho , e menos retrabalho resulta em maior rapidez na entrega.</p> Signup and view all the answers

De acordo com o Chaos Report, qual das alternativas descreve um projeto de software classificado como 'Sucesso'?

<p>O projeto é entregue dentro do prazo e custo, contendo todas as características e funções requeridas e satisfaz os clientes. (A)</p> Signup and view all the answers

Um projeto classificado como 'Incompleto/Deficiente' é aquele que foi entregue no prazo, mas custou mais do que o esperado.

<p>False (B)</p> Signup and view all the answers

Segundo o Chaos Report, quais são os três estados de um projeto de Software?

<p>Sucesso, Fracasso e Incompleto.</p> Signup and view all the answers

Segundo o Chaos Report os projetos de software são classificados de acordo com o seu ______ por meio de uma análise específica.

<p>tamanho</p> Signup and view all the answers

Faça a associação de acordo com o escopo dos projetos:

<p>Projeto Small = 6 ou menos membros. Projeto Medium = De 7 a 24 membros. Projeto Large = De 24 a 50 membros. Projeto Grand = 50 membros ou mais.</p> Signup and view all the answers

Considerando o 'Esforço no Desenvolvimento de Software', qual porcentagem aproximada do tempo total é gasto na fase de desenvolvimento inicial?

<p>20% (C)</p> Signup and view all the answers

A manutenção de software representa a maior parte do esforço total despendido ao longo do ciclo de vida de um sistema.

<p>True (A)</p> Signup and view all the answers

Quais são os três tipos de atividades que compõem a manutenção de software?

<p>Aumento da capacidade do produto, adaptação a novos ambientes e correção de erros.</p> Signup and view all the answers

Acredita-se que o custo para corrigir um ______ cresça exponencialmente conforme o projeto avança.

<p>erro</p> Signup and view all the answers

Associe os seguintes itens:

<p>Mudança de ícone do aplicativo = Redesenho dos objetos solicitados. Publicação = Subida para produção. Compatibilidade = Atualização dos App's.</p> Signup and view all the answers

Qual das alternativas apresenta uma forma de atenuar os problemas relacionados ao desenvolvimento e manutenção de software?

<p>Melhorar a qualidade do software e o processo de produção. (A)</p> Signup and view all the answers

A mudança de cultura no desenvolvimento de software não tem impacto na qualidade final do produto.

<p>False (B)</p> Signup and view all the answers

De que forma a filosofia de desenvolvimento da Engenharia de Software pode ajudar na crise do Software?

<p>A Engenharia de Software ajudar a atenuar a crise do software atraves da coordenação, utilizando uma filosofia de coordenação, controle e administração.</p> Signup and view all the answers

A Engenharia de Software ajuda na crise do Software porque utiliza uma filosofia de ______, controle e administração.

<p>coordenação</p> Signup and view all the answers

Quais são os três elementos fundamentais da Engenharia de Software?

<p>Métodos = Proporcionam os detalhes de “como fazer” para construir o software. Ferramentas = Proporcionam apoio automatizado ou semi-automatizado aos métodos. Procedimentos = Definem a sequência em que os métodos serão aplicados.</p> Signup and view all the answers

Qual alternativa apresenta os três principais sistemas para ES(Engenharia de sistemas)?

<p>Aplicações stand-alone, sistemas de controle embutidos e sistemas de processamento em lotes. (C)</p> Signup and view all the answers

É mais barato ter métodos e técnicas ES do que programas pessoais.

<p>True (A)</p> Signup and view all the answers

O que assegura a garantia de Qualidade no Software?

<p>Produtividade de desenvolvimento e serviços essenciais</p> Signup and view all the answers

É muito importante que os sistemas tenham ______ para assegurar a segurança de todos.

<p>segurança</p> Signup and view all the answers

Quais são os fundamentos da ES(Engenharia de Software)

<p>Processo gerenciado = Saber o que será produzido e quando estará finalizado. Software Confiável = Software com bom desempenho. Gerenciar requisitos = Entendender e gerenciar a especificação Recursos existentes = Fazer o melhor uso possível.</p> Signup and view all the answers

Flashcards

Desenvolvimento de Software

Atividade que segue os preceitos da Engenharia de Software, diferente de escrever programas diretamente.

O que é Software?

Programa de computador mais a documentação associada.

Engenharia de Software (ES)

Disciplina de engenharia que foca em todos os aspectos da produção de software.

Principais atividades da ES

Especificação, desenvolvimento, validação e evolução de software.

Signup and view all the flashcards

Ciência da Computação

Teoria e fundamentos da computação.

Signup and view all the flashcards

Objetivo da Engenharia de Software

Lado prático do desenvolvimento e entrega de softwares úteis.

Signup and view all the flashcards

Engenharia de Sistemas

Todos os aspectos do desenvolvimento de sistemas computacionais, incluindo hardware, software e processos.

Signup and view all the flashcards

Desafios da Engenharia de Software

Aumento da diversidade e diminuição do tempo para entrega.

Signup and view all the flashcards

Crise do Software

Dificuldade de escrever, compreender e verificar programas computacionais.

Signup and view all the flashcards

Problemas em Projetos de Software

Projetos de software que ultrapassam orçamentos e cronogramas.

Signup and view all the flashcards

Satisfação do Usuário

Dificuldade em atender requisitos e satisfazer o usuário.

Signup and view all the flashcards

"Software é hard"

Não existe abordagem única para prevenir casos de falha.

Signup and view all the flashcards

Problemas Recorrentes

Problemas enfrentados no processo de construção e manutenção do software.

Signup and view all the flashcards

Projetos Cancelados

Alta taxa de projetos de software que não são finalizados.

Signup and view all the flashcards

Atraso no Desenvolvimento

Tempo de desenvolvimento sendo maior que o prazo estimado inicialmente.

Signup and view all the flashcards

Sistemas Não Planejados

Percentual considerável de sistemas que não funcionam como haviam sido planejados.

Signup and view all the flashcards

Custo da Manutenção

Manutenção e reutilização são processos complexos e caros.

Signup and view all the flashcards

Complexidade e Problemas

Complexidade dos sistemas afeta diretamente os problemas encontrados.

Signup and view all the flashcards

Mito do Manual

Manual não é usado, estado da arte e completo.

Signup and view all the flashcards

Mito das Ferramentas

Ter ferramentas de última geração garante o desenvolvimento de software de qualidade.

Signup and view all the flashcards

Mito dos Programadores

Adicionar mais programadores resolve o atraso.

Signup and view all the flashcards

Mito da Terceirização

Terceirizar permite relaxar e deixar a empresa realizar o trabalho.

Signup and view all the flashcards

Mito dos Objetivos

Declaração geral dos objetivos é suficiente para começar a escrever programas.

Signup and view all the flashcards

Mito da Flexibilidade

Requisitos de projeto podem ser modificados continuamente, pois o software é flexível

Signup and view all the flashcards

Mito do Profissional

Assim que o programa é colocado em funcionamento o trabalho está completo.

Signup and view all the flashcards

Mito do Profissional

“Enquanto o programa não estiver "rodando”, não é possível avaliar a sua qualidade".

Signup and view all the flashcards

Mito do Profissional

O único produto passível de entrega é o programa em funcionamento.

Signup and view all the flashcards

Mito do Profissional

Engenharia de Software faz criar documentação volumosa e desnecessária e, invariavelmente, irá nos retardar.

Signup and view all the flashcards

Manutenção de Software

Percentual de esforço gasto na manutenção de software.

Signup and view all the flashcards

Início do Desenvolvimento

Quando a necessidade do produto é identificada.

Signup and view all the flashcards

Fim do Desenvolvimento

Quando o teste do produto implantado é concluído e o produto é entregue para a operação/produção.

Signup and view all the flashcards

Atividades de Manutenção

Aumento da capacidade do produto, adaptação a novos ambientes e correção de erros.

Signup and view all the flashcards

Correção de Erros

custo para corrigir um erro de software cresce.

Signup and view all the flashcards

Contexto

Contrata uma empresa para fazer o desenvolvimento de manutenção de seus aplicativos para dispositivos móveis.

Signup and view all the flashcards

Problema

Analistas de negócio identificaram que a logomarca utilizada nas telas dos aplicativos para dispositivos móveis estava desatualizada.

Signup and view all the flashcards

Esforço estimado

Tempo você acha (em horas) que leva para fazer essa manutenção?

Signup and view all the flashcards

Manutenção Inevitável

Há software legado, Implantação incompleta, Mudanças nos sistemas.

Signup and view all the flashcards

Como Atenuar o Problema

Melhoria da qualidade do software, melhoria do processo de produção.

Signup and view all the flashcards

Engenharia de Software

métodos, ferramentas e procedimentos – que possibilita ao gerente controlar o processo de desenvolvimento de software.

Signup and view all the flashcards

Study Notes

Introdução à Engenharia de Software

  • Elaborado pela Profa. Dra. Ana Paula Lemke.
  • A última atualização foi em março de 2022.

Contextualização

  • Desenvolver software, seguindo os princípios da Engenharia de Software, não se resume a escrever programas.
  • Desenvolver um balanço de corda exemplifica a necessidade do usuário.

Definição e Atividades da Engenharia de Software (ES)

  • Software inclui programas de computador e documentação associada.
  • Software pode ser desenvolvido para clientes específicos ou para o público em geral.
  • ES é a disciplina de engenharia focada em todos os aspectos da produção de software.
  • As principais atividades da ES são especificação, desenvolvimento, validação e evolução do software.

Diferenças entre ES e outras áreas

  • Ciência da Computação foca na teoria e nos fundamentos.
  • ES foca no lado prático do desenvolvimento e na entrega de softwares úteis.
  • Engenharia de Sistemas abrange todos os aspectos de sistemas computacionais, incluindo hardware, software e processos.

Desafios da Engenharia de Software

  • Lidar com o aumento da diversidade, diminuir o tempo de entrega e garantir o desenvolvimento de software confiável.
  • Identificar as dificuldades na construção de software
  • Analistas de sistemas devem entender e validar o que o cliente realmente quer.
  • Dificuldades comuns incluem manutenção difícil, documentação pobre, problemas de qualidade, custos e prazos excessivos, e não atendimento das necessidades do usuário.

Crise do Software

  • O desenvolvimento de software enfrenta um estado contínuo de crise.
  • Há dificuldade em escrever, compreender e verificar programas computacionais.
  • Projetos de software frequentemente ultrapassam orçamentos e cronogramas.
  • Projetos devem atender aos requisitos e satisfazer o usuário, incluindo a qualidade.
  • Projetos de software são grandes, complexos, mal especificados e vulneráveis a problemas imprevistos.
  • Não existe uma solução única para prevenir falhas em software.

Problemas Recorrentes no Desenvolvimento de Software

  • 25% dos projetos são cancelados.
  • O tempo de desenvolvimento frequentemente excede as estimativas.
  • 75% dos sistemas não funcionam conforme o planejado.
  • A manutenção e reutilização de software são difíceis e dispendiosas.
  • A complexidade dos problemas é proporcional à complexidade dos sistemas.

Mitos e Realidades em Engenharia de Software

  • Mito do Administrador: Um manual completo garante que a equipe saiba tudo o que precisa.
  • Realidade: É preciso verificar se o manual é usado, conhecido, atualizado e completo.
  • Mito do Administrador: Ferramentas de última geração garantem o desenvolvimento de software de qualidade.
  • Realidade: É preciso mais do que hardwares modernos para desenvolver software com qualidade.
  • Mito do Administrador: Adicionar programadores a projetos atrasados resolve o problema.
  • Realidade: O desenvolvimento de software não é um processo mecânico; adicionar pessoas sem planejamento pode atrasar ainda mais.
  • Mito do Administrador: Terceirizar um projeto de software permite relaxar e deixar a empresa contratada fazer tudo.
  • Realidade: É preciso saber gerenciar e controlar projetos de software para evitar dificuldades na terceirização.
  • Mito do Cliente: Uma declaração geral dos objetivos é suficiente para começar a programar, detalhes podem ser preenchidos depois.
  • Realidade: Um entendimento inicial ruim do software causa fracassos.
  • Mito do Cliente: É possível modificar os requisitos continuamente, pois o software é flexível.
  • Realidade: Mudanças tardias podem ter grande impacto no desenvolvimento e em partes já desenvolvidas do sistema.
  • Mito do Profissional: O trabalho está completo quando o programa está escrito e funcionando.
  • Realidade: 60% a 80% do esforço são despendidos após a entrega inicial.
  • Mito do Profissional: Não é possível avaliar a qualidade de um programa até que ele esteja rodando.
  • Realidade: Revisões técnicas formais são eficazes desde o início do projeto.
  • Mito do Profissional: O único produto entregue é o programa em funcionamento.
  • Realidade: O programa é apenas parte de uma configuração que inclui modelos, documentos e planos.
  • Mito do Profissional: A Engenharia de Software cria documentação volumosa e desnecessária, atrasando o projeto.
  • Realidade: A Engenharia de Software visa criar um produto de qualidade, reduzindo a necessidade de retrabalho e acelerando a entrega.

Evidências da Crise de Software

  • Gráficos do Chaos Report mostram as taxas de sucesso, fracasso e projetos incompletos ao longo dos anos.
  • O tamanho dos projetos de software (pequeno, moderado, médio, grande, grandioso) influencia a sua resolução dentro do Chaos Report.
  • Matriz de tamanho e complexidade fornece diretrizes para categorizar um projeto para avaliar o risco e esforço.

Uso das Funcionalidades do Software

  • Um gráfico de pizza ilustra as porcentagens de uso das funcionalidades do software: Sempre (7%), Frequentemente (13%), Algumas vezes (16%), Raramente (19%), Nunca (45%).

Desenvolvimento e Manutenção de Software

  • O desenvolvimento corresponde a 20% do tempo e a manutenção a 80%
  • Desenvolvimento inicia quando a necessidade é identificada e termina com o teste do produto.
  • Manutenção envolve atividades após a entrega, como aumento da capacidade (60%), adaptação a novos ambientes (20%) e correção de erros (20%).
  • Acredita-se que o custo para corrigir erros aumenta exponencialmente.
  • O tempo para realizar a manutenção precisa ser estimado.
  • A manutenção é cara devido ao software legado, implantação incompleta e mudanças nos sistemas.
  • Atenuar este problema passa necessariamente por melhorar a qualidade do software e os seus processos de produção.
  • Atenuar este problema passa necessariamente por uma mudança de cultura no desenvolvimento do software.

Mudança de Cultura de Desenvolvimento de SW

  • Atenuar esta crise passa por disciplina para desenvolvimento com a Engenharia de Software.
  • Combinar métodos e ferramentas adequados, utilizar técnicas para a garantia da qualidade e aplicar uma filosofia de coordenação, controle e administração.

O que é Engenharia de Software?

  • O conceito foi proposto em 1968.
  • Abrange métodos, ferramentas e procedimentos para controlar o processo de desenvolvimento e construção de software de alta qualidade.
  • Métodos detalham como construir o software, incluindo planejamento, estimativas e análise de requisitos.
  • Ferramentas dão apoio automatizado ou semi-automatizado aos métodos.
  • Procedimentos definem a sequência dos métodos, produtos a serem disponibilizados e controle de qualidade.
  • Disciplina de engenharia focada em todos os aspectos da produção, desde a especificação até a manutenção.
  • Aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, operação e manutenção de software.

Objetivos da Engenharia de Software

  • Controlar o desenvolvimento dentro de custos, prazos e níveis de qualidade desejados.
  • Aumentar a produtividade no desenvolvimento, operação e manutenção.
  • Usar métodos e técnicas de ES é mais barato a longo prazo do que desenvolver programas sem planejamento.
  • A maioria dos custos está na alteração do software após o seu uso.
  • Um software de qualidade satisfaz os requisitos, é fácil de manter, tem boa performance, é confiável e fácil de usar.
  • Produtividade envolve custo e tempo de desenvolvimento reduzidos, e suporte rápido às necessidades do mercado.

Importância da Engenharia de Software

  • Qualidade e produtividade garantem disponibilidade de serviços essenciais e segurança das pessoas.
  • Qualidade e produtividade garantem a competitividade das empresas.
  • Os riscos ao público devido a programas com imperfeições estão aumentando.

Diversidade na Engenharia de Software

  • A aplicação de ES varia drasticamente de acordo com a organização, o tipo de software e as pessoas envolvidas.
  • Tipos de aplicações incluem stand-alone, interativas baseadas em transações, de controle embutidos, de processamento em lotes, de entretenimento, para modelagem e simulação, de coleta de dados e sistemas de sistemas.
  • Aplicações Stand-alone: não precisa de conexão a rede.
  • Aplicações interativas baseadas em transações: aplicações Web.
  • Fundamentos da ES que se aplicam a todos os tipos de sistemas incluem ter processos gerenciados, desenvolver software confiável, entender e gerenciar a especificação e os requisitos do software e fazer o melhor uso possível dos recursos existentes.
  • Atributos das WebApps incluem uso intensivo de redes, simultaneidade, carga não previsível, desempenho, disponibilidade, orientação a dados, sensibilidade no conteúdo, evolução contínua, imediatismo, segurança e estética.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

CSC 303 Software Engineering 1
16 questions

CSC 303 Software Engineering 1

NoblePrehistoricArt4993 avatar
NoblePrehistoricArt4993
Software Engineering Overview
40 questions
Introduction to Software Engineering
40 questions
Use Quizgecko on...
Browser
Browser