Diretrizes da engenharia de requisitos para projetos de softwares embarcados

Share Embed


Descrição do Produto

Universidade Federal de Ouro Preto – UFOP Instituto de Ciências Exatas e Aplicadas - ICEA Departamento de Computação e Sistemas – DECSI

Diretrizes da engenharia de requisitos para projetos de softwares embarcados

Bolsista: Maurício Moura dos Santos Júnior Orientador: Igor Muzetti Pereira Relatório final referente ao período entre março/2015 a fevereiro/2016 apresentado como parte das exigências do programa de iniciação cientifica PIVIC João Monlevade – Minas Gerais – Brasil Fevereiro/2016

Sumário Resumo .................................................................................................................................................... 3 Introdução................................................................................................................................................ 4 Objetivos ................................................................................................................................................. 5 Revisão de Literatura............................................................................................................................... 5 Materiais e Métodos ................................................................................................................................ 6 Resultados e Discussões .......................................................................................................................... 7 Conclusão ................................................................................................................................................ 8 Referências Bibliográficas ...................................................................................................................... 9

Introdução Sistemas embarcados são sistemas que tem como principal característica sua interação com o ambiente em que está instalado e que reage a alterações que tal ambiente sofre, tais sistemas estão amplamente difundidos dentro da vida cotidiana atual e tem protagonismo tanto no âmbito doméstico como no comercial e industrial. Como por exemplo, sistemas embarcados que gerenciam máquinas de lavar, micro-ondas, geladeiras, automóveis e equipamentos industriais em geral. Estes tipos de sistemas também são desenvolvidos em ambientes acadêmicos, como laboratórios de pesquisa em computação. Tais projetos costumam fazer parte principalmente de trabalhos de conclusão de curso e programas de iniciação científica. Os alunos que conduzem estes projetos, normalmente estão em vários períodos de seus cursos, eles podem não gostar de seus projetos e simplesmente desistirem deles ou ainda quando se formam eles deixam os projetos que podem ser ainda evoluídos por outros alunos sem uma documentação adequada. Práticas de engenharia de software precisam ser aplicadas nestes contextos para garantir a qualidade dos produtos desenvolvidos nestes ambientes, para assegurar que mesmo com a desistência ou formatura de alguns alunos, os seguintes alunos conseguirão entender os o que já foi realizado até então e seguirão o processo de desenvolvimento. Abordando este problema, identificamos uma questão que a busca pela sua solução, guiou os autores desta pesquisa em sua execução: Como definir um processo de engenharia de requisitos para sistemas embarcados em um contexto acadêmico? Para responder esta pergunta científica, a maneira como a disciplina de engenharia de requisitos para sistemas embarcados no mercado de tecnologia da informação é abordada foi entendida, uma revisão da literatura foi realizada, um entendimento de como os alunos do iMobilis abordavam esta disciplina no processo BOPE foi observada e propostas foram sugeridas até que uma final foi suficiente para manter todos os envolvidos entendidos e satisfeitos com os resultados alcançados na execução da nova perspectiva. O projeto identificou, analisou e discutiu com todos os envolvidos as características que fazem dos projetos de sistemas embarcados desenvolvidos em ambientes acadêmicos um ponto fora da curva quando comparados aos ambientes profissionais. Foi identificado pelos alunos que é importante eles entenderem como estes projetos são conduzidos nas empresas, mas eles entenderam que precisam adaptar seus projetos para o seu contexto. Então, alunos deste laboratório sairão com uma experiência esperada pelas empresas atuantes do mercado nestas práticas de engenharia de software.

Objetivos O projeto teve como objetivos específicos: (i) o entendimento de como a engenharia de requisitos para sistemas embarcados é realizada em empresas do mercado de tecnologia da informação; (ii) entender na literatura quais são as abordagens propostas para a indústria e para a academia; (iii) observar como é realizada esta disciplina pelos alunos do iMobilis em seus projetos; (iv) propor uma perspectiva que contempla às características do BOPE e do iMobilis; (v) melhorar continuamente a perspectiva proposta através de feedbacks constantes dos envolvidos; e (vi) Documentar a nova perspectiva, implantar no laboratório e reportar os resultados através do relatório final de iniciação científica.

