Engenharia de software para desenvolvimento com LabVIEW: Validação



Documentos relacionados
Melhores práticas para desenvolvimento de software e gerenciamento de código

desenvolvimento com LabVIEW: Leandro Fonseca Gerente Distrital de Vendas Alexsander Loula Coordenador da Eng. de Aplicações

Engenharia de Software I: Análise e Projeto de Software Usando UML

Marcos Cardoso Engenheiro de Vendas Bruno Cesar Engenheiro de Sistemas

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Aspectos técnicos do desenvolvimento baseado em componentes

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

Orientação a Objetos com Java

Java. Marcio de Carvalho Victorino

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

Programa do Módulo 2. Fundações do Modelo Objeto

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Gerenciador de Log Documento Visão. Versão 2.0

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

UML Aspectos de projetos em Diagramas de classes

PROFESSOR: CRISTIANO MARIOTTI

Herança. Alberto Costa Neto DComp - UFS

Programação Orientada a Objetos

Especificação do 3º Trabalho

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Padrões de projeto 1

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Orientação a Objetos

3.1 Definições Uma classe é a descrição de um tipo de objeto.

2 Diagrama de Caso de Uso

EMENTA DO CURSO. Tópicos:

Programação Orientada a Objetos em Java. Herança

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Decorator Pattern. SISMO - Sistemas e Mobilidade Junho de Departamento de Informática / UFMA

Desenvolvimento de grandes aplicações com a programação orientada a objeto do LabVIEW

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

AGENDA. O Portal Corporativo. Arquitetura da Informação. Metodologia de Levantamento. Instrumentos Utilizados. Ferramentas

1. Apresentação Objetivos

20/05/2013. Sistemas de Arquivos Sistemas de arquivos. Sistemas de Gerenciamento de Banco de Dados (SGBD) Banco de Dados. Estrutura de um BD SGBD

Padrões de Projeto. Prof. Jefersson Alex dos Santos

Modelagemde Software Orientadaa Objetos com UML

Considerações no Projeto de Sistemas Cliente/Servidor

Professor: Curso: Disciplina:

Sistemas Operacionais. Prof. André Y. Kusumoto

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

Programação Orientada a Objetos em Java

SABiO: Systematic Approach for Building Ontologies

Prototipação de Software

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Uso do Action₀NET com o PI System da OsiSoft

Introdução ao Design

Anexo I Formulário para Proposta

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Projeto de Arquitetura

SAV Sistema de Aluguel de Veículos I - DOCUMENTO DE REQUISITOS Versão 1.00

UML: Diagrama de Casos de Uso, Diagrama de Classes

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Implementação de Web Services em Projetos de LabVIEW

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Prof.: Clayton Maciel Costa

LINGUAGEM DE BANCO DE DADOS

Processamento de dados XML

Sistemas Operacionais

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

Programação Orientada a Objetos (DPADF 0063)

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

Tecnologia da Informação. Visão Geral sobre Informática

Guia de Fatores de Qualidade de OO e Java

MANUAL UTILIZAÇÃO. Emuntech Software Solutions Página 1

UNIVERSIDADE FEDERAL DE SANTA CATARINA

FundamentosemInformática

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Conceitos de Banco de Dados

Otimize e reduza o tempo do seu teste com LabVIEW e TestStand. ni.com

UNIVERSIDADE FEDERAL DE SERGIPE CAMPUS PROF. ALBERTO CARVALHO DEPARTAMENTO DE SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE I

Prova de pré-requisito

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília

Histórico de Revisão Data Versão Descrição Autor

Organização e Arquitetura de Computadores I. de Computadores

Engenharia de Requisitos

Arquitetura de Software

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Transcrição:

Engenharia de software para desenvolvimento com LabVIEW: Orientação a Objetos, Statechart e Validação André Pereira Engenheiro de Vendas (Grande São Paulo) Alexsander Loula Coordenador Suporte Técnico

Agenda Orientação a Objetos Implementação de OO em LabVIEW Statechart em LabVIEW Validação de Software Unit Test Framework 3

Processo de Engenharia de Software Requisitos Arquitetura da Aplicação Desenvolvimento Depuração e Testes Implementação Engenharia de Software e Boas Práticas de Desenvolvimento Requirements Gateway Padrões de Projeto Orientação a Objeto Multicore Fluxo de dados VI Analyzer Application Builder MathScript Real Time Execution Trace Real Time Statechart Desktop FPGA Simulation Execution Trace Embedded Express Unit Test Framework 4

... It s very hard to program extremely badly in LabVIEW. (John Conway - A Software Engineering Approach to LabVIEW) 5

O LabVIEW não foi sempre Orientado a Objeto? Objeto? Objeto? Objeto? 6

O que é Projeto Orientado a Objeto? Projeto Orientado a Objeto requer que programadores pensem em um programa em termos de objetos, ao invés de processos. Um objeto é composto de dado encapsulado e métodos para acesso a tal dado. Programação Orientada a Objeto (POO) utiliza objetos e suas interações para desenvolver aplicações. POO é baseado em técnicas de programação tais como encapsulamento, herança e polimorfismo. 7

Quando utilizar POO? Utilize POO quando precisar de: Encapsulamento Herança Dynamic/Virtual dispatching (polimorfismo) Benefícios de POO: Manutenção de código reduzida Reuso de código maximizado Extensão de software/adição de funcionalidades mais simples 8

