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



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

Marcos Cardoso Engenheiro de Vendas Bruno Cesar Engenheiro de Sistemas

Acordo global de serviços com a Delphi Visão geral, 5/2011. Chad Ruwe, gerente de contas da NI Marni Schwartz, gerente sênior de programa

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

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

Testes Complexos na Indústria Aeroespacial e de Defesa

Integração Contínua com Rational Team Concert, Jenkins e SonarQube

Programação Web com Webdev 19 Julio Cesar Pedroso Conteúdo

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

Gestão de Modificações. Fabrício de Sousa

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

Soluções de Gerenciamento de Clientes e de Impressão Universal

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Política Organizacional para Desenvolvimento de Software no CTIC

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

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

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Engenharia de Software I

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

O que há de novo no LabVIEW Real- Time e LabVIEW FPGA

Programação em LabVIEW Real- Time e LabVIEW FPGA

Projeto 4D: Gerenciamento e Simulação de projetos industriais com o Autodesk Navisworks

Testes de Software. Andrew Diniz da Costa

Dashboards dinâmicos para executivos

GARANTIA DA QUALIDADE DE SOFTWARE

Introdução ao Controle de Versões. Leonardo Murta

GERÊNCIA DE CONFIGURAÇÃO. Isac Aguiar isacaguiar.com.br

Implementação de Web Services em Projetos de LabVIEW

Professor: Curso: Disciplina:

Planejando o aplicativo

AutoTest Um Framework Reutilizável para a Automação de Teste Funcional de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

EVOLUÇÃO DE SOFTWARE

IBM Software Demos Rational Software Delivery Platform - Recursos de análise de requisitos

Modelagem de Software

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

PLANEJAMENTO E PROJETOS. Lílian Simão Oliveira

Dicas para melhorar a interface de usuário feita em LabVIEW

Modelo para Documento de. Especificação de Requisitos de Software

PROJETO DE FÁBRICA DE SOFTWARE

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Preparando-se para o exame Certified LabVIEW Associate Developer (CLAD)

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Tendências, Perspectivas e Ferramentas de Qualidade em Engenharia de Software (4)

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

UFG - Instituto de Informática

Engenharia de Software

Levantamento, Análise e Gestão Requisitos. Aula 12

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

Teste em tempo real com

Padrões Arquiteturais e de Integração - Parte 1

Análise de Requisitos Conceitos

Laboratório de Programação I

Projeto de Sistemas I

Preparando-se para o Exame Certified LabVIEW Associate (CLAD) Rodrigo Schneiater Engenheiro de Aplicações de Campo

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Soluções de Gestão de Clientes e Impressão Universal

Backup e recuperação. Guia do Usuário

Desenvolvimento de Sistemas Tolerantes a Falhas

Software de gerenciamento de impressoras MarkVision

Daniel Gondim. Informática

Engenharia de Software

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

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Everson Scherrer Borges João Paulo de Brito Gonçalves

MANUAL DO USUÁRIO. AssetView FDT. AssetView FDT

Desenvolva Sistemas de Medições Distribuídos e Portáteis

Plano de Gerenciamento do Projeto

SISTEMA GERENCIADOR DE BANCO DE DADOS

PrimeUp Educação. Caso real: implantação de solução de ALM.

IntroduçãoaoGuia SWEBOK. Ernani Lopes Isensee 2014

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Processo de Desenvolvimento de Sites

Projeto de Arquitetura

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Integração do Teamcenter com o Catia V5

O Primeiro Programa em Visual Studio.net

Tópicos Especiais em Engenharia de Software

Tipos de teste de software

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

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Engenharia de Requisitos

DESENVOLVIMENTO DE SOFTWARE AULA 1

Como manter uma rede com qualidade de serviço? Gerência de Rede. Visão Geral da Gerência de Redes. Importância de gerência de Redes. Cont.

Manual de instalação e utilização para o celular

Metodologia de Trabalho

Figura 1 - Arquitetura multi-camadas do SIE

IBM Software Demos Lotus Quickr

Análise e Projeto Orientados por Objetos

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

PROFESSOR: CRISTIANO MARIOTTI

Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto

Gerenciamento de Problemas

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Design de Software e Projeto Arquitetural de Software. Prof. Edison A M Morais prof@edison.eti.br

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

Transcrição:

Melhores práticas para desenvolvimento de software e gerenciamento de código Osvaldo Santos Engenheiro de Sistemas Ilton Pereira Gerente de Engenharia de Aplicações

Agenda Gestão de documentos Requisitos de rastreabilidade Padrões e estilos de codificação Testes e Debugging Análise de código dinâmico /largeapps 2

3

4

Exemplos de falhas de engenharia de software (somente alguns dos erros mais comuns no desenvolvimento com LabVIEW) Falta de controle do código (ou projeto) Hierarquia de arquivo plana A função Stop não é testada regularmente Esperar até o fim de um projeto para criar uma aplicação Poucas especificações, documentação ou requisitos Falta de acompanhamento ou revisões de código Planejamento deficiente (falta de consideração por SMoRES) Falta de planos de teste Manipulação de erros deficiente Estilo não consistente Acoplamento forte ou fraca coesão 5