Revisão de Literatura O livro de Ian Sommerville – Engenharia de software 8ª edição, foi lido e discutido com o orientador inicialmente a fim de se ter uma base concreta dos conhecimentos básicos de engenharia de software, engenharia de requisitos e sistemas embarcados. O restante da literatura utilizada foi constituído de artigos encontrados a partir de buscas em fóruns especializados, Google Acadêmico e o Portal CAFe da CAPES, tais artigos apresentam o estado da arte do problema abordado, trabalhos correlatos e possíveis soluções a serem desenvolvidas, abaixo estão listados os artigos que mais se sobressaíram dentro da proposta estudada: Bas Graaf, Marco Lormans e Hans Toetenel - Embedded Software Engineering: The State of Practice – O artigo mostra em que patamar está o estudo sobre engenharia de software embarcado, fazendo uso de uma entrevista com profissionais que trabalham na área para demonstrar carências e atividades voltadas para a melhoria dos processos. Tal artigo nos serviu em nosso projeto como um ponto inicial de investigação e foi importante para validar através dos resultados apresentados nele indícios teóricos antes vistos. Christof Ebert, Capers Jones – Embedded Software: Facts, Figures and Future – O artigo trás uma visão geral do estado da arte do desenvolvimento de sistemas críticos e softwares embarcados, trás fatos analisados por desenvolvedores que explicam as atividades no decorrer do desenvolvimento de tais sistemas e faz uma análise sobre o futuro e o crescimento potencial das aplicações dos sistemas embarcados. Tal trabalho se relaciona com o projeto no momento em que é trazida a tona os temas de práticas de software e modelos de desenvolvimento que são vitais para o bom decorrer do projeto e foram analisados como possíveis atividades dificultadas por uma engenharia de requisitos mal feita. K. Adu Michael, K. Alese Boniface - Inadequate Requirements Engineering Process: A Key Factor for Poor Software Development in Developing Nations: A Case Study – O artigo trás como tema a engenharia de requisitos mal aplicada como fator principal para um desenvolvimento de sistemas pobre em resultados e com um produto mal elaborado, tal artigo se relaciona intimamente com o projeto aqui desenvolvido já que buscamos estudar métodos que tenham como consequência um desenvolvimento bem elaborado e facilite o acesso a informações e otimize os resultados dos ciclos de atividades pretendidos.

Jaime Cazuhiro Ossada, Luiz Eduardo G. Martins, Bárbara Stefani Ranieri, Anderson Belgamo – GERSE: Guia de Elicitação de Requisitos para Sistemas Embarcados – O Ari=tigo apresenta uma proposta de melhoria para especificação de requisitos para softwares embarcados, assim nos foi útil no momento da concepção do artefato final do nosso projeto, sendo tal artigo uma referência no momento da modelagem do nosso template, que não é tão técnico quanto o apresentado no artigo, mas tem características em comum. O trabalho de Pereira et. al (2013) mostra os desafios envolvidos no desenvolvimento de software em universidades públicas brasileiras, onde as equipes são formadas por estudantes recém-formados e em graduação, liderados por um ou mais professores. Foi proposta o uso de uma metodologia híbrida de desenvolvimento de software, denominada BOPE, que combina Scrum, Programação Extrema, RUP e as orientações do PMBOK. No BOPE, cada atividade do processo gera um artefato. Cada necessidade do cliente é mapeada em história de usuário e cenários de teste que guiam o desenvolvimento de software de fora para dentro. Ou seja, o software é construído exclusivamente para agregar valor ao cliente.

Materiais e Métodos Foram utilizados em primeiro lugar matérias teóricos como livros e artigos, para se conceber uma base de conhecimento a cerca de sistemas embarcados, sistemas de tempo real e do hardware básico que são utilizados nos sistemas estudados, além de se conhecer o estado da arte dos estudos correlatos e da situação em que se encontram as empresas e desenvolvedoras que tem interesse no problema aqui abordado. No processo de especificação se buscou utilizar softwares que facilitassem a documentação dos projetos além da criação de uma base de dados para acessos de colaboradores futuros, o software escolhido foi o Fritzing, uma ferramenta livre de documentação que oferece boa amplitude de dados a serem utilizados e contém com um sistema de documentação ágil e de fácil entendimento. O estudo dos trabalhos desenvolvidos nos laboratórios foi feito através de questionários e conversas com os desenvolvedores, buscando explicitar o sistema desenvolvido e o porquê das decisões tomadas durante o período de criação do sistema. Ao fim dos questionamentos foi elaborado um documento que envolve como tratar as principais dificuldades dos desenvolvedores. Tal ferramenta veio como um modo de colocar em prática os conhecimentos adquiridos durante o projeto e também facilitar e agilizar a organização e a documentação dos projetos.

