SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
1
ENGENHARIA DE SOFTWARE - AULA 01
INTRODUÇÃO À ENGENHARIA
DE SOFTWARE
PROF. DRA. CLAUDIA MELO
08/Mar/2018
@claudia_melo claudiamelo.org
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
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
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
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
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
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
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
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
ETAPAS CLÁSSICAS NO DESENVOLVIMENTO DE
SOFTWARE (EXEMPLO: MODELO CASCATA)
12
MODELOS DE PROCESSO
Iterativo Espiral
13
MODELO ITERATIVO INCREMENTAL
Leia mais sobre esse modelo em: Larman&Basili (2003). Iterative and Incremental Development: A Brief History
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
http://raconteur.net/the-digital-economy-2016
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
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
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
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
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
BÔNUS
https://www.technologyreview.com/lists/technologies/2018/
22
PERGUNTAS?
OBRIGADA!
@claudia_melo
claudiamelo.org
claudiam@unb.br

Contenu connexe

Tendances

LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARELIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWAREOs Fantasmas !
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3André Phillip Bertoletti
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentaisWaldemar Roberti
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareVinicius Garcia
 
Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Marcello Thiry
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Marcello Thiry
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIvanFontainha
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimentoGabriel Moura
 
Engenharia de Software - Unimep/Pronatec - Aula 5
Engenharia de Software - Unimep/Pronatec - Aula 5Engenharia de Software - Unimep/Pronatec - Aula 5
Engenharia de Software - Unimep/Pronatec - Aula 5André Phillip Bertoletti
 
Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4André Phillip Bertoletti
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISOs Fantasmas !
 

Tendances (20)

LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARELIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdf
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
 
Engenharia de Software - Unimep/Pronatec - Aula 5
Engenharia de Software - Unimep/Pronatec - Aula 5Engenharia de Software - Unimep/Pronatec - Aula 5
Engenharia de Software - Unimep/Pronatec - Aula 5
 
Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 

Similaire à Introdução à Engenharia de Software

Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Tecnologia da Informação
Tecnologia da InformaçãoTecnologia da Informação
Tecnologia da Informaçãocleusamoreira
 
IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08Gilson Silva
 
Fases do desenvolvimento de software baseado no código de ética.
Fases do desenvolvimento de software baseado no código de ética.Fases do desenvolvimento de software baseado no código de ética.
Fases do desenvolvimento de software baseado no código de ética.Ronildo Oliveira
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerAlan Carlos
 
QCon Rio - Mudando o foco: de processos para pessoas
QCon Rio - Mudando o foco: de processos para pessoasQCon Rio - Mudando o foco: de processos para pessoas
QCon Rio - Mudando o foco: de processos para pessoasIgor Macaubas
 
Interação humano computador (introdução )
Interação humano computador (introdução )Interação humano computador (introdução )
Interação humano computador (introdução )Jesse Teixeira
 
Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasuldatasul20
 
Jukebox Webpanel
Jukebox WebpanelJukebox Webpanel
Jukebox Webpanelguesta3ecbb
 
Redes de Computadores - GT 6 - Apresentação Seminário
Redes de Computadores - GT 6 - Apresentação SeminárioRedes de Computadores - GT 6 - Apresentação Seminário
Redes de Computadores - GT 6 - Apresentação Semináriojuniinhoor
 
Juventude conectada pspb
Juventude conectada pspbJuventude conectada pspb
Juventude conectada pspbOsvaldo Filho
 
Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Fernanda Ramos
 
A proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresaA proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresaCEST
 
Software Livre no Exército
Software Livre no ExércitoSoftware Livre no Exército
Software Livre no ExércitoVictor Castro
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAmyris Fernandez
 

Similaire à Introdução à Engenharia de Software (20)

Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Tecnologia da Informação
Tecnologia da InformaçãoTecnologia da Informação
Tecnologia da Informação
 
Aula1.pdf
Aula1.pdfAula1.pdf
Aula1.pdf
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
IES - Aula 01 - 02.08
IES - Aula 01 - 02.08IES - Aula 01 - 02.08
IES - Aula 01 - 02.08
 
Apps tecnologias e usos
Apps   tecnologias e usosApps   tecnologias e usos
Apps tecnologias e usos
 
Fases do desenvolvimento de software baseado no código de ética.
Fases do desenvolvimento de software baseado no código de ética.Fases do desenvolvimento de software baseado no código de ética.
Fases do desenvolvimento de software baseado no código de ética.
 
P2_Aula1-convertido.pptx
P2_Aula1-convertido.pptxP2_Aula1-convertido.pptx
P2_Aula1-convertido.pptx
 
TechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test ManagerTechNet - e-Book- Artigos sobre Test Manager
TechNet - e-Book- Artigos sobre Test Manager
 
QCon Rio - Mudando o foco: de processos para pessoas
QCon Rio - Mudando o foco: de processos para pessoasQCon Rio - Mudando o foco: de processos para pessoas
QCon Rio - Mudando o foco: de processos para pessoas
 
Interação humano computador (introdução )
Interação humano computador (introdução )Interação humano computador (introdução )
Interação humano computador (introdução )
 
Jukebox Webpanel Datasul
Jukebox Webpanel DatasulJukebox Webpanel Datasul
Jukebox Webpanel Datasul
 
Jukebox Webpanel
Jukebox WebpanelJukebox Webpanel
Jukebox Webpanel
 
Redes de Computadores - GT 6 - Apresentação Seminário
Redes de Computadores - GT 6 - Apresentação SeminárioRedes de Computadores - GT 6 - Apresentação Seminário
Redes de Computadores - GT 6 - Apresentação Seminário
 
Juventude conectada pspb
Juventude conectada pspbJuventude conectada pspb
Juventude conectada pspb
 
Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]
 
A proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresaA proteção jurídica do programa de computador: ótica da empresa
A proteção jurídica do programa de computador: ótica da empresa
 
Software Livre no Exército
Software Livre no ExércitoSoftware Livre no Exército
Software Livre no Exército
 
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IAAula 1 - Interaction Design From Ethnography, Mental Models to IA
Aula 1 - Interaction Design From Ethnography, Mental Models to IA
 

Plus de Claudia Melo

Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...
Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...
Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...Claudia Melo
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
Introdução a Métodos Ágeis
Introdução a Métodos ÁgeisIntrodução a Métodos Ágeis
Introdução a Métodos ÁgeisClaudia Melo
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
Requisitos ágeis - Parte 1
Requisitos ágeis - Parte 1Requisitos ágeis - Parte 1
Requisitos ágeis - Parte 1Claudia Melo
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Claudia Melo
 
O ideal feminino e a computação v2.0
O ideal feminino e a computação v2.0O ideal feminino e a computação v2.0
O ideal feminino e a computação v2.0Claudia Melo
 
O papel da Agilidade na Economia Digital Descrição, Agile Day, Scopus
O papel da Agilidade na Economia Digital Descrição, Agile Day, ScopusO papel da Agilidade na Economia Digital Descrição, Agile Day, Scopus
O papel da Agilidade na Economia Digital Descrição, Agile Day, ScopusClaudia Melo
 
Diálogo TCU: Governos em Transformação Digital
Diálogo TCU: Governos em Transformação DigitalDiálogo TCU: Governos em Transformação Digital
Diálogo TCU: Governos em Transformação DigitalClaudia Melo
 
Ethics and Sustainability for Techies and Entrepreneurs
Ethics and Sustainability for Techies and EntrepreneursEthics and Sustainability for Techies and Entrepreneurs
Ethics and Sustainability for Techies and EntrepreneursClaudia Melo
 
A Method for Evaluating End-User Development Technologies
A Method for Evaluating End-User Development TechnologiesA Method for Evaluating End-User Development Technologies
A Method for Evaluating End-User Development TechnologiesClaudia Melo
 
CSBC'2017 - Diversidade de Gênero na Computação
CSBC'2017 - Diversidade de Gênero na Computação CSBC'2017 - Diversidade de Gênero na Computação
CSBC'2017 - Diversidade de Gênero na Computação Claudia Melo
 
Ethics and sustainability for techies
Ethics and sustainability for techiesEthics and sustainability for techies
Ethics and sustainability for techiesClaudia Melo
 
Princípios da Gestão Ágil
Princípios da Gestão ÁgilPrincípios da Gestão Ágil
Princípios da Gestão ÁgilClaudia Melo
 
Exploring the frontiers of Agile Development in the Digital Era
 Exploring the frontiers of Agile Development in the Digital Era Exploring the frontiers of Agile Development in the Digital Era
Exploring the frontiers of Agile Development in the Digital EraClaudia Melo
 
The Web of Gendered Innovations
The Web of Gendered InnovationsThe Web of Gendered Innovations
The Web of Gendered InnovationsClaudia Melo
 
9 Maneiras de Falhar com KPIs
9 Maneiras de Falhar com KPIs9 Maneiras de Falhar com KPIs
9 Maneiras de Falhar com KPIsClaudia Melo
 
Ser ágil no mundo de tecnologia
Ser ágil no mundo de tecnologiaSer ágil no mundo de tecnologia
Ser ágil no mundo de tecnologiaClaudia Melo
 
