Anda di halaman 1dari 42

Engenharia de Sistemas/Software

Importncia do Software:

A economia de todos pases dependem do uso de software


(Bovespa, NASDAQ...)

O emprego de software est se expandindo de forma crescente


(celulares, carros, eletrodomsticos, casa inteligente...)

Cada vez mais, o controle dos processos tem sido feito por
software

Atualmente, os custos de software superam os custos de


hardware

A manuteno de software onde se tem os maiores gastos,


principalmente em sistemas de vida longa.

Engenharia de Sistemas/Software
Tipos de Software:
Softwares de tempo real (Ex: controle de trfego,
injeo eletrnica, ...)

Softwares embarcados (Ex: roteador, carro, ...)

Engenharia de Sistemas/Software
Tipos de Software:
Softwares cientficos (Ex: CAD, CAE, CAM...)

Softwares para a Web

Engenharia de Sistemas/Software

Tipos de Software:
Softwares legados: os que j existem na empresa e
ficaro ativos (ou no) na implantao de novos
softwares

Engenharia de Sistemas/Software
Uma classificao:
Software Proprietrio

Software Livre

Engenharia de Sistemas/Software
Software Livre
Liberdade para usar, modificar e distribuir
Copyleft: autor abre mo dos direitos
No necessariamente gratuito
Negcio: indireto (venda de treinamento, suporte, alavancagem
de vendas para outros produtos, etc.)
Todo e qualquer programa de computador cuja licena de direito de
autor conceda ao utilizados as seguintes 4 liberdades

Engenharia de Sistemas/Software
Software Livre
Todo e qualquer programa de computador cuja licena de direito de
autor conceda ao utilizados as seguintes 4 liberdades:
Liberdade 0: A Liberdade para executar o software, seja qual for a sua
finalidade;
Liberdade 1: A liberdade de estudar como o programa funciona, e
adapt-lo para as suas necessidades. Acesso ao cdigo-fonte um prrequisito para esta liberdade;
Liberdade 2: A liberdade de redistribuir cpias disponibilizando para
quem desejar;
Liberdade 3: A liberdade de aperfeioar o programa, e liberar os seus
aperfeioamentos, de modo que toda a comunidade se beneficie.
Acesso ao cdigo-fonte um pr-requisito para esta liberdade;

Engenharia de Sistemas/Software
Software Livre
Vantagens:

No se fica refm de tecnologia proprietria;

Independncia de fornecedor nico;

Desembolso inicial prximo de zero;

Desvantagens

Interface de usurio no uniforme nos aplicativos;

Instalao e configurao pode ser difcil; e

Mo de obra escassa e/ou custosa para desenvolvimento e/ou


suporte.

Engenharia de Sistemas/Software

Outra classificao:
Software Bsico
Software Utilitrio
Software Aplicativo
Software para Programao

Engenharia de Sistemas/Software
Carreiras na rea de TI
Administrador de Banco de Dados
Administrador de Redes
Analista de Sistemas
Analista de Suporte
Analista de Segurana
Analista de Negcios
Programador

Engenharia de Sistemas/Software
Carreiras na rea de TI
Administrador de Banco de Dados
Atividades:

Gerencia o ambiente do Banco de Dados: Performance, Backup


(recuperabilidade de dados) e integridade dos dados;

Controle de acesso aos dados perfis de usurios: quem pode


acessar, o que pode acessar e quando possa acessar;

Garantir o acesso ao banco de dados no maior tempo possvel;

Auxiliar a equipe de desenvolvimento e a equipe de testes a


maximizar o uso e desempenho do banco de dados.

Engenharia de Sistemas/Software
Carreiras na rea de TI
Administrador de Redes
Atividades:

Instalao e ampliao da rede local e configurao de gateways

Controlar e acompanhar a performance da rede local e subredes;

Manter atualizado os dados relativos aos servidores de rede


(aplicaes, dados, DNS) de outros equipamentos da rede local
(switches e firewalls);

Garantir a integridade e acesso adequado das informaes sob


seu gerenciamento,;

Verificar ocorrncias de infraes de segurana;

Engenharia de Sistemas/Software
Carreiras na rea de TI
Analista de Sistemas
Atividades:

Administrao do fluxo de informaes geradas e distribudas por


redes de computadores dentro de uma organizao;

Planejamento e organizao do processamento,


armazenamento, recuperao e disponibilidade das informaes;

Suporte aos usurios de seus sistemas;