O custo de uma imperfeição de software Fase de desenvolvimento Relação de custo Requisitos 1 Projeto 3-6x Implementação 10x Testes de desenvolvimento 15-40x Testes de aceitação 30-70x Pós-lançamento 40-1000x Baseado na análise de 63 projetos de desenvolvimento de software em empresas incluindo IBM, GTE, e TRW 6

Gestão de documentos Coleta de Requisitos Arquitetura da Aplicação Desenvolvimento Validação Implementação Gestão de documentos do projeto Fornece repositórios de códigos Ajuda a gerenciar o código e controlar alterações Crucial para o desenvolvimento em equipe Importante para todo o processo de desenvolvimento 8

9

Opções de SCC para integração com LabVIEW Integração nativa com LabVIEW Perforce Integração através de APIs padrão Microsoft Visual SourceSafe Microsoft Team System Rational ClearCase PCVS (Serena) Version Manager MKS Source Integrity Seapine Surround SCM Borland StarTeam Telelogic Synergy ionforge Evolution Suporte através de Add-Ons adicionais Subversion Mecurial 13

O processo de engenharia de software Coleta de Requisitos Arquitetura da Aplicação Desenvolvimento Testes e Validação Implementação NI Requirements Gateway LabVIEW Statechart Orientação a objeto NI TestStand Fluxo de dados MathScript Modelo de estados Simulação LabVIEW Unit Test Framework LabVIEW VI Analyzer LabVIEW Desktop Execution Trace Application Builder Real Time FPGA Embedded Experimente. Provê qualidade. Reduz riscos. Economiza tempo. 14 Testes de Interface de Usuário

O processo de engenharia de software Coleta de Requisitos Arquitetura da Aplicação Desenvolvimento Testes e Validação Implementação NI Requirements Gateway LabVIEW Statechart Orientação a objeto NI TestStand Fluxo de dados MathScript Modelo de estados Simulação LabVIEW Unit Test Framework LabVIEW VI Analyzer LabVIEW Desktop Execution Trace Application Builder Real Time FPGA Embedded Experimente. Provê qualidade. Reduz riscos. Economiza tempo. 15 Testes de Interface de Usuário

Solução para requisitos de rastreabilidade da NI 16

Coleta de Requisitos Arquitetura da Aplicação Desenvolvimento Testes & Debbuging Implementação Cobertura de requisitos e acompanhamento de projeto Rastreabilidade e geração de documentação 17

Documentação Objetos rotulados Comentários Ícones distintos Descrição e dicas Gerar arquivo HTML Cobertura de requisitos 18

Simples Complexidade da aplicação Avançado Ferramentas de Debugging e testes Testes & Debugging Unit Test Framework Validação funcional do código Desktop Execution Trace Real Time Execution Trace Análise de código dinâmico VI Analyzer Toolkit Análise de código estático Baixo Risco Alto Risco Criticidade da aplicação 20

Estabelecer ou adotar diretrizes de desenvolvimento Diretrizes de desenvolvimento: Estilo do painel frontal Lista de verificação de estilo Estilo do diagrama de bloco Estilo do ícone e do conector Revisão de Código com VI Analyzer: Automatiza a análise de código com mais de 80 testes configuráveis o Execução o Estilo o Complexidade NI Style Guideline: /largeapps 21

Objetivos da análise de código dinâmico Qual é a memória do sistema consumida? Estou capturando todos os erros da minha aplicação? Qual foi o último evento que ocorreu antes de? Qual foi a cadeia de chamadas que nós levou a? Qual segmento está em execução? Estou realmente entrando em um específico event-case? O que aconteceu dentro de um estrutura? Qual é a ordem que esses eventos ocorreram? Algum processo daemon está rodando em background? O código se comporta diferente em um executável? 22

Desktop Execution Trace Toolkit Rastreie durante o tempo de execução: Estruturas de evento Alocação de memória Queues/Notifiers Perdas de referência Thread ID Erros não tratados Dynamic/Static SubVIs Custom User Strings 23

Rastreie sistemas de produção remotamente LabVIEW Desktop Execution Trace Toolkit Rede Informação de execução em Run-Time VIs e executáveis depuráveis LabVIEW Real-Time Execution Trace Toolkit Network Informação de execução em Run-Time Aplicações em tempo real 24

Demonstração ANÁLISE DE CÓDIGO DINÂMICO 25

O Processo de Engenharia de Software Coleta de Requisitos Arquitetura da Aplicação Desenvolvimento Testes e Validação Implementação NI Requirements Gateway LabVIEW Statechart Orientação à Objeto NI TestStand Fluxo de Dados MathScript Modelo de Estados Simulação LabVIEW Unit Test Framework LabVIEW VI Analyzer LabVIEW Desktop Execution Trace Application Builder Real Time FPGA Embedded Experimente. Provê qualidade. Reduz riscos. Economiza tempo. 26

Download de exemplos e slides /largeapps Ferramentas de Engenharia de Software Práticas de Desenvolvimento Comunidade LargeApp 27