Governos em transformação digital: novas tecnologias e métodos, velhos desafi...
Governos em transformação digital: novas tecnologias e métodos, velhos desafi...Governos em transformação digital: novas tecnologias e métodos, velhos desafi...
Governos em transformação digital: novas tecnologias e métodos, velhos desafi...Claudia Melo
 
Minicurso: Uma Introdução ao Desenvolvimento de Software Lean
Minicurso: Uma Introdução ao Desenvolvimento de Software LeanMinicurso: Uma Introdução ao Desenvolvimento de Software Lean
Minicurso: Uma Introdução ao Desenvolvimento de Software LeanClaudia Melo
 

Plus de Claudia Melo (20)

Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...
Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...
Ethical Decisions in a Wicked World: The Role of Technologists, Entrepreneurs...
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
Introdução a Métodos Ágeis
Introdução a Métodos ÁgeisIntrodução a Métodos Ágeis
Introdução a Métodos Ágeis
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Requisitos ágeis - Parte 1
Requisitos ágeis - Parte 1Requisitos ágeis - Parte 1
Requisitos ágeis - Parte 1
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)
 
O ideal feminino e a computação v2.0
O ideal feminino e a computação v2.0O ideal feminino e a computação v2.0
O ideal feminino e a computação v2.0
 
O papel da Agilidade na Economia Digital Descrição, Agile Day, Scopus
O papel da Agilidade na Economia Digital Descrição, Agile Day, ScopusO papel da Agilidade na Economia Digital Descrição, Agile Day, Scopus
O papel da Agilidade na Economia Digital Descrição, Agile Day, Scopus
 
Diálogo TCU: Governos em Transformação Digital
Diálogo TCU: Governos em Transformação DigitalDiálogo TCU: Governos em Transformação Digital
Diálogo TCU: Governos em Transformação Digital
 
Ethics and Sustainability for Techies and Entrepreneurs
Ethics and Sustainability for Techies and EntrepreneursEthics and Sustainability for Techies and Entrepreneurs
Ethics and Sustainability for Techies and Entrepreneurs
 
A Method for Evaluating End-User Development Technologies
A Method for Evaluating End-User Development TechnologiesA Method for Evaluating End-User Development Technologies
A Method for Evaluating End-User Development Technologies
 
CSBC'2017 - Diversidade de Gênero na Computação
CSBC'2017 - Diversidade de Gênero na Computação CSBC'2017 - Diversidade de Gênero na Computação
CSBC'2017 - Diversidade de Gênero na Computação
 
Ethics and sustainability for techies
Ethics and sustainability for techiesEthics and sustainability for techies
Ethics and sustainability for techies
 
Princípios da Gestão Ágil
Princípios da Gestão ÁgilPrincípios da Gestão Ágil
Princípios da Gestão Ágil
 
Exploring the frontiers of Agile Development in the Digital Era
 Exploring the frontiers of Agile Development in the Digital Era Exploring the frontiers of Agile Development in the Digital Era
Exploring the frontiers of Agile Development in the Digital Era
 
The Web of Gendered Innovations
The Web of Gendered InnovationsThe Web of Gendered Innovations
The Web of Gendered Innovations
 
9 Maneiras de Falhar com KPIs
9 Maneiras de Falhar com KPIs9 Maneiras de Falhar com KPIs
9 Maneiras de Falhar com KPIs
 
Ser ágil no mundo de tecnologia
Ser ágil no mundo de tecnologiaSer ágil no mundo de tecnologia
Ser ágil no mundo de tecnologia
 
Governos em transformação digital: novas tecnologias e métodos, velhos desafi...
Governos em transformação digital: novas tecnologias e métodos, velhos desafi...Governos em transformação digital: novas tecnologias e métodos, velhos desafi...
Governos em transformação digital: novas tecnologias e métodos, velhos desafi...
 
Minicurso: Uma Introdução ao Desenvolvimento de Software Lean
Minicurso: Uma Introdução ao Desenvolvimento de Software LeanMinicurso: Uma Introdução ao Desenvolvimento de Software Lean
Minicurso: Uma Introdução ao Desenvolvimento de Software Lean
 

Introdução à Engenharia de Software

  • 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 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 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 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 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 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
  • 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 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 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 ETAPAS CLÁSSICAS NO DESENVOLVIMENTO DE SOFTWARE (EXEMPLO: MODELO CASCATA)
  • 13. 13 MODELO ITERATIVO INCREMENTAL Leia mais sobre esse modelo em: Larman&Basili (2003). Iterative and Incremental Development: A Brief History
  • 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 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 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 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 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.