Instituto Federal de Minas Gerais Campus Ponte Nova Pra que serve a engenharia de Software??? Professor: Saulo Henrique Cabral Silva
O poder da informação... Atualmente a informação é um novo bem econômico A empresa que dispõe de mais informação esta em vantagem (necessidade) em relação as 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 de gerenciá-la... Sistemas de informação 4,4 zettabytes (ZiB) 1.000.000.000.000.000.000.000 de bytes. 2
Empresa que mais contrata nas grandes capitais??? 3
UBER 50.000 8.700.000 2.000.000.000 4
Empresa de mídia??? 5
Facebook 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
WhatsAPP 2016 $ 19.000.000.000 10
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 dar suporte e melhorar o processo de negócio de uma organização empresarial com relação as informações que nela fluem (provem vantagem para a empresa) 15
Engenharia de Software Engenharia de Software é uma área da computação voltada à especificação, desenvolvimento e manutenção de sistemas de software, com aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, visando a organização, produtividade e qualidade. O que vamos fazer hoje??? Tentaremos gerenciar um projeto de Software 16
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 atividades e metodologias de construção de um software. Pergunta: uma metodologia em engenharia de software precisa de ser seguida a risca??? (grande crítica a engenharia de software) O que vem a ser a palavra engenharia...??? 20
O que um modelo de processo... E para que usar??? Processo de software é uma metodologia para as atividades e metodologias de construção de um software. Pergunta: uma metodologia em engenharia de software precisa de ser seguida a risca??? ** Adapte-se ** 21
Quem realiza??? Engenheiros de software e Gerentes, adaptam o processo às suas necessidades. Os solicitantes do software tem o papel de desempenhar os testes 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 Lembrando que: Tudo isso depende de um planejamento da própria empresa (capital, tempo) Paralelo Metodologias Ágeis Scrum XP 24
Linear Requisitos Analise Projeto Codificação Testes Operação 25
Linear Requisitos Analise Projeto Codificação Testes Operação 26
Iterativo Requisitos Analise Projeto Codificação Testes Operação 27
Paralelo Requisitos Analise Projeto Codificação Testes Operação 28
Funcionalidade evolutivo Analise Projeto Requisitos Codificação Transição Testes Versão Versão Versão Tempo 29
Metodologia Ágil - XP Projeto simples cartões CRC Soluções pontuais protótipos Analise Projeto Refabricação Requisitos Codificação Transição Testes Programação em dupla Versão Testes de aceitação Teste de unidades integração contínua 30
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