Engenharia de Software para Sistemas Embarcados...

45
Engenharia de Software para Sistemas Embarcados (Introdu¸c˜ ao) Prof. Julio Arakaki ([email protected]) Depto. de Computa¸c˜ ao Faculdade de Ciˆ encias Exatas e Tecnologia Pontif´ ıcia Universidade Cat´ olica de S˜ ao Paulo August 2016 Prof. Julio Arakaki ([email protected]) Engenharia de Software para Sistemas Embarcados

Transcript of Engenharia de Software para Sistemas Embarcados...

Page 1: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Engenharia de Software para Sistemas Embarcados(Introducao)

Prof. Julio Arakaki ([email protected])

Depto. de ComputacaoFaculdade de Ciencias Exatas e Tecnologia

Pontifıcia Universidade Catolica de Sao Paulo

August 2016

Prof. Julio Arakaki ([email protected]) Engenharia de Software para Sistemas Embarcados

Page 2: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Roteiro

Motivacao

Sistemas Embarcados

Sistemas em Tempo Real

O que e? (Eng. Software para Sistemas Embarcados)

Eng. Software para Sistemas Embarcados

SysML

Exemplo

Referencias

2 / 45

Page 3: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Motivacao

Iniciacao Cientifica (varios alunos)

Sistemas EmbarcadosIOT (Internet Of Things)

Possibilidade de integracao de grupos: Poli-USP

Integracao com outros trabalhos (SoS, Prof. Carlos)Competicao sobre Sistemas Embarcados (Intel)

3 / 45

Page 4: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Motivacao

Disciplina: Introducao de Engenharia de Software (EngenhariaEletrica)

Como abordar?O que os alunos aprenderam sobre isso?

programacao basica de linguagem C (equivalente a LP1 nacomputacao)Utilizacao do microcontrolador 8051 (Intel) - em Assembler

4 / 45

Page 5: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Motivacao-Simulador

Como motivar os alunos a usar Softwares? Como mostrar aimportancia de se ter uma Engenharia para isso?

123D Circuits (AutoDesk): https://123d.circuits.io/Simulador

5 / 45

Page 6: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Motivacao-Circuito

Circuito

6 / 45

Page 7: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Motivacao-Implementacao

Implementacao

Vıdeo

7 / 45

Page 8: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Motivacao-Codigo Fonte

8 / 45

Page 9: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

Sistemas (hardware e Software) integrados emEquipamentos/Dispositivos de diferentes tipos.Para a realizacao de um controle especıfico.Exemplos:

Computador de bordo (carro, aviao, mıssil, drones,geladeira,...)

Smartphones, PDAs, Tablets,...