Gesto de projetos;

Levantamento de requisitos, anlise, especificao, projeto do


sistema, programao, testes, homologao, implantao e
acompanhamento dos sistemas solicitados por seus usurios;

Engenharia de Sistemas/Software
Carreiras na rea de TI
Analista de Suporte
Atividades:

Instalar e manter os diversos equipamentos de TI junto aos


usurios;

Instalar e manter atualizados nas estaes de trabalho: sistemas


operacionais; utilitrios (antivrus,...) e softwares homologados da
rea de TI;

Instalar e manter a comunicao digital (correio eletrnico, WEB,


FTP, VPN, etc.);

Suporte aos usurios da empresa ou organizao;

Engenharia de Sistemas/Software
Carreiras na rea de TI
Analista de Segurana
Atividades:

Projeto e manuteno do esquema de segurana da rede,


equipamentos (acesso fsico) e dos dados (acesso noautorizado) das estaes de trabalho e servidores;

Prope, implementa e monitora a poltica de segurana dos


recursos de TI;

Configurao, monitoramento e manuteno da segurana de


rede e trfego de dados;

Conhecimento de protocolos tpicos de redes (TCP/IP), interredes (Frame Relay, X25, ATM, etc.) e configurao de firewalls;

Engenharia de Sistemas/Software
Carreiras na rea de TI
Analista de Negcios
Atividades:

Colabora na orientao, objetivos e macroprocessos de negcio;

Analisa aspectos tcnicos dos requisitos e especificaes para


satisfazer s necessidades de negcio;

Define, modela e detalha processos, procedimentos, etapas e


passos

Define e analisa a implementao do modelo de negcio por


meio de polticas e diretrizes da organizao;

Engenharia de Sistemas/Software
Carreiras na rea de TI
Programador
Atividades:

Entender as especificaes (projeto lgico e fsico) do sistema,


interagindo com o analista de sistemas;

Codificar as especificaes em linguagem especfica;

Auxiliar nos testes do sistema junto com o analista responsvel e


auxiliar nas possveis adequaes do sistema;

Promover, junto com o analista, a eficincia do sistema;

Engenharia de Sistemas/Software

Modelos de Desenvolvimento ou Ciclo de Vida de um


Software:
Modelo Clssico (ou em Cascata)
Prototipagem (ou Prototipao)
Modelo Espiral
Modelo Incremental
Modelo RAD

Engenharia de Sistemas/Software
Modelo Cascata (Waterfall)
Este o modelo mais antigo mas ainda o mais usado;
Segue uma sequncia linear;

Engenharia de Sistemas/Software
Modelo Cascata (Waterfall)
Engenharia de Sistemas:
Quem realiza: Diretoria TI e Diretorias Usurias
Viso macro do projeto:
Sistema novo ou substituio de sistema?
Necessidades de Hardware:
Rede: novos pontos, servidor, storage, switches,
pontos de wi-fi...
Estaes de trabalho: micros, impressoras,
multifuncionais, coletores de dados, ...
Necessidades de Software:
Banco de Dados
Softwares para servidor e estaes de trabalho

Engenharia de Sistemas/Software
Modelo Cascata (Waterfall)
Anlise:
Quem realiza: Gerente de Projeto e Analistas
Negcios/Sistemas
Levantamento de requisitos
Domnio da informao:
Quais as reas usurias? (internas e externas)
Com quais sistemas atuais o novo sistema dever
interagir?
Desempenho (SLA) e interfaces exigidos
Informaes documentadas e revistas com o cliente

Engenharia de Sistemas/Software
Modelo Cascata (Waterfall)
Projeto:
Quem realiza: Analista de Sistemas, DBA, Gerente de
Projetos
Modelo Lgico :
Fluxos: Diagrama de Contexto, DFD, DER, UML ...
Modelagem completa de procedimentos e dados
Verificao se todos os requisitos previstos, na fase anterior,
foram atendidos
Informaes documentadas e revistas com o cliente

Engenharia de Sistemas/Software
Modelo Cascata (Waterfall)
Codificao:
Quem realiza: Analistas de Sistemas e Programadores
Quando o Analista no for o Programador, ambos tem de
interagir constantemente
Pode envolver uma fbrica de software
Quanto melhor for a especificao nas fases anteriores
(Anlise e Projeto), mais eficaz e rpida ser esta fase

