-
Automated Driver Testing for Small Footprint Embedded Systems
Authors:
Sara C. M. Souza,
Rogerio Atem de Carvalho
Abstract:
Embedded systems represent a billionaire market and are present in most of the processors produced in the world.Embedded software interacts with external peripherals such as sensors and actuators through drivers. The strong interaction between drivers and external peripherals often hamper embedded software development, in special the testing task, giving that the physical environment may not be de…
▽ More
Embedded systems represent a billionaire market and are present in most of the processors produced in the world.Embedded software interacts with external peripherals such as sensors and actuators through drivers. The strong interaction between drivers and external peripherals often hamper embedded software development, in special the testing task, giving that the physical environment may not be deterministic and difficult to be recreated during the tests, the hardware may not be available or its presence may not be desirable or costly. Aiming at addressing these problems, this paper introduces a solution to test drivers on microcontrollers, based on a method that uses three components: a Device Under Test (DUT), a Double device, and a computer. The computer runs a test orchestration code, while the DUT runs the test target code, and the Double plays the role of the real external peripherals that interact with the DUT. The proposed solution was successfully implemented and validated using different protocols.
△ Less
Submitted 4 May, 2021;
originally announced May 2021.
-
Modern Design Methodologies and the Development of Mechatronic Products
Authors:
Rogerio Atem de Carvalho
Abstract:
This article presents a quick view on the development of mechatronic products and how the techniques of Design Thinking, Concurrent Engineering and Agilism can be integrated to address this development. Design Thinking is employed in the early stages in order to better explore creativity, whereas Concurrent Engineering and Agilism are applied during the development of the product, in order to deal…
▽ More
This article presents a quick view on the development of mechatronic products and how the techniques of Design Thinking, Concurrent Engineering and Agilism can be integrated to address this development. Design Thinking is employed in the early stages in order to better explore creativity, whereas Concurrent Engineering and Agilism are applied during the development of the product, in order to deal with emerging requirements, typical of the development of complex products.
△ Less
Submitted 21 July, 2020;
originally announced July 2020.
-
TDD for Embedded Systems: A Basic Approach and Toolset
Authors:
Rogerio Atem de Carvalho,
Hudson Silva,
Rafael Ferreira Toledo,
Milena Silveira de Azevedo
Abstract:
The evolution of information technology and electronics in general has been consistently increasing the use of embedded systems. While hardware development for these systems is already consistent, software development for embedded systems still lacks a consolidated methodology. This paper describes a process and toolset for Embedded Systems Validation and Verification using FSM (Finite State Machi…
▽ More
The evolution of information technology and electronics in general has been consistently increasing the use of embedded systems. While hardware development for these systems is already consistent, software development for embedded systems still lacks a consolidated methodology. This paper describes a process and toolset for Embedded Systems Validation and Verification using FSM (Finite State Machines) and TDD (Test Driven Development).
△ Less
Submitted 3 August, 2015; v1 submitted 28 July, 2015;
originally announced July 2015.
-
Introducing Business Language Driven Development
Authors:
Rogerio Atem de Carvalho,
Rodrigo Soares Manhaes,
Fernando Luiz de Carvalho e Silva
Abstract:
A classical problem in Software Engineering is how to certify that every system requirement is correctly implemented by source code. This problem, albeit well studied, can still be considered an open one, given the problems faced by software development organizations. Trying to solve this problem, Behavior-Driven Development (BDD) is a specification technique that automatically certifies that all…
▽ More
A classical problem in Software Engineering is how to certify that every system requirement is correctly implemented by source code. This problem, albeit well studied, can still be considered an open one, given the problems faced by software development organizations. Trying to solve this problem, Behavior-Driven Development (BDD) is a specification technique that automatically certifies that all functional requirements are treated properly by source code, through the connection of the textual description of these requirements to automated tests. However, in some areas, such as Enterprise Information Systems, requirements are identified by Business Process Modeling - which uses graphical notations of the underlying business processes. Therefore, the aim of this paper is to present Business Language Driven Development (BLDD), a method that aims to extend BDD, by connecting business process models directly to source code, while keeping the expressiveness of text descriptions when they are better fitted than graphical artifacts.
△ Less
Submitted 9 November, 2010;
originally announced November 2010.
-
A tool stack for implementing Behaviour-Driven Development in Python Language
Authors:
Hugo Lopes Tavares,
Gustavo Guimaraes Rezende,
Vanderson Mota dos Santos,
Rodrigo Soares Manhaes,
Rogerio Atem de Carvalho
Abstract:
This paper presents a tool stack for the implementation, specification and test of software following the practices of Behavior Driven Development (BDD) in Python language. The usage of this stack highlights the specification and validation of the software's expected behavior, reducing the error rate and improving documentation. Therefore, it is possible to produce code with much less defects at b…
▽ More
This paper presents a tool stack for the implementation, specification and test of software following the practices of Behavior Driven Development (BDD) in Python language. The usage of this stack highlights the specification and validation of the software's expected behavior, reducing the error rate and improving documentation. Therefore, it is possible to produce code with much less defects at both functional and unit levels, in addition to better serving to stakeholders' expectations.
△ Less
Submitted 10 July, 2010;
originally announced July 2010.
-
Mapping Business Process Modeling constructs to Behavior Driven Development Ubiquitous Language
Authors:
Rogerio Atem de Carvalho,
Fernando Luiz de Carvalho e Silva,
Rodrigo Soares Manhaes
Abstract:
Behavior-Driven Development (BDD) is a specification technique that automatically certifies that all functional requirements are treated properly by source code, through the connection of the textual description of these requirements to automated tests. Given that in some areas, in special Enterprise Information Systems, requirements are identified by Business Process Modeling - which uses graphic…
▽ More
Behavior-Driven Development (BDD) is a specification technique that automatically certifies that all functional requirements are treated properly by source code, through the connection of the textual description of these requirements to automated tests. Given that in some areas, in special Enterprise Information Systems, requirements are identified by Business Process Modeling - which uses graphical notations of the underlying business processes, this paper aims to provide a mapping from the basic constructs that form the most common BPM languages to Behavior Driven Development constructs.
△ Less
Submitted 24 June, 2010;
originally announced June 2010.
-
Filling the Gap between Business Process Modeling and Behavior Driven Development
Authors:
Rogerio Atem de Carvalho,
Rodrigo Soares Manhães,
Fernando Luis de Carvalho e Silva
Abstract:
Behavior Driven Development (NORTH, 2006) is a specification technique that is growing in acceptance in the Agile methods communities. BDD allows to securely verify that all functional requirements were treated properly by source code, by connecting the textual description of these requirements to tests.
On the other side, the Enterprise Information Systems (EIS) researchers and practitioners de…
▽ More
Behavior Driven Development (NORTH, 2006) is a specification technique that is growing in acceptance in the Agile methods communities. BDD allows to securely verify that all functional requirements were treated properly by source code, by connecting the textual description of these requirements to tests.
On the other side, the Enterprise Information Systems (EIS) researchers and practitioners defends the use of Business Process Modeling (BPM) to, before defining any part of the system, perform the modeling of the system's underlying business process. Therefore, it can be stated that, in the case of EIS, functional requirements are obtained by identifying Use Cases from the business process models.
The aim of this paper is, in a narrower perspective, to propose the use of Finite State Machines (FSM) to model business process and then connect them to the BDD machinery, thus driving better quality for EIS. In a broader perspective, this article aims to provoke a discussion on the mapping of the various BPM notations, since there isn't a real standard for business process modeling (Moller et al., 2007), to BDD.
Firstly a historical perspective of the evolution of previous proposals from which this one emerged will be presented, and then the reasons to change from Model Driven Development (MDD) to BDD will be presented also in a historical perspective. Finally the proposal of using FSM, specifically by using UML Statechart diagrams, will be presented, followed by some conclusions.
△ Less
Submitted 26 May, 2010;
originally announced May 2010.