Sistemas de Controle (Edifıcios inteligentes, sistemasIntegrados de Manufatura, . . .

Equipamentos Medicos

IOT (Internet das Coisas)

entre outras

9 / 45

Page 10: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

Outra definicao

10 / 45

Page 11: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

11 / 45

Page 12: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

12 / 45

Page 13: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

13 / 45

Page 14: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

”Real Time Systems”Deve processar as informacoes e produzir uma resposta num tempo(perıodo) especıfico, finito e bem determinado. Falha pode serdesastroso. Normalmente, Sistemas em Tempo Real manteminteracao (de temporizacao) contınua com o ambiente.

14 / 45

Page 15: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

”Real Time Systems: Hard and Soft”Depende das consequencias que podem causar apos a ocorrenciade falhas.

15 / 45

Page 16: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Sistemas Embarcados

Outras Caracterısticas (relacionadas com a computacao):

Interacao com ambiente fısico (onde esta embarcado)

o mal funcionamento pode acarretar danos nao recuperaveis

Interacao com o usuario e a manutencao: nenhuma ou muitorestrita

Recursos (computacionais) restritos

Hardware especıfico ...

Estas e outras caracterısticas implicam no Software! (precisamosde Eng. Software?)

16 / 45

Page 17: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

O que e? (Eng. de Software para Sistemas Embarcados)

Qualquer projeto (software ou hardware) necessita de um processo(processo de “design”) que:

Permite organizar (estruturar) o desenvolvimento e amanutencao em etapas.

Define artefatos (documentos/produtos intermediarios) decada etapa.

Especifica as sequencias e repeticoes necessarias de cadaetapa.

Define papeis e responsabilidades dos participantes noprocesso de desenvolvimento e manutencao.

17 / 45

Page 18: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

O que e? (Eng. de Software para Sistemas Embarcados)

Utilizacao de modelos de processo de design, como:

The V model has the same strict serial structure as the waterfallmodel, but it suggests that, before going to a more detailed designlevel, one should already test all the system features and propertiesthat can be tested at the current level of design abstraction.

18 / 45

Page 19: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

O que e? (Eng. de Software para Sistemas Embarcados)

Model-Driven Engineering is an emerging design process, thatimproves on the V-Model by supporting the test phases at eachdesign level by software models that simulate the system beforereal implementations exist already.

19 / 45

Page 20: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

HarmonyTMSystems to Software Process (IBM)Bruce Powel Douglass, PhD, Chief Evangelist (Telelogic)

20 / 45

Page 21: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

HarmonyTMSystems to Software Process (IBM) Hans-PeterHoffman, PhD, Chief Systems Methodologist (IBM)

21 / 45

Page 22: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

”Como aplicar UML para Real-Time?”Bruce Powel Douglass

22 / 45

Page 23: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

”Os Objetos podem ser: ”Bruce Powel Douglass

23 / 45

Page 24: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

”Use Case Diagram”Bruce Powel Douglass

24 / 45

Page 25: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

”Class Diagram”Bruce Powel Douglass

25 / 45

Page 26: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

”Class Structured”Bruce Powel Douglass

26 / 45

Page 27: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

”Activity Diagram”Bruce Powel Douglass

27 / 45

Page 28: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

”Deployment Diagram”Bruce Powel Douglass

28 / 45

Page 29: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML

Versao atual: 1.4

29 / 45

Page 30: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML

”Essential SysML Artifacts of Model-based Systems Engineering”Hans-Peter Hoffman

30 / 45

Page 31: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML

”Block Definition Diagram”Descreve relacionamento entre os blocos

31 / 45

Page 32: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML

”Internal Block Definition Diagram”Descreve a estrutura interna dos blocos

32 / 45

Page 33: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML

”Standard Ports and Flow Ports”Standard Ports - Especifica servicos oferecidos (”provides”) erequisitados (”requires”) e Flow Ports - epecifica o fluxo de itensentre os blocos e seus ambientes.

33 / 45

Page 34: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML

”Parametric Diagram”Representa as restricoes entre as propriedades dos blocos

34 / 45

Page 35: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML

”Requirements Diagram”Representa os requisitos e seus relacionamentos (conteudos daespecificacao)

35 / 45

Page 36: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Ferramentas

36 / 45

Page 37: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Ferramentas (Astah)

37 / 45

Page 38: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Ferramentas (Astah)

38 / 45

Page 39: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Ferramentas

39 / 45

Page 40: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Ferramentas (Papyrus)

40 / 45

Page 41: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Ferramentas (Rhapsody - IBM/Rational)

41 / 45

Page 42: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Ferramentas (Rhapsody - IBM/Rational)

42 / 45

Page 43: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

SYSML - Exemplo (Vıdeo)

https://www.youtube.com/watch?v=5BjFBldwlhU

43 / 45

Page 44: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Eng. Software para Sistemas Embarcados

Referencias:

utilizada sugerida

sugerida sugerida

44 / 45

Page 45: Engenharia de Software para Sistemas Embarcados (Introdução)jarakaki/opt2_ES_SE/1_Introducao_EngSoft... · Engenharia de Software para Sistemas Embarcados (Introdu˘c~ao) Prof.

Referencias

[1] OMG-Object Management Group, OMG Systems ModelingLanguage, Version 1.4, OMG, 2015.site:http://www.omg.org/spec/SysML/1.4/

[2] Robert Oshana and Mark Kraeling, Software Engineering forEmbedded Systems - Methods, Practical Techiniques andapplications, Elsevier, 2013.

[3] Leslie Lamport, LATEX A Document Preparation System, 2ndEdition, Addisson-Wesley, 1994.

[4] Embedded Control System Designhttps://en.wikibooks.org/wiki/

45 / 45