Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
Pra que serve a engenharia de Software???
Professor: Saulo Henrique Cabral Silva
Instituto Federal de Minas GeraisCampus Ponte Nova
O poder da informação....
• Atualmente a informação é um novo bem econômico A empresa quedispõe de mais informação esta em vantagem (necessidade) em relaçãoas suas competidoras
• Sobre o seu processo• Sobre os seus clientes• Sobre tendências• Logística• Saúde• Segurança
• Há um ditado que diz que: “A necessidade é a mãe das invenções”.– Organização– Otimização
• Com a informação veio a necessidade degerenciá-la...– Sistemas de informação
2
4,4 zettabytes (ZiB)1.000.000.000.000.000.000.000 de bytes.
Empresa que mais contrata nas grandes capitais ???
3
UBER
• 50.000
• 8.700.000
• 2.000.000.000
4
Empresa de mídia ???
5
• 2.000.000.000
• Lucro Liquido– 3.000.000.000
• 50 minutos / dia
6
Concorrente de Empresas de Hospedagem???
7
AirBNB
8
Concorrente das telefonias
9
10
2016
$ 19.000.000.000
Concorrente das emissoras ???
11
Youtube
• 2.500.000.000 por dia
• $ 3.500.000.000
• R$ 0,15 a R$ 0,40– por visualização
12
Concorrente de Sky, Net, ... ???
13
Netflix
• 93.000.000 de assinantes
• $ 8.830.000.000 de receita– $ 186.000 de lucro
14
Sistema de Informação
• Um Sistema de informação:– Envolve pessoas– Processos– Padrões– Tempo– Custo– Riscos– Tecnologias– Dados– Redes de comunicação
• Todas essas características ainda se interagem com objetivo de darsuporte e melhorar o processo de negócio de uma organizaçãoempresarial com relação as informações que nela fluem (provemvantagem para a empresa)
15
Engenharia de Software
• Engenharia de Software é uma área da computação voltada àespecificação, desenvolvimento e manutenção de sistemasde software, com aplicação de tecnologias e práticas degerência de projetos e outras disciplinas, visando aorganização, produtividade e qualidade.
16
O que vamos fazer hoje???
Tentaremos gerenciar um projeto de Software
Processo de software
17
Análise de um observador externo...
18
PROCESSO DE SOFTWARE
19
O que um modelo de processo... E para que usar ???
• Processo de software é uma metodologia para as atividadese metodologias de construção de um software.
• Pergunta: uma metodologia em engenharia de softwareprecisa de ser seguida a risca??? (grande crítica a engenharia de software)
20
O que vem a ser a palavra engenharia...???
O que um modelo de processo... E para que usar ???
• Processo de software é uma metodologia para as atividadese metodologias de construção de um software.
• Pergunta: uma metodologia em engenharia de softwareprecisa de ser seguida a risca???
21
** Adapte-se **
Quem realiza???
• Engenheiros de software e Gerentes, adaptam o processo àssuas necessidades.
• Os solicitantes do software tem o papel de desempenhar ostestes do software e participar de etapas da construção.
22
TIPOS DE PROCESSOS DE SOFTWARE
23
Tipos de processos de software
• Linear– Cascata
• Iterativo
• Evolucionário– Espiral– Prototipação
• Paralelo
• Metodologias Ágeis– Scrum– XP
24
Lembrando que: Tudo issodepende de um planejamentoda própria empresa (capital,tempo)
Linear
25
Requisitos
Analise
Projeto
Codificação
Testes
Operação
Linear
26
Requisitos
Analise
Projeto
Codificação
Testes
Operação
Iterativo
27
Requisitos
Analise
Projeto
Codificação
Testes
Operação
Paralelo
28
Requisitos Analise
Projeto
Codificação
Testes
Operação
evolutivo
29
Requisitos
Analise Projeto
Codificação
TestesTransição
Versão
Versão
Versão
Tempo
Fun
cio
nal
idad
e
Metodologia Ágil - XP
30
Requisitos
Analise Projeto
Codificação
TestesTransição
Refabricação
Projeto simples cartões CRC
Soluções pontuais protótipos
Programação em dupla
Teste de unidades integração contínua
Testes de aceitação
Versão
Metodologia Ágil - Scrum
31
Software X Hardware
32
É importante saber desenvolver Software é diferente de Fabricar Hardware
33
Modelagem de um sistema de software
34
Modelagem de um sistema de Software
• Muito complexo.
• É necessário muito planejamento, podemos aqui fazer um paralelo com a engenharia civil.
–Planta elétrica
–Planta hidráulica
–Projeto arquitetônico
–Planta baixa
35
Vantagens do uso de modelos no desenvolvimento de Sistemas de Software
• Gerenciamento de complexidade: Auxilia na visualização de detalhes em todas as esferas do sistema (avião – fuselagem, elétrico,...)
• Comunicação entre as pessoas envolvidas: difusão de informações entre os indivíduos (ponto de referência)
• Redução de custo no desenvolvimento: – Redução de erros durante o desenvolvimento.
– Predição de comportamento.
– pode ser discutido através de modelos.
36
Modelos que iremos abordar na disciplina...
• Levantamento de requisitos
• Modelagem de casos de uso
• Modelagem de classes
• Modelagem de iterações
• Especificações de classes, propriedades e associações
37