Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 Um ambiente computacional para Engenharia de Sistemas Carlos Alberto Patrício Pires Júnior Instituto Tecnológico de Aeronáutica, Rua H8 – C, CTA, São José dos Campos Bolsista PIBIC-CNPq [email protected] Geilson Loureiro Laboratório de Integração e Testes, Instituto Nacional de Pesquisas Espaciais. Avenida dos Astronautas, 1758, São José dos Campos, SP Bolsista de Produtividade Desenvolvimento Tecnológico e Extensão Inovadora do CNPq - Nível 2 [email protected] Resumo. Esse artigo tem como objetivo introduzir os conceitos de engenharia de sistemas, apresentar ferramentas que podem ser utilizadas para desenvolver sistemas destacando ,dentre elas, o Cradle. A engenharia de sistemas é uma abordagem para desenvolvimento de produtos complexos tais como carros, aviões e satélites. O processo de engenharia de sistemas contém os seguintes subprocessos: análise dos stakeholders envolvidos no processo, análise dos requisitos, análise funcional e a arquitetura da implementação do produto. Esses sub-processos devem ser realizados simultaneamente para o produto, objeto do desenvolvimento, e para as organizações que implementam os processos do ciclo de vida desse produto Pensando em todas as etapas de desenvolvimento do produto e ciclo de vida do produto descobrindo a relação entre elas. O Cradle é um software que permite um ambiente integrado para os subprocessos de engenharia de sistemas. Pode ser usado nos projetos mais simples até os mais complexos. De maneira que podemos utilizar as ferramentas no mercado para permitir essa abordagem de engenharia com a finalidade de reduzir custos e termos produtos de melhor qualidade e que atenda melhor as expectativas dos stakeholders. Palavras- chave: engenharia de sistemas, engenharia simultânea, software de engenharia de sistemas, Cradle. 1.Introdução O ITA é uma escola de engenharia que dá suporte ao desenvolvimento de aeronaves, foguetes, satélites, seus componentes e outros produtos que viabilizam os processos do ciclo de vida desses produtos aeroespaciais. Esses produtos são produtos complexos. Produtos complexos demandam a utilização de uma abordagem de desenvolvimento integrado de produtos e, portanto precisam ser realizados por times multidisciplinares. Um indivíduo não é capaz de dominar todas as disciplinas. Além das disciplinas necessárias para o funcionamentos dos produtos (e.g eletrônica, computação, mecânica, aerodinâmica, térmica, estruturas, propulsão, controle), há também outras relacionadas aos processos do ciclo de vida desses produtos (e.g. logística, operações, manufatura, descarte). Desenvolvimento integrado de produtos, para produtos complexos, faz uso das abordagens de engenharia de sistemas e de engenharia simultânea. Engenharia de sistemas é uma abordagem multidisciplinar e colaborativa de engenharia para derivar, evoluir e verificar uma solução sistema balanceada ao longo do seu ciclo de vida para a satisfação de seus stakeholders (IEEE, 1995). Engenharia simultânea é uma abordagem de engenharia que antecipa para as fases iniciais do desenvolvimento de um produto, os requisitos dos processos do ciclo de vida desse produto, por exemplo, manufatura, manutenção, logística, descarte. O produto é então desenvolvido levando em conta esses requisitos (IDA, 1986). Loureiro (1999) desenvolveu um framework e um método que integram engenharia de sistemas e engenharia simultânea. O laboratório de engenharia de sistemas do ITA, implementa esse método usando uma ferramenta computacional, ambiente de engenharia de sistemas, chamada Cradle (3SL, 2010). Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 Este artigo tem por objetivo apresentar o Cradle. Para tal o artigo discute sobre as diferenças entre engenharia seqüencial e simultânea (Seção 2.1) e realiza uma pesquisa bibliográfica sobre outras ferramentas de engenharia de sistemas existentes no mercado (Seção 2.2) . O artigo então apresenta o Cradle e seus módulos (Seção 2.3 e Seção 2.4) e compara o Cradle com as outras ferramentas investigadas (Seção 2.5) No mercado existem várias ferramentas que permitem essa abordagem, iremos apresentar algumas delas e compará-las com o Cradle. 2.1 Engenharia sequencial e simultânea A Engenharia de sistemas é uma nova maneira de abordar o desenvolvimento de produtos, desde a revolução industrial foi crescente a necessidade de uma maneira de se pensar em como desenvolver novos produtos ou melhorar os processos para que se produza mais. Até a primeira metade do século XX os projetos de desenvolvimento de produtos abrangiam menos áreas, menos interesses e ,dessa maneira, podemos dizer que os projetos era menos complexos. Com o progresso científico e tecnológico os projetos foram se tornando cada vez mais complexos e se tornando cada vez mais interdisciplinares,consequentemente, aumentando o número de pessoas envolvidas em sua concepção. Inicialmente produtos eram desenvolvidos de uma maneira seqüencial. Com o aumento de sua complexidade e da competição entre as organizações produtoras, houve a necessidade de encurtar o tempo de desenvolvimento e grupos mutidisciplinares passaram a ser utilizados para realizar o desenvolvimento do produto e dos seus processos do ciclo de vida, simultaneamente. Essa abordagem foi chamada de engenharia simultânea. A engenharia sequencial é mais rígida, de maneira que o produto tem uma idealização inicial é prototipado e de acordo com os teste do protótipo o projeto original é modificado. Mesmo que o tempo gasto inicialmente para projetar o produto é menor, mas com o desenvolvimento as falhas iniciais do projeto vão surgindo, fazendo com que se tenha retrabalho de projetá-lo e voltar para a etapa inicial, tornando o desenvolvimento mais lento e custoso. Na engenharia simultânea, o projeto é feito de maneira simultânea. Um grande tempo do projeto é dedicado na parte de idealização, pensando em como deve ser o projeto final, reconhecendo a sua interdisciplinaridade de maneira a juntar vários especialistas para discutir as nuances do problema a ser resolvido. Nesse tipo de projeto temos um grande gasto inicial na parte do desenvolvimento do projeto, mas isso garante um custo final menor pois a parte que mais gera gastos é a prototipagem e reprojeto, e uma das piores propagandas negativas para um projeto é o recall do produto, por exemplo. Fazendo um paralelo entre a entre a engenharia sequencial e a engenharia simultâneatemos que tradicionalmente o tempo gasto na parte de desenvolvimento do produto é bem pequeno em relação à engenharia concorrente. Isso reflete em um gasto inicial menor e de acordo com o produto (se necessitar muito retrabalho os vários reprojetos irão custar muito caro) irá ter um custo final mais caro. Quando utilizamos engenharia simultâneaa parte inicial requer mais tempo e mais dinheiro, com o objetivo de antecipar os problemas durante o projeto e ,ao final de tudo, ter um custo menor e um menor tempo de desenvolvimento do produto. Existem características inerentes a engenharia concorrente: Trabalho simultâneo em diversas áreas, que acarreta uma diminuição geral do tempo de desenvolvimento. Por exemplo o planejamento de processo pode ser integrado com o planejamento de produção. Envolvimento dos participantes do trabalho mais cedo, isso facilitaria a troca de informações entre os diversos setores do trabalho podendo ajudar em um projeto melhor devido a diferentes idéias geradas pelo contato entre projetistas e manufatura. Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 Trabalho em equipe, percebe-se que todos os outros fatores voltam-se para um objetivo maior que é realmente o trabalho em equipe, mas um trabalho que gere apoio entre as equipes não limitações, gerando produtos com soluções mais criativas. Aumentando o aprendizado entre diversas áreas da empresa. Segundo o artigo “Concurrent Engineering performance: Incremental versus radical innovation” alguns tipos de projetos têm mais benefícios com a engenharia concorrente. O artigo apresenta uma pesquisa com a finalidade de identificar quais os tipos de produtos que mais se identificam com esse tipo de desenvolvimento de projeto. Constatou-se que empresas inovadoras se adequam mais a esse tipo de projeto e a redução final do custo é de acordo com a inovação desenvolvida pela empresa. Após compararmos o modelo de engenharia simultânea com a engenharia tradicional e ao nos situarmos no modelo atual em que a grande parte dos produtos é fruto de um ambiente de inovação, fica claro que deve existir cursos que permitam que os engenheiros tenham um conhecimento profundo de como aplicar a engenharia de sistemas em seus futuros projetos 2.2. Ferramentas de engenharia de sistemas. Então, quanto mais complexo é esse desenvolvimento maior a necessidade de uma ferramenta que auxilie a organização de todo esse projeto. Devido a essa necessidade surgiram várias ferramentas para auxiliar a aplicação dos conceitos de engenharia de sistemas. Nos seguintes excertos, temos a descrição de algumas ferramentas feitas pelos seus desenvolvedores, traduzidas do inglês. Kovair Global Lifecycle (Kovair) Version 5.5 Resumo do Produto: Kovair oferece um produto para gerenciamento de soluções em TI que tem funcionalidades fora do comum tais como : Requisitos, testes, mudança e gerenciamento de ajuda. A ferramenta permite também a criação de múltiplas ferramentas definidas pelo usuário no mesmo framework. É configurável e tem suas tarefas baseadas no “Omniprocess Workflow” que pode automatizar qualquer desenvolvimento de produto ou processo de TI com capacidade gráfica de projeto. Além de permitir a rastreabilidade, automatização de processos, gerência sincronizada de projetos e reporte de erros. MagicDraw and SysML Plugin Version 16.5 Resumo do produto: MagicDraw e o seu SysML Plugin permite a modelagem de requisites em MagicDraw UML. A ferramenta tem múltiplas funcionalidades para engenharia de sistemas. Algo chave do programa é que os requisitos são linkados aos intens no modelo como classe ou métodos de projeto ou modelado para testes que verifiquem os requisitos. Essa mudança de requisito ao ciclo de vida do produto auxilia o desenvolvimento e detalha o projeto com análises e validações que o usuário queira fazer. IBM Rational DOORS Version 9.2 Resumo do Produto: Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 IBM Rational DOORS® melhora a comunicação de requisitos, colaboração e verificação dentro da empresa, possibilitando a entrega de produtos e sistemas com maior qualidade. Com poderosas capacidades para capturar, relacionar, analisar e gerenciar mudanças e seu efeitos, DOORS ajuda sistemas e organizações de desenvolvimento de produtos a maximizar o atendimento aos requisitos de acordo com as normas e regras. Cradle Version 6.3 Resumo do Produto: O aclamado Cradle 6.3 é uma completa ferramenta de engenharia de sistemas e gestão de requisitos. Cradle é uma totalmente customisável, pacote extensível que pode ajudar o controlador a maximisar o controle, eficiêcmia, segurança e durabilidade dos projetos para ajudar você a ter seu projeto com um sucesso no orçamento e no tempo. 2.3 Apresentação geral do Cradle O Cradle é um software que ajuda a implementação de um ambiente de engenharia de sistemas e permite a gestão de requisistos e sistemas. Útil para: Enumeração e definição de requisitos Análise de sistemas e design Definição da arquitetura de sistemas Modelagem de processos de negócios e engenharia Definição e entrega da capacidade de serviço Figura 1 – Esquema dos processos que podem ser feitos utilizando Cradle. Cradle é feito para que muitas pessoas trabalhem colaborativamente para criar, atualizar, gerenciar, interligar e reportar qualquer e todo tipo de informação envolvida em projetos complexos. A estrutura do programa é baseada na interação entre o usuário-servidor, com dois tipos principais de componentes: Front-end tools Back-end servers Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 E os servidores de Cradle são: Cradle Databe Server (CDS) Cradle Web Server (CWS) A Figura 2 apresenta como Cradle pode ser usado em um projeto de desenvolvimento de um produto complexo. . Figura 2 – Exemplo de Cradle sendo usado em um projeto Cradle é subdivido em vários módulos que se integram para apoiar um projeto de desenvolvimento de um produto complexo: • Project Manager • Workbench • Web Acess • Cradle Database Server and Web Server • Document Loader and Document Publisher • Spellchecker A complexidade para usar cada um dos módulos é alta. Cada um dos módulos possui um tutorial próprio. Por exemplo, somente o módulo “Workbench” tem 660 páginas. 2.4 Apresentação dos módulos do Cradle O software Cradle é atualizado frequentemente de maneira a se ter um software atual e de acordo com os feedbacks dos usuários. Abaixo, apresentaremos os módulos que ao serem trabalhados de uma maneira integrada permitem o gerenciamento de projeto do Cradle 6.0 : Project Manager Nesse módulo você pode gerenciar todos os projetos em um único sistema de Cradle. Isso permite uma hierarquia entre projetos, organizadas em qualquer sistema de estrutura em árvore que tenha um Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 significado para os usuários. Para caracterizar os projetos você pode dar atributos a cada projeto nesse módulo. Workbench Essa é a ferramenta mestre do Cradle 6.0 , por isso que seu manual possui mais de 600 páginas, pois esse módulo permite você customizar exatamente de qual maneira você quer ver e manipular sua base de dados para gerar um output que pode ter várias formas: 1. Gerar relatórios de texto. 2. Criar arbitrariamente muitos modelos de implementação e muitos modelos de arquitetura e de projeto. 3. Coletar as métricas do projeto. Cradle Database Server and Web Server Esse modulo permite a interação de várias pessoas no desenvolvimento do projeto mesmo que elas não tenham instalado o Cradle em seu computador. Pois ele gera um website contendo data que está no Project Database (PDB) de um Cradle Web Server (CWS), de maneira que um usuário pode acessar dados do projeto usando apenas um navegador. Document Loader and Document Publisher Esse modulo é o que permite a interação com as ferramentas do Microsof Office, por exemplo, seguindo um modelo pré-determinado de formatação no Word você pode usar esse módulo para que ele leia o documento e dele retirar uma hierarquia de componentes e atributos, criando até cross references automaticamente através de subcabeçalhos relacionados. Spellchecker Ele lê todas as palavras do projeto a fim de fazer uma busca, de maneira que você pode iniciá-la do workbench ou usando apenas o módulo spellchecker. Atualmente, o Cradle está com uma nova versão a Cradle 6.3 , de acordo com as recentes atualizações o Cradle ainda é um software dividido em módulos. No entanto os módulos são: Cradle-PDM – Project Data Module Esse é módulo em que se permite ter uma visão geral do projeto. Pode-se observar as cross-references feitas, usar o document loader para acessar arquivos e inserir no projeto, observar itens suspeitos pelo programa de maneira a evitar propagação de erros e análise dos impactos. Cradle-REQ - Requirements Management Usando as facilidades do PDM, esse módulo serve para se fazer a gestão de requisitos através de redefinição de hierarquias, juntar e dividir requerimentos, criar e gerenciar testes de caso. Cradle-MET – Metrics Criar e aplicar as métricas definidas pelo usuário tais como peso, custo, consumo de energia. Cradle-DOC - Document Generation Gera documentos de Word considerando as hierarquias definidas no projeto. Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 Cradle-SYS - System Modelling Cria gráficos de análise dos sistemas, projeto e arquitetura de modelos. Possui um grande variedade de sistemas de modelagem como o UML. Cradle-SWE - Software Engineering Permite a engenharia reversa de software em Pascal e geração de código na mesma linguagem em modelos ( diagramas de STC, definições de dados). Cradle-WEBA - Web Access Permite que os dados sejam acessados pela internet e que pessoas que não tenham o Cradle instalado em suas máquinas possam participar do projeto modificando os dados publicado por esse módulo. Além de permitir que todo usuário com login do projeto tenham interfaces diferenciadas nesse módulo. Cradle-PERF - Performance Modelling Permite se fazaer uma análise definida pelo usuário do que seria modelos de boa qualidade, não simula. Utiliza uma técnica quantitativa que serve para analisar projetos de alto desempenho. Ou seja, ao fazer uma análise de resultados guardados na base dados pode exportar os resultados em gráficos, por exemplo. Cradle-GATE - Requirements Traceability Gerencia os documentos do projeto e cria relações entre esses documentos de maneira a criar relações entre eles. Ao se terem todas essas relaçóes feitas ele permite a utilização de gráficos análise dos impactos para se gerar relatórios. 2.5 Cradle e outras ferramentas de Engenharia de Sistemas No site do Conselho Internacional de Engenharia de Sistemas (INCOSE) temos os dados de uma pesquisa ara diferenciar os softwares de engenharia de sistemas no mercado. Essa pesquisa está ao alcance de todos e utilizara um questionário de pontos que se respondidos corretamente tornam o programa melhor para os usuários. A pesquisa baseia-se nos seguintes critérios: Captura e identificação de requisitos. Captura do sistema estrutural de elementos , ou seja, a existência de ferramentas que permitam a captura dos elementos. Flow dos requisitos, uma vez que eles foram capturados a capacidade de serem alocados nos sub-sistemas. Análise do rastreamento, após as alocações serem completas o usuário poderá ver de onde os links vem, aonde eles vão e porque foram escolhidos. Gerenciamento de configurações – histórico dos requerimentos, controle de versões, controle de acessos, etc. Documentos e outro tipo de output gerado automaticamente pelo programa. Atendimento a trabalho em grupo, pois times de engenheiros raramente trabalham sozinhos como visto anteriormente e a gestão desse trabalho simultâneo é crítico. Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 Interface com outras ferramentas –internas do programa e programas externos (como ler arquivos de word para gerar inputs para o projeto ou gerar arquivos de word como output do projeto). Ambiente de sistema – Operação em várias plataformas, com vários usuários, etc. Interface com o usuário – acessibilidade do programa, fazer várias tarefas ao mesmo tempo, interface com navegadores de internet. Padrões – capacidade de gerar documentos de output que atendam requisitos já padronizados militarmente ou comercialmente. Suporte e manutenção. Treinamentos. Comentários adicionais. Como existem muitos produtos e como são muitos os pontos a serem avaliados, seria muito difícil apresentar o resultado de todos os programas. Portanto, deve-se apresentou-se a visão geral sobre o Cradle pelos avaliadores do site e compararou-se com os resultados obtidos por outros programas. O Cradle foi o mais bem avaliado pois , apenas um de seus requisitos foi avaliado como parcial, pois o ponto de suporte a um grupo de usuários ainda estava sob avaliação. Esse requisito é bem atendido por quase todos os outros produtos, no entanto, temos que esse critério dado como parcial foi apenas uma avaliação preliminar. Na seção de comentários adicionais, vimos ainda que o Cradle se preocupa com outros pontos de gestão de requisitos para auxiliar o desenvolvimento do projeto. Na parte de modelagem de sistemas, modelagem de performance, modelagem de informação além de engenharia de software ( pacote de geração de códigos e auxílio a engenharia reversa de sistemas desenvolvidos em C, Ada e Pascal). Percebe-se pela avaliação que o Cradle tem a parte de suporte mais bem desenvolvida, oferencendo aulas online, tutoriais online e um time de consultores para auxiliar a utilização do programa.Ao final da leitura, percebese que o Cradle é o software mais completo disponível no mercado atualmente. Outro fato interessante é que o time de desenvolvedores do produto está sempre inovando de maneira a torná-lo ainda mais prático. Para maiores informações sobre os outros programas, recomenda-se entrar no site: www.incose.org e buscar pelo documento RM TOOL SURVEY. 3. Agradecimentos Agradeço primeiramente ao meu orientador Prof. Dr. Geilson Loureiro que me ajudou sempre que precisava de uma orientação sobre o conceito de engenharia simultânea de sistemas, dedicou seu escasso tempo para me dar aulas, mesmo tendo sua vida muito corrida e atarefada. Deu-me essa oportunidade de aprender algo que não estava relacionado com meu curso profissional e que certamente levarei por toda minha vida. Ao Insituto Tecnológico de Aeronáutica por ter um ambiente propício para troca de experiências, ao 3SL por ter desenvolvido um software de tão boa qualidade quanto o Cradle. Finalmente, agradeço ao CNPQ por desenvolver tal programa que permite aos estudantes de todo o Brasil terem orientadores de primeiríssima qualidade tal como foi o meu para adentrarem em questões de vanguarda do desenvolvimento tecnológico do país. Com esse desafio e oportunidade fornecida pelo CNPQ obtive mais autoconhecimento das minhas aspirações como engenheiro, limitações e de onde quero chegar. Além de formentar um clima de discussões e assuntos científicos entre alunos da própria faculdade no qual cada um se torna um propagador do conhecimento adquirido de maneira que fiz com que muitos amigos adentrassem nessa esfera do conhecimento e se interessassem pelas diferentes maneiras de fazer um projeto, gestão de requisitos e análise de stakeholders. Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010 Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010 4. Lista de referências 3SL, Cradle manuals, 3SL, London, 2010 IDA, 1986 (Institute of Defense Analysis) Report R-338 International Council on Systems Engineering, www.incose.org. Loureiro, G. A systems engineering and concurrent engineering framework for the integrated development of complex products, PhD Thesis, Loughborough University, Loughborough, 1999. 5. Referências Loureiro, G. A systems engineering and concurrent engineering framework for the integrated development of complex products, PhD Thesis, Loughborough University, Loughborough, 1999. International Council on Systems Engineering, www.incose.org. 3SL, Cradle manuals, 3SL, London, 2010 Loureiro, G. Notas de aula. Site: http://mb294.lit.inpe.br, LIT/INPE, São José dos Campos, 2010. Artigos Estudados Catanzaro, S.; Crawley, E. F. & Cameron, B. Value Based Architecture Selection. IN: Proceedings of the 57 th International Astronautical Conference, Valencia, 2006 Loureiro, G. et al. Systems concurrent engineering to develop a grenn car. IN: Proceedings of the CE2010 17th ISPE International Society for Productivity Enhancement, Springer-Verlag, Cracóvia, Polônia, 2010. IDA, 1986 (Institute of Defense Analysis) Report R-338. IEEE, 1995, IEEE Std 1220-1994. IEEE Trial-use standard for application and management of the systems engineering process. The Institute of Electrical and Electronics Engineers, Inc., New York, USA. ISBN 1-55937-496-9 Berger, C. et al. Kano´s method for understanding customer defined quality. IN: Center for quality of management journal. Vol 2, Número 4, Fall 1993, Cambridge, MA, USA, 1993 ISSN: 1072-5296. SandraValle,DanielVa´zquez-Bustelo et al, Concurrent engineering performance: Incremental versus radical innovation . IN: Internal Journal Production Economics , University of Oviedo, 2009.