Escolar Documentos
Profissional Documentos
Cultura Documentos
Conteúdo aula 1
O software e suas características;
A evolução dos sistemas de software;
Os tipos de sistemas de software;
A engenharia de software;
Apresentação deste curso;
1
O Software e suas caracterí
características
Índice de falhas: curvas teóricas
Índice
de
falhas Hardware Software
tempo tempo
Abstrato e parcial:
Para reduzir a complexidade, eles modelam apenas uma
parte da realidade (de um sistema).
2
O Software e suas caracterí
características
Diferente de outras coisas que as pessoas
constroem....
Flexível (mais do que o hardware):
Muitas vezes as limitações inesperadas do hardware dão
origem a requisitos de última hora para o software. Os
engenheiros de software são chamados a aumentar as
funções do software sem aumentar o custo do hardware...
Muitas falhas no software resultam de sua função de
acomodação na mudança das exigências do sistema
técnico ou sócio-técnico.
A evoluç
evolução dos sistemas de software
Quatro ou mais gerações...
A evoluç
evolução dos sistemas de software
Primeira Geração (desde
1950):
Software sob medida
(customizado) com distribuição
limitada;
Processamentos em Batch;
Desenvolvidos sem técnicas de
engenharia (programação arte);
Programador-usuário (sistemas
sem documentação);
Muita evolução da ciência
pouca da técnica;
3
A evoluç
evolução dos sistemas de software
Segunda Geração (desde a
metade dos anos 60):
Sistemas multiusuário;
Evolução de técnicas de
interação com o usuário:
Sistemas em tempo real;
Sistemas de gerenciamento de
banco de dados;
Surgimento das software-
houses e dos pacotes de
software:
Evolução de técnicas de
manutenção;
A evoluç
evolução dos sistemas de software
Terceira Geração: (desde 1980):
Sistemas distribuídos: redes
locais e globais;
Comunicações digitais; acesso
instantâneo a base de dados;
Inteligência embutida: sistemas
especialistas;
Software embarcado; Integração
da informática com outras
tecnologias (automóveis,
eletrodomésticos, bens de
capital,....);
Crescimento de empresas de
software, que vendem
diferenciação...
A evoluç
evolução dos sistemas de software
Quarta Geração: (desde o
final dos anos 80)
Disseminação de sistemas
baseados em redes neurais e
algoritmos genéticos para
reconhecimento de padrões,
aprendizado e processamento
parecidos com os humanos;
Orientação a Objetos;
Linguagens de quarta
geração (linguagens
específicas a um domínio
(DSL));
Computação paralela;
4
A evoluç
evolução dos sistemas de software
Já faz tempo que a indústria
do software ultrapassou a do
hardware em cifras de
negócios.
O software é visto hoje como
fator de diferenciação para
empresas e instituições.
Ele tem a capacidade de aliar
em um só dispositivo....
Inteligência;
Funcionalidade;
Facilidade de uso;
Desempenho, etc...
Software Aplicado:
-Software comercial (folhas de pagamentos, contas a
pagar e a receber, estoques, etc. ),
- Software de controle em tempo real
(monitora/analisa/controla eventos do mundo real, coleta
de dados);
- Software gerencial (SIG - sistemas de informação
gerencial, SAD -sistemas de apoio a tomada de decisão);
5
Tipos de sistemas de software
Software comercializado
Software produto
Baratos e obtidos rapidamente;
Qualidade suspeita
Critérios de qualidade imaturos;
6
Problemas de Qualidade do software
Baixa produtividade
A produtividade não acompanha a demanda;
O emprego de técnicas de engenharia de software aliado ao emprego
de ferramentas CASE (Computer Aided Software Engineering) é
insuficiente;
Na maior parte dos casos o software tem sido refeito repetidas
vezes e não a partir de componentes reutilizáveis. Os catálogos de
componentes de software prontos são muito pouco utilizados.
Estimativas incorretas
As estimativas de tempo e de custo de desenvolvimento são muito
imprecisas;
Com poucos dados históricos sobre o processo de desenvolvimento
as estimativas só podem ser ruins;
Mitos e realidades
A descrição geral dos objetivos é suficiente para
começar a escrever programas;
A visão incompleta ou incorreta dos requisitos é a principal
causa de fracasso no desenvolvimento do software.
Se o cronograma atrasar basta aumentar a equipe de
desenvolvimento;
Pode atrasar mais ainda devido a necessidade de
treinamento e comunicação;
A meta do desenvolvimento é um programa que
funcione;
A documentação e medidas históricas estão na base de
desenvolvimentos bem sucedidos!
7
Qualidade do software hoje
As coisas melhoraram nas últimas décadas, mesmo
que orçamentos, prazos e requisitos continuem
sendo desrespeitados...
Os recursos e o ciclo de vida são cada vez mais apertados
enquanto que as exigências (convergência digital) são
cada vez maiores.
Engenharia de software
Conjunto de teorias, métodos e ferramentas
necessárias para o desenvolvimento de software
com qualidade e produtividade.
Surgiu na década de 60 como reação à crise do software
que se assentou com o surgimento de sistemas de
terceira geração (distribuídos, embarcados, de
comunicação, inteligentes, ...) cada vez maiores e
complexos..
Os orçamentos estouravam, os prazos não eram
compridos e os requisitos não eram respeitados ...
Engenharia de software
MMétodos:
todos descrições sobre como proceder frente a um
amplo conjunto de atividades: planejamento; análise de
requisitos; concepção e projeto; implementação;
codificação; testes e manutenção (RUP);
TTécnicas:
cnicas são procedimentos definidos no âmbito de
uma etapa de um método; definem uma seqüência de
atividades, os produtos a serem entregues, os controles
que ajudam a assegurar a qualidade, etc... (OMT, SADT,
testes de interação, etc...)
Ferramentas:
Ferramentas apoio aos métodos e técnicas. Podem ser
Ferramentas
informatizados (CASE) ou não, como no caso de
formalismos, modelos, conhecimentos, etc.
8
Este curso de engenharia de software
Conteúdos
Introdução
Visão geral da Qualidade de Software
Qualidade do Processo: Normas ISO 9000, 15504, 12207, CMMI
Qualidade do Produto: Normas ISO 25000 (9126) e 9241
Qualidades do Produto
Modularização e Reutilização; arquiteturas, padrões de projeto, componentes;
Ergonomia do software e usabilidade;
Qualidades do Processo
Paradigmas para o ciclo de vida e o processo unificado;
Gestão do projeto: estimativas, riscos;
Engenharia de requisitos;
Projeto de IHC – Interfaces Humano-Computador
Processo de testes;
Controle de configuração;
Manutenção e o controle de alterações;
Fábrica de Software;
Automação do processo: Ferramentas CASE
Sistema de Avaliação
Provas : 60%
Atividades : 20%
Seminários: 20%
Este curso de
engenharia de
software
Programa
de aulas