Resultados e Discussões O processo de engenharia de requisitos para sistemas embarcados final que está sendo utilizado nos projetos do iMobilis está ilustrado na Figura 1.

Figura 1. Processo de Engenharia de Requisitos para Sistemas Embarcados

Inicialmente os alunos realizam pesquisas em sistemas correlatos já existentes, na literatura para buscar ideais de possíveis requisitos, reutilizarem códigos-fonte e frameworks disponíveis. Após isso o planejamento da solução é realizado, as plataformas que serão utilizadas são identificadas, as limitações do sistema são descritas, preparam-se os métodos de avaliação que serão utilizados e os parâmetros de qualidade são definidos. Em seguida, os alunos com seus professores definem, especificam e priorizam os requisitos de hardware e software que suas soluções terão, bem como os requisitos secundários são identificados. Requisitos secundários são componentes que serão utilizados temporariamente nos testes e nos protótipos. Com os requisitos priorizados, cada equipe escolhe aqueles com prioridade maior, normalmente são os essenciais para o sistema e o desenvolvimento do protótipo inicial é realizado. Uma sequência de testes de desempenho, consumo energético são realizados em cada protótipo e relatórios com os resultados são testes são gerados. Se os resultados conseguidos não são próximos aos resultados esperados, então o protótipo construído é revisado e melhorado para ser testado novamente. Quando os resultados dos testes são satisfatórios, a equipe registra no documento de especificação de requisitos de sistemas embarcados os diagramas dos circuitos existentes e detalhes técnicos dos componentes presentes até o momento. Se existirem novos requisitos a serem implementados, estes são incorporados confirme a prioridade e então se segue novamente a sequência dos testes e documentação. Quando todos os requisitos estiverem implementados e todos os testes realizados, a construção final da solução é feita. É importante destacar que a solução final é

construída com os equipamentos disponíveis no laboratório ou que podem ser adquiridos com os recursos dos projetos acadêmicos.

Conclusão Como conclusão desta pesquisa pode-se avaliar o impacto que ocorre quando se desenvolvem sistemas embarcados em ambientes acadêmicos. Estes “lugares” possuem várias restrições que precisam ser consideradas ao implantar um processo de desenvolvimento construído para ambientes profissionais. Processos de desenvolvimento de sistemas de computação precisam ser adaptados para estes ambientes. Os alunos precisam conhecer como são realizados estes projetos no ambiente profissional e para adquirir experiência nas práticas de engenharia de software, principalmente em engenharia de requisitos, eles precisam trabalhar segundo as características dos laboratórios de pesquisa. Em geral, esta pesquisa serviu também para documentar uma perspectiva no BOPE sobre como fazer a engenharia de requisitos em sistemas embarcados.

Referências Bibliográficas Ian Sommerville – Engenharia de software 8ª edição Bas Graaf, Marco Lormans e Hans Toetenel - Embedded Software Engineering: The State of Practice. Jaime Cazuhiro Ossada, Luiz Eduardo G. Martins, Bárbara Stefani Ranieri, Anderson Belgamo – GERSE: Guia de Elicitação de Requisitos para Sistemas Embarcados. Luiz Eduardo Martins, Roberto de Souza Júnior, Hermano Peixoto de Oliveira, Cecília Sosa Arias – TERASE; Template para Especificação de Requisitos de Ambiente em Sistemas Embarcados. Fabiano Cruz, Raimundo Barreto, Lucas Cordeiro – Towards a Model-Driven Engineering Approach for Developing Embedded Hard Real-Time Software. Christof Ebert, Capers Jones – Embedded Software: Facts, Figures and Future. Muhammad Shahid, Suhaimi Ibrahm, Mohd Naz’ri Mahri – Na Evaluation of Requirements Management and Traceability Tools. K. Adu Michael, K. Alese Boniface - Inadequate Requirements Engineering Process: A Key Factor for Poor Software Development in Developing Nations: A Case Study. Pereira, I. M. Desenvolvendo software inovador em universidades públicas: Adaptando processos ágeis para a realidade de laboratórios de pesquisa e desenvolvimento. 2014. 63 f. Mestrado (Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Ouro Preto, Ouro Preto. 2014. Site do Fritzing: http://fritzing.org/. Acessado em junho de 2015.

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.