Buscar

Aula 2 - Introdução a Engenharia de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

MODELO DE
MATURIDADE
DE SOFTWARE
Introdução
Esta aula tem como tema central apresentar uma das principais áreas
da Computação, a área da Engenharia de Software. Esta é uma área
recente que deve ser utilizada para o desenvolvimento, operação e
manutenção de software.
Objetivo:
1. Conhecer a definição de software, a sua evolução e classificação;
2. Estudar a definição da Engenharia de Software, seus objetivos e
características e entender o seu uso como uma tecnologia em
camadas.
Definição de software
Um conceito muito importante que todos devem saber é o de software, o que é realmente um
software e quais são os seus componentes. Um Software é composto das seguintes partes:
Software
Instruções: são os programas de computador que quando executadas produzem a função e o
desempenho desejados;
Estruturas de dados: possibilitam que os programas manipulem adequadamente os dados que
estão sendo tratados;
Documentos: os quais descrevem a operação e o uso dos programas.
Portanto, software é muito mais do que somente instruções, do que somente código. Ele é
composto por um elemento muito importante que são as documentações. Quando compramos um 
software devemos receber toda a documentação necessária sobre ele, como: nota fiscal, licença de
uso, manual de operação, manual de instalação e configuração, dentre outros.
Evolução do software
Vamos entender agora como ocorreu a evolução do software desde o
surgimento da computação, no final da década de 1940 e início da década de
1950. A evolução do software está dividida em eras, que são:
1950 a 1965
A Primeira era do desenvolvimento de software
• O desenvolvimento de software era considerado uma arte;
• Haviam poucos métodos sistemáticos para o desenvolvimento;
• O desenvolvimento de software não era gerenciado;
• O hardware sofria contínuas mudanças e era o centro das atenções;
•O software era customizado, ou seja, adequado às necessidades do usuário final, e a sua
distribuição era limitada;
• O software era desenvolvido e utilizado pela mesma pessoa ou organização;
• Não havia documentação, todas as informações necessárias sobre o software
estavam na cabeça das pessoas que o desenvolveram (one’s head);
• O processamento de dados era em lote (batch).
1963 a 1974
A segunda era do desenvolvimento de software
• Surgimento da multiprogramação e dos sistemas multiusuários;
• Desenvolvimento de técnicas interativas homem-máquina;
• Utilização de sistemas de tempo real;
• Surgimento da 1ª geração de sgbds;
• Nascem as software houses e os produtos de software;
•O software era produzido para ampla distribuição em
um multidisciplinar, em várias áreas de conhecimentos;
• Surge o conceito de biblioteca de software;
mercado
•Devido à falta de metodologias de desenvolvimento e de documentação, a
manutenção era praticamente impossível.
1973 a 1978
A terceira era do desenvolvimento de software
• Surgimento dos sistemas distribuídos e paralelos;
• Desenvolvimento das redes locais e globais de computadores;
•Necessidade de elevada demanda por acesso imediato a dados por parte dos
usuários;
• Criação dos computadores de uso pessoal (PC - personal computers) e
estações de trabalho (workstations);
• Uso generalizado de microprocessadores;
•Começa a haver um grande consumo de computadores, o
que consequentemente baixa o custo do hardware;
•Há um forte impacto de consumo, pois os computadores tornaram-se
acessíveis a um grande público que antes não tinham acesso ao uso de
computadores.
1985 aos dias atuais
A quarta era do desenvolvimento de software
• Surgimento dos ambiente cliente-servidor;
•Desenvolvimento do paradigma orientado a objetos, da linguagem de
modelagem unificada (UML) e do processo unificado;
• Surgimento dos sistemas multimídia e da realidade virtual;
•Desenvolvimento dos sistemas especialistas e de software de inteligência
artificial utilizados em sistema do mundo real;
• Surgimento das técnicas de 4ª Geração (4GT);
•Desenvolvimento da computação biológica e da computação
vestível (wearable computers);
• Surgimento da internet (information superhighway).
Classificação do software
Vamos entender agora quais são os diferentes tipos de software existentes e a sua
classificação. O software está classificado nos seguintes tipos:
Básico: é uma coleção de programas escritos para dar suporte a outros programas.
Como por exemplo: compiladores, interpretadores, editores, componentes de
sistemas operacionais, dentre outros.
De Tempo Real: são programas que monitoram, analisam e controlam os eventos
do mundo real quando eles ocorrem. Um sistema de tempo real precisa responder
dentro de restrições de tempo especificadas. Há um limite máximo tolerável de
resposta, de acordo com as especificações do software, como por exemplo: software
de controle de usina nuclear, software de controle e navegação de satélites, dentre 
outros.
Classificação do software
Comercial: é o software desenvolvido para o negócio de uma organização. É a
maior área para a qual o software é desenvolvido. Divide, basicamente, em
Sistemas Discretos, como: sistemas de estoque, de contabilidade, de pagamento,
dentre outros. E em Sistemas de Informações, como: sistemas de processamento
de transações, sistemas de informações gerenciais, sistemas de suporte à
decisão, sistemas de comércio eletrônico, dentre outros.
Científico e de Engenharia: são caracterizados por algoritmos que tratam
dados numéricos. Como por exemplo: software para cálculo da dinâmica da órbita
de um ônibus espacial, software para computação auxiliada por computador
(computer aided design), software para simulação de sistemas, dentre outros.
Classificação do software
Embutido ou Embarcado: é um software que normalmente reside em memória 
não volátil (ROM) e é utilizado para o controle de produtos e de sistemas para os
mercados consumidor e industrial. Como por exemplo: software para controle de
micro-ondas, para computadores de bordo de automóveis, para sistemas de freio,
dentre outros.
Computador Pessoal: é o software utilizado nas atividades domésticas para
soluções de problemas do dia a dia, como por exemplo: processadores de texto,
planilhas eletrônicas, multimídia, jogos, dentre outros.
Classificação do software
Inteligência Artificial: é o software que faz uso de algoritmos não numéricos para
resolver problemas complexos que não podem ser tratados de forma convencional.
Como por exemplo: software de apoio ao diagnóstico de infarto agudo do miocárdio,
software para concessão de cartão de créditos, dentre outros.
Definição de engenharia de software
Nesta parte da aula apresentaremos a área da Engenharia de Software, seus 
objetivos e características. Abordaremos também os fatores que afetam a prática da
Engenharia de Software e o seu uso como uma tecnologia em camadas.
Como já foi discutido na aula anterior, no início da computação a preocupação era
com o hardware e o software, nada mais era do que uma reflexão posterior.
Entretanto, essa visão mudou e com ela gerentes e técnicos se fazem as seguintes 
perguntas:
• Por que o software demora tanto tempo para ser concluído?
• Por que os custos de produção têm sido tão elevados?
•Por que não é possível detectar todos os erros antes que o software seja entregue ao cliente?
•Por que é tão difícil medir o progresso durante o processo de desenvolvimento?
Definição de engenharia de software
A resposta para todas essas perguntas é: a não adoção de práticas de
engenharia de software para o desenvolvimento de software, ou seja,
devemos desenvolver software como uma engenharia, da mesma forma que
utilizamos a engenharia civil para construir prédios ou utilizamos a engenharia
aeronáutica para construir aviões.
A Engenharia objetiva analisar, projetar, construir, verificar e gerenciar entidades
técnicas e/ou sociais. Quando a entidade a ser construída com a engenharia é
software, temos a Engenharia de Software.
Definiçãode engenharia de software
Então podemos definir Engenharia de Software como: o estabelecimento e uso de
sólidos princípios de engenharia para que se possa obter economicamente um
software que seja confiável e que funcione eficientemente em máquinas reais
(PRESSMAN, 2006).
Também podemos definir da seguinte forma: Engenharia de Software é a aplicação
de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento,
operação e manutenção de software (IEEE STANDARD 610.12).
Objetivo e características da engenharia de software
A engenharia de Software tem como objetivo projetar e desenvolver software com
maior qualidade em menos tempo e com o menor custo possível para resolver
problemas de forma eficiente e eficaz. A qualidade envolve desenvolver softwares
mais eficientes, mais precisos, fáceis de modificar, de usar ou de entender. Essas
são características importantes que devem ser priorizadas em um software.
A Engenharia de Software é uma disciplina de engenharia que está envolvida com
todos os aspectos do desenvolvimento de produtos de software. Os produtos de
software consistem de programas desenvolvidos, estruturas de dados e
documentação associada. Essa engenharia não está voltada para a programação
individual, mas para abordagens provendo mecanismos para que grupos possam
lidar com complexidade e mudança na construção de um software.
Fatores que afetam a prática da Engenharia de software
A Engenharia de Software tem uma série de fatores que afetam a viabilidade de
entrega de produtos de software. Os fatores são:
•Necessidade de entregar produtos de software de acordo com as exigências do 
mercado. É o que é frequentemente referenciado como time to market;
•Mudanças na economia que afetam a computação. Grandes alterações na
economia que têm forte impacto na área de Tecnologia da Computação;
• Maior disponibilidade de computadores de mesa potentes. Usuários têm
computadores com ótimas configurações para atividades rotineiras;
Fatores que afetam a prática da Engenharia de software
• Redes de telecomunicações extensíveis. Grande disponibilidade de infraestrutura de
redes de computadores à todos;
• Disponibilidade e adoção de tecnologia orientada a objetos;
• Necessidade de interfaces gráficas para os usuários;
• Imprevisibilidade do modelo cascata para o desenvolvimento de software.
Tecnologia em camadas
A Engenharia de Software é uma tecnologia em Camadas. Para que um problema seja resolvido, a
solução deve empregar um conjunto variado de métodos ou técnicas, ferramentas e processos
utilizando um paradigma de desenvolvimento específico. É muito importante que no
desenvolvimento de um software haja um compromisso organizacional com a qualidade, que leva ao
 desenvolvimento de abordagens cada vez mais amadurecidas para a Engenharia de Software.
