SlideShare a Scribd company logo
1 of 21
Download to read offline
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
1
TDC 2018 | São Paulo
Padrões de código para sistemas críticos
19/07/2018
Marcelo Masahiko Miyake
Desenvolvedor na Atech
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
2
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
3
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
4
Boeing 777
Boeing 787
0
1
2
3
4
5
6
7
8
9
10
Exemplo do que significa mais funcionalidades:
Aumento do número de linhas de código do Boeing 777 para o Boeing 787
Fonte: Developing safety-critical software – A practical guide for aviation software and DO-178C compliance / Leanna Rierson.
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
5
int soma(int a, int b) {
int res = a + b;
return res;
}
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
6
int soma(int a, int b) {
int res = a + b;
log("%d + %d = %d", a, b, res);
return res;
}
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
7
int soma(int a, int b) {
int res = a + b;
log("%d + %d = %d", a, b, res);
return res;
}
Infraestrutura Imutável
Tamanho
X MB
Tamanho
X MB
Tamanho
X MB
Infraestrutura Mutável
Infraestrutura Imutável
Tamanho
X+Δ MB
Tamanho
X MB
Tamanho
X MB
Requisitos de Sistema
Requisitos de Software
de Alto Nível
Requisitos de Software
de Baixo Nível
Código Fonte
Software: LDRA tool suite
Fonte: https://stackoverflow.com/questions/4092914/java-try-catch-finally-best-practices-while-acquiring-closing-resources
ObjectOutputStream oos = new ObjectOutputStream(fileOutputStream);
oos.writeObject(shapes);
Fonte: https://stackoverflow.com/questions/4092914/java-try-catch-finally-best-practices-while-acquiring-closing-resources
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(fileOutputStream);
oos.writeObject(shapes);
oos.flush();
} catch (FileNotFoundException ex) {
// complain to user
} catch (IOException ex) {
// notify user
} finally {
if (oos != null) {
try {
oos.close();
} catch (IOException ex) {
// ignore ... any significant errors should already have been
// reported via an IOException from the final flush.
}
}
}
Fonte: https://stackoverflow.com/questions/4092914/java-try-catch-finally-best-practices-while-acquiring-closing-resources
ObjectOutputStream oos = null;
try {
oos = new ObjectOutputStream(fileOutputStream);
oos.writeObject(shapes);
oos.flush();
} catch (FileNotFoundException ex) {
// complain to user
} catch (IOException ex) {
// notify user
} finally {
if (oos != null) {
try {
oos.close();
} catch (IOException ex) {
// ignore ... any significant errors should already have been
// reported via an IOException from the final flush.
}
}
}
Especificação
com exemplos
Lorem ipsum dolor sit
amet, consectetur
adipiscing elit, sed do
eiusmod tempor incididunt
ut labore et dolore magna
aliqua. Ut enim ad minim
veniam, quis nostrud
exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat. Duis
aute irure dolor in
reprehenderit in voluptate
velit esse cillum dolore eu
fugiat nulla pariatur.
Excepteur sint occaecat
cupidatat non proident,
sunt in culpa qui officia
deserunt mollit anim id est
laborum. Sed ut
perspiciatis unde omnis
iste natus error sit
voluptatem accusantium
doloremque laudantium,
totam rem aperiam, eaque
ipsa quae ab illo inventore
veritatis et quasi architecto
beatae vitae dicta sunt
explicabo. Nemo enim
ipsam voluptatem quia
voluptas sit aspernatur aut
odit aut fugit, sed quia
consequuntur magni
dolores eos qui ratione
voluptatem sequi nesciunt.
Neque
Analistas de Sistemas
Devs
Testers
Clientes
Computadores
User Stories e User Cases
em linguagem obíqua
(Ex: Given-When-Then)
Especificação
com exemplos
Lorem ipsum dolor sit
amet, consectetur
adipiscing elit, sed do
eiusmod tempor incididunt
ut labore et dolore magna
aliqua. Ut enim ad minim
veniam, quis nostrud
exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat. Duis
aute irure dolor in
reprehenderit in voluptate
velit esse cillum dolore eu
fugiat nulla pariatur.
Excepteur sint occaecat
cupidatat non proident,
sunt in culpa qui officia
deserunt mollit anim id est
laborum. Sed ut
perspiciatis unde omnis
iste natus error sit
voluptatem accusantium
doloremque laudantium,
totam rem aperiam, eaque
ipsa quae ab illo inventore
veritatis et quasi architecto
beatae vitae dicta sunt
explicabo. Nemo enim
ipsam voluptatem quia
voluptas sit aspernatur aut
odit aut fugit, sed quia
consequuntur magni
dolores eos qui ratione
voluptatem sequi nesciunt.
Neque
Analistas de Sistemas
Devs
Testers
Clientes
Computadores
User Stories e User Cases
em linguagem obíqua
(Ex: Given-When-Then)
Especificação
com exemplos
Lorem ipsum dolor sit
amet, consectetur
adipiscing elit, sed do
eiusmod tempor incididunt
ut labore et dolore magna
aliqua. Ut enim ad minim
veniam, quis nostrud
exercitation ullamco
laboris nisi ut aliquip ex ea
commodo consequat. Duis
aute irure dolor in
reprehenderit in voluptate
velit esse cillum dolore eu
fugiat nulla pariatur.
Excepteur sint occaecat
cupidatat non proident,
sunt in culpa qui officia
deserunt mollit anim id est
laborum. Sed ut
perspiciatis unde omnis
iste natus error sit
voluptatem accusantium
doloremque laudantium,
totam rem aperiam, eaque
ipsa quae ab illo inventore
veritatis et quasi architecto
beatae vitae dicta sunt
explicabo. Nemo enim
ipsam voluptatem quia
voluptas sit aspernatur aut
odit aut fugit, sed quia
consequuntur magni
dolores eos qui ratione
voluptatem sequi nesciunt.
Neque
Analistas de Sistemas
Devs
Testers
Clientes
Computadores
User Stories e User Cases
em linguagem obíqua
(Ex: Given-When-Then)
Software: Serenity
Software: SonarQube
“sistemas críticos”
130.000 resultados
“equipe inovadora”
4.810 resultados
“sistemas críticos”
130.000 resultados
“equipe inovadora”
4.810 resultados
“sistemas críticos” + “equipe inovadora”
5 resultados
www.companyname.com
© 2016 Jetfabrik Multipurpose Theme. All Rights Reserved.
21
Brasília
www.atech.com.br
Rio de Janeiro São José dos Campos São Paulo
Marcelo Masahiko Miyake
mmiyake@atech.com.br