Engenharia de Sistemas/Software
Modelo Cascata (Waterfall)
Testes:
Quem realiza: Analistas e Programadores envolvendo os
usurios
Em muitos casos existe o momento de homologao, quando
se registra formalmente o aceite por parte dos usurios junto
aos desenvolvedores
Atualmente existem metodologias especficas para testes de
sistemas

Engenharia de Sistemas/Software
Modelo Cascata (Waterfall)
Manuteno:
Quem realiza: rea de TI (Analistas e Programadores )
Normalmente todo software sofre manuteno, depois que for
entregue ao cliente (usurio interno ou externo)
Razes de manuteno:
Erros encontrados
Mudanas internas: novo sistema operacional, novos
perifricos (coletores) ou mudanas funcionais na
empresa que exijam novas funcionalidades

Engenharia de Sistemas/Software
Modelo Cascata
Vantagens:
Oferece uma maneira de tornar o processo mais visvel;
Facilita o planejamento e gerenciamento;

Desvantagens:
Projetos reais raramente seguem o fluxo
sequencial;
Difcil para o cliente especificar todos os requisitos
num projeto novo
Os requisitos se alteram durante o projeto;

Engenharia de Sistemas/Software

Prototipao
O objetivo entender os requisitos do usurio;
Possibilita que o desenvolvedor crie um modelo
(prottipo)do software que deve ser construdo, podendo
ser no papel ou executvel;
O usurio pode ter uma ideia prxima do que vai ser o
sistema quando estiver pronto;

Engenharia de Sistemas/Software

Prototipao
Vantagens:
Prottipos contribuem para melhorar especificao
dos requisitos;
Partes do prottipo podem vir a ser usadas no
desenvolvimento do sistema final;

Engenharia de Sistemas/Software

Prototipao
Desvantagens:
Custo elevado;
Pode causar atraso no desenvolvimento, pois a cada
novo prottipo o usurio pode querer mais
aprimoramentos;

Engenharia de Sistemas/Software

Modelo Espiral
Foi criado visando abranger as melhores caractersticas do
modelo clssico e da prototipagem;
Dividido em quatro fases: planejamento, anlise dos riscos,
engenharia e avaliao do cliente;
Essas fases so repetidas varias vezes;

Engenharia de Sistemas/Software
Modelo Espiral

Engenharia de Sistemas/Software
Modelo Espiral
Vantagens:
Possibilidade de melhorar o sistema a cada iterao;
Diminui manuteno;

Engenharia de Sistemas/Software
Modelo Espiral
Desvantagens:
Modelo relativamente novo;
Modelo mais complexo;

Engenharia de Sistemas/Software
Modelo Incremental
Combinao entre os modelos linear e prototipao;
O desenvolvimento dividido em etapas, denominadas
incrementos;
Em cada incremento realizado todo o ciclo do
desenvolvimento de software (anlise, projeto, codificao e
teste);
Cada etapa produz um sistema totalmente funcional;

Engenharia de Sistemas/Software
Modelo Incremental

Engenharia de Sistemas/Software
Modelo Incremental
Vantagens:
Existe um risco menor de fracasso do software.;
Reduz a chance de mudana de requisito;

Reduo dos riscos envolvendo custos a um nico


incremento

Engenharia de Sistemas/Software
Modelo Incremental
Desvantagens:

Dificuldade de gerenciamento porque as fases do


ciclo podem estar ocorrendo de forma simultnea;
O software pode ser entregue ao usurio tarde
demais

Engenharia de Sistemas/Software
Modelo RAD
RAD ( Rapid Application Development) um modelo enfatiza
um ciclo de desenvolvimento curto;
Construo baseada em componentes;
O modelo RAD usado principalmente para aplicaes de
sistema de informao;

Engenharia de Sistemas/Software

Engenharia de Sistemas/Software
Modelo RAD
Vantagens
Baseado em componentes (quanto menos se programa,
menos se erra);
Pode ser desenvolvido em vrias equipes;
Reduo do tempo de desenvolvimento;

Engenharia de Sistemas/Software
Modelo RAD
Desvantagens
necessrio desenvolvedor e cliente comprometidos;
No apropriado para qualquer aplicao;
A reutilizao de componentes no garante a eficincia
do cdigo;

Engenharia de Sistemas/Software

Para a escolha de um modelo de processo de desenvolvimento


de software:
Considerar que cada projeto tem caractersticas diferentes
A natureza do projeto e da aplicao
Mtodos e ferramentas a serem utilizados
Controles e produtos a serem entregues