Inovação e Desenvolvimento
Agenda
• Grupo EFACEC
• Unidade de Negócios Automação
• Engenharia de Software
Somos uma empresa portuguesa presente em mais de 65 países, nos 5 continentes.
Temos mais de 4.000 colaboradores e um volume de negócios superior a 1000 milhões de euros. Estamos nos sectores por onde passa o futuro, da energia aos transportes e à engenharia, do ambiente aos serviços e às energias renováveis.
Desenvolvemos as mais avançadas tecnologias assentes em competência, qualidade e
empreendedorismo.
Estamos presentes no mundo com uma nova imagem.
50% 50%
Evolução de encomendas
MERCADO INTERNO MERCADO EXTERNO + 30 % vs Real06 259 174 301 262 383 694 200 400 600 800 1000 1200 433 563 1.077 + 91 % vs Real07Mercado Interno/Mercado Externo
Evolução encomendas
Mercado Interno/Mercado Externo
2007 MI 53,5% ME 46,5% 2008 MI 35,5% ME 64,5%
Efacec: Unidades de Mercado
Efacec: Áreas de Negócio
Energia Engenharia,
Ambiente e Serviços Transportese Logística
Transformadores Aparelhagem de Alta e Média Tensão Servicing Energia Engenharia Automação Manutenção Ambiente Renováveis Transportes Logística
Unidade de Negócios
Automação
EFACEC Automação
• A unidade de negócio
Actividade desde 1980
• Competências
Engenharia e integração de sistemas Tecnologia e produtos próprios
• Recursos humanos
140 (Portugal) Engenharia 50% Comercial e MK 15% I&DT 35% 120 (EUA)EFACEC Automação
• Volume de vendas37,5 M€ • Certificação
Qualidade, Ambiente, Higiene e Segurança no Trabalho
• Segmentos de negócio
Gestão e Automação de Redes de Energia Distribuição e Transporte
Geração
Energias Renováveis Redes Ferroviárias
Soluções
Centros de Comando e Gestão de Redes
Soluções
Centros de Comando e Gestão de Redes
Soluções
Automação de Subestações, de Centrais e de Redes de Distribuição
Engenharia de
Software
Overview
• Fazer I&D na EFACEC Automação Enquadramento
Tipologias de Projectos Tecnologias
Organização de Equipas
• Processos e Metodologias
Processo em Cascata, Métodos Ágeis, Modelação e Implementação,
Desenvolvimento de Frameworks,
Model-driven development …
• Ferramentas
Desenvolvimento, Gestão Documental, Gestão de Projecto, Issue Tracking, …
Equipas de I&D
• Responsabilidade Principal
Desenvolvimento de Produtos
• Localização
(pólos com relevo em I&D)
Maia
Carnaxide Atlanta
• Competências
Engenharia de software (maioritariamente) Engenharia de hardware
Especialidades de domínio de aplicação (comunicações, automação, energia, etc.)
I&D
Operacional Mercado Produção Comunidade Científica e Tecnológica Outras Unidades de Negócio do Grupo EFACECEquipas de I&D
Equipas de I&D
• Desenvolvimento de Software
Análise de Requisitos e Especificações, Desenho,
Implementação,
Verificação e Validação Documentação
Gestão de Equipas e Projectos Aprendizagem
Equipas de I&D
• Outras actividades
Gestão de Produto Suporte ao Produto
Publicações e participações em eventos científico-tecnológicos
Certificação de Produtos Apoio ao Marketing
Formação
Colaboração com Parceiros
• Tipologia
Desenvolvimento por contrato Integração de Componentes Parcerias empresariais
Projectos de Investigação
• Parceiros
Várias empresas e em instituições de ensino e investigação em Portugal e no Mundo
Colaboração com o SCTN
• Entidades do SCTN com as quais há
colaboração
FEUP, FCUP, IST, INESC, UM UA, UNL e UTAD
• Modelos de colaboração até à data
Formação
Estágios e projectos de fim de curso Mestrados e Doutoramentos
Cursos de formação específica Aquisição de serviços
co-Domínios de Aplicação
• Dispositivos electrónicos inteligentes
Hardware
Software embebido / tempo-real
Aquisição e processamento de sinal e algoritmos de protecção …
• Comunicações
Sistemas distribuídos de tempo-real Protocolos de comunicações
…
• Ferramentas de Engenharia (CAE)
Configuradores de equipamentos, Compiladores, Editores diagramáticos, Ferramentas de análise, Ferramentas de teste, …
• Aplicações de Gestão Técnica
Sistemas de informação geográfica
Algoritmos de cálculo eléctrico (EMS/DMS)
Integração com sistemas de informação empresariais Asset Management
Tecnologias Utilizadas
• Plataformas Computacionais
Microcontroller-based
(Motorola Coldfire, PowerPC, entre outros) PC-based
(embebido, general-purpose ou server)
• Sistemas Operativos
SOs de tempo-real (eCOS)
Linux (embedded e convencional) Unix
Windows (embedded e convencional)
• Linguagens UML C/C++ C# Java Javascript Antlr
Enquadramento (Resumo)
• Enquadramento HumanoEquipas multidisciplinares Múltiplos pólos geográficos
Integração com instituições externas Múltiplas tipologias de projecto
Várias actividades
• Enquadramento Tecnológico
Sistemas de elevada disponibilidade Sistemas embebidos e de tempo-real
Sistemas de informação de grande dimensão Múltiplas linguagens
Múltiplas plataformas
Processo de Desenvolvimento
• Processo
Genérico para todas as equipas de I&D Particularizado para cada projecto de desenvolvimento
• Alguns Objectivos
Integrar diferentes ambientes
Documentação consistente para os diferentes produtos
Rotação de colaboradores por diferentes equipas
Processo Genérico de Desenvolvimento
Requisitos e Tabelas de Conformidades Manual do Utilizador
Plano de testes de Aceitação
Desenho de Sistema Desenho da Arquitectura
Plano de Testes de Sistema e de Integração
Implementação
Desenho dos módulos Plano de Testes Unitários
Resultados dos testes
Resultados dos testes Actualização do Manual Integração
Desenho Requisitos
Processo Genérico de Desenvolvimento
• Controlo
Indicadores de Desempenho
• Calculados e publicados mensalmente
• Funcionamento e optimização do processo
Revisão e ajuste do próprio processo
• Ferramentas de Suporte à Gestão do Projecto
Ferramentas Office
• documentação e gestão de projecto
SGD
• gestão documental
SubVersion, TFS
• gestão de configurações
Baan
• gestão da alocação de recursos e de custos
Processo Genérico de Desenvolvimento
• Verificações e Validações (testes)
Reviews
• Peer-review de procedimentos, código e documentação
Testes Unitários
• Automatizados, white-box, code-coverage
Testes de Integração
• Interfaces dos módulos
Testes de Sistema
• Funcional, desempenho, consumo de recursos, situações anómalas
Testes de Aceitação
Tipos Típicos de Projectos
• Desenvolvimento de novos produtos
Metodologias de desenvolvimento mais ágeis Projectos com mais iterações
Processo alargado
• Fases prototipais e instalações piloto
Participação alargada da unidade de I&D
• Marketing
• Intervenção nos primeiros projectos de aplicação
• Actualização de produtos
Metodologias de desenvolvimento tradicionais
Major features
• Processo completo
Exemplo – Equipa de Projecto Technical Consultancy External End-user Strategic Coordination R&D Director R&D Project Coordination Department Head Project and Product Management Team Leader Product Manager
Scientific and Technical Consultancy External Consultants EFACEC Project Team Software Engineers Marketing Automation Experts Other EFACEC R&D Teams
Exemplo - Processo
Análise Desenho Arquitectural Implementação Teste Análise de Mercado Sessões de Brainstorming Análise de Concorrência Requisitos Funcionais Cenários de Teste Requisitos Não FuncionaisExemplo - Processo
Análise Desenho Arquitectural Implementação Teste Diagramas de Estado Desenho de Software Diagramas de Classes «interface» ITracer+Trace(message : ITraceMessage) : bool
Diagramas de Sequência
Cliente Servidor
GetEstado() EstadoServidor
Exemplo - Processo
Análise Desenho Arquitectural Implementação Teste Codificação Documentação (in-source e SGD) Desenho de Software Testes Unitários e DebuggingExemplo - Ferramentas
•Visual Studio IDE
–Code, Builds, Debugging, Refactoring
–Testes Unitários, Code/Performance Analysis
•Office
–Outlook, Excel, Word, Powerpoint, Project, Visio
•Ferramentas Específicas para MDD
–Geração de código a partir de modelos
–Desenvolvidas na EFACEC no âmbito do projecto
•Portal Sharepoint
•Visual Studio Team Foundation Server
–Controlo de versões
Exemplo - Processo
Análise Desenho Arquitectural Implementação Teste Testes de integração Integração de componentes no sistema Testes de aceitaçãoExemplo - Metodologia
• Princípios FundamentaisPeople and team before processes Frequent iterations
Incremental releases
Team artifact ownership Greater value first