Engenharia de Software
Competência: Compreender a
importância do software e da
engenharia de Software
Agenda
•
•
•
•
O que é Software?
Papel evolutivo do Software.
Características do Software.
Aplicações de Software.
O que é Software?
• Software de computador é o produto que
os engenheiros de software projetam e
constroem.
• Abrangem programas que executam em
computadores de qualquer tamanho e
arquitetura, documentos que incluem
formas impressas e virtuais e dados que
combinam números e texto, mas também
incluem em representações de informação
em figuras, em vídeo e em áudio.
Por que é importante?
• Por que afeta praticamente todos os
aspectos de nossas vidas e tornou-se
difundido no nosso comércio, na nossa
cultura e nas nossas atividades do dia a
dia.
Quais são os passos?
• Você constrói software de Computador
como constrói qualquer outro produto
bem-sucedido, aplicando um processo
que leva a um resultado de alta qualidade,
que satisfaz as necessidades das pessoas
que vão usar o produto.
Qual é o produto do trabalho?
• Do ponto de vista do engenheiro de
software, o produto do trabalho é o
conjunto de programas, documentos e
dados que compõem um software de
computador.
• Mas do ponto de vista do usuário o
produto do trabalho é a informação
resultante, que de alguma forma torna
melhor o mundo do usuário.
Papel evolutivo do Software
• Hoje em dia o software assume um duplo
papel.
• Ele é produto e, ao mesmo tempo, o
veículo para a entrega do produto.
Papel Evolutivo do Software
• Como produto ele disponibiliza o potencial de
computação presente no computador, ou mais
amplamente, numa rede de computadores
acessível pelo hardware local.
• O software é um transformador de informação –
produzindo, gerando, adquirindo, modificando,
exibindo, ou transmitindo a informação, que
pode ser tão simples como um único bit ou tão
complexa como uma apresentação em
multimídia.
Papel Evolutivo do Software
• Como veículo usado para a entrega do
produto, o software age como uma base
para controle do computador (sistemas
operacionais), para a comunicação da
informação (redes) e para a criação e o
controle de outros programas
(ferramentas e ambientes de software).
Papel Evolutivo do Software
• O software entrega o mais importante produto
da nossa época – A Informação.
• O software transforma dados pessoais (p. ex: as
transações financeiras de uma pessoa) de
modo que possam ser mais úteis em
determinado contexto;
• Gera informação comercial para melhorar a
competitividade;
• Fornece um portal para as redes de informação
de âmbito mundial (ex:Internet) e proporciona os
meios para obter informação em todas as
formas.
Papel Evolutivo do Software
• A importância do software de computadores tem
passado por mudanças significativas em pouco mais de
50 anos:
– Melhora surpreendente no desempenho do hardware;
– Profundas modificações na arquitetura de computadores,
aumento significativo na memória e na capacidade de
armazenamento
– Variedade de opções incomuns de entrada e saída.
• Isso tudo tornou os sistemas baseados em computador
mais sofisticados e complexos.
• Sofisticação e complexidade podem produzir magníficos
resultados quando um sistema é bem-sucedido, mas
também pode causar enormes problemas para quem
precisa construir sistemas complexos.
Papel Evolutivo do Software.
• O programador solitário de antigamente foi
substituído por uma equipe de especialistas em
software, com cada um se concentrando numa
parte da tecnologia necessária para produzir
uma aplicação complexa.
• Porem os mesmos questionamentos feitos ao
programador solitário estão sendo feitos quando
modernos sistemas baseados em computador
são construídos:
Papel Evolutivo do Software
• Por que leva tanto tempo para concluir um software?
• Por que os custos de desenvolvimento são tão altos?
• Por que não podemos achar todos os erros antes de
entregar o software aos clientes?
• Por que continuamos a ter dificuldade em avaliar o
progresso enquanto o software é desenvolvido?
Essas, e muitas outras perguntas, são uma
manifestação da preocupação sobre o software e a
maneira pela qual ele é desenvolvido – preocupação
que leva a adoção da prática de engenharia de software.
Características do Software
•
O Software é um elemento de um sistema
lógico e não de um sistema físico. Assim, o
software tem características que são
consideravelmente diferentes daquelas do
hardware.
1. O software é desenvolvido, ou passa por um
processo de engenharia, não é manufaturado no
sentido clássico.
2. O Software não “se desgasta”.
3. Apesar da industria estar se movendo em direção a
montagem baseada em componentes, a maior
parte de software continua a ser construída sob
encomenda.
Aplicações de Software
• Software de Sistemas. É uma coleção de
programas escritos para servir outros
programas.
– Exemplos: Compiladores, Utilitários para
gestão de arquivos, componentes de
sistemas operacionais, acionadores e
processadores de telecomunicações,
compartilhamento de recursos.
Aplicações de Software
• Software de Tempo Real.
– Software que monitora/analisa/controla
eventos do mundo real à medida que eles
ocorrem é chamado de tempo real.
– Resposta tipicamente varia entre 1
milissegundo a 1 segundo.
Aplicações de Software
• Software Comercial: Processamento de
informação comercial é a maior área de
aplicação do software.
– Exemplo: Folha de pagamento, Contas a
pagar/receber,controle de estoque,
processamento de transações de ponto de
venda
Aplicações de Software
• Software Científico e de engenharia.
– Tem sido caracterizado por algoritmos que
processam números. As aplicações vão da
astronomia à vulcanologia, da análise
automotiva de tensões à dinâmica orbital do
ônibus espacial e da biologia molecular à
manufatura automatizada.
Aplicações de Software
• Software Embutido:
– Software embutido reside situado nas
memórias ROM leitura simples e é usado
para controlar produtos e sistemas para o
mercado consumidor e industrial. O software
embutido pode realizar funções muito
limitadas e particulares (p. ex: controle de
teclado par o forno de microondas).
Aplicações de Software
• Software para computadores pessoais:
– Processadores de texto, Planilhas, aplicações
gráficas, multimídia, diversão, gestão de
bases de dados, aplicações financeiras
pessoais e comerciais.
Aplicações de Software
• Software para Web.
– As páginas da web recuperadas por um
browser constituem software que incorpora
instruções executáveis (CGI, HTML, Java) e
dados (P. ex: Hipertexto e uma variedade de
formatos visuais e de aúdio).
– A rede se transforma em um grande
computador que fornece um recurso quase
ilimitado de software, que pode ser acessado
por qualquer um que tenha um modem.
Download

Engenharia de Software