FERRAMENTAS
•Automatizam o processo de desenvolvimento de software dando suporte aos métodos;
•Elas são denominadas de ferramentas Case (Computer Aided Software Engineering – Engenharia de
Software auxiliada por computador). Como por exemplo: editores, testadores, modeladores, 
gerenciadores;
•Quando as ferramentas são integradas é estabelecido um sistema de suporte ao desenvolvimento
de software chamado I-CASE (Integrated CASE).
Tecnologia em camadas
MÉTODOS
•Os métodos de Engenharia de Software fornecem a técnica de como fazer para construir software;
•Incluem um amplo conjunto de tarefas que abrange: análise de requisitos, projeto,construção de
programas, teste e manutenção, dentre outros;
• São constituídos por um conjunto de princípios básicos, que regem cada área
da tecnologia e incluem atividades de modelagem a outras técnicas descritivas.
PROCESSOS
• Representa o fundamento, o principal elemento, da Engenharia de Software;
• O processo da Engenharia de Software é o “adesivo” que mantém unidas as camadas de
tecnologia e permite o desenvolvimento racional e oportuno de software para o computador.
Exercícios de fixação
Questão 1
Fonte: Funiversa – 2009 – IPHAN
Assim como a Engenharia de Software, existe também na área de informática a Ciência da Computação. Assinale a
alternativa que melhor apresenta a diferença entre Engenharia de Software e Ciência da Computação.
a) A Ciência da Computação tem como objetivo o desenvolvimento de teorias e fundamentações. Já a
Engenharia de Software se preocupa com as práticas de desenvolvimento de software.
b) A Engenharia de Software trata da criação dos sistemas de computação (softwares) enquanto a Ciência da
Computação está ligada ao desenvolvimento e criação de componentes de hardware.
c) A Engenharia de Software trata dos sistemas com base em computadores, que inclui hardware e
software, e a Ciência da Computação trata apenas dos aspectos de desenvolvimento de sistemas.
d) A Ciência da Computação trata dos sistemas com base em computadores, que inclui hardware e software, e
a Engenharia de Software trata apenas dos aspectos de desenvolvimento de sistemas.
e) A Ciência da Computação destina-se ao estudo e solução para problemas genéricos das áreas de rede e
banco de dados e a Engenharia de Software restringe - se ao desenvolvimento de sistemas.
Questão 2
Com base nos conceitos de Engenharia de Software e da Ciência da Computação, julgue a questão a
seguir: A ciência da computação estuda os aspectos do desenvolvimento e da evolução de software;
a engenharia de software estuda o uso de ferramentas e de codificação.
a) Verdadeiro
b) Falso
Questão 3
Dentre as alternativas a seguir, assinale a que representa os elementos que compõem um software:
c) Dados, sistema e instruções.
d) Instruções, estruturas de dados e sistema.
e) Documentos, dados e instruções.
c) Estruturas de dados, documentos e instruções.
d) Sistemas, documentos e instruções.
Questão 4
Dentre as alternativas abaixo, assinale a única que não representa um problema encontrado na
primeira era de desenvolvimento de software:
a) O desenvolvimento de software era considerado uma arte.
b) O desenvolvimento de software não era gerenciado.
c) Haviam poucos métodos sistemáticos para o desenvolvimento.
d) Não havia documentação.
e) Necessidade de elevada demanda por acesso imediato a dados.
Questão 5
É o software que faz uso de algoritmos não numéricos para resolver problemas complexos que não
podem ser tratados de forma convencional. Estamos nos referindo ao software:
f) Básico.
g) De inteligência artificial.
h) Embutido ou embarcado.
i) De tempo real.
j) Comercial.
Questão 6
Fonte: Cespe 2013 TRT 10ª Região – Analista Judiciário – Tecnologia da Informação Com relação a 
conceitos gerais de engenharia de software, julgue o item a seguir: 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.
a) Verdadeiro
b) Falso
Questão 7
Fonte: Cespe 2010 TRE-BA – Analista de Sistemas – Desenvolvimento de Sistemas
Com relação à engenharia de software, julgue o item a seguir: Entre os desafios enfrentados pela
engenharia de software estão lidar com sistemas legados, atender à crescente diversidade e atender
às exigências quanto a prazos de entrega reduzidos.
c) Verdadeiro
d) Falso
Questão 8
Fonte: 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.
Questão 9
Fonte: FCC – 2010 – TRE-RS – Analista Judiciário – Analista de Sistemas Suporte
Sobre a engenharia de software, considere:
I.Atualmente todos os problemas na construção de software de alta qualidade no prazo e dentro do
orçamento foram solucionados.
II. Ao longo dosúltimos 50 anos, o software evoluiu de um produto de
indústria para um ferramental especializado em solução de problemas e análise de informações
específicas.
III. Todo projeto de software é iniciado por alguma necessidade do negócio.
IV.O intuito da engenharia de software é fornecer uma estrutura para a construção de software com
alta qualidade.
Está correto o que consta em:
a) III e IV, somente.
b) II e III, somente.
c) I, II e IV, somente.
d) II, III e IV, somente.
e) I, II, III e IV.
Questão 10
Fonte: FCC 2012 – TCE-AM – Analista de Controle Externo – Tecnologia da Informação
Considere o excerto a seguir:
A engenharia de software pode ser considerada uma tecnologia, com métodos e ferramentas
próprios, estruturada em camadas, do ponto de vista sistêmico. A abordagem sistêmica da
engenharia de software deve se apoiar num compromisso organizacional com a qualidade que leve
à cultura de um processo contínuo de aperfeiçoamento, e é essa cultura que, em última análise,
leva ao desenvolvimento de abordagens cada vez mais efetivas. A camada de
base em que a engenharia de software se apoia é I e o “adesivo” que mantém unidas as camadas,
estruturadas segundo a visão sistêmica, é o II.
As lacunas I e II devem ser preenchidas, correta e respectivamente, por:
a) A qualidade de processo – método.
b) O uso de ferramentas - controle de qualidade.
c) O controle de qualidade – método.
d) O controle de requisitos – projeto.
e) O foco na qualidade – processo.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27

Continue navegando