Exemplo: Grande Aplicação de Teste Um objeto pode se comunicar com outro sem o conhecimento de sua organização interna Estrutura interna pode mudar com o tempo Interfaces (métodos públicos) permanecem os mesmos Data Acquisition Class Data Logging Class 9

Linguagens orientadas a objeto C++ C# Java Objective-C Perl Python LabVIEW 8.20 e superior 10

Exemplo: Teste em placa eletrônica Cenário Sistema de teste para placa eletrônica baseado em LabVIEW Requisitos Diferentes tipos de placas precisam ser testadas Novos modelos serão adicionados no futuro Objetivos Maximizar o reuso de código e escalabilidade do sistema 11

Solução tradicional baseada em processos Estrutura Case dentro de laço While (um caso por placa) Não é facilmente escalável; novas placas significariam novos cases 12

Solução tradicional baseada em processos Estrutura Case dentro de laço While (um caso por placa) Não é facilmente escalável; novas placas significariam novos cases 13

Solução baseada em Objetos Baseado em um laço While, mas sem a estrutura Case Novas placas são adicionadas sem alteração no programa principal 14

O que é uma classe em LabVIEW? Um tipoespecial p de cluster Um tipo de dado definido pelo usuário Um tipo de biblioteca de projeto em LabVIEW 17

Anatomia de uma classe em LabVIEW Cada classe em LabVIEW possui: Um controle contendo dados (cluster) VIs Membro para acessar tais dadosd O arquivo Class (.lvclass) armazena informação da classe Definição dos dados internos à classe Lista de VIs membro Propriedades do VI membro 18

O que é um Objeto? Um objeto é uma instância específica de uma classe Os dados e métodos de acesso são definidos pela classe 19

O que é Encapsulamento? Consolidação de dados e métodos em uma classe, com acesso restrito aos dados Oculta informação sobre como um objeto realiza suas tarefas; muda o foco para quais tarefas ele executa Difícil implementação sem suporte da linguagem Classe Métodos Dado 22

Encapsulamento em LabVIEW Classes em LabVIEW podem ser de três tipos de VIs Públicos: Chamados por qualquer VI como um subvi Privados: Chamados apenas por VIs pertencentes à mesma classe Protegidos: Chamados apenas por membros de subclasses da mesma hierarquia VI principal (fora da classe) Método Público A Método Público B Método Privado A Método Privado B Método Privado C Método Privado D 24

Revisão: Clusters x Classes Clusters Unbundle/Bundle e Unbundle/Bundle By Name oferece acesso irrestrito it aos dadosd Classes LabVIEW Apenas VIs na mesma classe podem ler e escrever dados (o dado é encapsulado) 26

O que é herança? Classe Veículo (SuperClasse) Eemplosde Exemplos métodos: Inicializar Ler informação de capacidade Classe Carro (SubClasse) Um carro é um tipo de veículo. Classe Caminhão (SubClasse) Um caminhão é um tipo de veículo. 28

Exemplo de Herança Classe Veículo Antecedentes Classe Carro Classe Caminhão Descendentes Modelo Chevy Modelo 2007 Modelo 2008 29

Herança em LabVIEW Classe existente é o ponto inicial para uma nova classe Classe existente é a SuperClasse Nova classe é SubClasse SubClasse reusa ou estende a funcionalidade da SuperClasse Benefícios O reuso de código é combinado com especialização Alterações na SuperClasse são propagadas para as SubClasses 30

Chamada Estática x Dinâmica (Dispatching) Método Estático Definido por um único VI através da hierarquia de classes Método Dinâmico Definido por múltiplos VIs com o mesmo nome através da hierarquia de classes Público Protegido 33

Métodos de chamada dinâmica O VI determina qual versão da subvi será utilizada em tempo de execução. Initialize.vi (SuperClasse) Initialize.vi (SubClasse) Initialize.vi (Subclasse) 34

Chamada Dinâmica VI de SubClasse sobrepõe a funcionalidade do VI da SuperClasse São definidos vários VIs com o mesmo nome (um em cada nível dentro da hierarquia de classes) Valor do fio em tempo de execução determina qual versão do VI será chamada 35

Demo Classes em LabVIEW Encapsulamento Herança 42

Desenvolvendo Aplicações com o Novo Módulo LabVIEW Statechart 48

Controle de Máquinas e Processos Hierarquia Concorrência 49

Benefícios do Statechart Abstração Semântica simples para representar sistemas complexos Visão de sistema Documentação Escalabilidade Fácil ampliação de aplicações Plataforma de software aberta Geração de Código Automático Tecnologia LabVIEW embedded 50

Demo: Ventilador de Teto com Iluminação 51

LabVIEW Unit Test Framework Entradas Saídas Arquivo de teste Resultado Esperado Comparação de valores 52

Unit Test Framework Gerar e executar testes para VIs rapida e facilmente Garantir que o código é seguro, confiável e tolerante a falha Rastrear a porcentagem do código que foi executeda Definir testes fora do ambiente de desenvolvimento Verificar cobertura dos requisitos de testes 53

DEMO: Criar Vetores de Testes com o LabVIEW Unit Test Framework 54

Resumo Os conceitos de Orientação a Objetos implementados em LabVIEW podem auxiliar e muito em: Arquitetura de aplicações de médio e grande porte Reuso de código Manutenção de aplicações O módulo Statechart é uma poderosa ferramenta para arquitetura e modularização de código em LabVIEW Prove de forma eficiente que seu código FUNCIONA utilizando o Unit Test Framework 55

Obrigado! Não esqueça de preencher a avaliação. Para mais informações acesse ni.com ou ligue para (11) 3149-3149 56