More Related Content

More from tdc-globalcode

More from tdc-globalcode (20)

TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
TDC2018SP | Trilha .Net - Novidades do ASP.NET Core 2.1
 
TDC2018SP | Trilha BigData - Big Data Governance - Como estabelecer uma Gover...
TDC2018SP | Trilha BigData - Big Data Governance - Como estabelecer uma Gover...TDC2018SP | Trilha BigData - Big Data Governance - Como estabelecer uma Gover...
TDC2018SP | Trilha BigData - Big Data Governance - Como estabelecer uma Gover...
 
TDC2018SP | Trilha BigData - Mais Falados - Usando a Interacao Social para a ...
TDC2018SP | Trilha BigData - Mais Falados - Usando a Interacao Social para a ...TDC2018SP | Trilha BigData - Mais Falados - Usando a Interacao Social para a ...
TDC2018SP | Trilha BigData - Mais Falados - Usando a Interacao Social para a ...
 
TDC2018SP | Trilha BigData - Processando dados de acidentes de transito em st...
TDC2018SP | Trilha BigData - Processando dados de acidentes de transito em st...TDC2018SP | Trilha BigData - Processando dados de acidentes de transito em st...
TDC2018SP | Trilha BigData - Processando dados de acidentes de transito em st...
 

TDC2018SP | Trilha XP - Padroes de código para sistemas criticos

  • 1. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 1 TDC 2018 | São Paulo Padrões de código para sistemas críticos 19/07/2018 Marcelo Masahiko Miyake Desenvolvedor na Atech
  • 2. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 2
  • 3. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 3
  • 4. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 4 Boeing 777 Boeing 787 0 1 2 3 4 5 6 7 8 9 10 Exemplo do que significa mais funcionalidades: Aumento do número de linhas de código do Boeing 777 para o Boeing 787 Fonte: Developing safety-critical software – A practical guide for aviation software and DO-178C compliance / Leanna Rierson.
  • 5. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 5 int soma(int a, int b) { int res = a + b; return res; }
  • 6. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 6 int soma(int a, int b) { int res = a + b; log("%d + %d = %d", a, b, res); return res; }
  • 7. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 7 int soma(int a, int b) { int res = a + b; log("%d + %d = %d", a, b, res); return res; }
  • 9. Tamanho X MB Infraestrutura Mutável Infraestrutura Imutável Tamanho X+Δ MB Tamanho X MB Tamanho X MB
  • 10. Requisitos de Sistema Requisitos de Software de Alto Nível Requisitos de Software de Baixo Nível Código Fonte Software: LDRA tool suite
  • 12. Fonte: https://stackoverflow.com/questions/4092914/java-try-catch-finally-best-practices-while-acquiring-closing-resources ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(fileOutputStream); oos.writeObject(shapes); oos.flush(); } catch (FileNotFoundException ex) { // complain to user } catch (IOException ex) { // notify user } finally { if (oos != null) { try { oos.close(); } catch (IOException ex) { // ignore ... any significant errors should already have been // reported via an IOException from the final flush. } } }
  • 13. Fonte: https://stackoverflow.com/questions/4092914/java-try-catch-finally-best-practices-while-acquiring-closing-resources ObjectOutputStream oos = null; try { oos = new ObjectOutputStream(fileOutputStream); oos.writeObject(shapes); oos.flush(); } catch (FileNotFoundException ex) { // complain to user } catch (IOException ex) { // notify user } finally { if (oos != null) { try { oos.close(); } catch (IOException ex) { // ignore ... any significant errors should already have been // reported via an IOException from the final flush. } } }
  • 14. Especificação com exemplos Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque Analistas de Sistemas Devs Testers Clientes Computadores User Stories e User Cases em linguagem obíqua (Ex: Given-When-Then)
  • 15. Especificação com exemplos Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque Analistas de Sistemas Devs Testers Clientes Computadores User Stories e User Cases em linguagem obíqua (Ex: Given-When-Then)
  • 16. Especificação com exemplos Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque Analistas de Sistemas Devs Testers Clientes Computadores User Stories e User Cases em linguagem obíqua (Ex: Given-When-Then) Software: Serenity
  • 18.
  • 20. “sistemas críticos” 130.000 resultados “equipe inovadora” 4.810 resultados “sistemas críticos” + “equipe inovadora” 5 resultados
  • 21. www.companyname.com © 2016 Jetfabrik Multipurpose Theme. All Rights Reserved. 21 Brasília www.atech.com.br Rio de Janeiro São José dos Campos São Paulo Marcelo Masahiko Miyake mmiyake@atech.com.br