O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Introdução à Engenharia de Software

188 visualizações

Publicada em

Introdução à Engenharia de Software, aula 01, Universidade de Brasília, Departamento de Ciência da Computação.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Introdução à Engenharia de Software

  1. 1. 1 ENGENHARIA DE SOFTWARE - AULA 01 INTRODUÇÃO À ENGENHARIA DE SOFTWARE PROF. DRA. CLAUDIA MELO 08/Mar/2018 @claudia_melo claudiamelo.org
  2. 2. 2 O QUE É SOFTWARE? • São programas de computadores, em suas diversas formas, além da documentação associada. • Um programa é um conjunto de soluções algorítmicas, codificadas em uma linguagem de programação, executado em uma máquina real (hardware). • Software é um produto conceitual e lógico. É empacotamento de conhecimento. Características • Invisível • Complexo • Mutável • Em conformidade com o ambiente [Brooks, F. No Silver Bullet] 1o software foi escrito por Ada Lovelace, século 19
  3. 3. 3 QUÃO BOM DEVE SER O SOFTWARE? •Manutenibilidade: O software deve ser escrito de forma que possa evoluir para atender às necessidades dos clientes. •Confiança e proteção: A confiança do software inclui confiabilidade, proteção e segurança. •Eficiência: O software não deve desperdiçar os recursos do sistema, como memória e ciclos do processador. •Aceitabilidade: O software deve ser aceitável para o tipo de usuário para o qual foi projetado.
  4. 4. 4 O QUE É ENGENHARIA DE SOFTWARE? •Disciplina dedicada a todos os aspectos da produção de software [Sommerville, 2011]. •Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software. • Aplicação de métodos, técnicas e ferramentas para o gerenciamento do processo de desenvolvimento.
  5. 5. 5 QUANDO ISSO SURGIU PARA A HUMANIDADE? •Surgimento do termo: 1968, Conferência da OTAN, por Margaret Hamilton* (líder do time de software, Apollo 11). •Objetivo: resolver a “Crise do Software” •Software é entregue atrasado, acima do custo, com falhas. Enquanto o hardware fica mais barato (Lei de Moore), o custo do software só aumenta. *Detalhes em: https://www.nasa.gov/50th/50th_magazine/scientists.html
  6. 6. 6 AINDA ESTAMOS EM CRISE? SIM! Inúmeras falhas de projetos ainda existem (e os sistemas são cada vez mais complexos). Milhões e bilhões desperdiçados em UM único sistema! http://www.bbc.co.uk/news/uk-politics-24130684 http://www.independent.co.uk/life-style/health-and-families/health-news/nhs-pulls-the-plug-on-its-11bn-it-system-2330906.html http://www.computerweekly.com/news/2240187478/Why-agile-development-failed-for-Universal-Credit
  7. 7. 7
  8. 8. SIM! Inúmeras falhas de projetos ainda existem (e os sistemas são cada vez mais complexos). Milhões e bilhões desperdiçados em UM único sistema! 8 AINDA ESTAMOS EM CRISE? MAS… Não estamos perdidos! Há inovação acelerada da arte de desenvolve software e forte comunidade global (Internet, Conferências, Grupos) —> somos muito bons em formar comunidade! (obrigada, pessoal do SW livre, por nos ensinar isso :-)
  9. 9. 9 IDEIA CENTRAL DA ENGENHARIA DE SW: PROCESSOS •É um conjunto de atividades que leva ao desenvolvimento do produto software •Um processo define: •Quem faz, o que faz e quando fazer •Nem sempre diz como fazer • Não existe um processo ideal •Organizações desenvolvem seus próprios processos
  10. 10. 10 MODELOS DE PROCESSOS •Oferecem um roteiro: • Definem atividades para o desenvolvimento do software • Especificam os produtos de cada atividade • Indicam os papéis das pessoas envolvidas •Exemplos de Modelos de processo: •Cascata •Iterativo incremental •Espiral (RUP) •Prototipagem •Métodos ágeis
  11. 11. 11 ETAPAS CLÁSSICAS NO DESENVOLVIMENTO DE SOFTWARE (EXEMPLO: MODELO CASCATA)
  12. 12. 12 MODELOS DE PROCESSO Iterativo Espiral
  13. 13. 13 MODELO ITERATIVO INCREMENTAL Leia mais sobre esse modelo em: Larman&Basili (2003). Iterative and Incremental Development: A Brief History
  14. 14. 14http://blog.crisp.se/wp-content/uploads/2014/10/Screen-Shot-2014-10-07-at-08.20.00.png MODELO ITERATIVO INCREMENTAL (EVOLUCIONÁRIO)
  15. 15. 15 http://raconteur.net/the-digital-economy-2016
  16. 16. A NATUREZA DO TRABALHO MUDOU NO SÉCULO 21 Otimização Mecânico Centrado em processo Estável, previsível Indivíduo Eficiência Adaptação Orgânico Centrado em pessoas Turbulento, difícil de prever Time Trabalho do conhecimento Produtividade = Saída/Entrada Produtividade do Trabalhador do conhecimento Claudia Melo (2013). Productivity of agile teams: an empirical evaluation of factors and monitoring processes http://www.teses.usp.br/teses/disponiveis/45/45134/tde-25052015-120242/en.php
  17. 17. 17 QUEM FAZ SOFTWARE? • Usuários finais (End-user development) • Times profissionais com múltiplos papéis: • Desenvolvedores/as (DEVs) • Analistas de qualidade (QAs) • Analistas de negócio (BAs) • Designer de experiência do usuário (UXers) • Gerentes de projeto (PMs) • Clientes (ou Product Owners) • Múltiplas formações
  18. 18. 18 A PROFISSÃO • Altíssima demanda por engenheiros/ as de software qualificados/as • Mercado global, múltiplos tipos de organizações • Times de variados tamanhos e dispersão geográfica • Serviço/Produto > Projeto • Mobile First • Complexidade! Complexidade! Complexidade! • Adaptabilidade • Experiência do usuário
  19. 19. 19 CYBERETHICS DEFINITION AND SOME INITIATIVES https://on.acm.org/c/Code-2018 "Computers are essen(ally a malleable, universally applicable tool, so the poten(al applica(ons for human acAon and consequent ethical issues are novel and almost limitless” “Study of moral, legal, and social issues involving cybertechnology” “[…] formulaAon and jusAficaAon of policies for the ethical use of such technology"
  20. 20. 20 SOME EXAMPLES OF CYBERTECH CONTROVERSIES Innovation is a result of the combination and evolution of complementary technologies. CYBERTECHNOLOGIES CONTROVERSIAL PRACTICES OR FEATURES, FROM A MORAL PERSPECTIVE Data Science Discoveries in data mining, propensity and group privacy. Cloud Compu8ng Consumer privacy, reliability of services, data ownership, and technology neutrality. Algorithms Misguided evidence leading to bias; Unfair outcomes leading to discrimina8on, transforma8on effects leading to challenges for autonomy, and traceability leading to moral responsibility. Digital Business Models Intellectual property rights, economic market impact and customer rela8onship. Internet; IoT; Mobile; Social Individual privacy preferences, access controls, emergent social conven8ons and infrastructures for government surveillance. SoFware and Society; Cyberlaw Cryptocurrency, net neutrality, proprietary code and content and freedom of speech. Secure SoFware Engineering Purposeful human errors injec8on, soFware piracy and soFware development for espionage, extor8on, vandalism and theF. Ar8ficial Intelligence; Robo8cs Machine learning, bias in natural language processing and robots as sexual partners, caregivers, and servants. C. d. O. Melo and T. C. de Sousa, "Reflections on Cyberethics Education for Millennial Software Engineers," 2017 IEEE/ACM 1st International Workshop on Software Engineering Curricula for Millennials (SECM), Buenos Aires, 2017, pp. 40-46.
  21. 21. 21 BÔNUS https://www.technologyreview.com/lists/technologies/2018/
  22. 22. 22 PERGUNTAS? OBRIGADA! @claudia_melo claudiamelo.org claudiam@unb.br

×