Orientação a Objetos e UML Aula #3.1. EBS 211 POO e UML Prof. Luiz Fernando S. Coletta luizfsc@tupa.unesp.br Campus de Tupã
Orientação a Objetos e UML A crise do software (1970) 2
Orientação a Objetos e UML A crise do software (1970) Ao contrário de Softwares, pontes são sempre construídas no prazo e custos esperados e nunca caem, Alfred Spector (1986). 3
Orientação a Objetos e UML A crise do software (1970) Ao contrário de Softwares, pontes são sempre construídas no prazo e custos esperados e nunca caem, Alfred Spector (1986). Falha de Software no Ariane 5 (1996). http://www.bbc.com/portuguese/noticias/2015/05/150513_vert_fut_bug_digital_ml 4
Orientação a Objetos e UML CHAOS Report - Standish Group http://www.standishgroup.com/outline 5
Orientação a Objetos e UML 6
Orientação a Objetos e UML 7
Orientação a Objetos e UML Necessidade de planejamento! 8
Orientação a Objetos e UML Necessidade de planejamento! Surgimento da Engenharia de Software PRESSMAN, R. S. Engenharia de Software. São Paulo: Person/Makron Books, 2005. 9
Orientação a Objetos e UML Necessidade de planejamento! Surgimento da Engenharia de Software Tratamento sistemático e controlado da produção de Softwares PRESSMAN, R. S. Engenharia de Software. São Paulo: Person/Makron Books, 2005. 10
Orientação a Objetos e UML Qualidade de Software Para o usuário (Software como um produto) Correção: em concordância com a especificação de requisitos; 11
Orientação a Objetos e UML Qualidade de Software Para o usuário (Software como um produto) Correção: em concordância com a especificação de requisitos; Robustez: funciona corretamente em situações não típicas; 12
Orientação a Objetos e UML Qualidade de Software Para o usuário (Software como um produto) Correção: em concordância com a especificação de requisitos; Robustez: funciona corretamente em situações não típicas; Extensibilidade: fácil adaptação, inclusão/alteração de requisitos; 13
Orientação a Objetos e UML Qualidade de Software Para o usuário (Software como um produto) Correção: em concordância com a especificação de requisitos; Robustez: funciona corretamente em situações não típicas; Extensibilidade: fácil adaptação, inclusão/alteração de requisitos; Compatibilidade: fácil interação/combinação com outros softwares; 14
Orientação a Objetos e UML Qualidade de Software Para o usuário (Software como um produto) Correção: em concordância com a especificação de requisitos; Robustez: funciona corretamente em situações não típicas; Extensibilidade: fácil adaptação, inclusão/alteração de requisitos; Compatibilidade: fácil interação/combinação com outros softwares; Eficiência: bom uso de recursos (e.g., memória, processador); 15
Orientação a Objetos e UML Qualidade de Software Para o usuário (Software como um produto) Correção: em concordância com a especificação de requisitos; Robustez: funciona corretamente em situações não típicas; Extensibilidade: fácil adaptação, inclusão/alteração de requisitos; Compatibilidade: fácil interação/combinação com outros softwares; Eficiência: bom uso de recursos (e.g., memória, processador); Integridade: segurança dos dados e componentes; 16
Orientação a Objetos e UML Qualidade de Software Para o usuário (Software como um produto) Correção: em concordância com a especificação de requisitos; Robustez: funciona corretamente em situações não típicas; Extensibilidade: fácil adaptação, inclusão/alteração de requisitos; Compatibilidade: fácil interação/combinação com outros softwares; Eficiência: bom uso de recursos (e.g., memória, processador); Integridade: segurança dos dados e componentes; Facilidade de uso: fácil aprendizagem e utilização; 17
Orientação a Objetos e UML Qualidade de Software Para o programador (estrutura do Software) Modularidade: software constituído por várias partes (subprogramas) que organizadamente se interconectam para atingir os seus requisitos; 18
Orientação a Objetos e UML Qualidade de Software Para o programador (estrutura do Software) Modularidade: software constituído por várias partes (subprogramas) que organizadamente se interconectam para atingir os seus requisitos; Legibilidade: fácil leitura e entendimento do código; 19
Orientação a Objetos e UML Qualidade de Software Para o programador (estrutura do Software) Modularidade: software constituído por várias partes (subprogramas) que organizadamente se interconectam para atingir os seus requisitos; Legibilidade: fácil leitura e entendimento do código; Manutenibilidade: fácil correção, alteração e inclusão de requisitos; 20
Orientação a Objetos e UML Qualidade de Software Para o programador (estrutura do Software) Modularidade: software constituído por várias partes (subprogramas) que organizadamente se interconectam para atingir os seus requisitos; Legibilidade: fácil leitura e entendimento do código; Manutenibilidade: fácil correção, alteração e inclusão de requisitos; O paradigma de Programação Orientada a Objetos (POO) facilita atingir estas características...aguarde cenas dos próximos capítulos! 21
Exercício 3 Leitura, entendimento e resumo do Capítulo 1 do Pressman, R. S. Engenharia de Software. Entregar até o dia 22/8, às 23:59hr, via e-mail (luizfsc@tupa.unesp.br). Título da mensagem Exercício 3 POO-UML. 22
Motivações e avanços
Motivações e avanços Speech To Text Economia de tempo para transcrições Mercado corporativo e de agronegócio, sessões judiciais, monitoramento de mídias, material de aulas e adaptação para deficientes auditivos. 24
Motivações e avanços Speech To Text Economia de tempo para transcrições Mercado corporativo e de agronegócio, sessões judiciais, monitoramento de mídias, material de aulas e adaptação para deficientes auditivos. Business Intelligence Predições para a tomada de decisões "Cultivar soja será economicamente viável no próximo ano?"; "Quantos clientes estão propensos a desistirem de nosso serviço" (Churn Prediction). 25
Motivações e avanços Speech To Text Economia de tempo para transcrições Mercado corporativo e de agronegócio, sessões judiciais, monitoramento de mídias, material de aulas e adaptação para deficientes auditivos. Business Intelligence Predições para a tomada de decisões "Cultivar soja será economicamente viável no próximo ano?"; "Quantos clientes estão propensos a desistirem de nosso serviço" (Churn Prediction). Mineração de textos Análise da espacialização de notícias agrícolas (EMBRAPA). 26
Motivações e avanços Análise de Sentimentos Identificar: Opiniões; Emoções; Atitudes. 27
Motivações Internet das Coisas e Wearables Óculos, relógios inteligentes Dispositivos para meio de pagamento (substituição de moedas e células, bitcoin) 28
Motivações Internet das Coisas e Wearables Óculos, relógios inteligentes Dispositivos para meio de pagamento (substituição de moedas e células, bitcoin) Veículos Autônomos CaRINA (Carro Robótico Inteligente para Navegação Autônoma) Laboratório de Robótica Móvel (ICMC/USP - São Carlos) http://lrm.icmc.usp.br/web/index.php?n=port.pesquisa 29
Motivações e avanços Redes Neurais Artificiais para identificação de vias Mendes, C. C. T., Frémont, V., & Wolf, D. F. (2016, May). Exploiting Fully Convolutional Networks for Fast Road Detection. In 2016 IEEE International Conference on Robotics and Automation (ICRA). 30
Motivações e avanços Redes Neurais Artificiais para identificação de vias Detecção de comportamento em vídeos Anormalidades, monitoramento de segurança, para idosos, pacientes, etc. Mendes, C. C. T., Frémont, V., & Wolf, D. F. (2016, May). Exploiting Fully Convolutional Networks for Fast Road Detection. In 2016 IEEE International Conference on Robotics and Automation (ICRA). Mahadevan, V., Li, W., Bhalodia, V., & Vasconcelos, N. (2010, June). Anomaly detection in crowded scenes. In Computer Vision and Pattern Recognition (CVPR), 2010 IEEE Conference on (pp. 1975-1981). IEEE. 31
Motivações e avanços Robótica e Inteligência Artificial http://g1.globo.com/sp/campinas-regiao/noticia/2016/07/alunosda-unicamp-conquistam-1-lugar-em-competicao-de-robotica.html 32
Motivações e avanços Robótica e Inteligência Artificial Trator Autônomo http://g1.globo.com/sp/campinas-regiao/noticia/2016/07/alunosda-unicamp-conquistam-1-lugar-em-competicao-de-robotica.html http://www.unibots.com/hako.htm 33
Motivações e avanços Inteligência Artificial Agricultura de Precisão Sistema de irrigação inteligente 34
Motivações e avanços Inteligência Artificial Agricultura de Precisão Sistema de irrigação inteligente Inteligência embarcada, automação e rede de sensores Mapeamento de solos e variáveis meteorológicas 35
Motivações e avanços Sensoriamento Remoto, Big Data e Drones Sistema de Informação Georreferenciada (SIG) Monitoramento de desmatamentos, cobertura vegetal, pastagens (EMBRAPA) Amazônia Legal Brasileira (EMBRAPA/INPE) Detecção de doenças, pragas, falhas de plantio, gramíneas. 36
Motivações e avanços Classificação de pragas/doenças Deep Learning Alta capacidade de identificar padrões em vídeos e imagens Souza, J. R., Mendes, C. C., Guizilini, V., Vivaldini, K. C., Colturato, A., Ramos, F., & Wolf, D. F. (2015, May). Automatic detection of Ceratocystis wilt in Eucalyptus crops from aerial images. In 2015 IEEE International Conference on Robotics and Automation (ICRA) (pp. 3443-3448). IEEE.
Motivações e avanços Detecção de doenças em folhas: Descritores de Imagens Taxa de acerto acima de 98% Classificador (K-NN)
Motivações e avanços Bioinformática Tecnologias para análises e avanços no sequenciamento de DNA Prospecção de genes que afetam características de interesse nos indivíduos; Melhoramento do desempenho produtivo e reprodutivo dos animais. 39
Motivações e avanços Bioinformática Tecnologias para análises e avanços no sequenciamento de DNA Prospecção de genes que afetam características de interesse nos indivíduos; Melhoramento do desempenho produtivo e reprodutivo dos animais. Mudanças Climáticas Análise de tendências (Data Streams) Sistemas computacionais para projeções futuras (INPE). Avaliação da economia agropecuária em regiões específicas Integração de sistemas de produção, políticas públicas e cenários de mitigação de gases do efeito estufa (EMBRAPA). 40
Exercício 4 Desenvolver um programa em C que atendam os requisitos do cliente: Requisitos Funcionais 1) O sistema deve permitir abrir uma venda inserindo um número de venda e o nome do cliente. 2) O sistema deve permitir o cadastro de todos os produtos comprados pelo cliente. 3) Para cada produto comprado, o sistema deve armazenar a sua descrição, quantidade e preço. 4) Como saída, o sistema deve fornecer uma descrição com o nome do cliente, o número da venda e o seu valor total. 41
Exercício 4 Mockup (esboço) do programa solicitado ************************* *** ABERTURA DE VENDA *** ************************* Digite o número da venda: 123 Digite o nome do cliente: Rubens Digite a descrição do produto 1: Café Digite a quantidade desse item: 3 Digite o preço desse item: 8.55 Deseja incluir outro produto? (1:sim; 2:não): 2 ******************************************************** -> O valor total da venda 123 para Rubens é de R$: 25.65 ******************************************************** 42
Próxima aula: Dia 29/8 Sala 1 Prof. Luiz Fernando S. Coletta luizfsc@tupa.unesp.br Campus de Tupã